agent-bridle-core — the capability-enforcement core.
This crate is the leash: it owns the [Tool] trait, the [Gate] (the
single mint site for a [ToolContext]), the [Registry], the [Sandbox]
plumbing, and the result [ToolEnvelope]. It re-exports the canonical
authority types ([Caveats], [Scope], [CountBound]) from
agent-mesh-protocol so every host and tool speaks one lattice.
The non-bypassable invariant (DESIGN §2): a [Tool] can only act through a
[ToolContext], and a ToolContext can only be minted inside
[Gate::authorize]. So the only path to running a tool runs through the
leash, and the tool receives the meet of granted-and-required authority —
least authority by construction.
Dependency budget is deliberately tiny — anyhow, serde, serde_json,
async-trait, agent-mesh-protocol. No tokio. No brush. Heavy runtimes
live in leaf tool crates only.