diff options
| author | dpuyosa <[email protected]> | 2026-01-27 16:59:12 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-27 10:59:12 -0500 |
| commit | d8e7e915e24f294886529d5b32fc07e497ab8e45 (patch) | |
| tree | f3df7f4923297545a47764441662c1cc257cce05 | |
| parent | 712d2b7d15269a4d4bc7ef0829cc1014cd81c4b3 (diff) | |
| download | opencode-d8e7e915e24f294886529d5b32fc07e497ab8e45.tar.gz opencode-d8e7e915e24f294886529d5b32fc07e497ab8e45.zip | |
feat(opencode): Handle Venice cache creation tokens (#10735)
Co-authored-by: Aiden Cline <[email protected]>
| -rw-r--r-- | packages/opencode/src/session/index.ts | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index b81a21a57..faa8c6eb0 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -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), }, } |
