@@ -69,6 +69,9 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
6969 models : {
7070 param : 'models' ,
7171 } ,
72+ usage : {
73+ param : 'usage' ,
74+ } ,
7275 stream : {
7376 param : 'stream' ,
7477 default : false ,
@@ -78,16 +81,29 @@ export const OpenrouterChatCompleteConfig: ProviderConfig = {
7881 } ,
7982} ;
8083
84+ interface OpenrouterUsageDetails {
85+ prompt_tokens : number ;
86+ completion_tokens : number ;
87+ total_tokens : number ;
88+ prompt_tokens_details ?: {
89+ cached_tokens : number ;
90+ audio_tokens : number ;
91+ } ;
92+ completion_tokens_details ?: {
93+ reasoning_tokens : number ;
94+ audio_tokens : number ;
95+ accepted_prediction_tokens : number ;
96+ rejected_prediction_tokens : number ;
97+ } ;
98+ cost ?: number ;
99+ }
100+
81101interface OpenrouterChatCompleteResponse extends ChatCompletionResponse {
82102 id : string ;
83103 object : string ;
84104 created : number ;
85105 model : string ;
86- usage : {
87- prompt_tokens : number ;
88- completion_tokens : number ;
89- total_tokens : number ;
90- } ;
106+ usage : OpenrouterUsageDetails ;
91107}
92108
93109export interface OpenrouterErrorResponse {
@@ -103,11 +119,7 @@ interface OpenrouterStreamChunk {
103119 object : string ;
104120 created : number ;
105121 model : string ;
106- usage ?: {
107- prompt_tokens : number ;
108- completion_tokens : number ;
109- total_tokens : number ;
110- } ;
122+ usage ?: OpenrouterUsageDetails ;
111123 choices : {
112124 delta : {
113125 role ?: string | null ;
@@ -149,11 +161,7 @@ export const OpenrouterChatCompleteResponseTransform: (
149161 } ,
150162 finish_reason : c . finish_reason ,
151163 } ) ) ,
152- usage : {
153- prompt_tokens : response . usage ?. prompt_tokens ,
154- completion_tokens : response . usage ?. completion_tokens ,
155- total_tokens : response . usage ?. total_tokens ,
156- } ,
164+ usage : response . usage ,
157165 } ;
158166 }
159167
0 commit comments