build

Runner events

Handle operational progress, provider reasoning, agent-authored progress, tasks, and terminal events from a streamed run.

Protocolintermediate0.7.0 Stable
Verified 2026-07-15View sourceReport a docs issue

Request streams report activity before delivering one terminal result.

Public stream events

  • run.started marks the accepted run.
  • run.progress, run.log, and run.console describe operational activity and should not be presented as agent-authored progress.
  • run.model.reasoning.started, .delta, .completed, .failed, and .unavailable carry labeled provider-returned summaries or visible thinking by attempt. They never carry encrypted continuation state or unavailable raw reasoning.
  • run.agent_progress carries a concise update only after the agent decision commits. It is safe to persist with ordinary conversation history.
  • run.tool.started, run.tool.completed, and run.tool.failed describe tool activity.
  • task.updated reports delegated task lifecycle.
  • run.completed, run.failed, and run.cancelled are terminal events.
  • runner.error reports a runner-level protocol or service problem.

Treat events as protocol data: validate the envelope before updating application state and correlate every event to its command, session, and run.

Finish from the terminal event

Operational progress, provider reasoning, and agent progress may be useful to display, but they do not own the final answer. Provider deltas are live-only by default and should be discarded after the active run. Read assistantText, structured output, and any operator state from the terminal result.