File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -75,10 +75,17 @@ export function mapUsageToOpenAI(usage: CommandCodeUsage | undefined): OpenAIUsa
7575 const promptTokens = usage ?. inputTokens ?? 0 ;
7676 const completionTokens = usage ?. outputTokens ?? 0 ;
7777 const totalTokens = usage ?. totalTokens ?? promptTokens + completionTokens ;
78+ const cacheReadTokens = usage ?. cachedInputTokens ?? usage ?. inputTokenDetails ?. [ "cacheReadTokens" ] ;
7879 return {
7980 prompt_tokens : promptTokens ,
8081 completion_tokens : completionTokens ,
8182 total_tokens : totalTokens ,
83+ prompt_tokens_details : {
84+ cached_tokens :
85+ typeof cacheReadTokens === "number" && Number . isFinite ( cacheReadTokens )
86+ ? cacheReadTokens
87+ : 0 ,
88+ } ,
8289 } ;
8390}
8491
Original file line number Diff line number Diff 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
237240export interface OpenAIChatCompletion {
Original file line number Diff line number Diff line change @@ -78,10 +78,18 @@ function parseSsePayloads(chunks: string[]): unknown[] {
7878
7979describe ( "CommandCode to OpenAI conversion" , ( ) => {
8080 it ( "maps usage fields" , ( ) => {
81- expect ( mapUsageToOpenAI ( { inputTokens : 3 , outputTokens : 2 , totalTokens : 5 } ) ) . toEqual ( {
81+ expect (
82+ mapUsageToOpenAI ( {
83+ inputTokens : 3 ,
84+ outputTokens : 2 ,
85+ totalTokens : 5 ,
86+ inputTokenDetails : { cacheReadTokens : 1 } ,
87+ } ) ,
88+ ) . toEqual ( {
8289 prompt_tokens : 3 ,
8390 completion_tokens : 2 ,
8491 total_tokens : 5 ,
92+ prompt_tokens_details : { cached_tokens : 1 } ,
8593 } ) ;
8694 } ) ;
8795
You can’t perform that action at this time.
0 commit comments