Reference
Glossary
One-line definitions for the vocabulary used throughout these docs.
Glossary
- Approval resolver: the callable invoked on a
require_approvaldecision, returningTrueto allow the call orFalseto deny it. The default denies every request. See API reference. - Capability: a declared property of a tool, either
reads_privateorreaches_external, set with thecapabilities:key on a sink entry. Capabilities are what make two of the three lethal-trifecta legs computable. See Policies: declaring what a tool does. - Confused deputy: an agent tricked by untrusted input into misusing its
own legitimate authority, for example a model that reads an attacker's
instructions embedded in a document and then calls a privileged tool on
the attacker's behalf.
endorse()is restricted to deterministic code for this reason: a model's own assessment of a value cannot be trusted to vouch for it. See Auditing: endorsement. - Decision: the
allow/block/require_approvalresultcheck()computes for a guarded call, including which rule matched and why. See API reference. - Derivation hop: a
taint(value, source=..., derived_from=[...])call marking a value as derived from others, so trust is inherited from the inputs rather than assumed. The shapetrack_model_callwraps. See Model calls and derived values. - Endorsement: an explicit, audited mark (
endorse(value, kind=...)) that a value was validated for a specific purpose, without erasing its lineage or changing how its trust resolves. See Auditing: endorsement. - Envelope: the versioned, JSON-representable
dictpack()returns andunpack()consumes, carrying a value's stripped payload alongside its provenance sidecar. See Serialization. - Event: the versioned record emitted through a reporter for every
guarded call, wrapping the
Decision. See Events. - Fail-closed / fail-open: whether an evaluation error blocks the call
(fail-closed, the
enforcedefault) or lets it proceed (fail-open,monitor). Underdry_runevery decision is computed and then downgraded to allow. See Policies: modes. - Finding: the record emitted when the laundering audit sees untrusted content reach a sink argument with no label. See Auditing.
- Guard: the
@guarddecorator that evaluates policy before a tool function runs, blocking, allowing, or routing to approval. See Writing a policy. - Ingested by (
ingested_by): the de-duplicated set of agent ids that ingested or derived a value, distinct fromlineage(which names sources, not agents) and fromagent.id(which names the agent calling now, not the one that brought the data in). Ingress and derivation attribution, not a full custody chain: a plain hand-off with no re-taintleaves no entry. See How trust is decided. - Integrity dual of declassification: the relationship between
taint()andendorse(). Declassification lowers a value's confidentiality label so it can flow somewhere new;endorse()instead raises a value's integrity by recording that a specific check vouched for it, without erasing where it came from or changing how its trust resolves. See Auditing: endorsement. - Label: the object a tainted value carries, holding
source,value_id,lineage,ingested_by, andendorsements. See How trust is decided. - Laundering: an operation that silently drops a taint label, such as an
f-string with literal text,
str.formaton a plain template, orjoinon a plain separator. See What survives, in practice. - Lethal trifecta: the attack pattern of an agent that reads untrusted data, has access to private data, and can exfiltrate, all at once. See Threat model.
- Namespace: the first half of a sink's dotted qualified name, scoping tool identity so two tools in different namespaces can never collide. See Policies: namespacing.
- Provenance / lineage: the de-duplicated set of every source name that contributed to a value, and the basis for trust resolution at the sink, rather than a single trusted/untrusted bit. See How trust is decided.
- Reporter: the seam every emitted record leaves through, swappable and inert by default. See Reporters.
- Rule of Two: the posture of blocking a call when all three
lethal-trifecta legs are present in a run, written as
size(run.trifecta) >= 3. See Policies: the Rule-of-Two check. - Run (
run_id): one unit of agent activity, minted once atagent_contextentry and shared by every guarded call inside it, even across multiple agents. See Identity. - Run-level gating (
run.tainted): a policy signal that is true once anything untrusted has entered the run, surviving the laundering that destroys a value-level label. See Policies: run-level gating. - Session (
session_id): an optional, integrator-supplied id spanning multiple runs in a multi-turn conversation, set only through an explicitcheck()call. See Identity. - Sidecar: the path-keyed list of label and shape entries
pack()records alongside a stripped payload, lettingunpack()rebuild every carrier without touching the payload's own bytes. See Serialization. - Sink: the guarded call boundary where
check()runs and a decision is made, keyed in a policy as a dottednamespace.toolname. Every guarded call is a sink, a read included, which is why a tool that only reads data still gets an entry undersinks:. See Policies: sinks and rules. - Source: a named origin of ingress data, declared in a policy's
sourcestable with a trust level. An undeclared source resolves untrusted. See Policies: sources. - Taint: the mark applied by
taint(value, source=...)recording where a value came from. See Taint propagation. - Trust resolution: determining whether a value counts as trusted or
untrusted, done late, at the sink, by checking every name in its
lineageagainst the policy'ssourcestable, untrusted-wins. See Policies: evaluation semantics.