Skip to content

Commit a28e2ee

Browse files
committed
fix(openai): forward CommandCode cache usage
1 parent 73954f8 commit a28e2ee

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

‎src/openai.ts‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,17 @@ export function mapUsageToOpenAI(usage: CommandCodeUsage | undefined): OpenAIUsa
7272
const promptTokens = usage?.inputTokens ?? 0;
7373
const completionTokens = usage?.outputTokens ?? 0;
7474
const totalTokens = usage?.totalTokens ?? promptTokens + completionTokens;
75+
const cacheReadTokens = usage?.cachedInputTokens ?? usage?.inputTokenDetails?.["cacheReadTokens"];
7576
return {
7677
prompt_tokens: promptTokens,
7778
completion_tokens: completionTokens,
7879
total_tokens: totalTokens,
80+
prompt_tokens_details: {
81+
cached_tokens:
82+
typeof cacheReadTokens === "number" && Number.isFinite(cacheReadTokens)
83+
? cacheReadTokens
84+
: 0,
85+
},
7986
};
8087
}
8188

‎src/types.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,9 @@ export interface OpenAIUsage {
232232
prompt_tokens: number;
233233
completion_tokens: number;
234234
total_tokens: number;
235+
prompt_tokens_details: {
236+
cached_tokens: number;
237+
};
235238
}
236239

237240
export interface OpenAIChatCompletion {

‎tests/openai.test.ts‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,18 @@ function parseSsePayloads(chunks: string[]): unknown[] {
6464

6565
describe("CommandCode to OpenAI conversion", () => {
6666
it("maps usage fields", () => {
67-
expect(mapUsageToOpenAI({ inputTokens: 3, outputTokens: 2, totalTokens: 5 })).toEqual({
67+
expect(
68+
mapUsageToOpenAI({
69+
inputTokens: 3,
70+
outputTokens: 2,
71+
totalTokens: 5,
72+
inputTokenDetails: { cacheReadTokens: 1 },
73+
}),
74+
).toEqual({
6875
prompt_tokens: 3,
6976
completion_tokens: 2,
7077
total_tokens: 5,
78+
prompt_tokens_details: { cached_tokens: 1 },
7179
});
7280
});
7381

0 commit comments

Comments
 (0)