Deterministic enforcement of autonomous actions through consumable authority units, ensuring accountability and traceability.
ABLE binds autonomous execution to consumable authority and priced accountability. It prevents unauthorized actions by construction through mandatory interception points, atomic execution, and immutable tracing.
┌───────────────┐
│ Authority │
│ Manager │
│ ┌─────────┐ │
│ │ Issue │ │
│ │ AU │ │
│ └─────────┘ │
│ ┌─────────┐ │
│ │ Validate│ │
│ │ AU │ │
│ └─────────┘ │
│ ┌─────────┐ │
│ │ Get │ │
│ │ AU │ │
│ └─────────┘ │
└───────┬───────┘
│ validates
┌─────────────┐ ┌───────▼─────────┐ ┌───────────────┐
│ Action │───▶│ Execution │───▶│ Decision │
│ Request │ │ Gate │ │ Trace │
│ + AU │ │ │ ├───────────────┤
└─────────────┘ │ Consume AU │───▶│ Liability │
│ Execute Action │ │ Record │
└─────────────────┘ └───────────────┘
A consumable, immutable unit encoding scope, delegation chain, and price. Once consumed, an AU cannot be reused, replayed, or partially applied.
The mandatory interception point for any autonomous action. Authority validation, execution, and trace emission occur as a single atomic operation. No bypass path exists.
An append-only record emitted at execution. Every action yields an immutable trace bound to the authority consumed.
A deterministic mapping from a DecisionTrace to accountable parties and price. Establishes priced accountability for every authorized action.
Manages authority unit issuance and validation. Authority issuance and validation are explicit responsibilities within a scoped enforcement core.
cargo build --releasecargo test./able # Linux/macOS
.\able.exe # Windows- Deterministic Enforcement - Given identical inputs and authority state, outcomes are identical.
- Traceability - Every action yields an immutable trace bound to the authority consumed.
- Atomicity - Authority validation, execution, and trace emission occur as a single atomic operation.
- Exhaustion - Consumed authority cannot be reused, replayed, or partially applied.
- No Bypass - All autonomous actions must go through the Execution Gate.
- Rust 1.56+