MCPcopy Create free account
hub / github.com/microsoft/AI-Engineering-Coach / addModelUsage

Function addModelUsage

src/core/parser-vscode-cli.ts:290–314  ·  view source on GitHub ↗
(collected: Record<string, ModelUsage>, rawModel: string, info: unknown)

Source from the content-addressed store, hash-verified

288}
289
290function addModelUsage(collected: Record<string, ModelUsage>, rawModel: string, info: unknown): void {
291 const infoRecord = recordValue(info);
292 if (!infoRecord) return;
293
294 const usage = recordValue(infoRecord.usage) || {};
295 const inputTokens = typeof usage.inputTokens === 'number' ? usage.inputTokens : 0;
296 const outputTokens = typeof usage.outputTokens === 'number' ? usage.outputTokens : 0;
297 const cacheReadTokens = typeof usage.cacheReadTokens === 'number' ? usage.cacheReadTokens : 0;
298 const cacheWriteTokens = typeof usage.cacheWriteTokens === 'number' ? usage.cacheWriteTokens : 0;
299 const reasoningTokens = typeof usage.reasoningTokens === 'number' ? usage.reasoningTokens : 0;
300 if (inputTokens === 0 && outputTokens === 0 && cacheReadTokens === 0 && cacheWriteTokens === 0) return;
301
302 const key = normalizeModel(rawModel);
303 const existing = collected[key];
304 if (existing) {
305 existing.inputTokens += inputTokens;
306 existing.outputTokens += outputTokens;
307 existing.cacheReadTokens += cacheReadTokens;
308 existing.cacheWriteTokens += cacheWriteTokens;
309 existing.reasoningTokens = (existing.reasoningTokens ?? 0) + reasoningTokens;
310 return;
311 }
312
313 collected[key] = { inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, reasoningTokens };
314}
315
316function handleShutdown(data: Record<string, unknown>, state: CLIParseState): void {
317 state.sawShutdown = true;

Callers 1

handleShutdownFunction · 0.85

Calls 2

normalizeModelFunction · 0.90
recordValueFunction · 0.70

Tested by

no test coverage detected