@trazum/core 1.80.1 → 1.82.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 +103 -16
- 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/claude-code.d.ts +28 -0
- package/dist/claude-code.d.ts.map +1 -1
- package/dist/claude-code.js +25 -1
- package/dist/claude-code.js.map +1 -1
- 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 +26 -20
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +9 -3
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/types.d.ts +43 -1
- package/dist/i18n/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.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/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 +1 -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 +132 -15
- package/src/band.ts +213 -0
- package/src/claude-code.ts +53 -1
- package/src/conform.ts +100 -1
- package/src/helicone.ts +227 -0
- package/src/i18n/en.ts +27 -20
- package/src/i18n/es.ts +10 -3
- package/src/i18n/types.ts +45 -1
- package/src/index.ts +17 -1
- package/src/litellm.ts +243 -0
- package/src/measured-profile.ts +26 -2
- package/src/schemas.ts +36 -0
- package/src/tokenizer.ts +101 -51
- package/src/types.ts +1 -0
- package/src/verdict-bridge.ts +200 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helicone's request export, read as a usage log.
|
|
3
|
+
*
|
|
4
|
+
* The third converter in the pattern `from-claude-code` started: a pure
|
|
5
|
+
* function turns one tool's export into Trazum's usage-log records, and every
|
|
6
|
+
* door prices it from there. Helicone sits as a proxy in front of the provider
|
|
7
|
+
* and keeps every request it saw, so a team using it already has the export.
|
|
8
|
+
*
|
|
9
|
+
* **The format is derived, not guessed.** The columns below are the SELECT
|
|
10
|
+
* that builds Helicone's own request table — `web/lib/api/request/request.ts`
|
|
11
|
+
* in Helicone/helicone — and the response shape its `POST /v1/request/query`
|
|
12
|
+
* endpoint documents. A converter written from memory of an API is a converter
|
|
13
|
+
* that silently mis-reads somebody's bill.
|
|
14
|
+
*
|
|
15
|
+
* ## The model, and why it takes three columns to answer
|
|
16
|
+
*
|
|
17
|
+
* Helicone carries `request_model`, `model_override` and `response_model`, and
|
|
18
|
+
* they can disagree: the override exists precisely because a proxy can send a
|
|
19
|
+
* different model than the caller asked for, and the response says what
|
|
20
|
+
* actually answered. **The response wins**, then the override, then the
|
|
21
|
+
* request — the bill is about what was billed, not what was intended — and
|
|
22
|
+
* `modelDisagreements` counts the rows where they differed so a reader can see
|
|
23
|
+
* the substitution happened rather than discover it in a total.
|
|
24
|
+
*
|
|
25
|
+
* ## What deliberately does not cross
|
|
26
|
+
*
|
|
27
|
+
* A Helicone row carries the request body and the response body — the prompt
|
|
28
|
+
* and the completion — and `request_user_id`, which is an email address in
|
|
29
|
+
* Helicone's own documented example. **None of it is read.** The converter
|
|
30
|
+
* names the fields it takes and takes nothing else, and a fixture plants a
|
|
31
|
+
* marker in each and greps the whole output.
|
|
32
|
+
*
|
|
33
|
+
* ## What it refuses to invent
|
|
34
|
+
*
|
|
35
|
+
* There is no cache-token split anywhere on the row: `cache_enabled` is a flag
|
|
36
|
+
* on the analytics table. A converted record therefore carries no cache fields
|
|
37
|
+
* and the caching questions come back `cannot-tell` rather than answered from
|
|
38
|
+
* a guess — the same refusal `from-otel` and `from-litellm` make.
|
|
39
|
+
*
|
|
40
|
+
* There is no conversation identity either. `request_id` is one call, so the
|
|
41
|
+
* records carry no `session` and the conversation-shaped findings stay
|
|
42
|
+
* unavailable. A custom property can carry one, and then it is there because
|
|
43
|
+
* the operator put it there — never because this file inferred it.
|
|
44
|
+
*/
|
|
45
|
+
/** One converted record, shaped exactly as `parseUsageLine` reads it. */
|
|
46
|
+
export interface HeliconeRecord {
|
|
47
|
+
model: string;
|
|
48
|
+
ts?: string;
|
|
49
|
+
label?: string;
|
|
50
|
+
usage: {
|
|
51
|
+
input_tokens: number;
|
|
52
|
+
output_tokens: number;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export interface HeliconeConversion {
|
|
56
|
+
records: HeliconeRecord[];
|
|
57
|
+
/** Rows that were requests and converted. */
|
|
58
|
+
rows: number;
|
|
59
|
+
/** Rows naming no model in any of the three columns: counted, never guessed. */
|
|
60
|
+
unnamedModel: number;
|
|
61
|
+
/**
|
|
62
|
+
* Rows where the model that answered was not the model that was asked for.
|
|
63
|
+
*
|
|
64
|
+
* The response's model is what the bill rests on, and a proxy substituting
|
|
65
|
+
* one model for another is a fact worth seeing rather than a difference
|
|
66
|
+
* that only shows up as an unexplained total.
|
|
67
|
+
*/
|
|
68
|
+
modelDisagreements: number;
|
|
69
|
+
/** Rows carrying no token counts at all — a logged request nobody can price. */
|
|
70
|
+
noTokens: number;
|
|
71
|
+
/** Rows Helicone served from its cache, with no token split behind the flag. */
|
|
72
|
+
cacheFlagged: number;
|
|
73
|
+
/** Lines or documents that did not parse as JSON at all. */
|
|
74
|
+
unparseable: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert a Helicone request export.
|
|
78
|
+
*
|
|
79
|
+
* Accepts a JSON array of rows, a single row, `{ data: [...] }` as the query
|
|
80
|
+
* endpoint returns it, or newline-delimited rows. Pure over its input.
|
|
81
|
+
*/
|
|
82
|
+
export declare function heliconeRecords(text: string): HeliconeConversion;
|
|
83
|
+
/**
|
|
84
|
+
* Whether a file looks like a Helicone request export, by shape.
|
|
85
|
+
*
|
|
86
|
+
* Deliberately narrow: a token column beside one of the names only Helicone's
|
|
87
|
+
* own SELECT produces. A looser test would claim an OpenAI usage response or a
|
|
88
|
+
* LiteLLM spend log — both of which also carry `prompt_tokens` — and refuse it
|
|
89
|
+
* in this file's words instead of letting the code that can read it try.
|
|
90
|
+
*/
|
|
91
|
+
export declare function looksLikeHelicone(text: string, prefixBytes?: number): boolean;
|
|
92
|
+
//# sourceMappingURL=helicone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helicone.d.ts","sourceRoot":"","sources":["../src/helicone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAkDD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA2EhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,OAAO,CAS3E"}
|
package/dist/helicone.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helicone's request export, read as a usage log.
|
|
3
|
+
*
|
|
4
|
+
* The third converter in the pattern `from-claude-code` started: a pure
|
|
5
|
+
* function turns one tool's export into Trazum's usage-log records, and every
|
|
6
|
+
* door prices it from there. Helicone sits as a proxy in front of the provider
|
|
7
|
+
* and keeps every request it saw, so a team using it already has the export.
|
|
8
|
+
*
|
|
9
|
+
* **The format is derived, not guessed.** The columns below are the SELECT
|
|
10
|
+
* that builds Helicone's own request table — `web/lib/api/request/request.ts`
|
|
11
|
+
* in Helicone/helicone — and the response shape its `POST /v1/request/query`
|
|
12
|
+
* endpoint documents. A converter written from memory of an API is a converter
|
|
13
|
+
* that silently mis-reads somebody's bill.
|
|
14
|
+
*
|
|
15
|
+
* ## The model, and why it takes three columns to answer
|
|
16
|
+
*
|
|
17
|
+
* Helicone carries `request_model`, `model_override` and `response_model`, and
|
|
18
|
+
* they can disagree: the override exists precisely because a proxy can send a
|
|
19
|
+
* different model than the caller asked for, and the response says what
|
|
20
|
+
* actually answered. **The response wins**, then the override, then the
|
|
21
|
+
* request — the bill is about what was billed, not what was intended — and
|
|
22
|
+
* `modelDisagreements` counts the rows where they differed so a reader can see
|
|
23
|
+
* the substitution happened rather than discover it in a total.
|
|
24
|
+
*
|
|
25
|
+
* ## What deliberately does not cross
|
|
26
|
+
*
|
|
27
|
+
* A Helicone row carries the request body and the response body — the prompt
|
|
28
|
+
* and the completion — and `request_user_id`, which is an email address in
|
|
29
|
+
* Helicone's own documented example. **None of it is read.** The converter
|
|
30
|
+
* names the fields it takes and takes nothing else, and a fixture plants a
|
|
31
|
+
* marker in each and greps the whole output.
|
|
32
|
+
*
|
|
33
|
+
* ## What it refuses to invent
|
|
34
|
+
*
|
|
35
|
+
* There is no cache-token split anywhere on the row: `cache_enabled` is a flag
|
|
36
|
+
* on the analytics table. A converted record therefore carries no cache fields
|
|
37
|
+
* and the caching questions come back `cannot-tell` rather than answered from
|
|
38
|
+
* a guess — the same refusal `from-otel` and `from-litellm` make.
|
|
39
|
+
*
|
|
40
|
+
* There is no conversation identity either. `request_id` is one call, so the
|
|
41
|
+
* records carry no `session` and the conversation-shaped findings stay
|
|
42
|
+
* unavailable. A custom property can carry one, and then it is there because
|
|
43
|
+
* the operator put it there — never because this file inferred it.
|
|
44
|
+
*/
|
|
45
|
+
const asObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
46
|
+
? value
|
|
47
|
+
: null;
|
|
48
|
+
const tryParse = (text) => {
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(text);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const asCount = (value) => {
|
|
57
|
+
const n = typeof value === 'string' ? Number(value) : value;
|
|
58
|
+
return typeof n === 'number' && Number.isFinite(n) && n >= 0 ? n : undefined;
|
|
59
|
+
};
|
|
60
|
+
const asName = (value) => typeof value === 'string' && value.trim() !== '' ? value.trim() : null;
|
|
61
|
+
/**
|
|
62
|
+
* The label, from Helicone's custom properties.
|
|
63
|
+
*
|
|
64
|
+
* `request_properties` is the documented place for whatever a team tags its
|
|
65
|
+
* calls with, and the keys are theirs. Trazum looks for the ones a workload
|
|
66
|
+
* would plausibly be named by, in order, and takes the first — never joins
|
|
67
|
+
* several, because a workload has one name in a bill.
|
|
68
|
+
*/
|
|
69
|
+
function labelOf(row) {
|
|
70
|
+
const properties = asObject(row.request_properties) ?? asObject(row.properties);
|
|
71
|
+
if (properties === null)
|
|
72
|
+
return undefined;
|
|
73
|
+
for (const key of ['Helicone-Property-Label', 'label', 'workload', 'app', 'environment']) {
|
|
74
|
+
const found = asName(properties[key]);
|
|
75
|
+
if (found !== null)
|
|
76
|
+
return found;
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
/** The request's creation time as an ISO instant, or undefined. */
|
|
81
|
+
function timeOf(row) {
|
|
82
|
+
const raw = row.request_created_at ?? row.created_at ?? row.response_created_at;
|
|
83
|
+
if (typeof raw !== 'string' && typeof raw !== 'number')
|
|
84
|
+
return undefined;
|
|
85
|
+
const ms = typeof raw === 'number' ? raw : Date.parse(raw);
|
|
86
|
+
if (!Number.isFinite(ms))
|
|
87
|
+
return undefined;
|
|
88
|
+
return new Date(ms).toISOString();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Convert a Helicone request export.
|
|
92
|
+
*
|
|
93
|
+
* Accepts a JSON array of rows, a single row, `{ data: [...] }` as the query
|
|
94
|
+
* endpoint returns it, or newline-delimited rows. Pure over its input.
|
|
95
|
+
*/
|
|
96
|
+
export function heliconeRecords(text) {
|
|
97
|
+
const out = {
|
|
98
|
+
records: [],
|
|
99
|
+
rows: 0,
|
|
100
|
+
unnamedModel: 0,
|
|
101
|
+
modelDisagreements: 0,
|
|
102
|
+
noTokens: 0,
|
|
103
|
+
cacheFlagged: 0,
|
|
104
|
+
unparseable: 0,
|
|
105
|
+
};
|
|
106
|
+
const rows = [];
|
|
107
|
+
const whole = tryParse(text);
|
|
108
|
+
if (whole !== undefined) {
|
|
109
|
+
if (Array.isArray(whole))
|
|
110
|
+
rows.push(...whole);
|
|
111
|
+
else {
|
|
112
|
+
const doc = asObject(whole);
|
|
113
|
+
if (doc !== null && Array.isArray(doc.data))
|
|
114
|
+
rows.push(...doc.data);
|
|
115
|
+
else if (doc !== null)
|
|
116
|
+
rows.push(doc);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
for (const line of text.split('\n')) {
|
|
121
|
+
if (line.trim() === '')
|
|
122
|
+
continue;
|
|
123
|
+
const parsed = tryParse(line);
|
|
124
|
+
if (parsed === undefined)
|
|
125
|
+
out.unparseable += 1;
|
|
126
|
+
else if (Array.isArray(parsed))
|
|
127
|
+
rows.push(...parsed);
|
|
128
|
+
else
|
|
129
|
+
rows.push(parsed);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
for (const raw of rows) {
|
|
133
|
+
const row = asObject(raw);
|
|
134
|
+
if (row === null)
|
|
135
|
+
continue;
|
|
136
|
+
const input = asCount(row.prompt_tokens);
|
|
137
|
+
const output = asCount(row.completion_tokens);
|
|
138
|
+
// A request row is one carrying at least one token column. Anything else
|
|
139
|
+
// in the same file is not a call and is skipped rather than recorded as a
|
|
140
|
+
// zero, which would be a call nobody made.
|
|
141
|
+
if (input === undefined && output === undefined)
|
|
142
|
+
continue;
|
|
143
|
+
out.rows += 1;
|
|
144
|
+
if (input === 0 && output === 0)
|
|
145
|
+
out.noTokens += 1;
|
|
146
|
+
if (row.cache_enabled === true || row.cache_enabled === 1 || row.cache_enabled === '1') {
|
|
147
|
+
out.cacheFlagged += 1;
|
|
148
|
+
}
|
|
149
|
+
/*
|
|
150
|
+
The response first, and this order is the whole point of counting the
|
|
151
|
+
disagreement. A proxy that substituted a model billed for the model that
|
|
152
|
+
answered, so that is what a bill has to price; taking the requested one
|
|
153
|
+
would report the intention and call it the cost.
|
|
154
|
+
*/
|
|
155
|
+
const answered = asName(row.response_model);
|
|
156
|
+
const overridden = asName(row.model_override);
|
|
157
|
+
const requested = asName(row.request_model);
|
|
158
|
+
const model = answered ?? overridden ?? requested;
|
|
159
|
+
if (model === null) {
|
|
160
|
+
out.unnamedModel += 1;
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (requested !== null && answered !== null && requested !== answered) {
|
|
164
|
+
out.modelDisagreements += 1;
|
|
165
|
+
}
|
|
166
|
+
const ts = timeOf(row);
|
|
167
|
+
const label = labelOf(row);
|
|
168
|
+
out.records.push({
|
|
169
|
+
model,
|
|
170
|
+
...(ts !== undefined ? { ts } : {}),
|
|
171
|
+
...(label !== undefined ? { label } : {}),
|
|
172
|
+
usage: { input_tokens: input ?? 0, output_tokens: output ?? 0 },
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return out;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Whether a file looks like a Helicone request export, by shape.
|
|
179
|
+
*
|
|
180
|
+
* Deliberately narrow: a token column beside one of the names only Helicone's
|
|
181
|
+
* own SELECT produces. A looser test would claim an OpenAI usage response or a
|
|
182
|
+
* LiteLLM spend log — both of which also carry `prompt_tokens` — and refuse it
|
|
183
|
+
* in this file's words instead of letting the code that can read it try.
|
|
184
|
+
*/
|
|
185
|
+
export function looksLikeHelicone(text, prefixBytes = 8192) {
|
|
186
|
+
const head = text.slice(0, prefixBytes);
|
|
187
|
+
if (!head.includes('prompt_tokens') && !head.includes('completion_tokens'))
|
|
188
|
+
return false;
|
|
189
|
+
return (head.includes('"request_created_at"') ||
|
|
190
|
+
head.includes('"request_model"') ||
|
|
191
|
+
head.includes('"response_model"') ||
|
|
192
|
+
head.includes('"request_properties"'));
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=helicone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helicone.js","sourceRoot":"","sources":["../src/helicone.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,iFAAiF;AACjF,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,iFAAiF;AACjF,eAAO,MAAM,EAAE,EAAE,YAoRhB,CAAC"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -60,7 +60,7 @@ export const en = {
|
|
|
60
60
|
suspiciousShrink: (retainedPct) => `The result keeps only ${retainedPct}% of the tokens. That looks like a summary rather than compression: review it by hand before using it.`,
|
|
61
61
|
},
|
|
62
62
|
suggest: {
|
|
63
|
-
'not-found': () => 'the quoted phrase is not in the prompt
|
|
63
|
+
'not-found': () => 'the quoted phrase is not in the prompt: the model paraphrased what it was copying',
|
|
64
64
|
'touches-protected': () => 'it would edit code, a URL, a placeholder or a tag, which are copied verbatim',
|
|
65
65
|
'introduces-protected': () => 'the replacement adds a placeholder or URL that was not there',
|
|
66
66
|
'no-saving': () => 'it is no shorter than what it replaces',
|
|
@@ -71,10 +71,10 @@ export const en = {
|
|
|
71
71
|
* Three shapes, not two, because *"how wrong might this estimate be"* has
|
|
72
72
|
* three answers and only two were written down.
|
|
73
73
|
*
|
|
74
|
-
* The count is exact
|
|
75
|
-
* estimate on the family the estimator was measured against
|
|
74
|
+
* The count is exact, and then the window verdict is a fact. The count is an
|
|
75
|
+
* estimate on the family the estimator was measured against, and then the
|
|
76
76
|
* margin is known and the verdict is a probability. Or the count is an
|
|
77
|
-
* estimate on a family nobody has measured
|
|
77
|
+
* estimate on a family nobody has measured, and then the margin itself is
|
|
78
78
|
* the unknown, which is neither of the first two and used to be told as the
|
|
79
79
|
* second.
|
|
80
80
|
*
|
|
@@ -92,33 +92,35 @@ export const en = {
|
|
|
92
92
|
detail: !uncertain
|
|
93
93
|
? `The optimised prompt is ~${n(tokens)} tokens and ${modelName} accepts ${n(contextWindow)}. The call will fail: split the content or move to a model with a larger window.`
|
|
94
94
|
: bandApplies
|
|
95
|
-
? `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}. That count is an estimate and it is close to the line, so the call will probably fail but might not
|
|
96
|
-
: `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which is over. That count is an estimate, and the estimator's error was measured against Claude's tokenizer
|
|
95
|
+
? `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}. That count is an estimate and it is close to the line, so the call will probably fail but might not. Settle it with --exact-tokens before rewriting anything. The counting endpoint is free. If it does exceed the window, split the content or move to a model with a larger one.`
|
|
96
|
+
: `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which is over. That count is an estimate, and the estimator's error was measured against Claude's tokenizer rather than ${modelName}'s, so how far over it really is cannot be said from here. Trazum will not tell you the call fails on a number it has not measured for this family. Count with your provider's own tooling before rewriting anything.`,
|
|
97
97
|
}),
|
|
98
98
|
contextNearLimit: ({ tokens, modelName, contextWindow, bandApplies }) => ({
|
|
99
99
|
title: 'The prompt may not fit in the context window',
|
|
100
100
|
detail: bandApplies
|
|
101
|
-
? `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which fits
|
|
102
|
-
: `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which fits on the estimate. This warning is raised because the estimator's measured error
|
|
101
|
+
? `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which fits, but that count is an estimate and its error range reaches past the window, so the real prompt may not. A call that exceeds the window fails outright rather than degrading, and nothing else here warns about it. Confirm with --exact-tokens; the counting endpoint is free.`
|
|
102
|
+
: `The optimised prompt is ~${n(tokens)} tokens against ${modelName}'s ${n(contextWindow)}, which fits on the estimate. This warning is raised because the estimator's measured error, against Claude's tokenizer rather than ${modelName}'s, would reach past the window, and nobody has measured what that error is on this family. A call that exceeds the window fails outright rather than degrading. Count with your provider's own tooling before relying on the margin.`,
|
|
103
103
|
}),
|
|
104
104
|
promptCaching: ({ placeholder, prefixTokens, totalTokens, minTokens, modelName, hitRatePct, readPct, writePct, explicit, nearMinimum, }) => {
|
|
105
105
|
const scope = placeholder
|
|
106
|
-
? `The stable prefix
|
|
106
|
+
? `The stable prefix (everything before the first placeholder ${placeholder}) is ~${n(prefixTokens)} of the prompt's ${n(totalTokens)} tokens, and clears ${modelName}'s ${n(minTokens)}-token cacheable minimum.`
|
|
107
107
|
: `The prompt has no variable placeholders, so the whole thing is a cacheable prefix and it clears ${modelName}'s ${n(minTokens)}-token minimum.`;
|
|
108
108
|
const how = explicit
|
|
109
109
|
? 'Put the cache marker at the end of the stable prefix: any byte that changes before the cut invalidates everything after it.'
|
|
110
|
-
: `${modelName} caches automatically above its minimum, so there is nothing to set
|
|
110
|
+
: `${modelName} caches automatically above its minimum, so there is nothing to set, but the same rule applies: any byte that changes before the cut invalidates everything after it.`;
|
|
111
111
|
const hedge = nearMinimum
|
|
112
|
-
? ` One caveat on the figure: that prefix count is an estimate and it is close to the line, so the real one may be below the ${n(minTokens)}-token minimum
|
|
112
|
+
? ` One caveat on the figure: that prefix count is an estimate and it is close to the line, so the real one may be below the ${n(minTokens)}-token minimum, in which case nothing caches and this saving is not there. Settle it with --exact-tokens before budgeting from it. The counting endpoint is free.`
|
|
113
113
|
: '';
|
|
114
114
|
return {
|
|
115
115
|
title: 'Turn on prompt caching for the stable prefix',
|
|
116
116
|
detail: `${scope} At a ${hitRatePct}% hit rate, a cache read costs ${readPct}% of the input price and a write costs ${writePct}%. ${how}${hedge}`,
|
|
117
117
|
};
|
|
118
118
|
},
|
|
119
|
-
promptCachingNotWorthIt: () => ({
|
|
119
|
+
promptCachingNotWorthIt: ({ readPct, writePct, breakEvenPct }) => ({
|
|
120
120
|
title: 'At that hit rate, caching does not pay off',
|
|
121
|
-
detail:
|
|
121
|
+
detail: breakEvenPct === null
|
|
122
|
+
? `A cache write costs ${writePct}% of the input price on this model, the same as not caching, and a read costs ${readPct}%. So caching cannot lose you money here: at this hit rate it simply buys nothing. Raise prefix reuse and it starts paying immediately.`
|
|
123
|
+
: `A cache write costs ${writePct}% of the input price on this model and a read costs ${readPct}%. Below a ${breakEvenPct}% hit rate you pay more than you save. Either raise prefix reuse or leave caching off.`,
|
|
122
124
|
}),
|
|
123
125
|
belowCacheMinimum: ({ modelName, minTokens, placeholder, prefixTokens, totalTokens, mentionLowerMinimum, couldReachMinimum, }) => {
|
|
124
126
|
const reason = placeholder
|
|
@@ -131,13 +133,13 @@ export const en = {
|
|
|
131
133
|
? ' Claude Opus 5 lowers that minimum to 512 tokens, so short prompts that miss here would cache there.'
|
|
132
134
|
: '') +
|
|
133
135
|
(couldReachMinimum
|
|
134
|
-
? ' That prefix count is an estimate and it is close to the line, so the real one may already be above it
|
|
136
|
+
? ' That prefix count is an estimate and it is close to the line, so the real one may already be above it. Check with --exact-tokens before deciding this is not available to you. The counting endpoint is free.'
|
|
135
137
|
: ''),
|
|
136
138
|
};
|
|
137
139
|
},
|
|
138
140
|
cachePrefixReorder: ({ staticTokensAfter, sharePct, placeholder, command }) => ({
|
|
139
141
|
title: 'Move the stable instructions ahead of the first placeholder',
|
|
140
|
-
detail: `About ~${n(staticTokensAfter)} tokens of stable content (${sharePct}% of the prompt) sit after the first variable placeholder ${placeholder}, so today they never get cached. Fixed instructions and context first, placeholders last, and that content starts being read from cache at 10% of the price. Run \`${command}\` to attempt it: whole blocks only, and it refuses to move anything that refers back to earlier text. Read the diff
|
|
142
|
+
detail: `About ~${n(staticTokensAfter)} tokens of stable content (${sharePct}% of the prompt) sit after the first variable placeholder ${placeholder}, so today they never get cached. Fixed instructions and context first, placeholders last, and that content starts being read from cache at 10% of the price. Run \`${command}\` to attempt it: whole blocks only, and it refuses to move anything that refers back to earlier text. Read the diff: order carries meaning, and "summarise the text above" is nonsense in front of the text it points at.`,
|
|
141
143
|
}),
|
|
142
144
|
batchApi: () => ({
|
|
143
145
|
title: 'If the work tolerates latency, use the Batch API',
|
|
@@ -145,7 +147,11 @@ export const en = {
|
|
|
145
147
|
}),
|
|
146
148
|
modelDowngrade: ({ modelName, tier, candidateName, currentUsd, candidateUsd }) => ({
|
|
147
149
|
title: `This task may not need ${modelName}`,
|
|
148
|
-
detail: `By length and vocabulary the prompt looks like "${tier}" complexity. On ${candidateName} you would go from ${currentUsd} to ${candidateUsd} per month. This is a keyword heuristic, not a judgement about answer quality:
|
|
150
|
+
detail: `By length and vocabulary the prompt looks like "${tier}" complexity. On ${candidateName} you would go from ${currentUsd} to ${candidateUsd} per month. This is a keyword heuristic, not a judgement about answer quality. Measure it before switching in production: \`trazum route <log.jsonl> --prompt-file <prompt> --cases <cases> --yes\` sends the same cases to both models and reports whether the cheaper one still does the job.`,
|
|
151
|
+
}),
|
|
152
|
+
tierSignalsConflict: ({ complexSignals, simpleSignals }) => ({
|
|
153
|
+
title: 'The prompt asks for depth and for brevity at once',
|
|
154
|
+
detail: `It carries ${complexSignals} signal${complexSignals === 1 ? '' : 's'} of a hard task and ${simpleSignals} of an easy one, and this heuristic scores those against each other, so they cancel. No tier is recommended here: a number produced by two opposite readings cancelling out looks exactly like a prompt with no signals at all, and they are not the same thing. Decide it by measurement rather than by vocabulary: \`trazum route <log.jsonl> --prompt-file <prompt> --cases <cases> --yes\`.`,
|
|
149
155
|
}),
|
|
150
156
|
outputDominated: ({ outputUsd, inputUsd }) => ({
|
|
151
157
|
title: 'Your cost is in the output, not the prompt',
|
|
@@ -158,7 +164,7 @@ export const en = {
|
|
|
158
164
|
contradictoryInstructions: ({ axis, firstValue, firstSnippet, secondValue, secondSnippet, otherCount, }) => ({
|
|
159
165
|
title: `Two instructions disagree about ${axis}`,
|
|
160
166
|
detail: `One says ${firstValue} ("${firstSnippet}") and another says ${secondValue} ("${secondSnippet}"). ` +
|
|
161
|
-
'The model has to pick one, and which one it picks can change between calls
|
|
167
|
+
'The model has to pick one, and which one it picks can change between calls, so this is a correctness problem before it is a cost one. ' +
|
|
162
168
|
'Deleting the instruction you did not mean also shortens the prompt.' +
|
|
163
169
|
(otherCount > 0
|
|
164
170
|
? ` ${otherCount} other ${otherCount === 1 ? 'pair' : 'pairs'} of instructions disagree too.`
|
|
@@ -173,14 +179,14 @@ export const en = {
|
|
|
173
179
|
movableSchema: ({ blocks, tokens, keyList, cue }) => ({
|
|
174
180
|
title: 'The output schema could travel in the request instead of the prompt',
|
|
175
181
|
detail: `${blocks === 1 ? 'A schema block' : `${blocks} schema blocks`} introduced by "${cue}" defines ${keyList}, costing about ${n(tokens)} tokens on every call. ` +
|
|
176
|
-
'Every major API now takes a response schema as a request parameter
|
|
177
|
-
'Trazum cannot make this edit, because it changes the call rather than the prompt, and it does not check whether your provider offers the parameter
|
|
182
|
+
'Every major API now takes a response schema as a request parameter (output_config.format, response_format, responseSchema), and moving it there is the rare change that is both cheaper and stricter: prose asks the model to comply, a parameter makes the decoder comply. ' +
|
|
183
|
+
'Trazum cannot make this edit, because it changes the call rather than the prompt, and it does not check whether your provider offers the parameter; if it does not, this is not available to you.',
|
|
178
184
|
}),
|
|
179
185
|
restatedOutputFormat: ({ restatedCount, totalCount, restatedTokens, keyList }) => ({
|
|
180
186
|
title: 'The output format is specified twice',
|
|
181
187
|
detail: `The prose describes ${restatedCount} of the ${totalCount} fields your schema already defines (${keyList}), costing about ${n(restatedTokens)} tokens on every call. ` +
|
|
182
188
|
'The code block is the version worth keeping: it is unambiguous, and Trazum never edits it. ' +
|
|
183
|
-
'Check the two agree before deleting either
|
|
189
|
+
'Check the two agree before deleting either: when a prompt says one thing in prose and another in its schema, the prose is usually the one that went stale.',
|
|
184
190
|
}),
|
|
185
191
|
},
|
|
186
192
|
contradictionAxes: {
|
package/dist/i18n/en.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAEnE,iFAAiF;AACjF,MAAM,CAAC,MAAM,EAAE,GAAiB;IAC9B,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,OAAO;IAErB,KAAK,EAAE;QACL,kBAAkB,EAAE;YAClB,KAAK,EAAE,qBAAqB;YAC5B,SAAS,EACP,uMAAuM;SAC1M;QACD,uBAAuB,EAAE;YACvB,KAAK,EAAE,2BAA2B;YAClC,SAAS,EACP,gPAAgP;SACnP;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,gBAAgB;YACvB,SAAS,EACP,0LAA0L;SAC7L;QACD,iBAAiB,EAAE;YACjB,KAAK,EAAE,gBAAgB;YACvB,SAAS,EACP,mKAAmK;SACtK;QACD,UAAU,EAAE;YACV,KAAK,EAAE,qBAAqB;YAC5B,SAAS,EACP,8JAA8J;SACjK;QACD,MAAM,EAAE;YACN,KAAK,EAAE,4BAA4B;YACnC,SAAS,EACP,+HAA+H;SAClI;QACD,MAAM,EAAE;YACN,KAAK,EAAE,SAAS;YAChB,SAAS,EACP,2HAA2H;SAC9H;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,cAAc;YACrB,SAAS,EACP,kJAAkJ;SACrJ;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,gCAAgC;YACvC,SAAS,EACP,+OAA+O;SAClP;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,kBAAkB;YACzB,SAAS,EACP,uNAAuN;SAC1N;QACD,UAAU,EAAE;YACV,KAAK,EAAE,uBAAuB;YAC9B,SAAS,EACP,sKAAsK;SACzK;QACD,UAAU,EAAE;YACV,KAAK,EAAE,kBAAkB;YACzB,SAAS,EACP,wLAAwL;SAC3L;KACF;IAED,GAAG,EAAE;QACH,aAAa,EAAE,GAAG,EAAE,CAAC,uCAAuC;QAC5D,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CACjC,qBAAqB,KAAK,oGAAoG;QAChI,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC5B,8BAA8B,KAAK,OAAO,MAAM,8CAA8C;QAChG,gBAAgB,EAAE,CAAC,WAAW,EAAE,EAAE,CAChC,yBAAyB,WAAW,wGAAwG;KAC/I;IAED,OAAO,EAAE;QACP,WAAW,EAAE,GAAG,EAAE,CAChB,
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/es.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,wEAAwE;AACxE,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,wEAAwE;AACxE,eAAO,MAAM,EAAE,EAAE,YAoQhB,CAAC"}
|
package/dist/i18n/es.js
CHANGED
|
@@ -100,9 +100,11 @@ export const es = {
|
|
|
100
100
|
detail: `${scope} Con una tasa de acierto del ${hitRatePct}%, la lectura de caché cuesta un ${readPct}% del precio de entrada y la escritura un ${writePct}%. ${how}${hedge}`,
|
|
101
101
|
};
|
|
102
102
|
},
|
|
103
|
-
promptCachingNotWorthIt: () => ({
|
|
103
|
+
promptCachingNotWorthIt: ({ readPct, writePct, breakEvenPct }) => ({
|
|
104
104
|
title: 'Con esa tasa de acierto, la caché no compensa',
|
|
105
|
-
detail:
|
|
105
|
+
detail: breakEvenPct === null
|
|
106
|
+
? `En este modelo escribir en caché cuesta un ${writePct}% del precio de entrada, lo mismo que no usarla, y leer un ${readPct}%. Así que aquí la caché no puede costarte dinero: con esta tasa de acierto simplemente no te aporta nada. En cuanto subas la reutilización del prefijo, empieza a compensar.`
|
|
107
|
+
: `En este modelo escribir en caché cuesta un ${writePct}% del precio de entrada y leer un ${readPct}%. Por debajo de un ${breakEvenPct}% de aciertos pagas más de lo que ahorras. Sube la reutilización del prefijo o deja la caché desactivada.`,
|
|
106
108
|
}),
|
|
107
109
|
belowCacheMinimum: ({ modelName, minTokens, placeholder, prefixTokens, totalTokens, mentionLowerMinimum, couldReachMinimum, }) => {
|
|
108
110
|
const reason = placeholder
|
|
@@ -129,7 +131,11 @@ export const es = {
|
|
|
129
131
|
}),
|
|
130
132
|
modelDowngrade: ({ modelName, tier, candidateName, currentUsd, candidateUsd }) => ({
|
|
131
133
|
title: `Esta tarea quizá no necesite ${modelName}`,
|
|
132
|
-
detail: `Por longitud y vocabulario, el prompt parece de complejidad "${tier}". Con ${candidateName} pasarías de ${currentUsd} a ${candidateUsd} al mes. Es una heurística por palabras clave, no un juicio de calidad:
|
|
134
|
+
detail: `Por longitud y vocabulario, el prompt parece de complejidad "${tier}". Con ${candidateName} pasarías de ${currentUsd} a ${candidateUsd} al mes. Es una heurística por palabras clave, no un juicio de calidad. Mídelo antes de cambiar en producción: \`trazum route <log.jsonl> --prompt-file <prompt> --cases <casos> --yes\` envía los mismos casos a ambos modelos y dice si el barato sigue haciendo el trabajo.`,
|
|
135
|
+
}),
|
|
136
|
+
tierSignalsConflict: ({ complexSignals, simpleSignals }) => ({
|
|
137
|
+
title: 'El prompt pide profundidad y brevedad a la vez',
|
|
138
|
+
detail: `Lleva ${complexSignals} señal${complexSignals === 1 ? '' : 'es'} de tarea difícil y ${simpleSignals} de tarea fácil, y esta heurística las resta entre sí, así que se anulan. Aquí no se recomienda ningún nivel: un número que sale de dos lecturas opuestas cancelándose se parece exactamente a un prompt sin ninguna señal, y no son lo mismo. Decídelo midiendo y no por vocabulario: \`trazum route <log.jsonl> --prompt-file <prompt> --cases <casos> --yes\`.`,
|
|
133
139
|
}),
|
|
134
140
|
outputDominated: ({ outputUsd, inputUsd }) => ({
|
|
135
141
|
title: 'Tu coste está en la salida, no en el prompt',
|
package/dist/i18n/es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"es.js","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/types.d.ts
CHANGED
|
@@ -179,6 +179,47 @@ export interface LlmMessages {
|
|
|
179
179
|
notShorter(after: number, before: number): string;
|
|
180
180
|
suspiciousShrink(retainedPct: number): string;
|
|
181
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* What the caching-does-not-pay advisory needs to state a threshold that is
|
|
184
|
+
* true about **this** model.
|
|
185
|
+
*
|
|
186
|
+
* It used to take nothing and print one sentence for every model: *"a cache
|
|
187
|
+
* write costs 125% of the input price and a read costs 10%. Below roughly a 28%
|
|
188
|
+
* hit rate you pay more than you save."* Two of those three numbers were the
|
|
189
|
+
* Anthropic multipliers stated as universal, and the third was not derivable
|
|
190
|
+
* from any model in the catalogue: at 125% and 10% the break-even is 21.74%,
|
|
191
|
+
* not 28%.
|
|
192
|
+
*
|
|
193
|
+
* The multipliers were already in hand at the call site and already passed to
|
|
194
|
+
* the advisory next door. Only this message invented its own.
|
|
195
|
+
*/
|
|
196
|
+
export interface PromptCachingNotWorthItParams {
|
|
197
|
+
/** The model's cache read multiplier as a percentage of the input price. */
|
|
198
|
+
readPct: number;
|
|
199
|
+
/** Its 5-minute cache write multiplier, likewise. */
|
|
200
|
+
writePct: number;
|
|
201
|
+
/**
|
|
202
|
+
* The hit rate at which caching stops costing money, derived rather than
|
|
203
|
+
* quoted: `(1 - write) / (read - write)`.
|
|
204
|
+
*
|
|
205
|
+
* `null` when the write multiplier is 1, which is not a smaller threshold but
|
|
206
|
+
* a different situation: writing costs exactly what not caching costs, so
|
|
207
|
+
* caching can never lose money and there is no rate below which it does. Eight
|
|
208
|
+
* of the eighteen models in the catalogue are that shape, and the old sentence
|
|
209
|
+
* told all eight to consider turning caching off.
|
|
210
|
+
*/
|
|
211
|
+
breakEvenPct: number | null;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* What the tier heuristic saw when it declined to answer.
|
|
215
|
+
*
|
|
216
|
+
* Both counts, because "three of each" and "one of each" are different degrees
|
|
217
|
+
* of the same refusal and the reader can act on the difference.
|
|
218
|
+
*/
|
|
219
|
+
export interface TierSignalsConflictParams {
|
|
220
|
+
complexSignals: number;
|
|
221
|
+
simpleSignals: number;
|
|
222
|
+
}
|
|
182
223
|
/** Why a proposed rewrite did not survive checking against the prompt. */
|
|
183
224
|
export interface SuggestMessages {
|
|
184
225
|
'not-found'(): string;
|
|
@@ -199,11 +240,12 @@ export interface CoreMessages {
|
|
|
199
240
|
contextOverflow(p: ContextOverflowParams): LocalizedMessage;
|
|
200
241
|
contextNearLimit(p: ContextNearLimitParams): LocalizedMessage;
|
|
201
242
|
promptCaching(p: PromptCachingParams): LocalizedMessage;
|
|
202
|
-
promptCachingNotWorthIt(): LocalizedMessage;
|
|
243
|
+
promptCachingNotWorthIt(p: PromptCachingNotWorthItParams): LocalizedMessage;
|
|
203
244
|
belowCacheMinimum(p: BelowCacheMinimumParams): LocalizedMessage;
|
|
204
245
|
cachePrefixReorder(p: CachePrefixReorderParams): LocalizedMessage;
|
|
205
246
|
batchApi(): LocalizedMessage;
|
|
206
247
|
modelDowngrade(p: ModelDowngradeParams): LocalizedMessage;
|
|
248
|
+
tierSignalsConflict(p: TierSignalsConflictParams): LocalizedMessage;
|
|
207
249
|
outputDominated(p: OutputDominatedParams): LocalizedMessage;
|
|
208
250
|
promoPricing(p: PromoPricingParams): LocalizedMessage;
|
|
209
251
|
contradictoryInstructions(p: ContradictoryInstructionsParams): LocalizedMessage;
|
package/dist/i18n/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/i18n/types.ts"],"names":[],"mappings":"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"}
|