Skip to content

bodhi-realtime-agent / RealtimeLLMUsageEvent

Interface: RealtimeLLMUsageEvent ​

Defined in: src/types/transport.ts:416

Normalized usage from Gemini Live or OpenAI Realtime transports. Carries provider-reported billable units only (no USD estimation).

Properties ​

durationSeconds? ​

optional durationSeconds?: number

Defined in: src/types/transport.ts:425

Present when unit === 'duration_seconds' (e.g. some transcription billing).


inputTokens? ​

optional inputTokens?: number

Defined in: src/types/transport.ts:421


kind ​

kind: RealtimeUsageKind

Defined in: src/types/transport.ts:418


modalityBreakdown? ​

optional modalityBreakdown?: RealtimeUsageModalityBreakdown

Defined in: src/types/transport.ts:426


outputTokens? ​

optional outputTokens?: number

Defined in: src/types/transport.ts:422


phase ​

phase: RealtimeUsagePhase

Defined in: src/types/transport.ts:419


provider ​

provider: RealtimeUsageProvider

Defined in: src/types/transport.ts:417


providerItemId? ​

optional providerItemId?: string

Defined in: src/types/transport.ts:432

Provider-supplied opaque id for non-response items. Currently used for OpenAI input-audio transcription item_id so transcription usage events can be aggregated independently (they have no turnId).


providerRaw? ​

optional providerRaw?: unknown

Defined in: src/types/transport.ts:434

Opaque provider payload for exact downstream reconciliation.


providerResponseId? ​

optional providerResponseId?: string

Defined in: src/types/transport.ts:428

OpenAI response id when kind === 'response'.


serverTurnId? ​

optional serverTurnId?: number

Defined in: src/types/transport.ts:438

Monotonic id of the server turn this usage belongs to. Set by transports that model the server turn explicitly (Gemini Live external-TTS path) so consumers can attribute usage that arrives after the framework turn ended.


serverTurnWindingDown? ​

optional serverTurnWindingDown?: boolean

Defined in: src/types/transport.ts:444

True when the transport emitted this usage event while the server turn was winding down — the framework turn had ended early (or been interrupted) but the provider's server turn was not yet closed. A transport-phase marker: consumers should attribute by serverTurnId, not assume the framework turn already finalized.


totalTokens? ​

optional totalTokens?: number

Defined in: src/types/transport.ts:423


unit ​

unit: RealtimeUsageUnit

Defined in: src/types/transport.ts:420

Built with VitePress