@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 +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +104 -12
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
- package/src/tools.ts +116 -11
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
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
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
|
|
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(', ')}.
|
|
353
|
-
+
|
|
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 ${
|
|
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(
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
+
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
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(', ')}.
|
|
417
|
-
+
|
|
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 ${
|
|
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(
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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
|
-
+
|
|
1063
|
+
+ catalogue.models.map((m) => m.id).join(', '),
|
|
959
1064
|
);
|
|
960
1065
|
}
|
|
961
1066
|
lines.push('');
|