pinecallDocs
The wire / Events

Events

How an event is shaped, and the four families it can belong to.

Every event the gateway writes, one line each, with the page that holds its data shape. The envelope around an event is in README.md.

type scope ephemeral page what it says
agent.configured agent no Control events The gateway applied an agent.configure.
agent.detached agent no Control events A socket that held the agent is gone — the process exited, the connection dropped — and the agent's endpoints are whoever is left holding it.
agent.draining agent no Control events The answer to agent.drain, written to the agent's own log once the socket's live calls have moved: it takes no new call, and each call it held went to another socket holding the agent or waits, parked, for the next one that registers.
agent.registered agent no Control events The gateway accepted an agent.register: this socket now speaks for the agent and answers its routes.
agent.state call no Call events The agent's state changed, in the session's own words.
agent.transcript call yes Call events One delta of the reply the agent is giving, never the reply so far: in a voice call one word, as the voice plays it, with the seconds it was aligned to; in a written call one model token.
attention.answered call no Control events An ask for a person settled: a supervisor took the line, or the wait ran out and the agent has the caller back.
attention.requested call no Control events The agent asked for a person: the caller is on hold and waits for a supervisor to take the line.
call.attached call no Call events A live call is now served by this socket, mid-conversation: the socket that held it drained, or died, or the gateway restarted.
call.claimed call no Call events This call is the one a page was waiting for: the caller keyed the code the page shows, or the agent claimed it from what they said.
call.dialing call no Call events The platform is placing an outbound call and the far end has not answered yet.
call.ended call no Call events The call is over.
call.line call no Call events The line's hold and mute flags after one of them changed.
call.ringing call no Call events An inbound call is offered to this agent and has not been answered yet.
call.score call no Call events The last entry of a call: what the judges said about it at hang-up, one row per judge.
call.started call no Call events Media is up: the caller and the agent can hear each other, or the text session is open.
call.summary call no Call events What the call was about, how it went, what it consumed and what that cost.
call.transferred call no Call events A transfer asked for by the agent or a supervisor finished, one way or the other.
callback.requested agent no Control events Somebody asked to be called back: a phone caller the overflow agent answered, a web visitor who left a number at the widget, or a caller who asked the agent for one (call.callback).
code.claimed agent no Control events A code is off the table: a call claimed it, or it expired with none.
code.issued agent no Control events A page asked for a code to show beside the agent's phone number (POST /v1/codes): the four digits a caller keys to bind their call to that page.
confirm.declined call no App events The caller did not say yes, or the request lapsed.
confirm.granted call no App events The caller said yes.
confirm.request call no App events A tool with confirm set is about to run and the platform is asking the caller.
credits.exhausted agent no Control events The gateway refused a call, a written turn or a register because one of the org's quotas ran out.
custom call no App events A line the app wrote into the log with call.log.
evals.spent agent no Control events The harness asked a model outside a call's score: a judge tried, personas, a diagnosis.
monitor.fired agent no Control events A number the org watches crossed its line over its window: said once a day per monitor.
spend.unusual agent no Control events The org's calls cost more today than its own days usually do: said once a day.
dev.request agent yes Control events The gateway asks the app process holding the agent to do something only that process can — read a file of the agent's directory, mount its class, run its goldens — on a console's behalf.
docs.sources call no App events What retrieval put in front of the model for this turn.
dtmf.received call no Call events A touch tone the caller keyed.
error agent no Control events Something went wrong.
event.received call no Room events A fact arrived from outside the conversation: the tenant's backend sent call.event, or a participant's browser sent pinecall.event.
fleet.full agent no Control events The gateway refused to open a call because every worker of the fleet was full.
log.caught_up call yes Control events The replay is done: everything up to seq has been sent and what follows is live.
log.gap call yes Control events This reader missed a stretch: it reconnected too late for the store, or fell behind and the fanout dropped ephemeral entries.
memory.ops call no App events What memory did for this turn or at hangup: a recall before the reply, a remember after the call, a forget on request.
message.taken agent no Control events A message that was waiting (message.waiting) was answered, on this call — or will never be: call is null when it outlived WhatsApp's customer-service window and nothing may be said to it any more.
message.waiting agent no Control events A message reached one of the org's numbers while no app held the agent it routes to — the process between two deploys, a gateway just restarted.
metrics.avatar call no Call events One avatar timing report: livekit's AvatarMetrics, every field.
metrics.eot call no Call events One end-of-turn prediction: livekit's EOTInferenceMetrics, every field.
metrics.eou call no Call events How long closing the caller's turn took: livekit's EOUMetrics, every field.
metrics.interruption call no Call events The interruption detector's latest inference and running counts: livekit's InterruptionMetrics, every field.
metrics.llm call no Call events One LLM request as the session measured it: livekit's LLMMetrics, every field.
metrics.realtime call no Call events One speech-to-speech response: livekit's RealtimeModelMetrics, every field, its token details nested as the library nests them.
metrics.stt call no Call events One STT request or stream segment as the session measured it: livekit's STTMetrics, every field.
metrics.tts call no Call events One TTS request as the session measured it: livekit's TTSMetrics, every field.
metrics.vad call yes Call events The VAD's health for the last second or so: livekit's VADMetrics, every field.
participant.joined call no Room events Somebody joined the room: the caller over SIP or the widget, the agent, a supervisor, a listener, or a second SIP leg.
participant.left call no Room events Somebody left the room.
participant.speaking call yes Room events The room's own voice activity for one participant flipped.
pong agent yes Control events The answer to ping.
prompt.changed call no App events A block of the prompt was rewritten.
room.opened call no Room events The LiveKit room exists and the call lives in it.
room.sent call yes Room events The agent pushed a payload to a browser in the room, on the tenant's room.send.
state.changed call no App events The app's declared state changed.
supervisor.ended call no Control events A supervisor hung up the call.
supervisor.released call no Control events The supervisor gave the line back; the agent resumes with the history intact.
supervisor.said call no Control events A supervisor made the agent say this to the caller.
supervisor.took_over call no Control events A supervisor took the line; the agent is quiet until supervisor.released.
supervisor.transferred call no Control events A supervisor asked for a transfer.
supervisor.whispered call no Control events A supervisor told the agent something the caller never heard.
tool.call call no App events The model called a tool.
tool.result call no App events The app answered a tool.call.
tools.changed call no App events The tools the model can see changed.
track.published call no Room events A participant put a track on the room: their microphone, their camera, a screen.
track.unpublished call no Room events A participant's track left the room: they stopped sharing, or a participant.mute took their audio away.
turn.agent call no Call events The agent's reply is over and this is what was said.
turn.user call no Call events The caller's turn is over and this is what they said.
user.state call no Call events The caller's state changed, in the session's own words.
user.transcript call yes Call events Words from the caller as the recognizer hears them.
vendor.switched call no Call events A stage's vendor failed or came back, and the vendor that serves the stage now.