Skip to content

Runtime event projection contract

Agent UI clients should consume structured runtime facts and project them into surfaces. They should not parse ordinary prose to infer state.

Event classes

Event classTypical factsPrimary surface
turn.startedturn id, session id, timestampProcess, Task
runtime.statusstage, detail, elapsed, provider stateRuntime Status
text.deltamessage id, text delta, part idConversation
text.finalfinal text, content idConversation reconciliation
reasoning.deltasummary or reasoning contentProcess
tool.startedtool id, kind, input summaryTool UI, Timeline
tool.progressprogress, partial output refTool UI
tool.completedstatus, output ref, durationTool UI, Evidence
action.requiredrequest id, type, severity, schemaHuman-in-the-loop, Task
action.resolvedrequest id, response summaryHuman-in-the-loop, Evidence
queue.changedqueued ids, previews, orderTask Capsule, Composer
artifact.created / artifact.updatedartifact id, kind, status, versionArtifact Workspace
artifact.preview.readyartifact id, preview ref or preview payloadArtifact Workspace
artifact.version.created / artifact.diff.readyartifact id, version id or diff refArtifact Workspace, Timeline
artifact.export.started / artifact.export.completedartifact id, export id/ref, statusArtifact Workspace, Evidence
artifact.failed / artifact.deletedartifact id, error or unavailable stateArtifact Workspace
artifact.changedcollapsed artifact adapter eventArtifact Workspace
evidence.changedevidence id, status, refsEvidence
turn.completedoutcome, final refsConversation, Task
turn.failederror, retryability, diagnostic refRuntime Status, Task

Projection rules

  1. Text events update conversation parts only.
  2. Reasoning events update process parts only unless explicitly exported as answer text.
  3. Tool events update process and timeline projections; full output is loaded on demand.
  4. Action events update task attention state and human-in-the-loop surfaces.
  5. Artifact events update artifact summaries, artifact cards, workspace panels, version rails, diff actions, and export state.
  6. Evidence events update evidence surfaces and citation availability.
  7. Queue events update task capsules and composer state.
  8. Final events reconcile content; they do not blindly append duplicate text.

Identity requirements

Runtime facts SHOULD carry stable identifiers:

  • session id
  • thread or conversation id
  • turn id
  • message id
  • content part id
  • task id
  • queued turn id
  • action request id
  • tool call id
  • artifact id
  • evidence id

The UI may generate temporary optimistic ids, but it must reconcile them with runtime ids when available.

Unknown and missing facts

If an event lacks required fields, the UI SHOULD:

  • keep the raw event in diagnostics if safe
  • render an unknown or unavailable state
  • avoid guessing from text
  • avoid promoting incomplete facts to final evidence
  • preserve user control when possible

Acceptance scenarios

  1. Runtime status before first text renders outside conversation text.
  2. A tool event with artifact.id creates an artifact card linked to the tool step.
  3. A final event reconciles streamed answer content without duplication.
  4. An action request with severity appears in task capsules and approval UI.
  5. Missing artifact metadata renders as unknown rather than guessed from prose.
  6. An artifact export event updates export state without copying binary payload into message text.

Draft runtime-first standard for agent interaction surfaces.