22//
33// SPDX-License-Identifier: Apache-2.0
44
5+ export type MetricsMetadata = {
6+ /** The provider name (e.g., 'openai', 'anthropic'). */
7+ modelProvider ?: string ;
8+ /** The model name (e.g., 'gpt-4o', 'claude-3-5-sonnet'). */
9+ modelName ?: string ;
10+ } ;
11+
512export type AgentMetrics =
613 | STTMetrics
714 | LLMMetrics
@@ -26,6 +33,8 @@ export type LLMMetrics = {
2633 totalTokens : number ;
2734 tokensPerSecond : number ;
2835 speechId ?: string ;
36+ /** Metadata for model provider and name tracking. */
37+ metadata ?: MetricsMetadata ;
2938} ;
3039
3140export type STTMetrics = {
@@ -41,10 +50,16 @@ export type STTMetrics = {
4150 * The duration of the pushed audio in milliseconds.
4251 */
4352 audioDurationMs : number ;
53+ /** Input audio tokens (for token-based billing). */
54+ inputTokens ?: number ;
55+ /** Output text tokens (for token-based billing). */
56+ outputTokens ?: number ;
4457 /**
4558 * Whether the STT is streaming (e.g using websocket).
4659 */
4760 streamed : boolean ;
61+ /** Metadata for model provider and name tracking. */
62+ metadata ?: MetricsMetadata ;
4863} ;
4964
5065export type TTSMetrics = {
@@ -59,10 +74,17 @@ export type TTSMetrics = {
5974 /** Generated audio duration in milliseconds. */
6075 audioDurationMs : number ;
6176 cancelled : boolean ;
77+ /** Number of characters synthesized (for character-based billing). */
6278 charactersCount : number ;
79+ /** Input text tokens (for token-based billing, e.g., OpenAI TTS). */
80+ inputTokens ?: number ;
81+ /** Output audio tokens (for token-based billing, e.g., OpenAI TTS). */
82+ outputTokens ?: number ;
6383 streamed : boolean ;
6484 segmentId ?: string ;
6585 speechId ?: string ;
86+ /** Metadata for model provider and name tracking. */
87+ metadata ?: MetricsMetadata ;
6688} ;
6789
6890export type VADMetrics = {
@@ -133,6 +155,10 @@ export type RealtimeModelMetrics = {
133155 * The duration of the response from created to done in milliseconds.
134156 */
135157 durationMs : number ;
158+ /**
159+ * The duration of the session connection in milliseconds (for session-based billing like xAI).
160+ */
161+ sessionDurationMs ?: number ;
136162 /**
137163 * Time to first audio token in milliseconds. -1 if no audio token was sent.
138164 */
@@ -165,4 +191,6 @@ export type RealtimeModelMetrics = {
165191 * Details about the output tokens used in the Response.
166192 */
167193 outputTokenDetails : RealtimeModelMetricsOutputTokenDetails ;
194+ /** Metadata for model provider and name tracking. */
195+ metadata ?: MetricsMetadata ;
168196} ;
0 commit comments