profileShare

rasmusjy / roundtable

Read-only snapshot

No repository description.

main default branch 181 files Expires Sep 13, 2026, 9:06 AM
usage.ts 519 bytes
1 import { emptyUsage, type Usage } from './types';
2
3 /** Sum two usage records (tokens + cost). */
4 export function addUsage(a: Usage, b: Usage): Usage {
5 return {
6 promptTokens: a.promptTokens + b.promptTokens,
7 completionTokens: a.completionTokens + b.completionTokens,
8 totalTokens: a.totalTokens + b.totalTokens,
9 costUsd: a.costUsd + b.costUsd,
10 };
11 }
12
13 export function sumUsage(usages: Iterable<Usage>): Usage {
14 let acc = emptyUsage();
15 for (const u of usages) acc = addUsage(acc, u);
16 return acc;
17 }
18