From c8bda598f55bd0d104c979866605b5cc61d1250a Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 12 Nov 2025 20:41:44 +0200 Subject: [PATCH] fix: correct cache cost for OpenRouter and other OpenAI-compatible providers (#4256) --- packages/opencode/src/session/index.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index d0bdfb9e..dff23c24 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -378,8 +378,14 @@ export namespace Session { metadata: z.custom().optional(), }), (input) => { + const cachedInputTokens = input.usage.cachedInputTokens ?? 0 + const excludesCachedTokens = !!(input.metadata?.["anthropic"] || input.metadata?.["bedrock"]) + const adjustedInputTokens = excludesCachedTokens + ? (input.usage.inputTokens ?? 0) + : (input.usage.inputTokens ?? 0) - cachedInputTokens + const tokens = { - input: input.usage.inputTokens ?? 0, + input: adjustedInputTokens, output: input.usage.outputTokens ?? 0, reasoning: input.usage?.reasoningTokens ?? 0, cache: { @@ -387,7 +393,7 @@ export namespace Session { // @ts-expect-error input.metadata?.["bedrock"]?.["usage"]?.["cacheWriteInputTokens"] ?? 0) as number, - read: input.usage.cachedInputTokens ?? 0, + read: cachedInputTokens, }, } return {