bodhi-realtime-agent / GeminiProviderTransportConfig
Interface: GeminiProviderTransportConfig
Defined in: src/transport/gemini-live-transport.ts:282
Configuration for connecting to the Gemini Live API with a credential fetched for each connection.
Extends
Properties
apiKey?
optionalapiKey?:undefined
Defined in: src/transport/gemini-live-transport.ts:289
compressionConfig?
optionalcompressionConfig?: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.
Inherited from
GeminiTransportOptions.compressionConfig
connectTimeoutMs?
optionalconnectTimeoutMs?: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.
Inherited from
GeminiTransportOptions.connectTimeoutMs
credentialProvider
credentialProvider:
GeminiCredentialProvider
Defined in: src/transport/gemini-live-transport.ts:288
Per-connection credentials. The transport builds no client of its own and never uses a static key: each connect gets a client built from the provider's credential, with the Developer API selected explicitly (vertexai: false, enterprise: false), so the SDK's routing environment variables do not apply. connect(config).auth is ignored.
functionBehavior?
optionalfunctionBehavior?: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).
Inherited from
GeminiTransportOptions.functionBehavior
googleSearch?
optionalgoogleSearch?:boolean
Defined in: src/transport/gemini-live-transport.ts:344
Enable Gemini's built-in Google Search grounding.
Inherited from
GeminiTransportOptions.googleSearch
inputAudioTranscription?
optionalinputAudioTranscription?:boolean
Defined in: src/transport/gemini-live-transport.ts:346
Enable server-side transcription of user audio input (default: true).
Inherited from
GeminiTransportOptions.inputAudioTranscription
mediaResolution?
optionalmediaResolution?: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.
Inherited from
GeminiTransportOptions.mediaResolution
minCredentialLifetimeMs?
optionalminCredentialLifetimeMs?:number
Defined in: src/transport/gemini-live-transport.ts:295
The least use, in ms, a credential must leave after the connect deadline: one that expires less than connectTimeoutMs plus this after the provider returns is refused, failing the connect. A floor on how often credential expiry can reconnect the session. Default 60000; 0 keeps only the connect-deadline check.
model?
optionalmodel?:string
Defined in: src/transport/gemini-live-transport.ts:304
Gemini model name (default: DEFAULT_GEMINI_LIVE_MODEL, "gemini-3.8-live").
Inherited from
realtimeInputConfig?
optionalrealtimeInputConfig?: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.
Inherited from
GeminiTransportOptions.realtimeInputConfig
reconnectTimeoutMs?
optionalreconnectTimeoutMs?: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.
Inherited from
GeminiTransportOptions.reconnectTimeoutMs
resumptionHandle?
optionalresumptionHandle?: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.
Inherited from
GeminiTransportOptions.resumptionHandle
sessionResumption?
optionalsessionResumption?: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 omithandle(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.
Inherited from
GeminiTransportOptions.sessionResumption
speechConfig?
optionalspeechConfig?:object
Defined in: src/transport/gemini-live-transport.ts:328
Voice configuration for Gemini's speech synthesis.
voiceName?
optionalvoiceName?:string
Inherited from
GeminiTransportOptions.speechConfig
systemInstruction?
optionalsystemInstruction?:string
Defined in: src/transport/gemini-live-transport.ts:306
System instruction sent to the model at connection time.
Inherited from
GeminiTransportOptions.systemInstruction
tools?
optionaltools?:ToolDefinition[]
Defined in: src/transport/gemini-live-transport.ts:308
Tool definitions to register with the model (converted to Gemini function declarations).
Inherited from
vadConfig?
optionalvadConfig?: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.