diff --git a/artifacts/glm52-rise-video/sst-env.d.ts b/artifacts/glm52-rise-video/sst-env.d.ts
new file mode 100644
index 0000000000..64441936d7
--- /dev/null
+++ b/artifacts/glm52-rise-video/sst-env.d.ts
@@ -0,0 +1,10 @@
+/* This file is auto-generated by SST. Do not edit. */
+/* tslint:disable */
+/* eslint-disable */
+/* deno-fmt-ignore-file */
+/* biome-ignore-all lint: auto-generated */
+
+///
+
+import "sst"
+export {}
\ No newline at end of file
diff --git a/packages/codemode/sst-env.d.ts b/packages/codemode/sst-env.d.ts
new file mode 100644
index 0000000000..64441936d7
--- /dev/null
+++ b/packages/codemode/sst-env.d.ts
@@ -0,0 +1,10 @@
+/* This file is auto-generated by SST. Do not edit. */
+/* tslint:disable */
+/* eslint-disable */
+/* deno-fmt-ignore-file */
+/* biome-ignore-all lint: auto-generated */
+
+///
+
+import "sst"
+export {}
\ No newline at end of file
diff --git a/packages/console/app/src/routes/zen/util/provider/openai.ts b/packages/console/app/src/routes/zen/util/provider/openai.ts
index 0e9992a289..cebc78a127 100644
--- a/packages/console/app/src/routes/zen/util/provider/openai.ts
+++ b/packages/console/app/src/routes/zen/util/provider/openai.ts
@@ -4,6 +4,7 @@ type Usage = {
input_tokens?: number
input_tokens_details?: {
cached_tokens?: number
+ cache_write_tokens?: number
}
output_tokens?: number
output_tokens_details?: {
@@ -48,12 +49,13 @@ export const openaiHelper: ProviderHelper = ({ workspaceID }) => ({
const outputTokens = usage.output_tokens ?? 0
const reasoningTokens = usage.output_tokens_details?.reasoning_tokens ?? undefined
const cacheReadTokens = usage.input_tokens_details?.cached_tokens ?? undefined
+ const cacheWriteTokens = usage.input_tokens_details?.cache_write_tokens ?? undefined
return {
inputTokens: inputTokens - (cacheReadTokens ?? 0),
outputTokens,
reasoningTokens,
cacheReadTokens,
- cacheWrite5mTokens: undefined,
+ cacheWrite5mTokens: cacheWriteTokens,
cacheWrite1hTokens: undefined,
}
},
diff --git a/packages/console/app/test/providerUsage.test.ts b/packages/console/app/test/providerUsage.test.ts
index d39c9fa861..7be3aacffd 100644
--- a/packages/console/app/test/providerUsage.test.ts
+++ b/packages/console/app/test/providerUsage.test.ts
@@ -65,4 +65,20 @@ describe("provider usage extraction", () => {
output_tokens: 7,
})
})
+
+ test("parses OpenAI stream cache write usage", () => {
+ const usageParser = providers.openai.createUsageParser()
+ usageParser.parse(
+ 'event: response.completed\ndata: {"response":{"usage":{"input_tokens":10,"input_tokens_details":{"cached_tokens":4,"cache_write_tokens":3},"output_tokens":2}}}',
+ )
+
+ expect(providers.openai.normalizeUsage(usageParser.retrieve())).toEqual({
+ inputTokens: 6,
+ outputTokens: 2,
+ reasoningTokens: undefined,
+ cacheReadTokens: 4,
+ cacheWrite5mTokens: 3,
+ cacheWrite1hTokens: undefined,
+ })
+ })
})