Core models¶
These are the data types that make up a manifest: the top-level Manifest record and one type for each artifact it describes (system prompt, policy bundle, tools, model, and so on). You use them to build a manifest in code or to read the fields of one you have loaded.
The Manifest and all nested types are Pydantic v2 models, typed data classes that check their fields when created. All fields are serialisable to JSON via .model_dump(mode="json"). See ADR-0004 for the rationale.
Manifest¶
Manifest ¶
Bases: SpecModel
Root Agent Manifest document - spec Section 3.1.
json_schema ¶
Export JSON Schema for non-Python verifier implementations.
Artifact bindings¶
ArtifactBindings ¶
Bases: SpecModel
Container for the 8 artifact bindings that live under artifacts.
ModelIdentityBinding ¶
Bases: SpecModel
Artifact #4 - spec Section 3.2.4.
model_hash conditionality (spec 3.2.4): - deployment_type=api or third-party-api -> model_hash MUST be null and model_attestation_type MUST be 'provider-asserted' - deployment_type=local or confidential-inference -> model_hash REQUIRED and model_attestation_type MUST be 'hash-bound'
SystemPromptBinding ¶
Bases: SpecModel
Artifact #1 - spec Section 3.2.1.
PolicyBundleBinding ¶
Bases: SpecModel
Artifact #2 - spec Section 3.2.2.
ToolManifestBinding ¶
Bases: SpecModel
Artifact #3 - spec Section 3.2.3.
RagCorpusBinding ¶
Bases: SpecModel
Artifact #5 - spec Section 3.2.5.
MemoryBaselineBinding ¶
Bases: SpecModel
Artifact #6 - spec Section 3.2.6.
Conditionality (spec 3.2.6): - memory_type=none -> snapshot_hash MUST be null; ttl_seconds omitted - memory_type=session -> snapshot_hash REQUIRED - memory_type=persistent -> snapshot_hash and ttl_seconds REQUIRED - memory_type=shared -> snapshot_hash, ttl_seconds and shared_memory_owner REQUIRED ttl_seconds: min 3600 (1 hour), max 7776000 (90 days).
DecisionTraceBinding ¶
Bases: SpecModel
Artifact #7 - spec Section 3.2.7 (added in #24).
SupplyChainBinding ¶
Bases: SpecModel
Artifact #9 - spec Section 3.2.8 (renumbered from 3.2.7 in #24).
Delegation and approval¶
DelegationHop ¶
Bases: SpecModel
One hop in the A2A delegation chain (Artifact #8 - spec Section 3.4).
ScopeGrant ¶
Bases: SpecModel
HitlRecord ¶
Bases: SpecModel
Artifact #10 - spec Section 3.5.
required=true with an empty approvals list is structurally valid: approvals attach post-issuance (the signing pre-image normalizes approvals to [] - spec Section 3.6 / ADR-0006 as amended). Whether an approval must be present is enforced at verification time (enforce_hitl), not at schema validation time.
HitlApproval ¶
Bases: SpecModel
Signature¶
ManifestSignature ¶
Bases: SpecModel
Manifest signature block - spec Section 3.6.
Signature field conditionality
- algorithm=Ed25519 or ML-DSA-65 -> signature_value REQUIRED
- algorithm=hybrid-Ed25519-ML-DSA-65 -> classical_signature and pq_signature REQUIRED (signature_value may be empty/omitted)
Supporting types¶
ToolEntry ¶
Bases: SpecModel
One tool in the bound catalog - spec Section 3.2.3.
Field names follow the spec's protocol-agnostic forms: tool_name is the protocol-native tool name (e.g. MCP tool name) and endpoint_id is the SPIFFE URI of the tool endpoint server (e.g. MCP server).
McpServer ¶
Bases: SpecModel
PoisoningScan ¶
Bases: SpecModel
SlsaProvenance ¶
Bases: SpecModel
Spec Section 3.2.8 - DSSE/in-toto aligned provenance pointer.
Sbom ¶
Bases: SpecModel
Enumerations¶
CryptoProfile ¶
Bases: str, Enum
RiskTier ¶
Bases: str, Enum
DataClassification ¶
Bases: str, Enum
PrincipalType ¶
Bases: str, Enum
SlsaLevel ¶
Bases: int, Enum
PolicyLanguage ¶
Bases: str, Enum
EnforcementMode ¶
Bases: str, Enum
DeploymentType ¶
Bases: str, Enum
MemoryType ¶
Bases: str, Enum
TraceType ¶
Bases: str, Enum
SbomFormat ¶
Bases: str, Enum
PoisoningResult ¶
Bases: str, Enum
ApprovalMethod ¶
Bases: str, Enum
SignatureAlgorithm ¶
Bases: str, Enum
KeyType ¶
Bases: str, Enum