pub enum ToolOrigin {
LocalSandbox,
Fetcher,
FirstParty,
AccessGrant,
AccessRevoke,
AdminManage,
RegisteredConnector,
Unknown,
}Expand description
Where a tool comes from — the registry-provenance half of classification.
Trust scoping is the security-load-bearing part: taint-immune
classification (Capability::FixedConnectorRead) is earned only by
operator registration (ToolOrigin::RegisteredConnector /
ToolOrigin::FirstParty) — never by a connector’s self-declared
annotation hints alone. This is what the MCP specification normatively
requires: clients MUST treat tool annotations as untrusted unless the
server is trusted.
Variants§
LocalSandbox
A sandbox-confined built-in (the coding tools): runs inside the conversation’s execution unit, which has no outbound network.
Fetcher
A built-in fetcher (the web/paid fetchers): brokered on the trusted side to a model-controlled destination.
FirstParty
A built-in that reads or acts on the caller’s own first-party state via the control plane (the history and wallet families): a fixed, operator-owned destination.
AccessGrant
A built-in that grants a third party access to the system itself — the
admin invite (#700). Classified apart from Self::FirstParty
because it requires Capability::GrantAccess, the never-granted
marker, so it always escalates to a human before anything is minted: the
agent can only ever PROPOSE an invite, never grant access on its own.
AccessRevoke
A built-in that removes a third party’s access to the system itself —
the admin de-admission (#713), the offboarding sibling of
Self::AccessGrant. Requires Capability::RevokeAccess, the
never-granted marker, so it always escalates to a human before anything
is removed: the agent can only ever PROPOSE a removal, never de-admit
anyone on its own.
AdminManage
A built-in that takes away a persona’s ADMIN ROLE — the demote
tool (#715), the sibling that completes the admin-management set
alongside Self::AccessGrant/Self::AccessRevoke. Requires
Capability::ManageAdmin, the never-granted marker, so it always
escalates to a human before anyone’s admin role changes: the agent
can only ever PROPOSE a demote, never remove anyone’s admin role on
its own.
RegisteredConnector
A connector tool whose server the operator registered (registry
provenance, e.g. the ToolService registry). Its annotations are
load-bearing inputs because the operator vouched for the server.
Unknown
Anything else: an unregistered server’s self-declared tool, an unknown name, an unannotated spec. Fails closed to the privileged set.
Trait Implementations§
Source§impl Clone for ToolOrigin
impl Clone for ToolOrigin
Source§fn clone(&self) -> ToolOrigin
fn clone(&self) -> ToolOrigin
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more