|
|
@@ -426,11 +426,20 @@ export namespace Session {
|
|
|
metadata: z.custom<ProviderMetadata>().optional(),
|
|
|
}),
|
|
|
(input) => {
|
|
|
- const cachedInputTokens = input.usage.cachedInputTokens ?? 0
|
|
|
+ const cacheReadInputTokens = input.usage.cachedInputTokens ?? 0
|
|
|
+ const cacheWriteInputTokens = (
|
|
|
+ input.metadata?.["anthropic"]?.["cacheCreationInputTokens"] ??
|
|
|
+ // @ts-expect-error
|
|
|
+ input.metadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ??
|
|
|
+ // @ts-expect-error
|
|
|
+ input.metadata?.["venice"]?.["usage"]?.["cacheCreationInputTokens"] ??
|
|
|
+ 0
|
|
|
+ ) as number
|
|
|
+
|
|
|
const excludesCachedTokens = !!(input.metadata?.["anthropic"] || input.metadata?.["bedrock"])
|
|
|
const adjustedInputTokens = excludesCachedTokens
|
|
|
? (input.usage.inputTokens ?? 0)
|
|
|
- : (input.usage.inputTokens ?? 0) - cachedInputTokens
|
|
|
+ : (input.usage.inputTokens ?? 0) - cacheReadInputTokens - cacheWriteInputTokens
|
|
|
const safe = (value: number) => {
|
|
|
if (!Number.isFinite(value)) return 0
|
|
|
return value
|
|
|
@@ -441,13 +450,8 @@ export namespace Session {
|
|
|
output: safe(input.usage.outputTokens ?? 0),
|
|
|
reasoning: safe(input.usage?.reasoningTokens ?? 0),
|
|
|
cache: {
|
|
|
- write: safe(
|
|
|
- (input.metadata?.["anthropic"]?.["cacheCreationInputTokens"] ??
|
|
|
- // @ts-expect-error
|
|
|
- input.metadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ??
|
|
|
- 0) as number,
|
|
|
- ),
|
|
|
- read: safe(cachedInputTokens),
|
|
|
+ write: safe(cacheWriteInputTokens),
|
|
|
+ read: safe(cacheReadInputTokens),
|
|
|
},
|
|
|
}
|
|
|
|