pub enum ToolAuthorizationError {
UnknownTool {
wire_name: String,
},
NotCataloged(ToolId),
NotActivated(ToolId),
SchemaDigestMismatch(ToolId),
UntrustedSource(ToolId),
SourceProvenanceMismatch(ToolId),
}Expand description
Typed execution-gate denial. Every variant is static, bounded, and metadata-only: no tool input, no schema bytes, no provider body content — only bounded identities and generation counters.
Variants§
UnknownTool
The wire name resolves to no live registered tool. Message shape kept compatible with the legacy tool-loop denial; the echoed name is bounded at resolution time.
NotCataloged(ToolId)
The live tool exists but the catalog holds no record for its identity — the registry/catalog invariant is broken; fail closed.
NotActivated(ToolId)
Known capability, but neither core for this session nor covered by an exact activation grant (the forged deferred-call case).
SchemaDigestMismatch(ToolId)
The capability’s current schema digest differs from the digest the session pinned at core-build/activation time — a changed tool is never silently blessed.
UntrustedSource(ToolId)
Unverified/unknown provenance is denied by default, even if the capability was (mis)configured as core, until an explicit later policy exists.
SourceProvenanceMismatch(ToolId)
Source/trust provenance failure: either the catalog record’s source and trust provenance disagree (an internally inconsistent record must never authorize), or the record’s CURRENT provenance differs from the provenance the session pinned at core-build/activation time (a tool removed and re-added under a different — even internally coherent — provenance must never authorize).
Trait Implementations§
Source§impl Clone for ToolAuthorizationError
impl Clone for ToolAuthorizationError
Source§impl Debug for ToolAuthorizationError
impl Debug for ToolAuthorizationError
Source§impl Display for ToolAuthorizationError
impl Display for ToolAuthorizationError
impl Eq for ToolAuthorizationError
Source§impl Error for ToolAuthorizationError
impl Error for ToolAuthorizationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for ToolAuthorizationError
impl PartialEq for ToolAuthorizationError
impl StructuralPartialEq for ToolAuthorizationError
Auto Trait Implementations§
impl Freeze for ToolAuthorizationError
impl RefUnwindSafe for ToolAuthorizationError
impl Send for ToolAuthorizationError
impl Sync for ToolAuthorizationError
impl Unpin for ToolAuthorizationError
impl UnsafeUnpin for ToolAuthorizationError
impl UnwindSafe for ToolAuthorizationError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.