( cost: number, usage: Usage, model: string, )
| 248 | } |
| 249 | |
| 250 | function addToTotalModelUsage( |
| 251 | cost: number, |
| 252 | usage: Usage, |
| 253 | model: string, |
| 254 | ): ModelUsage { |
| 255 | const modelUsage = getUsageForModel(model) ?? { |
| 256 | inputTokens: 0, |
| 257 | outputTokens: 0, |
| 258 | cacheReadInputTokens: 0, |
| 259 | cacheCreationInputTokens: 0, |
| 260 | webSearchRequests: 0, |
| 261 | costUSD: 0, |
| 262 | contextWindow: 0, |
| 263 | maxOutputTokens: 0, |
| 264 | } |
| 265 | |
| 266 | modelUsage.inputTokens += usage.input_tokens |
| 267 | modelUsage.outputTokens += usage.output_tokens |
| 268 | modelUsage.cacheReadInputTokens += usage.cache_read_input_tokens ?? 0 |
| 269 | modelUsage.cacheCreationInputTokens += usage.cache_creation_input_tokens ?? 0 |
| 270 | modelUsage.webSearchRequests += |
| 271 | usage.server_tool_use?.web_search_requests ?? 0 |
| 272 | modelUsage.costUSD += cost |
| 273 | modelUsage.contextWindow = getContextWindowForModel(model, getSdkBetas()) |
| 274 | modelUsage.maxOutputTokens = getModelMaxOutputTokens(model).default |
| 275 | return modelUsage |
| 276 | } |
| 277 | |
| 278 | export function addToTotalSessionCost( |
| 279 | cost: number, |
no test coverage detected