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
readonlyaudioFormat:AudioFormatSpec
Defined in: types/transport.ts:267
capabilities
readonlycapabilities:TransportCapabilities
Defined in: types/transport.ts:257
Static capabilities — read before connecting, used for orchestrator branching.
isConnected
readonlyisConnected:boolean
Defined in: types/transport.ts:263
onAudioOutput()?
optionalonAudioOutput: (base64Data) =>void
Defined in: types/transport.ts:292
Parameters
base64Data
string
Returns
void
onClose()?
optionalonClose: (code?,reason?) =>void
Defined in: types/transport.ts:301
Parameters
code?
number
reason?
string
Returns
void
onError()?
optionalonError: (error) =>void
Defined in: types/transport.ts:300
Parameters
error
Returns
void
onGoAway()?
optionalonGoAway: (timeLeft) =>void
Defined in: types/transport.ts:326
Parameters
timeLeft
string
Returns
void
onGroundingMetadata()?
optionalonGroundingMetadata: (metadata) =>void
Defined in: types/transport.ts:328
Parameters
metadata
Record<string, unknown>
Returns
void
onInputTranscription()?
optionalonInputTranscription: (text) =>void
Defined in: types/transport.ts:297
Parameters
text
string
Returns
void
onInterrupted()?
optionalonInterrupted: () =>void
Defined in: types/transport.ts:296
Returns
void
onModelTurnStart()?
optionalonModelTurnStart: () =>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()?
optionalonOutputTranscription: (text) =>void
Defined in: types/transport.ts:298
Parameters
text
string
Returns
void
onRealtimeLLMUsage()?
optionalonRealtimeLLMUsage: (usage) =>void
Defined in: types/transport.ts:331
Optional: fires when the provider reports token or duration usage for billing/observability.
Parameters
usage
Returns
void
onResumptionUpdate()?
optionalonResumptionUpdate: (handle,resumable) =>void
Defined in: types/transport.ts:327
Parameters
handle
string
resumable
boolean
Returns
void
onSessionReady()?
optionalonSessionReady: (sessionId) =>void
Defined in: types/transport.ts:299
Parameters
sessionId
string
Returns
void
onSpeechStarted()?
optionalonSpeechStarted: () =>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()?
optionalonTextDone: () =>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()?
optionalonTextOutput: (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()?
optionalonToolCall: (calls) =>void
Defined in: types/transport.ts:293
Parameters
calls
Returns
void
onToolCallCancel()?
optionalonToolCallCancel: (ids) =>void
Defined in: types/transport.ts:294
Parameters
ids
string[]
Returns
void
onTurnComplete()?
optionalonTurnComplete: () =>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?
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?
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
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
Returns
void
transferSession()
transferSession(
config,state?):Promise<void>
Defined in: types/transport.ts:277
Parameters
config
state?
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
Returns
void