Lifecycle and low-volume facts for one session. Render content has its own bounded [crate::RenderUpdate] stream.
API reference sections
Schema
SessionEvent
Type object or object or object or object or object or object or object or object or object or object or object or object or object or object
Shape
One of 14 shapes:
kind: "commands_updated"
Protocol v23. The live session's current command listing, including an authoritative empty listing.
Field Type Description commandsrequired array of AgentCommand kindrequired "commands_updated" kind: "output"
Field Type Description byte_countrequired integer (uint64, >= 0) kindrequired "output" kind: "bell"
Field Type Description kindrequired "bell" kind: "started"
Field Type Description kindrequired "started" kind: "exited"
Field Type Description code integer (int32) or null kindrequired "exited" kind: "failed"
Field Type Description errorrequired SessionFailure A content-free developer diagnostic. UI maps
codeto localized copy.kindrequired "failed" kind: "working_directory_changed"
Field Type Description working_directoryrequired string kindrequired "working_directory_changed" kind: "title_changed"
Field Type Description titlerequired string kindrequired "title_changed" kind: "attention_changed"
Field Type Description attentionrequired AttentionState kindrequired "attention_changed" kind: "attachment_created"
Field Type Description attachment_idrequired AttachmentId kindrequired "attachment_created" kind: "attachment_removed"
Field Type Description attachment_idrequired AttachmentId kindrequired "attachment_removed" kind: "attachment_rejected"
Field Type Description attachment_idrequired AttachmentId coderequired ErrorCode Stable error token; unknown values remain errors.
kindrequired "attachment_rejected" kind: "attachment_delivered"
Field Type Description attachment_idrequired AttachmentId turn_idrequired AgentTurnId kindrequired "attachment_delivered" kind: "handover_changed"
Protocol v14. The controller handover moved: someone asked, the holder released, the lease was taken, or it was given back. A new tag, so a host never sends it to a peer that negotiated less than v14.
Field Type Description handoverrequired HandoverState Where a controller handover stands.
Release, not preemption: nothing takes a lease from its holder. The holder is asked, releases at a boundary of its choosing, the requester attaches, and gives it back the same way. Each step is a state a reader can see and an event a subscriber receives.
kindrequired "handover_changed"
{
"commands": [
{
"name": "string",
"description": "string",
"display_name": "string",
"kind": "command",
"input_hint": "string"
}
],
"kind": "commands_updated"
}The contract has no example values, so example bodies are generated from each schema: every field is shown with a placeholder of its type.
Generated from contract version 1. Last updated .
