pub struct HandoffStatement {Show 13 fields
pub type_: String,
pub timestamp: String,
pub from: String,
pub to: String,
pub artifacts: Vec<String>,
pub approval_ids: Vec<String>,
pub obligations: Vec<String>,
pub delegatable: bool,
pub task_ref: Option<String>,
pub policy_ref: Option<String>,
pub meta: Option<Value>,
pub custody: Option<HandoffCustody>,
pub close_loop: Option<CloseLoopEvidence>,
}Expand description
Records that work moved from one actor/domain to another.
This is the core of Treeship’s multi-agent trust story. A handoff artifact proves custody transfer and carries inherited approvals.
Fields§
§type_: String§timestamp: String§from: StringSource actor URI
to: StringDestination actor URI
artifacts: Vec<String>IDs of artifacts being transferred
approval_ids: Vec<String>Approval artifact IDs the receiving actor inherits
obligations: Vec<String>Constraints the receiving actor must satisfy
delegatable: bool§task_ref: Option<String>§policy_ref: Option<String>§meta: Option<Value>§custody: Option<HandoffCustody>How custody was established for this transfer.
Absent on every handoff minted before custody grading existed and on
every handoff that recorded no verification. Absent means asserted,
never live: the verifier grades a missing block exactly like an
explicit assertion (see HandoffCustody::effective). Signed, so a
holder cannot promote an asserted handoff to live on the wire.
close_loop: Option<CloseLoopEvidence>Close-loop evidence the sender attached: a sealed local session whose
receipt digest this handoff binds. It proves the sender ran the
commands in that session; it does not bind the UI pixels or the task
result to the presentation key. Optional by design – slice 4 of
docs/specs/agent-to-agent-verification.md says a receiver may require
it as policy, and v1 must not.