Data contract for conversation ownership transfer.
A handoff is different from a subagent call. Subagents delegate one bounded task inside the current turn. Handoffs record that future turns for a conversation should be owned by another agent until the owner is reset.
Summary
Functions
Normalizes an existing handoff, keyword list, or map into a handoff struct.
Builds a validated handoff, generating an ID when one is not supplied.
Builds a handoff or raises when validation fails.
Returns the Zoi schema for a handoff request.
Types
@type t() :: %Jidoka.Handoff{ context: map(), conversation_id: nil | nil | binary(), from_agent: nil | nil | any(), id: binary(), message: binary(), metadata: map(), name: binary(), reason: nil | nil | binary(), request_id: nil | nil | binary(), summary: nil | nil | binary(), to_agent: atom(), to_agent_id: binary() }
Functions
Normalizes an existing handoff, keyword list, or map into a handoff struct.
Builds a validated handoff, generating an ID when one is not supplied.
Builds a handoff or raises when validation fails.
@spec schema() :: Zoi.schema()
Returns the Zoi schema for a handoff request.