Skip to content

RealtimeGreetingAdapter

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

Optional greeting-only capability. A provider opts in by also implementing this; base RealtimeProviderAdapter gets no greeting methods.

readonly optional generatedOpening?: AdapterGeneratedOpening

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

Optional natural-opening request; it does not satisfy the fixed-text greeting contract.

RealtimeProviderAdapter.generatedOpening


readonly observations: AdapterVoiceObservations

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

Continuous transcript and media evidence, separate from the legacy exhaustive event union. Every adapter defines the feed; each event kind within it is optional, and media an adapter never reports stays unknown. Providers without media timestamps can use TranscriptObservationFeed.

RealtimeProviderAdapter.observations


readonly optional recovery?: object

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

Optional quiet recovery update for application outcomes that settle after reconnect. Never replays tools.

readonly update: (snapshot) => void

VoiceRecoverySnapshot

void

RealtimeProviderAdapter.recovery


readonly optional turnControl?: AdapterTurnControl

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

Manual control for the current connection generation. It may appear, change, or disappear as the adapter establishes or leaves manual mode; speech-native adapters omit it.

Invariant: RealtimeSession never invokes this. It delegates the current value to binding/UI code only while retained turnMode is manual.

RealtimeProviderAdapter.turnControl

activateAudio(): void

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

Unlock audio synchronously within a user gesture (the click that calls RealtimeSession.connect()). Must never throw. Failures are not reported from this call — they surface later via speech not_started (or adapter events). Called at most once per real connection attempt.

void


connect(opts): Promise<void>

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

Opens the provider connection. The adapter mints its own ephemeral credential internally on connect — RealtimeSession never passes one in.

AdapterConnectOptions

Promise<void>

RealtimeProviderAdapter.connect


disconnect(): Promise<void>

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

Releases local participation and bounds provider finalization.

Promise<void>

RealtimeProviderAdapter.disconnect


getAudioStreams(): AdapterAudioStreams

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

Streams for UI metering. Never throws; absent streams are undefined.

AdapterAudioStreams

RealtimeProviderAdapter.getAudioStreams


injectGrounding(text): void

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

Pushes a terse grounding string into the model’s context. The adapter owns whatever latest-wins mechanics apply at the wire/session level (e.g. overwriting session instructions rather than queuing utterances); RealtimeSession additionally debounces calls into this method so the adapter is never asked to collapse a rapid burst on its own.

string

void

RealtimeProviderAdapter.injectGrounding


on(handler): Unsubscribe

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

Subscribes to lifecycle events.

(event) => void

Unsubscribe

RealtimeProviderAdapter.on


sendToolResult(callId, output): Promise<void>

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

Sends a tool call’s result back to the model.

ToolCallId

ToolResult

Promise<void>

RealtimeProviderAdapter.sendToolResult


speakAssistantText(args): Promise<GreetingSpeechResult>

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

Speak the exact configured text once. Call onPlaybackStart at the provider’s closest reliable playout-start boundary. Local players can use the exact source start; remote transports may only prove that their first frame entered the playout queue. Providers that never start must not call it. not_started proves no provider send or playback began — the only retriable outcome. accepted is terminal: delivery is ambiguous past invocation and is never retried.

MessageId

() => void

Called at most once at the provider’s documented playout-start boundary.

AbortSignal

string

Promise<GreetingSpeechResult>