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 {