Skip to content

UpdateUIToolResult

Defined in: packages/realtime/src/lib/realtime-session/provider-adapter.types.ts:146

Result of a settled update_ui tool call, as RealtimeSession hands it to RealtimeProviderAdapter.sendToolResult. Both speak-worthy fields are carried separately rather than pre-collapsed to one string, because each transport phrases the reply differently: a speech-native provider (OpenAI) posts the whole object and lets its own model choose the wording from both, while a cascaded TTS provider (LiveKit) has no model and speaks userMessage ?? summary verbatim.

Keeping the fields typed here is the point of the type: renaming one is a compile error in every adapter that reads it, never a silent empty utterance.

readonly ok: boolean

Defined in: packages/realtime/src/lib/realtime-session/provider-adapter.types.ts:151

Whether the intent applied. false carries a user-facing summary explaining why (bad request, render failure, still busy).


readonly optional summary?: string

Defined in: packages/realtime/src/lib/realtime-session/provider-adapter.types.ts:157

Structural description derived from the post-render snapshot. Always present for a settled call; the fallback an adapter speaks when the engine surfaced no userMessage.


readonly optional userMessage?: string

Defined in: packages/realtime/src/lib/realtime-session/provider-adapter.types.ts:163

The engine LLM’s own conversational reply, already phrased for speech. Preferred over summary when present; absent (or empty/whitespace) when the engine produced no reply.