Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/typescript/ai-anthropic/src/adapters/text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1053,6 +1053,9 @@ export class AnthropicTextAdapter<
totalTokens:
(event.usage.input_tokens || 0) +
(event.usage.output_tokens || 0),
...(event.usage.cache_read_input_tokens != null && {
cachedTokens: event.usage.cache_read_input_tokens,
}),
},
}
break
Expand Down Expand Up @@ -1096,6 +1099,9 @@ export class AnthropicTextAdapter<
totalTokens:
(event.usage.input_tokens || 0) +
(event.usage.output_tokens || 0),
...(event.usage.cache_read_input_tokens != null && {
cachedTokens: event.usage.cache_read_input_tokens,
}),
},
}
}
Expand Down
3 changes: 3 additions & 0 deletions packages/typescript/ai-gemini/src/adapters/text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,9 @@ export class GeminiTextAdapter<
promptTokens: chunk.usageMetadata.promptTokenCount ?? 0,
completionTokens: chunk.usageMetadata.candidatesTokenCount ?? 0,
totalTokens: chunk.usageMetadata.totalTokenCount ?? 0,
...(chunk.usageMetadata.cachedContentTokenCount != null && {
cachedTokens: chunk.usageMetadata.cachedContentTokenCount,
}),
},
}),
}
Expand Down
6 changes: 6 additions & 0 deletions packages/typescript/ai-openrouter/src/adapters/text.ts
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,9 @@ export class OpenRouterTextAdapter<
promptTokens: lastUsage.promptTokens,
completionTokens: lastUsage.completionTokens,
totalTokens: lastUsage.totalTokens,
...(lastUsage.promptTokensDetails?.cachedTokens != null && {
cachedTokens: lastUsage.promptTokensDetails.cachedTokens,
}),
},
}),
}
Expand Down Expand Up @@ -1076,6 +1079,9 @@ export class OpenRouterTextAdapter<
promptTokens: lastUsage.promptTokens || 0,
completionTokens: lastUsage.completionTokens || 0,
totalTokens: lastUsage.totalTokens || 0,
...(lastUsage.promptTokensDetails?.cachedTokens != null && {
cachedTokens: lastUsage.promptTokensDetails.cachedTokens,
}),
},
}),
finishReason,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,8 @@ export interface UsageInfo {
promptTokens: number
completionTokens: number
totalTokens: number
/** Number of prompt tokens served from cache (provider-dependent) */
cachedTokens?: number
}

// ===========================
Expand All @@ -289,6 +291,8 @@ export interface FinishInfo {
promptTokens: number
completionTokens: number
totalTokens: number
/** Number of prompt tokens served from cache (provider-dependent) */
cachedTokens?: number
}
| undefined
}
Expand Down
4 changes: 4 additions & 0 deletions packages/typescript/ai/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -925,6 +925,8 @@ export interface RunFinishedEvent extends AGUIRunFinishedEvent {
promptTokens: number
completionTokens: number
totalTokens: number
/** Number of prompt tokens served from cache (provider-dependent) */
cachedTokens?: number
}
}

Expand Down Expand Up @@ -1375,6 +1377,7 @@ export interface TextCompletionChunk {
promptTokens: number
completionTokens: number
totalTokens: number
cachedTokens?: number
}
}

Expand Down Expand Up @@ -1403,6 +1406,7 @@ export interface SummarizationResult {
promptTokens: number
completionTokens: number
totalTokens: number
cachedTokens?: number
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,9 @@ export abstract class OpenAIBaseChatCompletionsTextAdapter<
promptTokens: lastUsage.prompt_tokens,
completionTokens: lastUsage.completion_tokens,
totalTokens: lastUsage.total_tokens,
...(lastUsage.prompt_tokens_details?.cached_tokens != null && {
cachedTokens: lastUsage.prompt_tokens_details.cached_tokens,
}),
},
}),
}
Expand Down Expand Up @@ -1057,6 +1060,9 @@ export abstract class OpenAIBaseChatCompletionsTextAdapter<
promptTokens: lastUsage.prompt_tokens || 0,
completionTokens: lastUsage.completion_tokens || 0,
totalTokens: lastUsage.total_tokens || 0,
...(lastUsage.prompt_tokens_details?.cached_tokens != null && {
cachedTokens: lastUsage.prompt_tokens_details.cached_tokens,
}),
},
}),
finishReason,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,9 @@ export abstract class OpenAIBaseResponsesTextAdapter<
promptTokens: usage.input_tokens,
completionTokens: usage.output_tokens,
totalTokens: usage.total_tokens,
...(usage.input_tokens_details?.cached_tokens != null && {
cachedTokens: usage.input_tokens_details.cached_tokens,
}),
},
}),
}
Expand Down Expand Up @@ -1505,6 +1508,11 @@ export abstract class OpenAIBaseResponsesTextAdapter<
promptTokens: chunk.response.usage?.input_tokens || 0,
completionTokens: chunk.response.usage?.output_tokens || 0,
totalTokens: chunk.response.usage?.total_tokens || 0,
...(chunk.response.usage?.input_tokens_details?.cached_tokens !=
null && {
cachedTokens:
chunk.response.usage.input_tokens_details.cached_tokens,
}),
},
finishReason,
}
Expand Down