( cost: number, usage: Usage, model: string, )
| 260 | } |
| 261 | |
| 262 | function addToTotalModelUsage( |
| 263 | cost: number, |
| 264 | usage: Usage, |
| 265 | model: string, |
| 266 | ): ModelUsage { |
| 267 | const modelUsage = getUsageForModel(model) ?? { |
| 268 | inputTokens: 0, |
| 269 | outputTokens: 0, |
| 270 | cacheReadInputTokens: 0, |
| 271 | cacheCreationInputTokens: 0, |
| 272 | webSearchRequests: 0, |
| 273 | costUSD: 0, |
| 274 | contextWindow: 0, |
| 275 | maxOutputTokens: 0, |
| 276 | } |
| 277 | |
| 278 | modelUsage.inputTokens += usage.input_tokens |
| 279 | modelUsage.outputTokens += usage.output_tokens |
| 280 | modelUsage.cacheReadInputTokens += usage.cache_read_input_tokens ?? 0 |
| 281 | modelUsage.cacheCreationInputTokens += usage.cache_creation_input_tokens ?? 0 |
| 282 | modelUsage.webSearchRequests += |
| 283 | usage.server_tool_use?.web_search_requests ?? 0 |
| 284 | modelUsage.costUSD += cost |
| 285 | modelUsage.contextWindow = getContextWindowForModel(model, getSdkBetas()) |
| 286 | modelUsage.maxOutputTokens = getModelMaxOutputTokens(model).default |
| 287 | return modelUsage |
| 288 | } |
| 289 | |
| 290 | export function addToTotalSessionCost( |
| 291 | cost: number, |
no test coverage detected