Skip to content

OpenAILiveAdapter

Defined in: packages/realtime-openai-live/src/live-adapter.ts:152

Connects managed Live Responses to RealtimeSession’s existing UI tools. Completed function items are collected before the terminal batch is dispatched. Every result is submitted before one explicit continuation. Local submission does not prove provider acceptance or speech. Closing voice never cancels submitted application work; late results cannot enter a new connection. Deduplication lasts for the connection, with hard capacity bounds instead of eviction that could repeat effects. Generated opening is opt-in; reconnect is explicit.

  • RealtimeProviderAdapter

new OpenAILiveAdapter(options): OpenAILiveAdapter

Defined in: packages/realtime-openai-live/src/live-adapter.ts:183

Creates an inert adapter. Invalid bounds throw before any media acquisition.

OpenAILiveAdapterOptions

OpenAILiveAdapter

readonly generatedOpening: object

Defined in: packages/realtime-openai-live/src/live-adapter.ts:156

Native instruction append; acceptance is not speech completion. The complete instruction, including its fixed prefix, must fit 500 UTF-8 bytes. Rejection consumes the attempt.

readiness: object

Playback acceptance gates the introduction claim without delaying microphone or transport startup.

getSnapshot: () => boolean

Reports playback acceptance for the current transport generation, not audibility.

boolean

subscribe: (handler) => () => void

Observes output-readiness changes until the returned disposer is called.

() => void

() => void

request: (instructions) => Promise<void>

string

Promise<void>

RealtimeProviderAdapter.generatedOpening


readonly observations: AdapterVoiceObservations

Defined in: packages/realtime-openai-live/src/live-adapter.ts:154

Continuous media and captions from the transport, without fabricated final turns.

RealtimeProviderAdapter.observations


readonly recovery: object

Defined in: packages/realtime-openai-live/src/live-adapter.ts:170

Quiet updates for outcomes from earlier connections. Current calls use function results; retained functions are never replayed.

update: (snapshot) => void

VoiceRecoverySnapshot

void

RealtimeProviderAdapter.recovery

activateAudio(): Promise<void>

Defined in: packages/realtime-openai-live/src/live-adapter.ts:442

Retries blocked playback within a user action; resolution is not audibility evidence.

Promise<void>


connect(options): Promise<void>

Defined in: packages/realtime-openai-live/src/live-adapter.ts:230

Starts managed delegation. Conversation instructions and backend tool instructions use separate configuration fields.

AdapterConnectOptions

Promise<void>

RealtimeProviderAdapter.connect


disconnect(): Promise<void>

Defined in: packages/realtime-openai-live/src/live-adapter.ts:433

Stops voice immediately and bounds provider finalization without awaiting application work.

Promise<void>

RealtimeProviderAdapter.disconnect


getAudioStreams(): AdapterAudioStreams

Defined in: packages/realtime-openai-live/src/live-adapter.ts:438

Returns the transport’s current streams for metering.

AdapterAudioStreams

RealtimeProviderAdapter.getAudioStreams


getTransportSnapshot(): LiveTransportSnapshot

Defined in: packages/realtime-openai-live/src/live-adapter.ts:446

Returns detached transport evidence, including final usage and playback acceptance.

LiveTransportSnapshot


injectGrounding(text): void

Defined in: packages/realtime-openai-live/src/live-adapter.ts:486

Appends at most 400 UTF-8 bytes of observed structural context as quiet data. One pending acknowledgment and one latest update bound context state. Acknowledgment and timeout never imply spoken delivery; unchanged context is skipped.

string

void

RealtimeProviderAdapter.injectGrounding


on(handler): () => void

Defined in: packages/realtime-openai-live/src/live-adapter.ts:450

Subscribes to tool calls and lifecycle events. Observer exceptions cannot interrupt another observer.

(event) => void

() => void

RealtimeProviderAdapter.on


sendToolResult(callId, output): Promise<void>

Defined in: packages/realtime-openai-live/src/live-adapter.ts:466

Records a settled application result. Resolution means local handling only. Duplicate results keep the first value. Results after close are discarded from provider delivery while the owning RealtimeSession retains its outcome. The complete result must support JSON serialization and fit within 262,144 UTF-16 code units after serialization. Invalid or oversized results terminate voice and emit DATA_CHANNEL_ERROR while this promise resolves. Observe error events rather than relying on promise rejection. Submitted application work is not undone.

ToolCallId

ToolResult

Promise<void>

RealtimeProviderAdapter.sendToolResult