@trazum/mcp 1.28.0 → 1.30.0

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.
package/README.md CHANGED
@@ -29,7 +29,7 @@ because "MCP server" reads like infrastructure and this is not.
29
29
  | --- | --- |
30
30
  | `check_prompt` | Does this prompt fit `maxTokens`? And if not, would optimising it fit? |
31
31
  | `optimize_prompt` | The shorter text, the token counts either side, what the difference is worth per month, and any advisories. |
32
- | `profile_usage` | Where the money went, from a usage log passed as text: the spend split, per label and per model, whether caching paid for itself, and the levers that would actually move the bill. `label`, `since`/`until` and `previous_log` drill down and compare; `what_if` prices the same calls on another model — arithmetic, not advice, and it says so. The one tool whose figures are exact — they are the provider's own billed counts. |
32
+ | `profile_usage` | Where the money went, from a usage log passed as text: the spend split, per label and per model, whether caching paid for itself, and the levers that would actually move the bill. `label`, `since`/`until` and `previous_log` drill down and compare; `what_if` prices the same calls on another model — arithmetic, not advice, and it says so. `pricing_overlay` takes the same JSON a `--pricing` overlay file holds, as text — models it adds or overrides price the whole report, and the report says the overlay is in effect. The one tool whose figures are exact — they are the provider's own billed counts. |
33
33
  | `list_models` | Prices, context windows and cacheable minimums, with the date the table was reviewed. |
34
34
 
35
35
  `check_prompt` is the one worth wiring up. It has **three** outcomes rather than
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SAAU,CAAC;AA+MxC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAY,CAAC;AAmxBvC,sEAAsE;AACtE,eAAO,MAAM,KAAK,EAAE,SAAS,cAAc,EAAuC,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SAAU,CAAC;AA+MxC;;;;;GAKG;AACH,eAAO,MAAM,aAAa,UAAY,CAAC;AAw3BvC,sEAAsE;AACtE,eAAO,MAAM,KAAK,EAAE,SAAS,cAAc,EAAuC,CAAC"}
package/dist/tools.js CHANGED
@@ -1,4 +1,4 @@
1
- import { BUNDLED_CATALOGUE, PRICING_LAST_REVIEWED, UNLABELLED, billLevers, cacheEconomics, cacheHitRate, driversBetween, formatUsd, reviewAgeDays, listModels, optimize, contextPressure, profileUsage, repriceProfile, } from '@trazum/core';
1
+ import { BUNDLED_CATALOGUE, MAX_PRICING_BYTES, PRICING_LAST_REVIEWED, PricingOverlayError, UNLABELLED, billLevers, cacheEconomics, cacheHitRate, catalogueFromOverlay, coverageDrift, driversBetween, formatUsd, reviewAgeDays, listModels, optimize, contextPressure, profileUsage, repriceProfile, } from '@trazum/core';
2
2
  import { InvalidArguments } from './rpc.js';
3
3
  /**
4
4
  * The tools, kept in one file so the whole surface an agent can reach reads in one
@@ -275,6 +275,17 @@ const PROFILE = {
275
275
  + 'impossible rather than priced as cheap, and spend already on that model stays out '
276
276
  + 'of the difference. An id this catalogue cannot price is an error, never silence.',
277
277
  },
278
+ pricing_overlay: {
279
+ type: 'string',
280
+ minLength: 1,
281
+ maxLength: MAX_PRICING_BYTES,
282
+ description: 'The same JSON document a --pricing overlay file holds, passed as text — never a '
283
+ + 'file path. Adds models the bundled catalogue does not know and overrides prices '
284
+ + 'for ones it does; every figure in the report, including what_if, is then priced '
285
+ + 'under it, and the report says the overlay is in effect. Requires "lastReviewed" '
286
+ + 'and a non-empty "models" object; a malformed overlay is an error naming the '
287
+ + 'problem, never a report silently priced from the bundled table.',
288
+ },
278
289
  },
279
290
  required: ['log'],
280
291
  additionalProperties: false,
@@ -319,14 +330,39 @@ const PROFILE = {
319
330
  throw new InvalidArguments('since is at or after until, so the window contains no time at all');
320
331
  }
321
332
  const windowed = sinceMs !== undefined || untilMs !== undefined;
322
- const report = profileUsage(log, { catalogue: BUNDLED_CATALOGUE, label: onlyLabel, sinceMs, untilMs });
333
+ /**
334
+ * The catalogue for this run: the caller's overlay applied over the
335
+ * bundled table, or the bundled table alone — the same layering as the
336
+ * CLI's `--pricing`, minus the file. The overlay travels as text because
337
+ * this server takes no paths, and a bad one is refused with the parser's
338
+ * own reason rather than priced from the bundled table as if nothing had
339
+ * been asked.
340
+ */
341
+ const overlayRaw = args.pricing_overlay;
342
+ let catalogue = BUNDLED_CATALOGUE;
343
+ if (overlayRaw !== undefined) {
344
+ if (typeof overlayRaw !== 'string')
345
+ throw new InvalidArguments('pricing_overlay must be a string');
346
+ if (overlayRaw.length > MAX_PRICING_BYTES) {
347
+ throw new InvalidArguments(`pricing_overlay is ${overlayRaw.length} characters, over the ${MAX_PRICING_BYTES} limit`);
348
+ }
349
+ try {
350
+ catalogue = catalogueFromOverlay(overlayRaw, 'pricing_overlay');
351
+ }
352
+ catch (error) {
353
+ if (error instanceof PricingOverlayError)
354
+ throw new InvalidArguments(error.message);
355
+ throw error;
356
+ }
357
+ }
358
+ const report = profileUsage(log, { catalogue, label: onlyLabel, sinceMs, untilMs });
323
359
  /**
324
360
  * The drill-downs' one rule, same as the CLI: a filter matching nothing is
325
361
  * an error naming what exists, never a silent report over zero calls that
326
362
  * an agent would read as "this workload is free" or "this period is free".
327
363
  */
328
364
  if ((onlyLabel !== undefined || windowed) && report.total.calls === 0 && report.unpriced.calls === 0) {
329
- const unfiltered = profileUsage(log, { catalogue: BUNDLED_CATALOGUE });
365
+ const unfiltered = profileUsage(log, { catalogue });
330
366
  if (unfiltered.total.calls > 0 || unfiltered.unpriced.calls > 0) {
331
367
  if (onlyLabel !== undefined && !unfiltered.byLabel.some((e) => e.label === onlyLabel)) {
332
368
  const available = unfiltered.byLabel
@@ -349,8 +385,10 @@ const PROFILE = {
349
385
  const gaps = () => {
350
386
  if (report.unpricedModels.length > 0) {
351
387
  lines.push(`${count(report.unpriced.calls, 'call')} are not in these totals — the pricing `
352
- + `catalogue does not know: ${report.unpricedModels.join(', ')}. The CLI can price `
353
- + 'them with a pricing overlay (trazum profile --pricing).');
388
+ + `catalogue does not know: ${report.unpricedModels.join(', ')}. `
389
+ + (catalogue === BUNDLED_CATALOGUE
390
+ ? 'A pricing_overlay argument can price them.'
391
+ : 'The overlay in effect does not name them either.'));
354
392
  }
355
393
  if (report.skippedLines.length > 0) {
356
394
  const shown = report.skippedLines.slice(0, 10).join(', ');
@@ -371,13 +409,24 @@ const PROFILE = {
371
409
  // The one Trazum surface whose figures are NOT estimates, said out loud
372
410
  // because every sibling tool here carries the ±10% band.
373
411
  lines.push(`${count(total.calls, 'call')} · ${formatUsd(total.totalUsd)} — exact billed token`
374
- + ` counts from the log, not estimates; prices reviewed ${PRICING_LAST_REVIEWED}.`);
412
+ + ` counts from the log, not estimates; prices reviewed ${catalogue.lastReviewed}.`);
413
+ /**
414
+ * The overlay is part of the answer, not plumbing: every dollar above was
415
+ * priced under it, so a reader comparing this report against one priced
416
+ * from the bundled table must be able to see they are not the same table.
417
+ */
418
+ if (catalogue !== BUNDLED_CATALOGUE) {
419
+ const added = catalogue.addedModels.length;
420
+ const overridden = catalogue.overriddenModels.length;
421
+ lines.push(`A pricing overlay is in effect: ${count(added, 'model')} added, `
422
+ + `${overridden} overridden. Figures are priced under it, not the bundled table.`);
423
+ }
375
424
  /**
376
425
  * Said only when old enough to matter, and loud then: a stale table
377
426
  * qualifies every dollar above, and unlike a skipped line it does not
378
427
  * name its own size — the error is exactly whatever the provider changed.
379
428
  */
380
- const pricingAge = reviewAgeDays(PRICING_LAST_REVIEWED, new Date());
429
+ const pricingAge = reviewAgeDays(catalogue.lastReviewed, new Date());
381
430
  if (pricingAge !== null && pricingAge > 45) {
382
431
  lines.push(`That review was ${pricingAge} days ago, past the 45 this tool considers current. If the`
383
432
  + ' provider changed prices since, every figure here is off by exactly that change —'
@@ -534,7 +583,7 @@ const PROFILE = {
534
583
  }
535
584
  }
536
585
  lines.push('', '--- what would actually move this bill ---');
537
- const levers = billLevers(report, { catalogue: BUNDLED_CATALOGUE });
586
+ const levers = billLevers(report, { catalogue });
538
587
  if (report.byLabel.length === 1 && report.byLabel[0].label === UNLABELLED) {
539
588
  lines.push('None of these calls carried a label, so this is every workload in one row. Add "label" '
540
589
  + 'to the record and the levers split by workload, the grouping a decision is made at.');
@@ -588,6 +637,17 @@ const PROFILE = {
588
637
  + ' can catch, rather than a workload that is uniformly expensive.');
589
638
  }
590
639
  }
640
+ /**
641
+ * The figure that survives a small log: the percentiles above refuse thin
642
+ * slices, but a maximum is a fact at any count — and it is the number a
643
+ * per-conversation budget judges.
644
+ */
645
+ if (report.sessionCosts.length === 0 && report.sessionSpend !== null) {
646
+ lines.push(`${report.sessionSpend.sessions} conversation${report.sessionSpend.sessions === 1 ? '' : 's'}`
647
+ + ` in this log; the most expensive cost ${formatUsd(report.sessionSpend.maxUsd)}. Too few`
648
+ + ' per workload for a percentile — a maximum is a fact at any count, and it is the figure'
649
+ + ' a per-conversation budget (--max-session-usd) judges.');
650
+ }
591
651
  lines.push('', '--- truncation ---');
592
652
  if (total.stopReasonCalls === 0) {
593
653
  lines.push('Whether any answers were cut off could not be measured — no call carries a stop '
@@ -642,7 +702,7 @@ const PROFILE = {
642
702
  // against the whole previous log would call every sibling workload a
643
703
  // vanished saving.
644
704
  const previous = profileUsage(previousLog, {
645
- catalogue: BUNDLED_CATALOGUE,
705
+ catalogue,
646
706
  label: onlyLabel,
647
707
  sinceMs,
648
708
  untilMs,
@@ -679,6 +739,38 @@ const PROFILE = {
679
739
  for (const d of modelDrivers.slice(0, 3))
680
740
  lines.push(describe(d, d.key));
681
741
  }
742
+ /**
743
+ * What the comparison stopped being able to see. The dollars render a
744
+ * fixed finding and a blinded log identically; only coverage tells
745
+ * them apart, and an agent relaying "spend flat, all clear" off a log
746
+ * that stopped recording a field would be relaying a claim nobody
747
+ * could check.
748
+ */
749
+ const silenced = {
750
+ label: 'per-workload spend, the drill-down, and levers that describe a decision rather than a mixture',
751
+ session: 'conversation growth, per-conversation cost, repeated turns, truncation retries and the cache-TTL fit',
752
+ ts: 'the period, the per-day and per-hour shape, the model mix drift, and the cache-TTL question entirely',
753
+ stopReason: 'answers cut off at max_tokens, and the retries billed after them',
754
+ };
755
+ const fieldName = {
756
+ label: 'label',
757
+ session: 'session',
758
+ ts: 'timestamp',
759
+ stopReason: 'stop reason',
760
+ };
761
+ for (const drift of coverageDrift(previous.fieldCoverage, report.fieldCoverage)) {
762
+ const was = `${(drift.was * 100).toFixed(1)}%`;
763
+ const now = `${(drift.now * 100).toFixed(1)}%`;
764
+ if (drift.delta < 0) {
765
+ lines.push(`Coverage moved: ${fieldName[drift.field]} was on ${was} of records and is now on `
766
+ + `${now}. A field the log stopped recording is not a finding that got fixed — gone `
767
+ + `quiet with it: ${silenced[drift.field]}. Reported from a 20-point move.`);
768
+ }
769
+ else {
770
+ lines.push(`Coverage moved: ${fieldName[drift.field]} was on ${was} of records and is now on `
771
+ + `${now} — this report can see what the previous one could not.`);
772
+ }
773
+ }
682
774
  }
683
775
  }
684
776
  /**
@@ -716,7 +808,7 @@ const PROFILE = {
716
808
  * the caller that can stop growing before the window refuses a call.
717
809
  */
718
810
  {
719
- const pressures = contextPressure(report, BUNDLED_CATALOGUE);
811
+ const pressures = contextPressure(report, catalogue);
720
812
  if (pressures.length > 0) {
721
813
  lines.push('');
722
814
  lines.push('Approaching the context window:');
@@ -791,10 +883,10 @@ const PROFILE = {
791
883
  if (whatIfModel !== undefined) {
792
884
  if (typeof whatIfModel !== 'string')
793
885
  throw new InvalidArguments('what_if must be a string');
794
- const whatIf = repriceProfile(report, whatIfModel, BUNDLED_CATALOGUE);
886
+ const whatIf = repriceProfile(report, whatIfModel, catalogue);
795
887
  if (whatIf === null) {
796
888
  throw new InvalidArguments(`what_if names a model this catalogue cannot price: "${whatIfModel}". Priced models: `
797
- + BUNDLED_CATALOGUE.models.map((m) => m.id).join(', '));
889
+ + catalogue.models.map((m) => m.id).join(', '));
798
890
  }
799
891
  lines.push('');
800
892
  lines.push(`These exact calls on ${whatIf.target.displayName}. This is multiplication, not advice: `
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trazum/mcp",
3
- "version": "1.28.0",
3
+ "version": "1.30.0",
4
4
  "description": "Trazum as an MCP server: let an agent price and budget its own prompts before it sends them.",
5
5
  "license": "MIT",
6
6
  "author": "David Mu\u00f1oz Rey",
@@ -37,7 +37,7 @@
37
37
  "prepublishOnly": "npm run build && npm test"
38
38
  },
39
39
  "dependencies": {
40
- "@trazum/core": "1.28.0"
40
+ "@trazum/core": "1.30.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^26.2.0",
package/src/tools.ts CHANGED
@@ -1,10 +1,14 @@
1
1
  import {
2
2
  BUNDLED_CATALOGUE,
3
+ MAX_PRICING_BYTES,
3
4
  PRICING_LAST_REVIEWED,
5
+ PricingOverlayError,
4
6
  UNLABELLED,
5
7
  billLevers,
6
8
  cacheEconomics,
7
9
  cacheHitRate,
10
+ catalogueFromOverlay,
11
+ coverageDrift,
8
12
  driversBetween,
9
13
  formatUsd,
10
14
  reviewAgeDays,
@@ -332,6 +336,18 @@ const PROFILE: ToolDefinition = {
332
336
  + 'impossible rather than priced as cheap, and spend already on that model stays out '
333
337
  + 'of the difference. An id this catalogue cannot price is an error, never silence.',
334
338
  },
339
+ pricing_overlay: {
340
+ type: 'string',
341
+ minLength: 1,
342
+ maxLength: MAX_PRICING_BYTES,
343
+ description:
344
+ 'The same JSON document a --pricing overlay file holds, passed as text — never a '
345
+ + 'file path. Adds models the bundled catalogue does not know and overrides prices '
346
+ + 'for ones it does; every figure in the report, including what_if, is then priced '
347
+ + 'under it, and the report says the overlay is in effect. Requires "lastReviewed" '
348
+ + 'and a non-empty "models" object; a malformed overlay is an error naming the '
349
+ + 'problem, never a report silently priced from the bundled table.',
350
+ },
335
351
  },
336
352
  required: ['log'],
337
353
  additionalProperties: false,
@@ -375,14 +391,39 @@ const PROFILE: ToolDefinition = {
375
391
  }
376
392
  const windowed = sinceMs !== undefined || untilMs !== undefined;
377
393
 
378
- const report = profileUsage(log, { catalogue: BUNDLED_CATALOGUE, label: onlyLabel, sinceMs, untilMs });
394
+ /**
395
+ * The catalogue for this run: the caller's overlay applied over the
396
+ * bundled table, or the bundled table alone — the same layering as the
397
+ * CLI's `--pricing`, minus the file. The overlay travels as text because
398
+ * this server takes no paths, and a bad one is refused with the parser's
399
+ * own reason rather than priced from the bundled table as if nothing had
400
+ * been asked.
401
+ */
402
+ const overlayRaw = args.pricing_overlay;
403
+ let catalogue = BUNDLED_CATALOGUE;
404
+ if (overlayRaw !== undefined) {
405
+ if (typeof overlayRaw !== 'string') throw new InvalidArguments('pricing_overlay must be a string');
406
+ if (overlayRaw.length > MAX_PRICING_BYTES) {
407
+ throw new InvalidArguments(
408
+ `pricing_overlay is ${overlayRaw.length} characters, over the ${MAX_PRICING_BYTES} limit`,
409
+ );
410
+ }
411
+ try {
412
+ catalogue = catalogueFromOverlay(overlayRaw, 'pricing_overlay');
413
+ } catch (error) {
414
+ if (error instanceof PricingOverlayError) throw new InvalidArguments(error.message);
415
+ throw error;
416
+ }
417
+ }
418
+
419
+ const report = profileUsage(log, { catalogue, label: onlyLabel, sinceMs, untilMs });
379
420
  /**
380
421
  * The drill-downs' one rule, same as the CLI: a filter matching nothing is
381
422
  * an error naming what exists, never a silent report over zero calls that
382
423
  * an agent would read as "this workload is free" or "this period is free".
383
424
  */
384
425
  if ((onlyLabel !== undefined || windowed) && report.total.calls === 0 && report.unpriced.calls === 0) {
385
- const unfiltered = profileUsage(log, { catalogue: BUNDLED_CATALOGUE });
426
+ const unfiltered = profileUsage(log, { catalogue });
386
427
  if (unfiltered.total.calls > 0 || unfiltered.unpriced.calls > 0) {
387
428
  if (onlyLabel !== undefined && !unfiltered.byLabel.some((e) => e.label === onlyLabel)) {
388
429
  const available = unfiltered.byLabel
@@ -413,8 +454,10 @@ const PROFILE: ToolDefinition = {
413
454
  if (report.unpricedModels.length > 0) {
414
455
  lines.push(
415
456
  `${count(report.unpriced.calls, 'call')} are not in these totals — the pricing `
416
- + `catalogue does not know: ${report.unpricedModels.join(', ')}. The CLI can price `
417
- + 'them with a pricing overlay (trazum profile --pricing).',
457
+ + `catalogue does not know: ${report.unpricedModels.join(', ')}. `
458
+ + (catalogue === BUNDLED_CATALOGUE
459
+ ? 'A pricing_overlay argument can price them.'
460
+ : 'The overlay in effect does not name them either.'),
418
461
  );
419
462
  }
420
463
  if (report.skippedLines.length > 0) {
@@ -443,14 +486,27 @@ const PROFILE: ToolDefinition = {
443
486
  // because every sibling tool here carries the ±10% band.
444
487
  lines.push(
445
488
  `${count(total.calls, 'call')} · ${formatUsd(total.totalUsd)} — exact billed token`
446
- + ` counts from the log, not estimates; prices reviewed ${PRICING_LAST_REVIEWED}.`,
489
+ + ` counts from the log, not estimates; prices reviewed ${catalogue.lastReviewed}.`,
447
490
  );
491
+ /**
492
+ * The overlay is part of the answer, not plumbing: every dollar above was
493
+ * priced under it, so a reader comparing this report against one priced
494
+ * from the bundled table must be able to see they are not the same table.
495
+ */
496
+ if (catalogue !== BUNDLED_CATALOGUE) {
497
+ const added = catalogue.addedModels.length;
498
+ const overridden = catalogue.overriddenModels.length;
499
+ lines.push(
500
+ `A pricing overlay is in effect: ${count(added, 'model')} added, `
501
+ + `${overridden} overridden. Figures are priced under it, not the bundled table.`,
502
+ );
503
+ }
448
504
  /**
449
505
  * Said only when old enough to matter, and loud then: a stale table
450
506
  * qualifies every dollar above, and unlike a skipped line it does not
451
507
  * name its own size — the error is exactly whatever the provider changed.
452
508
  */
453
- const pricingAge = reviewAgeDays(PRICING_LAST_REVIEWED, new Date());
509
+ const pricingAge = reviewAgeDays(catalogue.lastReviewed, new Date());
454
510
  if (pricingAge !== null && pricingAge > 45) {
455
511
  lines.push(
456
512
  `That review was ${pricingAge} days ago, past the 45 this tool considers current. If the`
@@ -636,7 +692,7 @@ const PROFILE: ToolDefinition = {
636
692
  }
637
693
 
638
694
  lines.push('', '--- what would actually move this bill ---');
639
- const levers = billLevers(report, { catalogue: BUNDLED_CATALOGUE });
695
+ const levers = billLevers(report, { catalogue });
640
696
  if (report.byLabel.length === 1 && report.byLabel[0]!.label === UNLABELLED) {
641
697
  lines.push(
642
698
  'None of these calls carried a label, so this is every workload in one row. Add "label" '
@@ -710,6 +766,19 @@ const PROFILE: ToolDefinition = {
710
766
  );
711
767
  }
712
768
  }
769
+ /**
770
+ * The figure that survives a small log: the percentiles above refuse thin
771
+ * slices, but a maximum is a fact at any count — and it is the number a
772
+ * per-conversation budget judges.
773
+ */
774
+ if (report.sessionCosts.length === 0 && report.sessionSpend !== null) {
775
+ lines.push(
776
+ `${report.sessionSpend.sessions} conversation${report.sessionSpend.sessions === 1 ? '' : 's'}`
777
+ + ` in this log; the most expensive cost ${formatUsd(report.sessionSpend.maxUsd)}. Too few`
778
+ + ' per workload for a percentile — a maximum is a fact at any count, and it is the figure'
779
+ + ' a per-conversation budget (--max-session-usd) judges.',
780
+ );
781
+ }
713
782
 
714
783
  lines.push('', '--- truncation ---');
715
784
  if (total.stopReasonCalls === 0) {
@@ -773,7 +842,7 @@ const PROFILE: ToolDefinition = {
773
842
  // against the whole previous log would call every sibling workload a
774
843
  // vanished saving.
775
844
  const previous = profileUsage(previousLog, {
776
- catalogue: BUNDLED_CATALOGUE,
845
+ catalogue,
777
846
  label: onlyLabel,
778
847
  sinceMs,
779
848
  untilMs,
@@ -820,6 +889,42 @@ const PROFILE: ToolDefinition = {
820
889
  lines.push('The same change, by model — where the mix moved:');
821
890
  for (const d of modelDrivers.slice(0, 3)) lines.push(describe(d, d.key));
822
891
  }
892
+
893
+ /**
894
+ * What the comparison stopped being able to see. The dollars render a
895
+ * fixed finding and a blinded log identically; only coverage tells
896
+ * them apart, and an agent relaying "spend flat, all clear" off a log
897
+ * that stopped recording a field would be relaying a claim nobody
898
+ * could check.
899
+ */
900
+ const silenced: Record<string, string> = {
901
+ label: 'per-workload spend, the drill-down, and levers that describe a decision rather than a mixture',
902
+ session: 'conversation growth, per-conversation cost, repeated turns, truncation retries and the cache-TTL fit',
903
+ ts: 'the period, the per-day and per-hour shape, the model mix drift, and the cache-TTL question entirely',
904
+ stopReason: 'answers cut off at max_tokens, and the retries billed after them',
905
+ };
906
+ const fieldName: Record<string, string> = {
907
+ label: 'label',
908
+ session: 'session',
909
+ ts: 'timestamp',
910
+ stopReason: 'stop reason',
911
+ };
912
+ for (const drift of coverageDrift(previous.fieldCoverage, report.fieldCoverage)) {
913
+ const was = `${(drift.was * 100).toFixed(1)}%`;
914
+ const now = `${(drift.now * 100).toFixed(1)}%`;
915
+ if (drift.delta < 0) {
916
+ lines.push(
917
+ `Coverage moved: ${fieldName[drift.field]} was on ${was} of records and is now on `
918
+ + `${now}. A field the log stopped recording is not a finding that got fixed — gone `
919
+ + `quiet with it: ${silenced[drift.field]}. Reported from a 20-point move.`,
920
+ );
921
+ } else {
922
+ lines.push(
923
+ `Coverage moved: ${fieldName[drift.field]} was on ${was} of records and is now on `
924
+ + `${now} — this report can see what the previous one could not.`,
925
+ );
926
+ }
927
+ }
823
928
  }
824
929
  }
825
930
 
@@ -864,7 +969,7 @@ const PROFILE: ToolDefinition = {
864
969
  * the caller that can stop growing before the window refuses a call.
865
970
  */
866
971
  {
867
- const pressures = contextPressure(report, BUNDLED_CATALOGUE);
972
+ const pressures = contextPressure(report, catalogue);
868
973
  if (pressures.length > 0) {
869
974
  lines.push('');
870
975
  lines.push('Approaching the context window:');
@@ -951,11 +1056,11 @@ const PROFILE: ToolDefinition = {
951
1056
  const whatIfModel = args.what_if;
952
1057
  if (whatIfModel !== undefined) {
953
1058
  if (typeof whatIfModel !== 'string') throw new InvalidArguments('what_if must be a string');
954
- const whatIf = repriceProfile(report, whatIfModel, BUNDLED_CATALOGUE);
1059
+ const whatIf = repriceProfile(report, whatIfModel, catalogue);
955
1060
  if (whatIf === null) {
956
1061
  throw new InvalidArguments(
957
1062
  `what_if names a model this catalogue cannot price: "${whatIfModel}". Priced models: `
958
- + BUNDLED_CATALOGUE.models.map((m) => m.id).join(', '),
1063
+ + catalogue.models.map((m) => m.id).join(', '),
959
1064
  );
960
1065
  }
961
1066
  lines.push('');