#[non_exhaustive]pub enum Error {
Unsigned {
name: String,
},
BadSignature {
name: String,
},
OverPrivileged {
name: String,
excess: Vec<CapabilityName>,
},
UndeclaredCapability {
name: String,
capability: CapabilityName,
},
InvalidManifest(String),
InvalidTrustRoot(String),
IdentityDrift {
id: String,
expected: String,
found: String,
},
UnknownSkill(String),
AlreadyRegistered(String),
}Expand description
All ways a skill can be refused.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unsigned
The manifest has no signature block. Unsigned skills do not run.
BadSignature
The signature is present but does not verify. The skill was tampered with after signing, or signed by an untrusted key.
OverPrivileged
The manifest declares capabilities beyond the user’s grants. Refused at admission — the skill may never claim these.
Fields
excess: Vec<CapabilityName>The declared capabilities that exceed the user’s grants.
UndeclaredCapability
The skill tried to use a capability it did not declare. Denied at call time — declaration is not enough, every call re-checks the grant.
Fields
capability: CapabilityNameThe capability the skill tried to use.
InvalidManifest(String)
The manifest is malformed.
InvalidTrustRoot(String)
The trust root (public key) is malformed or unknown.
IdentityDrift
The skill’s code changed under its pinned identity. The code hash at load/call time doesn’t match the hash pinned at admission. Refused — this is the drift rule.
Fields
UnknownSkill(String)
No skill with this id is registered.
AlreadyRegistered(String)
A skill with this id is already registered. Re-registration is
refused — explicit unregister followed by register is the
only update path. Silent replacement would let a compromised or
confused caller swap a skill’s code without any signal.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
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()