| Event | Payload |
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.result | Tool 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.12const 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:1234session.on("assistant.energy", ({ current, predictions }) => { animateAgent(current); renderForecast(predictions); });
floor.assistantAudible remains authoritative for whether assistant audio is physically playing.