Skip to content

bodhi-realtime-agent / GeminiTransportOptions

Interface: GeminiTransportOptions ​

Defined in: src/transport/gemini-live-transport.ts:302

The Gemini transport's options apart from its credential.

Extended by ​

Properties ​

compressionConfig? ​

optional compressionConfig?: GeminiCompressionConfig

Defined in: src/transport/gemini-live-transport.ts:332

Context-window compression. Thresholds are sent as strings (the API types them as int64); an unset one is omitted so the server default applies, and {} enables compression with both defaults.


connectTimeoutMs? ​

optional connectTimeoutMs?: number

Defined in: src/transport/gemini-live-transport.ts:362

Timeout in ms for connect() to receive setupComplete (default: 30000). With a credentialProvider it is one deadline over the credential fetch, the dial and setupComplete; the fetch may use at most half of it. Under a VoiceSession, keep it at or below VoiceSession.RECONNECT_DEADLINE_MS: an automatic reconnect that outlasts that deadline ends without a retry, so a hung provider is retried only when its half of this deadline ends first.


functionBehavior? ​

optional functionBehavior?: FunctionBehavior

Defined in: src/transport/gemini-live-transport.ts:342

Default behavior written on every function declaration that does not set its own. Unset means 'BLOCKING' (DEFAULT_FUNCTION_BEHAVIOR) on gemini-3.8 Live models, whose own default is asynchronous; on every other model it sends no behavior, leaving the server default those models were measured with (defaultsToBlockingBehavior).


googleSearch? ​

optional googleSearch?: boolean

Defined in: src/transport/gemini-live-transport.ts:344

Enable Gemini's built-in Google Search grounding.


inputAudioTranscription? ​

optional inputAudioTranscription?: boolean

Defined in: src/transport/gemini-live-transport.ts:346

Enable server-side transcription of user audio input (default: true).


mediaResolution? ​

optional mediaResolution?: GeminiMediaResolution

Defined in: src/transport/gemini-live-transport.ts:336

Session-wide media token cost for image/video input. Applies to every realtime-input image this transport sends; realtime input has no per-send override. Omitted → server default.


model? ​

optional model?: string

Defined in: src/transport/gemini-live-transport.ts:304

Gemini model name (default: DEFAULT_GEMINI_LIVE_MODEL, "gemini-3.8-live").


realtimeInputConfig? ​

optional realtimeInputConfig?: false | GeminiRealtimeInputConfig

Defined in: src/transport/gemini-live-transport.ts:350

Gemini Live realtime input behavior, including server-side VAD tuning, sent as given. false sends no realtimeInputConfig at all, so the server's own defaults apply. Mutually exclusive with vadConfig.


reconnectTimeoutMs? ​

optional reconnectTimeoutMs?: number

Defined in: src/transport/gemini-live-transport.ts:366

Force-kill delay in ms for reconnect() (default: 45000): when it expires and no newer dial has started, the session field is cleared. It does not bound the incumbent's close or the redial.


resumptionHandle? ​

optional resumptionHandle?: string

Defined in: src/transport/gemini-live-transport.ts:326

Deprecated ​

Use sessionResumption: { handle } instead. Kept as a compatibility alias; emits a one-shot WARN log per process when used. If both are set, sessionResumption.handle wins.


sessionResumption? ​

optional sessionResumption?: false | { handle?: string; }

Defined in: src/transport/gemini-live-transport.ts:322

Server-side session resumption configuration.

  • false → opt out entirely (server will not issue resumption handles). Required for ZDR / privacy-sensitive callers who must not allow server-side conversation snapshots.
  • { handle?: string } → opt in. Pass a prior handle to resume that session, or omit handle (i.e. {}) for a fresh resumable session.
  • omitted → defaults to {} (resume-enabled fresh session, current behavior).

Resolution at connect time: false overrides everything else, including any handle in ReconnectState. Otherwise the transport's mutable effectiveResumptionHandle is used, seeded from this field's handle or the legacy resumptionHandle alias and updated by every resumable: true server sessionResumptionUpdate.


speechConfig? ​

optional speechConfig?: object

Defined in: src/transport/gemini-live-transport.ts:328

Voice configuration for Gemini's speech synthesis.

voiceName? ​

optional voiceName?: string


systemInstruction? ​

optional systemInstruction?: string

Defined in: src/transport/gemini-live-transport.ts:306

System instruction sent to the model at connection time.


tools? ​

optional tools?: ToolDefinition[]

Defined in: src/transport/gemini-live-transport.ts:308

Tool definitions to register with the model (converted to Gemini function declarations).


vadConfig? ​

optional vadConfig?: GeminiVadConfig

Defined in: src/transport/gemini-live-transport.ts:354

Shorthand for realtimeInputConfig: { automaticActivityDetection: vadConfig }, sent verbatim with nothing merged in. Supplying it together with realtimeInputConfig (including false) throws a ValidationError.

Built with VitePress