Skip to content

bodhi-realtime-agent / OpenAIRealtimeTransport

Class: OpenAIRealtimeTransport

Defined in: transport/openai-realtime-transport.ts:64

LLMTransport implementation for the OpenAI Realtime API.

Uses the openai SDK's WebSocket transport (OpenAIRealtimeWS) for bidirectional audio streaming with function calling support.

Key differences from Gemini:

  • In-place session updates (no reconnect for agent transfers)
  • Streamed function call arguments (accumulated before dispatch)
  • Client-managed interruption (truncate + cancel)
  • 24kHz audio (vs Gemini's 16kHz)
  • Explicit response.create required after tool results

Implements

Constructors

Constructor

new OpenAIRealtimeTransport(config): OpenAIRealtimeTransport

Defined in: transport/openai-realtime-transport.ts:124

Parameters

config

OpenAIRealtimeConfig

Returns

OpenAIRealtimeTransport

Properties

audioFormat

readonly audioFormat: AudioFormatSpec

Defined in: transport/openai-realtime-transport.ts:75

Implementation of

LLMTransport.audioFormat


capabilities

readonly capabilities: TransportCapabilities

Defined in: transport/openai-realtime-transport.ts:65

Static capabilities — read before connecting, used for orchestrator branching.

Implementation of

LLMTransport.capabilities


onAudioOutput()?

optional onAudioOutput: (base64Data) => void

Defined in: transport/openai-realtime-transport.ts:84

Parameters

base64Data

string

Returns

void

Implementation of

LLMTransport.onAudioOutput


onClose()?

optional onClose: (code?, reason?) => void

Defined in: transport/openai-realtime-transport.ts:93

Parameters

code?

number

reason?

string

Returns

void

Implementation of

LLMTransport.onClose


onError()?

optional onError: (error) => void

Defined in: transport/openai-realtime-transport.ts:92

Parameters

error

LLMTransportError

Returns

void

Implementation of

LLMTransport.onError


onGoAway()?

optional onGoAway: (timeLeft) => void

Defined in: transport/openai-realtime-transport.ts:95

Parameters

timeLeft

string

Returns

void

Implementation of

LLMTransport.onGoAway


onGroundingMetadata()?

optional onGroundingMetadata: (metadata) => void

Defined in: transport/openai-realtime-transport.ts:97

Parameters

metadata

Record<string, unknown>

Returns

void

Implementation of

LLMTransport.onGroundingMetadata


onInputTranscription()?

optional onInputTranscription: (text) => void

Defined in: transport/openai-realtime-transport.ts:89

Parameters

text

string

Returns

void

Implementation of

LLMTransport.onInputTranscription


onInterrupted()?

optional onInterrupted: () => void

Defined in: transport/openai-realtime-transport.ts:88

Returns

void

Implementation of

LLMTransport.onInterrupted


onModelTurnStart()?

optional onModelTurnStart: () => void

Defined in: transport/openai-realtime-transport.ts:94

Fires when the model begins any response (audio, tool call, etc.). Used by VoiceSession to trigger STT provider commit.

Returns

void

Implementation of

LLMTransport.onModelTurnStart


onOutputTranscription()?

optional onOutputTranscription: (text) => void

Defined in: transport/openai-realtime-transport.ts:90

Parameters

text

string

Returns

void

Implementation of

LLMTransport.onOutputTranscription


onResumptionUpdate()?

optional onResumptionUpdate: (handle, resumable) => void

Defined in: transport/openai-realtime-transport.ts:96

Parameters

handle

string

resumable

boolean

Returns

void

Implementation of

LLMTransport.onResumptionUpdate


onSessionReady()?

optional onSessionReady: (sessionId) => void

Defined in: transport/openai-realtime-transport.ts:91

Parameters

sessionId

string

Returns

void

Implementation of

LLMTransport.onSessionReady


onToolCall()?

optional onToolCall: (calls) => void

Defined in: transport/openai-realtime-transport.ts:85

Parameters

calls

TransportToolCall[]

Returns

void

Implementation of

LLMTransport.onToolCall


onToolCallCancel()?

optional onToolCallCancel: (ids) => void

Defined in: transport/openai-realtime-transport.ts:86

Parameters

ids

string[]

Returns

void

Implementation of

LLMTransport.onToolCallCancel


onTurnComplete()?

optional onTurnComplete: () => void

Defined in: transport/openai-realtime-transport.ts:87

Returns

void

Implementation of

LLMTransport.onTurnComplete

Accessors

isConnected

Get Signature

get isConnected(): boolean

Defined in: transport/openai-realtime-transport.ts:130

Returns

boolean

Implementation of

LLMTransport.isConnected

Methods

clearAudio()

clearAudio(): void

Defined in: transport/openai-realtime-transport.ts:247

Returns

void

Implementation of

LLMTransport.clearAudio


commitAudio()

commitAudio(): void

Defined in: transport/openai-realtime-transport.ts:242

Returns

void

Implementation of

LLMTransport.commitAudio


connect()

connect(transportConfig?): Promise<void>

Defined in: transport/openai-realtime-transport.ts:136

Parameters

transportConfig?

LLMTransportConfig

Returns

Promise<void>

Implementation of

LLMTransport.connect


disconnect()

disconnect(): Promise<void>

Defined in: transport/openai-realtime-transport.ts:185

Returns

Promise<void>

Implementation of

LLMTransport.disconnect


reconnect()

reconnect(state?): Promise<void>

Defined in: transport/openai-realtime-transport.ts:203

Parameters

state?

ReconnectState

Returns

Promise<void>

Implementation of

LLMTransport.reconnect


sendAudio()

sendAudio(base64Data): void

Defined in: transport/openai-realtime-transport.ts:237

Parameters

base64Data

string

Returns

void

Implementation of

LLMTransport.sendAudio


sendContent()

sendContent(turns, turnComplete): void

Defined in: transport/openai-realtime-transport.ts:308

Parameters

turns

ContentTurn[]

turnComplete

boolean = true

Returns

void

Implementation of

LLMTransport.sendContent


sendFile()

sendFile(base64Data, mimeType): void

Defined in: transport/openai-realtime-transport.ts:340

Parameters

base64Data

string

mimeType

string

Returns

void

Implementation of

LLMTransport.sendFile


sendToolResult()

sendToolResult(result): void

Defined in: transport/openai-realtime-transport.ts:362

Parameters

result

TransportToolResult

Returns

void

Implementation of

LLMTransport.sendToolResult


transferSession()

transferSession(config, _state?): Promise<void>

Defined in: transport/openai-realtime-transport.ts:278

Parameters

config

SessionUpdate

_state?

ReconnectState

Returns

Promise<void>

Implementation of

LLMTransport.transferSession


triggerGeneration()

triggerGeneration(instructions?): void

Defined in: transport/openai-realtime-transport.ts:398

Parameters

instructions?

string

Returns

void

Implementation of

LLMTransport.triggerGeneration


updateSession()

updateSession(config): void

Defined in: transport/openai-realtime-transport.ts:254

Parameters

config

SessionUpdate

Returns

void

Implementation of

LLMTransport.updateSession

Built with VitePress