Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Events

EventPayload
connection{ state, detail? }
transcript.instantaneous{ text }
transcript.canonical{ turns }
floor{ owner, assistantAudible }
quick-reaction{ reaction, status }
assistant.energy{ current, predictions: [{ startMs, endMs, energy }] }, normalized from 0 to 1
phase{ phase, previousPhase?, source }
tool.call{ callId, name, input }
tool.resultTool call plus output or error
limit{ reason, durationSeconds? }
error{ code, message }
unknown{ message } for forward-compatible messages the installed SDK does not recognize
session.on() returns an unsubscribe function.
ts
const off = session.on("floor", ({ owner }) => setFloor(owner)); off();
assistant.energy is a customer-safe activation forecast. current is the assistant's predicted conversational energy now. Each prediction retains its time bucket while collapsing the private VAP classes into one value:
ts
session.on("assistant.energy", ({ current, predictions }) => { animateAgent(current); renderForecast(predictions); });
floor.assistantAudible remains authoritative for whether assistant audio is physically playing.
Events describe the customer-visible protocol boundary. Applications should not infer conversation state from provider messages, raw four-class VAP bins, state-machine transitions, or audio timing.