AgentBlueprintProtocol. Federation. Context
(Agent Blueprint Protocol v0.1.1)
Copy Markdown
View Source
The receiving context verify_commitment/2 compares a receipt
against: trusted keys, the issuer/subject/audience pins (each nil =
the receiver does not pin that member), and the previously-verified
terminal facts for conflict detection.
Key attribution: issuer_key_sets (when non-nil) takes precedence
over the flat keys pool — the receipt's claimed issuer member
selects the pool for the signature attempt, so org-B's key never
verifies a receipt claiming org-A for receivers expressing the
stricter model. An empty map trusts no issuer (deny-all, never a
fallback). The claim is proven signed by the binding step after the
attempt; a false claim only ever narrows to the wrong or empty pool.
Freshness: created_after/created_before are RFC 3339 Z-form
bounds on the SIGNED created_at (inclusive both ends; the receiver
supplies the window, the package never invents a clock). Checked
after conflict detection — integrity and consistency outrank
receiver policy.
Verification context is caller-supplied data that carries no authority.
Verification context is caller-supplied data that carries no authority.
Summary
Types
@type receipt_fact() :: %{ task_identity: binary(), terminal_state: binary(), terminal_commitment: AgentBlueprintProtocol.Digest.t() }
@type t() :: %AgentBlueprintProtocol.Federation.Context{ audience: binary() | nil, created_after: binary() | nil, created_before: binary() | nil, issuer: binary() | nil, issuer_key_sets: %{optional(binary()) => [AgentBlueprintProtocol.Signature.PublicKey.t()]} | nil, keys: [AgentBlueprintProtocol.Signature.PublicKey.t()], prior_receipts: [receipt_fact()], subject: binary() | nil }