Skip to content

bodhi-realtime-agent / LLMTransport

Interface: LLMTransport

Defined in: types/transport.ts:255

Provider-agnostic interface for realtime LLM transports.

Each provider (Gemini Live, OpenAI Realtime) implements this interface, exposing static capabilities and handling provider-specific wire protocols internally.

Properties

audioFormat

readonly audioFormat: AudioFormatSpec

Defined in: types/transport.ts:267


capabilities

readonly capabilities: TransportCapabilities

Defined in: types/transport.ts:257

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


isConnected

readonly isConnected: boolean

Defined in: types/transport.ts:263


onAudioOutput()?

optional onAudioOutput: (base64Data) => void

Defined in: types/transport.ts:292

Parameters

base64Data

string

Returns

void


onClose()?

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

Defined in: types/transport.ts:301

Parameters

code?

number

reason?

string

Returns

void


onError()?

optional onError: (error) => void

Defined in: types/transport.ts:300

Parameters

error

LLMTransportError

Returns

void


onGoAway()?

optional onGoAway: (timeLeft) => void

Defined in: types/transport.ts:326

Parameters

timeLeft

string

Returns

void


onGroundingMetadata()?

optional onGroundingMetadata: (metadata) => void

Defined in: types/transport.ts:328

Parameters

metadata

Record<string, unknown>

Returns

void


onInputTranscription()?

optional onInputTranscription: (text) => void

Defined in: types/transport.ts:297

Parameters

text

string

Returns

void


onInterrupted()?

optional onInterrupted: () => void

Defined in: types/transport.ts:296

Returns

void


onModelTurnStart()?

optional onModelTurnStart: () => void

Defined in: types/transport.ts:306

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

Returns

void


onOutputTranscription()?

optional onOutputTranscription: (text) => void

Defined in: types/transport.ts:298

Parameters

text

string

Returns

void


onRealtimeLLMUsage()?

optional onRealtimeLLMUsage: (usage) => void

Defined in: types/transport.ts:331

Optional: fires when the provider reports token or duration usage for billing/observability.

Parameters

usage

RealtimeLLMUsageEvent

Returns

void


onResumptionUpdate()?

optional onResumptionUpdate: (handle, resumable) => void

Defined in: types/transport.ts:327

Parameters

handle

string

resumable

boolean

Returns

void


onSessionReady()?

optional onSessionReady: (sessionId) => void

Defined in: types/transport.ts:299

Parameters

sessionId

string

Returns

void


onSpeechStarted()?

optional onSpeechStarted: () => void

Defined in: types/transport.ts:323

Fires when the transport detects user speech via VAD. Used for TTS-level barge-in when the LLM is idle but TTS is still playing. OpenAI: wired to input_audio_buffer.speech_started. Gemini: may require custom VAD signal — needs empirical testing.

Returns

void


onTextDone()?

optional onTextDone: () => void

Defined in: types/transport.ts:317

Fires when the model's text response is complete for this turn. Signals that all text for the current response has been delivered. Ordering contract: fires after all onTextOutput, before onTurnComplete.

Returns

void


onTextOutput()?

optional onTextOutput: (text) => void

Defined in: types/transport.ts:312

Fires when the model produces text output (text-mode responses). Only active when responseModality is 'text' (i.e., external TTS in use).

Parameters

text

string

Incremental text chunk (may be partial word/sentence)

Returns

void


onToolCall()?

optional onToolCall: (calls) => void

Defined in: types/transport.ts:293

Parameters

calls

TransportToolCall[]

Returns

void


onToolCallCancel()?

optional onToolCallCancel: (ids) => void

Defined in: types/transport.ts:294

Parameters

ids

string[]

Returns

void


onTurnComplete()?

optional onTurnComplete: () => void

Defined in: types/transport.ts:295

Returns

void

Methods

clearAudio()

clearAudio(): void

Defined in: types/transport.ts:271

Returns

void


commitAudio()

commitAudio(): void

Defined in: types/transport.ts:270

Returns

void


connect()

connect(config?): Promise<void>

Defined in: types/transport.ts:260

Parameters

config?

LLMTransportConfig

Returns

Promise<void>


disconnect()

disconnect(): Promise<void>

Defined in: types/transport.ts:261

Returns

Promise<void>


reconnect()

reconnect(state?): Promise<void>

Defined in: types/transport.ts:262

Parameters

state?

ReconnectState

Returns

Promise<void>


sendAudio()

sendAudio(base64Data): void

Defined in: types/transport.ts:266

Parameters

base64Data

string

Returns

void


sendContent()

sendContent(turns, turnComplete?): void

Defined in: types/transport.ts:280

Parameters

turns

ContentTurn[]

turnComplete?

boolean

Returns

void


sendFile()

sendFile(base64Data, mimeType): void

Defined in: types/transport.ts:283

Parameters

base64Data

string

mimeType

string

Returns

void


sendToolResult()

sendToolResult(result): void

Defined in: types/transport.ts:286

Parameters

result

TransportToolResult

Returns

void


transferSession()

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

Defined in: types/transport.ts:277

Parameters

config

SessionUpdate

state?

ReconnectState

Returns

Promise<void>


triggerGeneration()

triggerGeneration(instructions?): void

Defined in: types/transport.ts:289

Parameters

instructions?

string

Returns

void


updateSession()

updateSession(config): void

Defined in: types/transport.ts:274

Parameters

config

SessionUpdate

Returns

void

Built with VitePress