@trazum/core 1.81.0 → 1.83.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 +34 -18
- package/dist/advisories.d.ts +33 -1
- package/dist/advisories.d.ts.map +1 -1
- package/dist/advisories.js +130 -20
- package/dist/advisories.js.map +1 -1
- package/dist/band.d.ts +131 -0
- package/dist/band.d.ts.map +1 -0
- package/dist/band.js +210 -0
- package/dist/band.js.map +1 -0
- package/dist/conform.d.ts +1 -1
- package/dist/conform.d.ts.map +1 -1
- package/dist/conform.js +84 -1
- package/dist/conform.js.map +1 -1
- package/dist/helicone.d.ts +92 -0
- package/dist/helicone.d.ts.map +1 -0
- package/dist/helicone.js +194 -0
- package/dist/helicone.js.map +1 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +16 -3
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +17 -3
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/types.d.ts +60 -1
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/langsmith.d.ts +104 -0
- package/dist/langsmith.d.ts.map +1 -0
- package/dist/langsmith.js +270 -0
- package/dist/langsmith.js.map +1 -0
- package/dist/levers.d.ts +1 -1
- package/dist/levers.js +2 -2
- package/dist/levers.js.map +1 -1
- package/dist/litellm.d.ts +98 -0
- package/dist/litellm.d.ts.map +1 -0
- package/dist/litellm.js +207 -0
- package/dist/litellm.js.map +1 -0
- package/dist/measured-profile.d.ts +4 -0
- package/dist/measured-profile.d.ts.map +1 -1
- package/dist/measured-profile.js +22 -1
- package/dist/measured-profile.js.map +1 -1
- package/dist/pricing.d.ts +98 -3
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +393 -35
- package/dist/pricing.js.map +1 -1
- package/dist/receipt.d.ts +253 -0
- package/dist/receipt.d.ts.map +1 -0
- package/dist/receipt.js +111 -0
- package/dist/receipt.js.map +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +36 -0
- package/dist/schemas.js.map +1 -1
- package/dist/tokenizer.d.ts +45 -49
- package/dist/tokenizer.d.ts.map +1 -1
- package/dist/tokenizer.js +100 -51
- package/dist/tokenizer.js.map +1 -1
- package/dist/types.d.ts +108 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/verdict-bridge.d.ts +113 -0
- package/dist/verdict-bridge.d.ts.map +1 -0
- package/dist/verdict-bridge.js +127 -0
- package/dist/verdict-bridge.js.map +1 -0
- package/package.json +1 -1
- package/src/advisories.ts +166 -19
- package/src/band.ts +213 -0
- package/src/conform.ts +100 -1
- package/src/helicone.ts +227 -0
- package/src/i18n/en.ts +19 -3
- package/src/i18n/es.ts +20 -3
- package/src/i18n/types.ts +63 -1
- package/src/index.ts +31 -2
- package/src/langsmith.ts +315 -0
- package/src/levers.ts +3 -3
- package/src/litellm.ts +243 -0
- package/src/measured-profile.ts +26 -2
- package/src/pricing.ts +430 -30
- package/src/receipt.ts +351 -0
- package/src/schemas.ts +36 -0
- package/src/tokenizer.ts +101 -51
- package/src/types.ts +104 -0
- package/src/verdict-bridge.ts +200 -0
package/README.md
CHANGED
|
@@ -291,31 +291,47 @@ const refined = await refineWithLlm(result, openAiCompatible({
|
|
|
291
291
|
## Token counts
|
|
292
292
|
|
|
293
293
|
The bundled estimator is a dependency-free heuristic, and it compares two versions
|
|
294
|
-
of the same prompt well — which is what it is for. Its error band is
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
294
|
+
of the same prompt well — which is what it is for. Its error band is **measured
|
|
295
|
+
per kind of text**, because one band for all text was a measurement of its own
|
|
296
|
+
calibration set rather than of the estimator:
|
|
297
|
+
|
|
298
|
+
| Kind of text | Band | Worst sample | Samples |
|
|
299
|
+
| --- | --- | --- | --- |
|
|
300
|
+
| CJK, all three scripts | ±4% | 3.2% | 6 |
|
|
301
|
+
| Latin prose and few-shot blocks | ±6% | 5.6% | 18 |
|
|
302
|
+
| Code, markup and quoting | ±26% | 25.1% | 16 |
|
|
303
|
+
| Digit-dominant tables and ledgers | ±33% | 32.5% | 7 |
|
|
304
|
+
|
|
305
|
+
Call `bandFor(text)` to get the band for a specific prompt. `ESTIMATE_ERROR_BAND_PCT`
|
|
306
|
+
is still exported and is the widest of the four, for callers that have to print one
|
|
307
|
+
figure without holding the text.
|
|
308
|
+
|
|
309
|
+
That band is measured, against the official counting endpoint, over 47 samples in
|
|
310
|
+
ten languages and 6 text types. The margin between each bucket and its own worst
|
|
311
|
+
sample is a point or less, and no bucket is allowed to overlap the next: a sample
|
|
312
|
+
sorted into a friendlier bucket gets a smaller band and fails the test.
|
|
313
|
+
|
|
314
|
+
The single band of 10% this replaced was an unchecked design target for eight
|
|
315
|
+
releases and it was false; the 1.9.0 entry in the changelog says what was wrong, and the 1.82.0
|
|
316
|
+
entry says what extending the corpus from 21 samples to 47 found.
|
|
306
317
|
|
|
307
318
|
Three things follow from how it was measured, and they matter if you depend on the
|
|
308
319
|
number:
|
|
309
320
|
|
|
310
|
-
- **The band is a Claude number
|
|
311
|
-
|
|
312
|
-
|
|
321
|
+
- **The band is a Claude number, and the others are far outside it.** The same 47
|
|
322
|
+
samples measured against DeepSeek's own counter came out **94.5% wrong** at
|
|
323
|
+
worst, and against Mistral's **103.1%** — Trazum prices 7 providers and the
|
|
324
|
+
band belongs to one. `foreignTokenizer` answers with the provider id whenever
|
|
325
|
+
the model is not Anthropic's, and the report says so on the line rather than
|
|
326
|
+
printing a figure that was measured somewhere else.
|
|
313
327
|
- **It detects the language and divides accordingly**, because one divisor
|
|
314
328
|
calibrated on English measured −37.3% on German. `detectTextLanguage` answers
|
|
315
329
|
`null` when it cannot tell, which falls back to the English behaviour.
|
|
316
|
-
- **Kana and
|
|
317
|
-
Japanese at +11.2% and Chinese at −3.2
|
|
318
|
-
|
|
330
|
+
- **Kana, han and hangul cost different amounts.** Charging one token per CJK
|
|
331
|
+
character put Japanese at +11.2% and Chinese at −3.2%; kana measure 0.75 tokens
|
|
332
|
+
per character, han 1.05 and hangul 1.35. Hangul had been carrying a placeholder
|
|
333
|
+
nothing measured until two Korean samples agreed in lockstep on 1.35, which took
|
|
334
|
+
the CJK bucket's worst error from 10.6% to 3.2%.
|
|
319
335
|
|
|
320
336
|
For exact figures, pass a real counter — the counting endpoint is free:
|
|
321
337
|
|
package/dist/advisories.d.ts
CHANGED
|
@@ -1,13 +1,45 @@
|
|
|
1
1
|
import type { Locale } from './i18n/types.js';
|
|
2
2
|
import type { PricingCatalogue } from './pricing.js';
|
|
3
3
|
import type { Advisory, ModelPricing, TokenCounter, UsageProfile } from './types.js';
|
|
4
|
+
/** What `recommendTierDetailed` saw, not only what it concluded. */
|
|
5
|
+
export interface TierRecommendation {
|
|
6
|
+
tier: ModelPricing['tier'];
|
|
7
|
+
complexSignals: number;
|
|
8
|
+
simpleSignals: number;
|
|
9
|
+
/**
|
|
10
|
+
* True when the prompt asks for depth and for brevity at once, and the
|
|
11
|
+
* heuristic has no business preferring either.
|
|
12
|
+
*
|
|
13
|
+
* The score subtracts one side from the other, so three complex signals
|
|
14
|
+
* against three simple ones cancels to zero and returns `sonnet` — the same
|
|
15
|
+
* answer as a prompt with **no signals at all**. Those are opposite
|
|
16
|
+
* situations reported identically: one is "nothing here suggests a tier", the
|
|
17
|
+
* other is "this prompt contradicts itself about which tier it needs", and
|
|
18
|
+
* only the second is worth telling somebody about.
|
|
19
|
+
*
|
|
20
|
+
* The threshold is a lead of one signal or fewer, and it comes from the
|
|
21
|
+
* weights above rather than from taste: each signal moves the score by 2,
|
|
22
|
+
* prompt size moves it by up to 2, so a one-signal lead is inside what
|
|
23
|
+
* length alone contributes. A lead of two or more is a majority the size
|
|
24
|
+
* term cannot manufacture.
|
|
25
|
+
*/
|
|
26
|
+
conflicted: boolean;
|
|
27
|
+
}
|
|
4
28
|
/**
|
|
5
|
-
* Estimates the capability tier the prompt needs.
|
|
29
|
+
* Estimates the capability tier the prompt needs, and says what it saw.
|
|
6
30
|
*
|
|
7
31
|
* This is a keyword-and-size heuristic, not a judgement about answer quality.
|
|
8
32
|
* Treat it as a hypothesis to validate with your own evaluations before
|
|
9
33
|
* moving down a tier in production.
|
|
10
34
|
*/
|
|
35
|
+
export declare function recommendTierDetailed(prompt: string, tokens: number): TierRecommendation;
|
|
36
|
+
/**
|
|
37
|
+
* The tier alone, unchanged.
|
|
38
|
+
*
|
|
39
|
+
* Kept because it is public API and the 1.x line does not change shapes.
|
|
40
|
+
* Callers that need to know whether the answer is trustworthy reach for
|
|
41
|
+
* `recommendTierDetailed`.
|
|
42
|
+
*/
|
|
11
43
|
export declare function recommendTier(prompt: string, tokens: number): ModelPricing['tier'];
|
|
12
44
|
export interface AdvisoryOptions {
|
|
13
45
|
/** Reference date, used to decide whether a promotional price is live. */
|
package/dist/advisories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisories.d.ts","sourceRoot":"","sources":["../src/advisories.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"advisories.d.ts","sourceRoot":"","sources":["../src/advisories.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAS9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMrD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQrF,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAoBxF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAElF;AAuDD,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,wEAAwE;IACxE,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,EAAE,CA+hBZ"}
|
package/dist/advisories.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { analyzeCachePrefix } from './cache.js';
|
|
2
2
|
import { getMessages } from './i18n/index.js';
|
|
3
3
|
import { COMPLEX_SIGNALS, SIMPLE_SIGNALS } from './phrases.js';
|
|
4
|
-
import { BUNDLED_CATALOGUE, effectivePricing, modelFrom, multipliersFor } from './pricing.js';
|
|
4
|
+
import { BUNDLED_CATALOGUE, effectivePricing, isOffered, modelFrom, multipliersFor, } from './pricing.js';
|
|
5
5
|
import { formatUsd } from './savings.js';
|
|
6
6
|
import { analyzeExamples, findContradictions, findMovableSchema, findRestatedFormat } from './structure.js';
|
|
7
|
-
import {
|
|
7
|
+
import { bandGoverns, estimateTokens } from './tokenizer.js';
|
|
8
|
+
import { bandFor } from './band.js';
|
|
8
9
|
function countSignals(haystack, signals) {
|
|
9
10
|
let count = 0;
|
|
10
11
|
for (const signal of signals)
|
|
@@ -13,15 +14,17 @@ function countSignals(haystack, signals) {
|
|
|
13
14
|
return count;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
|
-
* Estimates the capability tier the prompt needs.
|
|
17
|
+
* Estimates the capability tier the prompt needs, and says what it saw.
|
|
17
18
|
*
|
|
18
19
|
* This is a keyword-and-size heuristic, not a judgement about answer quality.
|
|
19
20
|
* Treat it as a hypothesis to validate with your own evaluations before
|
|
20
21
|
* moving down a tier in production.
|
|
21
22
|
*/
|
|
22
|
-
export function
|
|
23
|
+
export function recommendTierDetailed(prompt, tokens) {
|
|
23
24
|
const haystack = prompt.toLowerCase();
|
|
24
|
-
|
|
25
|
+
const complexSignals = countSignals(haystack, COMPLEX_SIGNALS);
|
|
26
|
+
const simpleSignals = countSignals(haystack, SIMPLE_SIGNALS);
|
|
27
|
+
let score = complexSignals * 2 - simpleSignals * 2;
|
|
25
28
|
if (tokens > 4000)
|
|
26
29
|
score += 2;
|
|
27
30
|
else if (tokens > 1500)
|
|
@@ -30,11 +33,23 @@ export function recommendTier(prompt, tokens) {
|
|
|
30
33
|
score -= 1;
|
|
31
34
|
if (/```|~~~/.test(prompt))
|
|
32
35
|
score += 1;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const tier = score >= 3 ? 'opus' : score >= 0 ? 'sonnet' : 'haiku';
|
|
37
|
+
return {
|
|
38
|
+
tier,
|
|
39
|
+
complexSignals,
|
|
40
|
+
simpleSignals,
|
|
41
|
+
conflicted: complexSignals > 0 && simpleSignals > 0 && Math.abs(complexSignals - simpleSignals) <= 1,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The tier alone, unchanged.
|
|
46
|
+
*
|
|
47
|
+
* Kept because it is public API and the 1.x line does not change shapes.
|
|
48
|
+
* Callers that need to know whether the answer is trustworthy reach for
|
|
49
|
+
* `recommendTierDetailed`.
|
|
50
|
+
*/
|
|
51
|
+
export function recommendTier(prompt, tokens) {
|
|
52
|
+
return recommendTierDetailed(prompt, tokens).tier;
|
|
38
53
|
}
|
|
39
54
|
const TIER_ORDER = {
|
|
40
55
|
/**
|
|
@@ -70,9 +85,10 @@ const TIER_ORDER = {
|
|
|
70
85
|
function cheapestInTier(tier, on, pricing, provider) {
|
|
71
86
|
const candidates = pricing.models.filter((m) => m.tier === tier &&
|
|
72
87
|
m.provider === provider &&
|
|
73
|
-
// Not generally available
|
|
74
|
-
// worse than
|
|
75
|
-
|
|
88
|
+
// Not generally available, or refused outright by the provider:
|
|
89
|
+
// recommending a model the reader cannot call is worse than
|
|
90
|
+
// recommending nothing. Both halves live in `isOffered`.
|
|
91
|
+
isOffered(m));
|
|
76
92
|
if (candidates.length === 0)
|
|
77
93
|
return undefined;
|
|
78
94
|
return candidates.reduce((best, m) => effectivePricing(m, on).inputPerMTok < effectivePricing(best, on).inputPerMTok ? m : best);
|
|
@@ -108,7 +124,18 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
108
124
|
* outright rather than degrading, so there is no partial result to notice.
|
|
109
125
|
*/
|
|
110
126
|
const estimated = count === estimateTokens;
|
|
111
|
-
|
|
127
|
+
/**
|
|
128
|
+
* The band of **this prompt**, not one number for all text.
|
|
129
|
+
*
|
|
130
|
+
* These three hedges — the context window, the cache minimum both ways — are
|
|
131
|
+
* the places an estimate is compared against a hard threshold and the answer
|
|
132
|
+
* stated as fact, so the width of the hedge decides whether the statement is
|
|
133
|
+
* safe. A single 10% was measured on a corpus of thirteen prose files and one
|
|
134
|
+
* each of code, numeric and punctuation, and the estimator is 25% out on a
|
|
135
|
+
* SQL migration and 33% out on a CSV ledger. Hedging a code prompt by ten
|
|
136
|
+
* points was hedging by a third of what it needed.
|
|
137
|
+
*/
|
|
138
|
+
const band = bandFor(optimizedPrompt) / 100;
|
|
112
139
|
/**
|
|
113
140
|
* Whether that band describes **this** model's tokenizer.
|
|
114
141
|
*
|
|
@@ -214,16 +241,36 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
214
241
|
* they have already done.
|
|
215
242
|
*/
|
|
216
243
|
nearMinimum: count === estimateTokens &&
|
|
217
|
-
cache.stablePrefixTokens * (1 -
|
|
244
|
+
cache.stablePrefixTokens * (1 - band) < minTokens,
|
|
218
245
|
}),
|
|
219
246
|
estimatedMonthlyUsd: saving,
|
|
220
247
|
});
|
|
221
248
|
}
|
|
222
249
|
else {
|
|
250
|
+
/**
|
|
251
|
+
* The threshold is derived from this model's own multipliers, not
|
|
252
|
+
* quoted.
|
|
253
|
+
*
|
|
254
|
+
* Break-even is where a cached token costs exactly what an uncached one
|
|
255
|
+
* does: `h*read + (1-h)*write = 1`, so `h = (1 - write) / (read -
|
|
256
|
+
* write)`. At Anthropic's 1.25 and 0.1 that is 21.74%, and the sentence
|
|
257
|
+
* this replaces said 28% for every model in the catalogue.
|
|
258
|
+
*
|
|
259
|
+
* A write multiplier of 1 has no such threshold. Writing then costs
|
|
260
|
+
* exactly what not caching costs, so caching cannot lose money at any
|
|
261
|
+
* hit rate, and `(1 - 1) / (r - 1)` is 0 rather than a small number.
|
|
262
|
+
* Eight of the eighteen models are that shape, and the fixed sentence
|
|
263
|
+
* advised all eight to consider turning caching off.
|
|
264
|
+
*/
|
|
265
|
+
const write = rates.cacheWrite5m;
|
|
223
266
|
advisories.push({
|
|
224
267
|
id: 'prompt-caching-not-worth-it',
|
|
225
268
|
severity: 'info',
|
|
226
|
-
...t.advisories.promptCachingNotWorthIt(
|
|
269
|
+
...t.advisories.promptCachingNotWorthIt({
|
|
270
|
+
readPct: Math.round(rates.cacheRead * 100),
|
|
271
|
+
writePct: Math.round(write * 100),
|
|
272
|
+
breakEvenPct: write <= 1 ? null : Math.round(((1 - write) / (rates.cacheRead - write)) * 1000) / 10,
|
|
273
|
+
}),
|
|
227
274
|
estimatedMonthlyUsd: null,
|
|
228
275
|
});
|
|
229
276
|
}
|
|
@@ -248,7 +295,7 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
248
295
|
* is its own kind of dishonesty.
|
|
249
296
|
*/
|
|
250
297
|
couldReachMinimum: count === estimateTokens &&
|
|
251
|
-
cache.stablePrefixTokens * (1 +
|
|
298
|
+
cache.stablePrefixTokens * (1 + band) >= minTokens,
|
|
252
299
|
}),
|
|
253
300
|
estimatedMonthlyUsd: null,
|
|
254
301
|
});
|
|
@@ -329,7 +376,33 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
329
376
|
});
|
|
330
377
|
}
|
|
331
378
|
// --- Recommended model ---
|
|
332
|
-
const
|
|
379
|
+
const recommendation = recommendTierDetailed(optimizedPrompt, tokensAfter);
|
|
380
|
+
const suggestedTier = recommendation.tier;
|
|
381
|
+
/**
|
|
382
|
+
* When the prompt argues with itself about which tier it needs, say so and
|
|
383
|
+
* recommend nothing.
|
|
384
|
+
*
|
|
385
|
+
* The score subtracts one side from the other, so a prompt demanding depth
|
|
386
|
+
* and brevity in equal measure cancels to zero and lands on `sonnet` — the
|
|
387
|
+
* identical answer to a prompt with no signals at all. Reporting two opposite
|
|
388
|
+
* situations with one number is the failure; the fix is not a better score,
|
|
389
|
+
* it is declining to pretend there is one.
|
|
390
|
+
*
|
|
391
|
+
* This returns before the downgrade block rather than alongside it, because a
|
|
392
|
+
* saving computed from a tier the heuristic cannot stand behind is a figure
|
|
393
|
+
* with a dollar sign on it and nothing underneath.
|
|
394
|
+
*/
|
|
395
|
+
if (recommendation.conflicted) {
|
|
396
|
+
advisories.push({
|
|
397
|
+
id: 'tier-signals-conflict',
|
|
398
|
+
severity: 'info',
|
|
399
|
+
...t.advisories.tierSignalsConflict({
|
|
400
|
+
complexSignals: recommendation.complexSignals,
|
|
401
|
+
simpleSignals: recommendation.simpleSignals,
|
|
402
|
+
}),
|
|
403
|
+
estimatedMonthlyUsd: null,
|
|
404
|
+
});
|
|
405
|
+
}
|
|
333
406
|
/**
|
|
334
407
|
* A model whose capability nobody recorded is never told it is overpowered.
|
|
335
408
|
*
|
|
@@ -347,14 +420,29 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
347
420
|
* and a condition that forgets it both have to happen before a model of
|
|
348
421
|
* unrecorded capability is told it is overpowered.
|
|
349
422
|
*/
|
|
350
|
-
if (model.tier !== 'unknown' && TIER_ORDER[suggestedTier] < TIER_ORDER[model.tier]) {
|
|
423
|
+
if (!recommendation.conflicted && model.tier !== 'unknown' && TIER_ORDER[suggestedTier] < TIER_ORDER[model.tier]) {
|
|
351
424
|
const candidate = cheapestInTier(suggestedTier, on, pricing, model.provider);
|
|
352
425
|
if (candidate) {
|
|
353
426
|
const candidatePricing = effectivePricing(candidate, on);
|
|
427
|
+
/**
|
|
428
|
+
* The candidate's own batch multiplier, not a constant.
|
|
429
|
+
*
|
|
430
|
+
* This line read `usage.batchEligible ? 0.5 : 1`, while the current
|
|
431
|
+
* model's cost twenty lines above already used `rates.batch ?? 1` for
|
|
432
|
+
* exactly the reason stated there: a discount that is not per model is an
|
|
433
|
+
* invented saving rather than an imprecise one.
|
|
434
|
+
*
|
|
435
|
+
* Three models in the catalogue carry `batch: null` — kimi-k2,
|
|
436
|
+
* deepseek-v3 and grok-4 — which means no batch API at all. Halving their
|
|
437
|
+
* cost offered money that cannot be bought at any price, made the
|
|
438
|
+
* downgrade look twice as good as it is, and could turn a saving that was
|
|
439
|
+
* negative into one this advisory reports.
|
|
440
|
+
*/
|
|
441
|
+
const candidateBatch = usage.batchEligible ? (multipliersFor(candidate).batch ?? 1) : 1;
|
|
354
442
|
const candidateMonthly = ((tokensAfter / 1_000_000) * candidatePricing.inputPerMTok +
|
|
355
443
|
(usage.avgOutputTokens / 1_000_000) * candidatePricing.outputPerMTok) *
|
|
356
444
|
usage.callsPerMonth *
|
|
357
|
-
|
|
445
|
+
candidateBatch;
|
|
358
446
|
const saving = monthlyInputUsd + monthlyOutputUsd - candidateMonthly;
|
|
359
447
|
if (saving > 0) {
|
|
360
448
|
advisories.push({
|
|
@@ -467,6 +555,28 @@ export function buildAdvisories(optimizedPrompt, tokensAfter, usage, options = {
|
|
|
467
555
|
estimatedMonthlyUsd: saving > 0 ? saving : null,
|
|
468
556
|
});
|
|
469
557
|
}
|
|
558
|
+
if (model.retired) {
|
|
559
|
+
/**
|
|
560
|
+
* The most severe thing this function can say about a model, and it is
|
|
561
|
+
* placed before the promotional note deliberately: a price that is about to
|
|
562
|
+
* change matters less than a model that cannot be called at all.
|
|
563
|
+
*
|
|
564
|
+
* Not suppressed when the reader asked for this model by name. They asked
|
|
565
|
+
* because something in their world still says this id, and the whole value
|
|
566
|
+
* of the answer is that it no longer works.
|
|
567
|
+
*/
|
|
568
|
+
advisories.push({
|
|
569
|
+
id: 'model-retired',
|
|
570
|
+
severity: 'warning',
|
|
571
|
+
...t.advisories.modelRetired({
|
|
572
|
+
modelName: model.displayName,
|
|
573
|
+
modelId: model.id,
|
|
574
|
+
on: model.retired.on,
|
|
575
|
+
because: model.retired.because,
|
|
576
|
+
}),
|
|
577
|
+
estimatedMonthlyUsd: null,
|
|
578
|
+
});
|
|
579
|
+
}
|
|
470
580
|
if (promoApplied && model.promo) {
|
|
471
581
|
advisories.push({
|
|
472
582
|
id: 'promo-pricing',
|
package/dist/advisories.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advisories.js","sourceRoot":"","sources":["../src/advisories.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"advisories.js","sourceRoot":"","sources":["../src/advisories.ts"],"names":[],"mappings":"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"}
|
package/dist/band.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The error band Trazum is entitled to print about a given piece of text.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this exists
|
|
5
|
+
*
|
|
6
|
+
* For a long time every report said `±10%`, everywhere, about everything. That
|
|
7
|
+
* number came from a corpus of twenty-one samples that held **thirteen files of
|
|
8
|
+
* Latin prose and exactly one each of code, numeric and punctuation** — and
|
|
9
|
+
* those single files were the set the estimator's constants had been fitted to.
|
|
10
|
+
* So the published band was not a measurement of the estimator. It was a
|
|
11
|
+
* measurement of its own training set.
|
|
12
|
+
*
|
|
13
|
+
* Seven ordinary samples in the thin classes broke it. Measured against
|
|
14
|
+
* Anthropic's counting endpoint, the same estimator that is 4.6% out on prose
|
|
15
|
+
* is **24.9% out on a SQL migration** and **32.5% out on a CSV ledger**. Telling
|
|
16
|
+
* somebody `±10%` about their ledger was telling them a number that is wrong
|
|
17
|
+
* about their prompt specifically.
|
|
18
|
+
*
|
|
19
|
+
* ## Why it does not name a text type
|
|
20
|
+
*
|
|
21
|
+
* The obvious design is a classifier — prose, code, few-shot, punctuation — and
|
|
22
|
+
* a band per class. The corpus says it cannot be built. Measured by character
|
|
23
|
+
* mix, code and punctuation **overlap completely**: `code-sql` is 7.7% symbols
|
|
24
|
+
* and `code-heavy` 15.6%, while `punctuation-markup` is 17.5% and
|
|
25
|
+
* `punctuation-heavy` 29.7%. Two of the three few-shot samples are
|
|
26
|
+
* indistinguishable from prose. A classifier over those would be a guess
|
|
27
|
+
* wearing a measurement's name, and it would hand out the wrong band precisely
|
|
28
|
+
* where the band matters most.
|
|
29
|
+
*
|
|
30
|
+
* So this does not classify. It sorts text into the **buckets the evidence
|
|
31
|
+
* actually separates**, and where two classes overlap it gives the worse of
|
|
32
|
+
* their bands. An overstated uncertainty costs a reader some confidence; an
|
|
33
|
+
* understated one tells them a wrong number and lets them act on it.
|
|
34
|
+
*
|
|
35
|
+
* ## What holds it
|
|
36
|
+
*
|
|
37
|
+
* `token-band.test.js` runs every corpus sample through `bandFor` and requires
|
|
38
|
+
* the sample's own measured error to be inside the band it was given. That is
|
|
39
|
+
* the whole promise, and it cannot be satisfied by tuning the thresholds: a
|
|
40
|
+
* sample sorted into a friendlier bucket gets a smaller band and fails.
|
|
41
|
+
*
|
|
42
|
+
* The figures below are derived from the fixture by the same test, which fails
|
|
43
|
+
* when they drift. They are written here rather than imported because this file
|
|
44
|
+
* ships and the fixture does not.
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* The buckets, worst measured error first.
|
|
48
|
+
*
|
|
49
|
+
* Every number is `Math.ceil` of the worst sample in that bucket, from
|
|
50
|
+
* `test/fixtures/token-ground-truth.json` — Anthropic's, because that is the
|
|
51
|
+
* tokenizer this estimator was built for and the only one whose fixture governs
|
|
52
|
+
* a published claim. A DeepSeek or Mistral prompt is further out still, and
|
|
53
|
+
* `providerBandCaveat` is what says so.
|
|
54
|
+
*/
|
|
55
|
+
export declare const BANDS: {
|
|
56
|
+
/** Digit-dominant: ledgers, tables, exports. The worst the estimator does. */
|
|
57
|
+
readonly numeric: 33;
|
|
58
|
+
/** Symbol-rich: code, markup, anything a merge table covers badly. */
|
|
59
|
+
readonly symbolic: 26;
|
|
60
|
+
/**
|
|
61
|
+
* CJK, all three scripts.
|
|
62
|
+
*
|
|
63
|
+
* Was 10 and is 4, and the difference is the second Korean sample rather than
|
|
64
|
+
* anything in this file. Hangul had been charged a placeholder that nothing
|
|
65
|
+
* measured; one sample moved it to within ten points and two moved it to
|
|
66
|
+
* within three. The class's worst went from 10.6% to 3.2% and its standard
|
|
67
|
+
* deviation from 4.0 to 1.0.
|
|
68
|
+
*/
|
|
69
|
+
readonly cjk: 4;
|
|
70
|
+
/**
|
|
71
|
+
* Latin prose and few-shot blocks made of it. What most prompts are.
|
|
72
|
+
*
|
|
73
|
+
* Widened from 5 by `numeric-matrix`, a confusion matrix whose class labels
|
|
74
|
+
* make letters the dominant class: composition put it here, its error came
|
|
75
|
+
* out at 5.6%, and the band follows the measurement rather than the other way
|
|
76
|
+
* round. Eighteen samples, deviation 1.4 points.
|
|
77
|
+
*/
|
|
78
|
+
readonly prose: 6;
|
|
79
|
+
};
|
|
80
|
+
export type BandBucket = keyof typeof BANDS;
|
|
81
|
+
/** The bucket a piece of text falls in, by the composition the corpus separates on. */
|
|
82
|
+
export declare function bucketFor(text: string): BandBucket;
|
|
83
|
+
/**
|
|
84
|
+
* The band, as a percentage, that may be printed about this text.
|
|
85
|
+
*
|
|
86
|
+
* Never a single number for all text again. A caller that wants one figure for
|
|
87
|
+
* a mixed report should take the widest band across the texts it covers, not an
|
|
88
|
+
* average: averaging two uncertainties produces a third that describes neither.
|
|
89
|
+
*/
|
|
90
|
+
export declare function bandFor(text: string): number;
|
|
91
|
+
/**
|
|
92
|
+
* Whether the published band applies to a model at all.
|
|
93
|
+
*
|
|
94
|
+
* It does not, and this is the sentence that has been missing. The estimator is
|
|
95
|
+
* calibrated on Claude's tokenizer, and the same 47 samples measured against
|
|
96
|
+
* DeepSeek's own counter came out **94.5% wrong** at worst and against
|
|
97
|
+
* Mistral's **103.1%**. Trazum prices seven providers; the band is one
|
|
98
|
+
* provider's.
|
|
99
|
+
*
|
|
100
|
+
* Returns null when the model is one the band was measured on, and the provider
|
|
101
|
+
* id otherwise, so a caller can say which foreign tokenizer it is estimating
|
|
102
|
+
* against rather than printing a figure that belongs to a different one.
|
|
103
|
+
*/
|
|
104
|
+
export declare function foreignTokenizer(provider: string | null): string | null;
|
|
105
|
+
/**
|
|
106
|
+
* The worst error measured against a provider's own tokenizer, where anybody
|
|
107
|
+
* has run it.
|
|
108
|
+
*
|
|
109
|
+
* Two entries, and the emptiness of the rest is the point. `foreignTokenizer`
|
|
110
|
+
* could always say *this is not Claude*; what it could not say is how far off.
|
|
111
|
+
* A hedge with no figure reads as a formality, and a reader discounts it — so
|
|
112
|
+
* where the corpus has been run against the family's own counter, the report
|
|
113
|
+
* says the number, and where it has not, it says nobody has measured rather
|
|
114
|
+
* than borrowing one of these.
|
|
115
|
+
*
|
|
116
|
+
* Every value is the worst of the 47 samples in
|
|
117
|
+
* `test/fixtures/token-ground-truth.<provider>.json`, and
|
|
118
|
+
* `token-band.test.js` recomputes both from the fixtures and fails on drift.
|
|
119
|
+
* Written here rather than imported because this file ships and the fixtures
|
|
120
|
+
* do not.
|
|
121
|
+
*/
|
|
122
|
+
export declare const MEASURED_FOREIGN_ERROR_PCT: Readonly<Record<string, number>>;
|
|
123
|
+
/**
|
|
124
|
+
* How far out the estimator has been measured against this provider, or null.
|
|
125
|
+
*
|
|
126
|
+
* Null means unmeasured, never zero: a family nobody has run is an open
|
|
127
|
+
* question, and answering it with a number would be the exact fault this whole
|
|
128
|
+
* file exists to undo.
|
|
129
|
+
*/
|
|
130
|
+
export declare function measuredForeignError(provider: string | null): number | null;
|
|
131
|
+
//# sourceMappingURL=band.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"band.d.ts","sourceRoot":"","sources":["../src/band.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK;IAChB,8EAA8E;aAC9E,OAAO,EAAE,EAAE;IACX,sEAAsE;aACtE,QAAQ,EAAE,EAAE;IACZ;;;;;;;;OAQG;aACH,GAAG,EAAE,CAAC;IACN;;;;;;;OAOG;aACH,KAAK,EAAE,CAAC;CACA,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,KAAK,CAAC;AAwC5C,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CA0BlD;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEvE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKvE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAG3E"}
|