agentenkit 0.1.6 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +44 -2
  2. package/dist/adapters/memory.d.ts +2 -2
  3. package/dist/adapters/memory.d.ts.map +1 -1
  4. package/dist/adapters/memory.js +3 -9
  5. package/dist/adapters/memory.js.map +1 -1
  6. package/dist/adapters/prisma.d.ts +61 -18
  7. package/dist/adapters/prisma.d.ts.map +1 -1
  8. package/dist/adapters/prisma.js +65 -16
  9. package/dist/adapters/prisma.js.map +1 -1
  10. package/dist/adapters/sqlite.d.ts +3 -2
  11. package/dist/adapters/sqlite.d.ts.map +1 -1
  12. package/dist/adapters/sqlite.js +82 -11
  13. package/dist/adapters/sqlite.js.map +1 -1
  14. package/dist/admin/default.d.ts +11 -4
  15. package/dist/admin/default.d.ts.map +1 -1
  16. package/dist/admin/default.js +11 -6
  17. package/dist/admin/default.js.map +1 -1
  18. package/dist/admin/migrations/postgres/0001-init.d.ts +10 -0
  19. package/dist/admin/migrations/postgres/0001-init.d.ts.map +1 -0
  20. package/dist/admin/migrations/postgres/0001-init.js +56 -0
  21. package/dist/admin/migrations/postgres/0001-init.js.map +1 -0
  22. package/dist/admin/migrations/postgres/index.d.ts +9 -0
  23. package/dist/admin/migrations/postgres/index.d.ts.map +1 -0
  24. package/dist/admin/migrations/postgres/index.js +17 -0
  25. package/dist/admin/migrations/postgres/index.js.map +1 -0
  26. package/dist/admin/migrations/runner.d.ts +81 -0
  27. package/dist/admin/migrations/runner.d.ts.map +1 -0
  28. package/dist/admin/migrations/runner.js +137 -0
  29. package/dist/admin/migrations/runner.js.map +1 -0
  30. package/dist/admin/migrations/sqlite/0001-init.d.ts +11 -0
  31. package/dist/admin/migrations/sqlite/0001-init.d.ts.map +1 -0
  32. package/dist/admin/migrations/sqlite/0001-init.js +44 -0
  33. package/dist/admin/migrations/sqlite/0001-init.js.map +1 -0
  34. package/dist/admin/migrations/sqlite/index.d.ts +7 -0
  35. package/dist/admin/migrations/sqlite/index.d.ts.map +1 -0
  36. package/dist/admin/migrations/sqlite/index.js +38 -0
  37. package/dist/admin/migrations/sqlite/index.js.map +1 -0
  38. package/dist/admin/postgres.d.ts +27 -4
  39. package/dist/admin/postgres.d.ts.map +1 -1
  40. package/dist/admin/postgres.js +41 -53
  41. package/dist/admin/postgres.js.map +1 -1
  42. package/dist/admin/sqlite.d.ts +18 -2
  43. package/dist/admin/sqlite.d.ts.map +1 -1
  44. package/dist/admin/sqlite.js +36 -53
  45. package/dist/admin/sqlite.js.map +1 -1
  46. package/dist/core/admin.d.ts +4 -0
  47. package/dist/core/admin.d.ts.map +1 -1
  48. package/dist/core/admin.js +9 -1
  49. package/dist/core/admin.js.map +1 -1
  50. package/dist/core/agent.d.ts +3 -0
  51. package/dist/core/agent.d.ts.map +1 -1
  52. package/dist/core/agent.js +4 -4
  53. package/dist/core/agent.js.map +1 -1
  54. package/dist/core/context.d.ts +5 -0
  55. package/dist/core/context.d.ts.map +1 -1
  56. package/dist/core/context.js +38 -9
  57. package/dist/core/context.js.map +1 -1
  58. package/dist/core/engine.d.ts +4 -1
  59. package/dist/core/engine.d.ts.map +1 -1
  60. package/dist/core/engine.js +81 -17
  61. package/dist/core/engine.js.map +1 -1
  62. package/dist/core/hitl.d.ts +56 -4
  63. package/dist/core/hitl.d.ts.map +1 -1
  64. package/dist/core/hitl.js +94 -20
  65. package/dist/core/hitl.js.map +1 -1
  66. package/dist/core/loop.d.ts +35 -0
  67. package/dist/core/loop.d.ts.map +1 -1
  68. package/dist/core/loop.js +125 -17
  69. package/dist/core/loop.js.map +1 -1
  70. package/dist/core/messages.d.ts +26 -0
  71. package/dist/core/messages.d.ts.map +1 -1
  72. package/dist/core/messages.js +23 -0
  73. package/dist/core/messages.js.map +1 -1
  74. package/dist/core/reclaim.d.ts.map +1 -1
  75. package/dist/core/reclaim.js +4 -3
  76. package/dist/core/reclaim.js.map +1 -1
  77. package/dist/core/run.d.ts.map +1 -1
  78. package/dist/core/run.js +1 -0
  79. package/dist/core/run.js.map +1 -1
  80. package/dist/core/subagent.d.ts +5 -0
  81. package/dist/core/subagent.d.ts.map +1 -1
  82. package/dist/core/subagent.js +20 -8
  83. package/dist/core/subagent.js.map +1 -1
  84. package/dist/core/types.d.ts +145 -7
  85. package/dist/core/types.d.ts.map +1 -1
  86. package/dist/core/types.js +9 -0
  87. package/dist/core/types.js.map +1 -1
  88. package/dist/core/usage.d.ts +47 -2
  89. package/dist/core/usage.d.ts.map +1 -1
  90. package/dist/core/usage.js +130 -2
  91. package/dist/core/usage.js.map +1 -1
  92. package/dist/index.d.ts +8 -4
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +5 -2
  95. package/dist/index.js.map +1 -1
  96. package/dist/ports/runtime.d.ts +69 -4
  97. package/dist/ports/runtime.d.ts.map +1 -1
  98. package/dist/ports/storage.d.ts +16 -4
  99. package/dist/ports/storage.d.ts.map +1 -1
  100. package/dist/pricing.d.ts +66 -0
  101. package/dist/pricing.d.ts.map +1 -0
  102. package/dist/pricing.js +98 -0
  103. package/dist/pricing.js.map +1 -0
  104. package/dist/runtime.d.ts.map +1 -1
  105. package/dist/runtime.js +5 -2
  106. package/dist/runtime.js.map +1 -1
  107. package/package.json +1 -1
@@ -1,11 +1,12 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { tool } from 'ai';
3
3
  import { z } from 'zod';
4
+ import { wireId } from './types.js';
4
5
  import { publish, withPublishEvent } from './publish.js';
5
6
  import { HITL_PARKED, withHitl } from './hitl.js';
6
7
  import { withRunState } from './state.js';
7
8
  import { markPromptCaching } from './cache.js';
8
- import { repairDanglingToolCalls } from './messages.js';
9
+ import { promptMessages, repairDanglingToolCalls } from './messages.js';
9
10
  import { runLoop } from './loop.js';
10
11
  /** Run-scoped semaphore: sibling subagents queue instead of running away (§2.7) */
11
12
  export class Semaphore {
@@ -198,12 +199,14 @@ function nestedTools(ctx, d, frames, abortSignal) {
198
199
  * throws on one (§3.3) — a `||` fallback can never catch that — so the child
199
200
  * falls back to the model its parent is already running on, which is
200
201
  * resolvable by construction. */
202
+ /** The registry key comes back with the model: pricing is keyed by the key
203
+ * that was actually resolved, not the one the delegation asked for. */
201
204
  function resolveNestedModel(ctx, name) {
202
205
  try {
203
- return ctx.ports.resolveModel(name);
206
+ return { resolved: ctx.ports.resolveModel(name), modelKey: name };
204
207
  }
205
208
  catch {
206
- return ctx.ports.resolveModel(ctx.resume.model);
209
+ return { resolved: ctx.ports.resolveModel(ctx.resume.model), modelKey: ctx.resume.model };
207
210
  }
208
211
  }
209
212
  /** Run — or RE-ENTER — a nested agent (§2.7).
@@ -230,6 +233,7 @@ instructions, abortSignal, frames) {
230
233
  agentId: d.agentId,
231
234
  }));
232
235
  }
236
+ const { resolved, modelKey } = resolveNestedModel(ctx, d.model);
233
237
  const outcome = await runLoop(ports, ctx.agent, threadId, {
234
238
  agentId: d.agentId,
235
239
  // Its OWN run id, not its parent's: a nested run is a run (§2.7, §2.9),
@@ -237,16 +241,24 @@ instructions, abortSignal, frames) {
237
241
  // two agents' steps into one timeline and made the indexes collide.
238
242
  runId: d.agentId,
239
243
  kind: ctx.sub.kind ?? 'stream-text',
240
- model: resolveNestedModel(ctx, d.model).instance(),
244
+ model: resolved.instance(),
241
245
  // Stamped like the parent's (§2.6). A nested run re-sends its whole
242
246
  // brief and history on every step, so it is exactly the shape caching
243
247
  // is for — it was the one prompt in the system going out unstamped.
244
- messages: maybeCache(ports, repairDanglingToolCalls(persisted.map((m) => ({ role: m.role, content: m.content })))),
248
+ messages: maybeCache(ports, repairDanglingToolCalls(promptMessages(persisted))),
245
249
  tools: nestedTools(ctx, d, frames, abortSignal),
246
250
  maxSteps: ports.config.subagentMaxSteps,
247
251
  abortSignal: abortSignal ?? new AbortController().signal,
248
252
  providerOptions: ctx.providerOptions,
249
253
  tokenBudget: ctx.tokenBudget,
254
+ // Money is capped and billed at the RUN, not per child (§2.7, §4): the
255
+ // cap is the parent's, and every call a child makes lands on the
256
+ // parent's bill under its own agentId.
257
+ costBudgetMicros: ctx.costBudgetMicros,
258
+ billingRunId: ctx.billingRunId,
259
+ modelKey,
260
+ modelId: wireId(resolved, modelKey),
261
+ agentName: d.name,
250
262
  system: `You are the "${d.name}" subagent. Complete the task, then stop.`,
251
263
  cacheSystemPrompt: ports.config.promptCaching,
252
264
  onChunk: async (chunk) => {
@@ -254,9 +266,9 @@ instructions, abortSignal, frames) {
254
266
  await publish(ports, threadId, 'SUBAGENT_CHUNK', { agentId: d.agentId, chunk });
255
267
  },
256
268
  }, ctx.ledger);
257
- // Billing attribution per subagent (§4); the run-wide ledger was already
258
- // advanced inside the loop.
259
- await ports.storage.usage.record(threadId, { agentId: d.agentId, ...outcome.attribution });
269
+ // Nothing to bill here: every call the child made recorded and priced its
270
+ // own row as it happened, tagged with this child's agentId (§4). The
271
+ // run-wide ledger was advanced inside the loop too.
260
272
  return outcome;
261
273
  }
262
274
  //# sourceMappingURL=subagent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/core/subagent.ts"],"names":[],"mappings":"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"}
@@ -104,11 +104,9 @@ export interface NewRunRecord {
104
104
  parentRunId?: string | null;
105
105
  }
106
106
  export type RunPatch = Partial<Omit<RunRecord, 'id' | 'threadId'>>;
107
- /** Token attribution only (§4): total tokens used. USD/credit pricing is a
108
- * downstream concern computed over the recorded counters. */
109
- /** Token attribution (§4): the platform records the counters; USD/credit
110
- * pricing is a downstream concern computed over them. */
111
- /** Cumulative token attribution across every run on a thread (§4). */
107
+ /** Cumulative token AND money attribution across every run on a thread (§4).
108
+ * Tokens are what the provider reported; the money is what the Pricer put on
109
+ * each row as it was stored. */
112
110
  export interface UsageTotals {
113
111
  /** Fresh (uncached) prompt tokens. */
114
112
  inputTokens: number;
@@ -117,6 +115,76 @@ export interface UsageTotals {
117
115
  outputTokens: number;
118
116
  /** input + cached + output. */
119
117
  totalTokens: number;
118
+ /** Summed cost in millionths of one `currency` unit: 1_000_000 is one
119
+ * dollar when the currency is USD. */
120
+ costMicros: number;
121
+ /** The unit `costMicros` is in, absent when nothing was priced. One
122
+ * deployment should price in ONE currency: these are summed, not
123
+ * converted. */
124
+ currency?: string;
125
+ /** How many calls had no cost, because no pricer answered for them. Above
126
+ * zero, `costMicros` is a floor and not the whole bill. */
127
+ unpriced: number;
128
+ /** The same spend grouped by agent and model: one line per pair, which is
129
+ * the shape a bill wants. Summing the lines gives the totals above. */
130
+ lines: UsageLine[];
131
+ }
132
+ /** One agent's spend on one model, summed over its calls (§4). This is the
133
+ * bill line a credit system charges for. */
134
+ export interface UsageLine {
135
+ /** null for the main run, the nested run's id otherwise. */
136
+ agentId?: string | null;
137
+ agentName?: string | null;
138
+ /** The registry key; `modelId` is the wire id it resolved to. */
139
+ model?: string | null;
140
+ modelId?: string | null;
141
+ inputTokens: number;
142
+ cacheReadInputTokens: number;
143
+ cacheWriteInputTokens: number;
144
+ outputTokens: number;
145
+ reasoningTokens: number;
146
+ /** How many model calls this line covers. */
147
+ calls: number;
148
+ /** How many of those had estimated tokens, because they were cut off
149
+ * before the provider reported real ones. */
150
+ estimated: number;
151
+ costMicros: number;
152
+ }
153
+ /** Narrows a usage read (§4). */
154
+ export interface UsageFilter {
155
+ /** Limit the read to one dispatched run, nested runs included. Omitted
156
+ * reads the whole thread. */
157
+ runId?: string;
158
+ }
159
+ /** How the model call that produced a usage row ended. */
160
+ export type UsageOutcome =
161
+ /** Ran to its finish; the provider reported the counters itself. */
162
+ 'finished'
163
+ /** A user stop cut the call mid-stream, so no finish arrived and the
164
+ * tokens are estimated. */
165
+ | 'aborted'
166
+ /** The provider failed mid-call. What it had already streamed was still
167
+ * billed, so the row is kept. */
168
+ | 'error';
169
+ /** Which part of the platform made the call. */
170
+ export type UsageKind =
171
+ /** A step of an agent loop, main run or nested (§2.1, §2.7). */
172
+ 'step'
173
+ /** The summary the platform writes to keep the prompt inside the model's
174
+ * window (§2.6). Nobody asked for it, so it is worth being able to see
175
+ * what it costs on its own. */
176
+ | 'compaction';
177
+ /** The money one model call cost. */
178
+ export interface Cost {
179
+ /** Millionths of one `currency` unit: 1_000_000 is one dollar when the
180
+ * currency is USD. Integers, because money summed as a float drifts. */
181
+ micros: number;
182
+ /** ISO-4217 code — 'USD' for the shipped table pricer. */
183
+ currency: string;
184
+ /** Where the number came from: 'receipt' when the provider computed it,
185
+ * 'table' from a price list, 'estimate' for anything a pricer worked out
186
+ * itself. It rides along so a bill can be audited. */
187
+ source: 'receipt' | 'table' | 'estimate';
120
188
  }
121
189
  /** How full the next run's prompt would be (§2.6). Token counts are the same
122
190
  * rough estimate the engine itself compacts on, so the number a user sees is
@@ -131,15 +199,61 @@ export interface ContextUsage {
131
199
  /** Messages currently in the thread, summaries included. */
132
200
  messages: number;
133
201
  }
202
+ /** ONE model call, recorded by the engine after every call it makes: a step
203
+ * of the main run, a step of a nested run, a compaction pass, streamed or
204
+ * not, finished or cut short.
205
+ *
206
+ * It carries everything a Pricer needs to put a price on the call, so pricing
207
+ * never has to reach back into the run to find out what happened. */
134
208
  export interface NewUsage {
209
+ /** The DISPATCHED run this call belongs to (§2.9). A nested run's calls
210
+ * carry their parent's run id, so one run's bill is one query. */
211
+ runId?: string | null;
212
+ /** Whose stream made the call (§2.7): null is the main run, otherwise the
213
+ * nested run's id. */
135
214
  agentId?: string | null;
215
+ /** The registered handle for the main run, the delegation's name for a
216
+ * nested one. What a bill line should say. */
217
+ agentName?: string | null;
218
+ kind: UsageKind;
219
+ /** 1-based iteration inside its loop; 0 for a compaction. */
220
+ step: number;
221
+ /** The registry key the call was made with, e.g. 'claude-sonnet-4@high' —
222
+ * what a price list is usually keyed by. */
223
+ model?: string | null;
224
+ /** The wire id the provider reported back, which can differ from the key
225
+ * that asked for it (an alias, a dated snapshot). */
226
+ modelId?: string | null;
136
227
  /** Fresh (uncached) prompt tokens. */
137
228
  inputTokens: number;
138
229
  /** Prompt tokens served from the provider's prompt cache (§2.6 caching). */
139
- cachedInputTokens: number;
230
+ cacheReadInputTokens: number;
231
+ /** Prompt tokens WRITTEN into that cache — a separate line on the
232
+ * provider's bill, and not part of `totalTokens`. */
233
+ cacheWriteInputTokens: number;
140
234
  outputTokens: number;
141
- /** input + cached + output. */
235
+ /** Thinking tokens. Most providers already count these inside
236
+ * `outputTokens`, so price them at zero unless yours bills them
237
+ * separately (see the pricing module). */
238
+ reasoningTokens: number;
239
+ /** input + cache reads + output: the counter the token budget is measured
240
+ * against. Cache writes and reasoning are deliberately outside it — cache
241
+ * writes are their own bill line, and reasoning tokens are usually already
242
+ * inside the output count. */
142
243
  totalTokens: number;
244
+ outcome: UsageOutcome;
245
+ /** True when no finish arrived and the counters are the platform's own
246
+ * estimate over what it does know: the prompt it sent and the text that did
247
+ * stream, measured the same way compaction measures context fill. */
248
+ estimated?: boolean;
249
+ /** Whatever the provider attached to the finish: a gateway receipt, a
250
+ * generation id, anything a Pricer wants to read. Two reserved keys are
251
+ * added by the platform: `responseId` and `responseHeaders`, because a
252
+ * gateway bills through a header. */
253
+ providerMetadata?: Record<string, unknown> | null;
254
+ /** Filled by the Pricer before the row is stored. Absent means the call
255
+ * went unpriced, and any total over it is a floor. */
256
+ cost?: Cost | null;
143
257
  }
144
258
  /** Additional provider-specific options, passed through to the provider from
145
259
  * the AI SDK. Namespaced per provider — the platform never inspects them. */
@@ -167,6 +281,9 @@ export interface RunJob {
167
281
  * attached — hours later, in another process, after an approval. */
168
282
  state?: AgentRunState;
169
283
  tokenBudget?: number;
284
+ /** The money cap for this run (§4), carried so the worker enforces the same
285
+ * cap the caller asked for. */
286
+ costBudgetMicros?: number;
170
287
  providerOptions?: ProviderOptions;
171
288
  }
172
289
  /** Identifies a nested run well enough to re-enter its loop (§2.7). Persisted
@@ -186,6 +303,7 @@ export interface ResumeInfo {
186
303
  /** The run these segments belong to (§2.9). */
187
304
  runId?: string;
188
305
  tokenBudget?: number;
306
+ costBudgetMicros?: number;
189
307
  providerOptions?: ProviderOptions;
190
308
  /** The run's state (§2.10). A park can outlive the process that made it, so
191
309
  * the state has to travel on the ticket — rebuilt from here, not from a
@@ -199,7 +317,14 @@ export interface ResumeInfo {
199
317
  export interface ResolvedModel {
200
318
  instance: () => LanguageModel;
201
319
  contextWindow?: number;
320
+ /** The wire id this key resolves to, e.g. 'gpt-4o-2024-11-20' for the key
321
+ * 'gpt-4o'. It goes onto every usage row, so a price list keyed by wire
322
+ * ids can match one (§4). Omitted means the key IS the id. */
323
+ modelId?: string;
202
324
  }
325
+ /** The model id to record for a registry key: what `resolveModel` declared,
326
+ * or the key itself when it declared nothing. */
327
+ export declare const wireId: (model: ResolvedModel, key: string) => string;
203
328
  /** Opt-in subagent delegation config (§2.7): the platform constructs the
204
329
  * run-scoped spawnSubagent tool — users cannot build it themselves. */
205
330
  export interface SubagentsConfig {
@@ -236,6 +361,13 @@ export interface AgentConfig {
236
361
  * input nor the agent spec declares one. `undefined` = unbounded apart
237
362
  * from `maxSteps` (§2.1 safety cap). */
238
363
  tokenBudget?: number;
364
+ /** Default per-run money cap (§4), in millionths of the pricer's currency:
365
+ * 250_000 is roughly a quarter of a dollar when the pricer works in USD.
366
+ * `undefined` = unbounded. Checked between steps, exactly like
367
+ * `tokenBudget`, so the step that crossed the line is always kept in full.
368
+ * Needs a pricer: an unpriced call spends no money and so can never
369
+ * exhaust it. */
370
+ costBudgetMicros?: number;
239
371
  /** Subagent nesting cap (§2.7) */
240
372
  subagentMaxDepth: number;
241
373
  /** Concurrent subagents per run (§2.7) */
@@ -263,6 +395,12 @@ export interface AgentConfig {
263
395
  compactionTrigger: number;
264
396
  /** Share of budget kept verbatim as the recent tail (§2.6) */
265
397
  contextTailShare: number;
398
+ /** Registry key of the cheap model that writes the context summary (§2.6).
399
+ * It is resolved through your own `resolveModel`, so it must be a key that
400
+ * resolver knows — a registry with no 'gpt-4o-mini' in it has to name its
401
+ * own. The call is billed like any other, under `kind: 'compaction'` (§4).
402
+ * Default: 'gpt-4o-mini'. */
403
+ compactionModel: string;
266
404
  /** Prompt caching (§2.6): when true, the engine stamps Anthropic-style
267
405
  * ephemeral cache breakpoints on the prompt prefix so providers that
268
406
  * support marking cache it. OpenAI models cache automatically (≥1024
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,9 @@ export function mergeProviderOptions(base, override) {
6
6
  return base;
7
7
  return { ...base, ...override };
8
8
  }
9
+ /** The model id to record for a registry key: what `resolveModel` declared,
10
+ * or the key itself when it declared nothing. */
11
+ export const wireId = (model, key) => model.modelId && model.modelId.length > 0 ? model.modelId : key;
9
12
  export const DEFAULT_CONFIG = {
10
13
  hitlTtlMs: 15 * 60_000,
11
14
  reclaimGraceMs: 60_000,
@@ -23,6 +26,7 @@ export const DEFAULT_CONFIG = {
23
26
  contextOutputReserveTokens: 16_000,
24
27
  compactionTrigger: 0.8,
25
28
  contextTailShare: 0.25,
29
+ compactionModel: 'gpt-4o-mini',
26
30
  promptCaching: true,
27
31
  runLockLeaseSeconds: 30 * 60,
28
32
  };
@@ -32,6 +36,11 @@ export function resolveConfig(partial) {
32
36
  // A subagent must never get a looser step ceiling than its parent run (§2.7)
33
37
  throw new Error(`Invalid config: subagentMaxSteps (${config.subagentMaxSteps}) must be between 1 and maxSteps (${config.maxSteps})`);
34
38
  }
39
+ if (!config.compactionModel) {
40
+ // Compaction has no fallback: without a model to summarize with, a thread
41
+ // that outgrows its window cannot run at all (§2.6).
42
+ throw new Error('Invalid config: compactionModel must be a non-empty registry key');
43
+ }
35
44
  if (!Number.isInteger(config.stopPollMs) || config.stopPollMs < 1) {
36
45
  // The poll is the only thing that delivers a stop to a running worker (§2.1)
37
46
  throw new Error(`Invalid config: stopPollMs (${config.stopPollMs}) must be an integer of at least 1`);
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAyKA,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,QAA0B;IAE1B,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AAClC,CAAC;AA8JD,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,GAAG;IACf,sBAAsB,EAAE,CAAC;IACzB,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IACxB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,OAAO;IAC7B,0BAA0B,EAAE,MAAM;IAClC,iBAAiB,EAAE,GAAG;IACtB,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAA8B;IAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7E,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,gBAAgB,qCAAqC,MAAM,CAAC,QAAQ,GAAG,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAClE,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,UAAU,oCAAoC,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,sBAAsB,kCAAkC,CAC3G,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACpF,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,mBAAmB,oCAAoC,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAiSA,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAClC,IAAsB,EACtB,QAA0B;IAE1B,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AAClC,CAAC;AAkED;kDACkD;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,GAAW,EAAU,EAAE,CAClE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAmHlE,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,cAAc,EAAE,MAAM;IACtB,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,GAAG;IACf,sBAAsB,EAAE,CAAC;IACzB,gBAAgB,EAAE,CAAC;IACnB,qBAAqB,EAAE,CAAC;IACxB,gBAAgB,EAAE,EAAE;IACpB,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,OAAO;IAC7B,0BAA0B,EAAE,MAAM;IAClC,iBAAiB,EAAE,GAAG;IACtB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,aAAa;IAC9B,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,EAAE,GAAG,EAAE;CAC7B,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAA8B;IAC1D,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IACjD,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7E,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,CAAC,gBAAgB,qCAAqC,MAAM,CAAC,QAAQ,GAAG,CACpH,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAClE,6EAA6E;QAC7E,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,UAAU,oCAAoC,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAM,CAAC,sBAAsB,kCAAkC,CAC3G,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACpF,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,mBAAmB,oCAAoC,CACvG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,5 +1,7 @@
1
- /** Token attribution (§4): the platform records the counters; USD/credit
2
- * pricing is a downstream concern computed over them. */
1
+ import type { NewUsage, UsageTotals } from './types.js';
2
+ import type { RuntimePorts } from '../ports/runtime.js';
3
+ /** Token attribution (§4): the four canonical counters. Same shape as
4
+ * UsageTotals. */
3
5
  export interface TokenAttribution {
4
6
  /** Fresh (uncached) prompt tokens. */
5
7
  inputTokens: number;
@@ -36,5 +38,48 @@ type UsageLike = {
36
38
  export declare function attributeTokens(usage: UsageLike, meta?: ProviderMetadataLike): TokenAttribution;
37
39
  /** Total tokens used — input + cached + output, NaN-guarded. */
38
40
  export declare function countTokens(usage: UsageLike, meta?: ProviderMetadataLike): number;
41
+ /** Cache WRITE tokens, which no provider reports in `usage`: Anthropic puts
42
+ * them in provider metadata, and they are a separate line on the bill — a
43
+ * cache write costs more than a fresh input token, so a pricer needs them
44
+ * apart from the rest. */
45
+ export declare function cacheWriteTokens(meta?: ProviderMetadataLike): number;
46
+ /** Reasoning tokens, where the provider separates them out. Usually already
47
+ * inside the output count, which is why the shipped price table prices them
48
+ * at zero by default. */
49
+ export declare function reasoningTokens(usage: UsageLike, meta?: ProviderMetadataLike): number;
50
+ /** Everything a pricer needs from one model call, in the shape a usage row
51
+ * carries it. `attributeTokens` already sorts out the providers'
52
+ * disagreements about input and cache reads; this adds the two counters that
53
+ * only pricing cares about. */
54
+ export declare function fillTokens(usage: UsageLike, meta?: ProviderMetadataLike): Pick<NewUsage, 'inputTokens' | 'cacheReadInputTokens' | 'cacheWriteInputTokens' | 'outputTokens' | 'reasoningTokens' | 'totalTokens'>;
55
+ /** Flatten what the AI SDK reports into the single map a pricer reads.
56
+ * Provider namespaces keep their names; the response id and headers get
57
+ * reserved keys, because an AI gateway bills through a header and a receipt
58
+ * pricer has to be able to find it. */
59
+ export declare function providerMeta(meta?: ProviderMetadataLike, response?: {
60
+ id?: string;
61
+ headers?: Record<string, string>;
62
+ }): Record<string, unknown> | undefined;
63
+ /** Price one model call and store its usage row (§4). Called after every call
64
+ * the platform makes: a step of the main run, a step of a nested run, a
65
+ * compaction pass, streamed or not, finished or cut short.
66
+ *
67
+ * Pricing happens here, before the row is stored, so cost sits on the row
68
+ * beside the tokens and no reader has to work it out again. A pricer that
69
+ * fails, or has nothing to say, leaves the row unpriced rather than failing
70
+ * the run: a bill that is short a line is recoverable, a run that died over a
71
+ * price list is not. Storage failures are logged for the same reason — the
72
+ * tokens of a stopped run were still spent. */
73
+ export declare function recordCall(deps: RuntimePorts, threadId: string, usage: NewUsage): Promise<NewUsage>;
74
+ /** Zero totals — what a thread with no usage rows reports. */
75
+ export declare const emptyTotals: () => UsageTotals;
76
+ /** Sum usage rows into the shape `total` must return: the four counters, the
77
+ * money, and one line per agent and model.
78
+ *
79
+ * A storage adapter that can group in the database should do that instead.
80
+ * This is for the ones that cannot, and for anyone writing their own adapter:
81
+ * feed every matching row through it and you get exactly what the port
82
+ * promises, lines in first-seen order. */
83
+ export declare function sumUsage(rows: Iterable<NewUsage>): UsageTotals;
39
84
  export {};
40
85
  //# sourceMappingURL=usage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAAA;0DAC0D;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;+CAE+C;AAC/C,MAAM,MAAM,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACnD,SAAS,CAAC;AAEd,KAAK,SAAS,GAAG;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAAC;AASd;;;;;;;;;;;uEAWuE;AACvE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,gBAAgB,CAsBlB;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEjF"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;mBACmB;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;+CAE+C;AAC/C,MAAM,MAAM,oBAAoB,GAC5B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,GACnD,SAAS,CAAC;AAEd,KAAK,SAAS,GAAG;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAAC;AASd;;;;;;;;;;;uEAWuE;AACvE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,gBAAgB,CAsBlB;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEjF;AAGD;;;2BAG2B;AAC3B,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAKpE;AAED;;0BAE0B;AAC1B,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAKrF;AAED;;;gCAGgC;AAChC,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,oBAAoB,GAC1B,IAAI,CACL,QAAQ,EACN,aAAa,GACb,sBAAsB,GACtB,uBAAuB,GACvB,cAAc,GACd,iBAAiB,GACjB,aAAa,CAChB,CAUA;AAED;;;wCAGwC;AACxC,wBAAgB,YAAY,CAC1B,IAAI,CAAC,EAAE,oBAAoB,EAC3B,QAAQ,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAOrC;AAED;;;;;;;;;gDASgD;AAChD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,QAAQ,GACd,OAAO,CAAC,QAAQ,CAAC,CAgBnB;AAGD,8DAA8D;AAC9D,eAAO,MAAM,WAAW,QAAO,WAQ7B,CAAC;AAEH;;;;;;2CAM2C;AAC3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,WAAW,CAwC9D"}
@@ -1,5 +1,3 @@
1
- /** Token attribution (§4): the platform records the counters; USD/credit
2
- * pricing is a downstream concern computed over them. */
3
1
  const pick = (...vals) => {
4
2
  for (const v of vals) {
5
3
  if (typeof v === 'number' && Number.isFinite(v))
@@ -40,4 +38,134 @@ export function attributeTokens(usage, meta) {
40
38
  export function countTokens(usage, meta) {
41
39
  return attributeTokens(usage, meta).totalTokens;
42
40
  }
41
+ /** Cache WRITE tokens, which no provider reports in `usage`: Anthropic puts
42
+ * them in provider metadata, and they are a separate line on the bill — a
43
+ * cache write costs more than a fresh input token, so a pricer needs them
44
+ * apart from the rest. */
45
+ export function cacheWriteTokens(meta) {
46
+ return pick(meta?.anthropic?.cacheCreationInputTokens, meta?.bedrock?.cacheWriteInputTokens);
47
+ }
48
+ /** Reasoning tokens, where the provider separates them out. Usually already
49
+ * inside the output count, which is why the shipped price table prices them
50
+ * at zero by default. */
51
+ export function reasoningTokens(usage, meta) {
52
+ return pick(usage?.reasoningTokens, meta?.openai?.reasoningTokens);
53
+ }
54
+ /** Everything a pricer needs from one model call, in the shape a usage row
55
+ * carries it. `attributeTokens` already sorts out the providers'
56
+ * disagreements about input and cache reads; this adds the two counters that
57
+ * only pricing cares about. */
58
+ export function fillTokens(usage, meta) {
59
+ const a = attributeTokens(usage, meta);
60
+ return {
61
+ inputTokens: a.inputTokens,
62
+ cacheReadInputTokens: a.cachedInputTokens,
63
+ cacheWriteInputTokens: cacheWriteTokens(meta),
64
+ outputTokens: a.outputTokens,
65
+ reasoningTokens: reasoningTokens(usage, meta),
66
+ totalTokens: a.totalTokens,
67
+ };
68
+ }
69
+ /** Flatten what the AI SDK reports into the single map a pricer reads.
70
+ * Provider namespaces keep their names; the response id and headers get
71
+ * reserved keys, because an AI gateway bills through a header and a receipt
72
+ * pricer has to be able to find it. */
73
+ export function providerMeta(meta, response) {
74
+ const out = { ...(meta ?? {}) };
75
+ if (response?.id)
76
+ out.responseId = response.id;
77
+ if (response?.headers && Object.keys(response.headers).length > 0) {
78
+ out.responseHeaders = response.headers;
79
+ }
80
+ return Object.keys(out).length > 0 ? out : undefined;
81
+ }
82
+ /** Price one model call and store its usage row (§4). Called after every call
83
+ * the platform makes: a step of the main run, a step of a nested run, a
84
+ * compaction pass, streamed or not, finished or cut short.
85
+ *
86
+ * Pricing happens here, before the row is stored, so cost sits on the row
87
+ * beside the tokens and no reader has to work it out again. A pricer that
88
+ * fails, or has nothing to say, leaves the row unpriced rather than failing
89
+ * the run: a bill that is short a line is recoverable, a run that died over a
90
+ * price list is not. Storage failures are logged for the same reason — the
91
+ * tokens of a stopped run were still spent. */
92
+ export async function recordCall(deps, threadId, usage) {
93
+ const log = deps.log ?? console;
94
+ const priced = { ...usage };
95
+ if (deps.pricer && !priced.cost) {
96
+ try {
97
+ priced.cost = (await deps.pricer.price(priced)) ?? null;
98
+ }
99
+ catch (err) {
100
+ log.error('usage not priced', { run: priced.runId, model: priced.model, err });
101
+ }
102
+ }
103
+ try {
104
+ await deps.storage.usage.record(threadId, priced);
105
+ }
106
+ catch (err) {
107
+ log.error('usage not recorded', { run: priced.runId, thread: threadId, err });
108
+ }
109
+ return priced;
110
+ }
111
+ /** Zero totals — what a thread with no usage rows reports. */
112
+ export const emptyTotals = () => ({
113
+ inputTokens: 0,
114
+ cachedInputTokens: 0,
115
+ outputTokens: 0,
116
+ totalTokens: 0,
117
+ costMicros: 0,
118
+ unpriced: 0,
119
+ lines: [],
120
+ });
121
+ /** Sum usage rows into the shape `total` must return: the four counters, the
122
+ * money, and one line per agent and model.
123
+ *
124
+ * A storage adapter that can group in the database should do that instead.
125
+ * This is for the ones that cannot, and for anyone writing their own adapter:
126
+ * feed every matching row through it and you get exactly what the port
127
+ * promises, lines in first-seen order. */
128
+ export function sumUsage(rows) {
129
+ const out = emptyTotals();
130
+ const index = new Map();
131
+ for (const u of rows) {
132
+ out.inputTokens += u.inputTokens;
133
+ out.cachedInputTokens += u.cacheReadInputTokens;
134
+ out.outputTokens += u.outputTokens;
135
+ out.totalTokens += u.totalTokens;
136
+ if (u.cost) {
137
+ out.costMicros += u.cost.micros;
138
+ out.currency ??= u.cost.currency;
139
+ }
140
+ else {
141
+ out.unpriced += 1;
142
+ }
143
+ const key = [u.agentId ?? '', u.agentName ?? '', u.model ?? '', u.modelId ?? ''].join('\u0000');
144
+ let i = index.get(key);
145
+ if (i === undefined) {
146
+ i = out.lines.length;
147
+ index.set(key, i);
148
+ out.lines.push({
149
+ agentId: u.agentId ?? null,
150
+ agentName: u.agentName ?? null,
151
+ model: u.model ?? null,
152
+ modelId: u.modelId ?? null,
153
+ inputTokens: 0, cacheReadInputTokens: 0, cacheWriteInputTokens: 0,
154
+ outputTokens: 0, reasoningTokens: 0, calls: 0, estimated: 0, costMicros: 0,
155
+ });
156
+ }
157
+ const line = out.lines[i];
158
+ line.inputTokens += u.inputTokens;
159
+ line.cacheReadInputTokens += u.cacheReadInputTokens;
160
+ line.cacheWriteInputTokens += u.cacheWriteInputTokens;
161
+ line.outputTokens += u.outputTokens;
162
+ line.reasoningTokens += u.reasoningTokens;
163
+ line.calls += 1;
164
+ if (u.estimated)
165
+ line.estimated += 1;
166
+ if (u.cost)
167
+ line.costMicros += u.cost.micros;
168
+ }
169
+ return out;
170
+ }
43
171
  //# sourceMappingURL=usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"AAAA;0DAC0D;AA4B1D,MAAM,IAAI,GAAG,CAAC,GAAG,IAA4B,EAAU,EAAE;IACvD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF;;;;;;;;;;;uEAWuE;AACvE,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,IAA2B;IAE3B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;IACtB,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,kBAAwC,CAAC,CAAC;IAClF,MAAM,eAAe,GAAG,IAAI,CAC1B,IAAI,EAAE,SAAS,EAAE,oBAA0C,CAC5D,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,eAAe,CAAC;IAErF,MAAM,WAAW,GACf,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAE/E,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,GAAG,iBAAiB,GAAG,YAAY,CAAC;IAC9D,OAAO;QACL,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,WAAW,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM;KAChE,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,IAA2B;IACvE,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/core/usage.ts"],"names":[],"mappings":"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"}