Protocol basics
Every streaming endpoint returns:v field is the protocol version. The event field identifies the event type. The data object contains the payload for that event type.
Parse on the
event field and ignore unknown event types. New event types may be added to any stream, and forward-compatible clients should skip them silently.Cursor-based replay
Every streaming endpoint accepts acursor query parameter (default 0). Pass the seq number of the last event you received to resume a stream without re-reading events you have already processed.
cursor, then continues streaming live events. This means you can reconnect after a network drop without losing any events.
Common event types
These events appear across all streams:
An
error event with "retryable": true means the job can be restarted with the same inputs.
Research events
interpret → search → judge → analyze → synthesize → persist
The judge stage is non-blocking. If it fails, the pipeline continues to analyze regardless.
Build graph events
node_created event per node. Assemble the tree client-side using the parent_id field included in full events.
Forge events
Chat events
message_delta.text value to build the full assistant message.
Code examples
Tracing
Every response includes anX-Request-ID header. Include this value when reporting issues — it maps directly to server-side logs.