|
|
@@ -356,8 +356,11 @@ export const getUsage = (input: { model: Provider.Model; usage: LanguageModelUsa
|
|
|
return value
|
|
|
}
|
|
|
const inputTokens = safe(input.usage.inputTokens ?? 0)
|
|
|
- const outputTokens = safe(input.usage.outputTokens ?? 0)
|
|
|
- const reasoningTokens = safe(input.usage.outputTokenDetails?.reasoningTokens ?? input.usage.reasoningTokens ?? 0)
|
|
|
+ const outputTokens = Math.max(0, safe(input.usage.outputTokens ?? 0))
|
|
|
+ const reasoningTokens = Math.min(
|
|
|
+ Math.max(0, safe(input.usage.outputTokenDetails?.reasoningTokens ?? input.usage.reasoningTokens ?? 0)),
|
|
|
+ outputTokens,
|
|
|
+ )
|
|
|
|
|
|
const cacheReadInputTokens = safe(
|
|
|
input.usage.inputTokenDetails?.cacheReadTokens ?? input.usage.cachedInputTokens ?? 0,
|
|
|
@@ -387,7 +390,7 @@ export const getUsage = (input: { model: Provider.Model; usage: LanguageModelUsa
|
|
|
const tokens = {
|
|
|
total,
|
|
|
input: adjustedInputTokens,
|
|
|
- output: safe(outputTokens - reasoningTokens),
|
|
|
+ output: outputTokens - reasoningTokens,
|
|
|
reasoning: reasoningTokens,
|
|
|
cache: {
|
|
|
write: cacheWriteInputTokens,
|