@trazum/core 1.86.0 → 2.1.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 +3 -3
- package/dist/config-schema.d.ts +10 -10
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +90 -36
- package/dist/config-schema.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/optimize.d.ts.map +1 -1
- package/dist/optimize.js +16 -1
- package/dist/optimize.js.map +1 -1
- package/dist/phrases.d.ts.map +1 -1
- package/dist/phrases.js +36 -0
- package/dist/phrases.js.map +1 -1
- package/dist/receipt.d.ts +33 -5
- package/dist/receipt.d.ts.map +1 -1
- package/dist/receipt.js +44 -18
- package/dist/receipt.js.map +1 -1
- package/dist/reprice.d.ts +74 -0
- package/dist/reprice.d.ts.map +1 -1
- package/dist/reprice.js +97 -20
- package/dist/reprice.js.map +1 -1
- package/dist/segment.d.ts.map +1 -1
- package/dist/segment.js +95 -1
- package/dist/segment.js.map +1 -1
- package/dist/structure.d.ts +27 -0
- package/dist/structure.d.ts.map +1 -1
- package/dist/structure.js +277 -9
- package/dist/structure.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config-schema.ts +100 -44
- package/src/index.ts +8 -2
- package/src/optimize.ts +16 -1
- package/src/phrases.ts +36 -0
- package/src/receipt.ts +75 -18
- package/src/reprice.ts +164 -17
- package/src/segment.ts +95 -1
- package/src/structure.ts +275 -9
- package/src/types.ts +2 -0
package/dist/phrases.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phrases.js","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phrases.js","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"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"}
|
package/dist/receipt.d.ts
CHANGED
|
@@ -144,6 +144,34 @@ export interface ReceiptLine {
|
|
|
144
144
|
money: ReceiptMoney;
|
|
145
145
|
/** The catalogue's published rates, as provenance. */
|
|
146
146
|
pricing: ReceiptPricing;
|
|
147
|
+
/**
|
|
148
|
+
* The largest single call in this slice, cache reads and writes included.
|
|
149
|
+
*
|
|
150
|
+
* **The one number that says whether these calls would fit somewhere else.**
|
|
151
|
+
* A cheaper model with a smaller context window does not make a 400k-token
|
|
152
|
+
* call cheaper, it makes it impossible, and counting an impossible call's
|
|
153
|
+
* price difference as a saving is the flattering direction this repository
|
|
154
|
+
* refuses. The maximum rather than an average, for the same reason: one call
|
|
155
|
+
* over the ceiling is a failed call, and a mean hides it.
|
|
156
|
+
*
|
|
157
|
+
* Added in 2.1.0, and the gap it closes is worth naming. The two cache-write
|
|
158
|
+
* TTL fields above have always been here *so a consumer could reprice this
|
|
159
|
+
* traffic against another model's rates* -- and `repriceProfile` refuses to
|
|
160
|
+
* price traffic that would not fit, which no reader of a receipt could
|
|
161
|
+
* honour, because the receipt did not carry this. The format was built for
|
|
162
|
+
* repricing and stopped one field short of it.
|
|
163
|
+
*/
|
|
164
|
+
maxCallInputTokens: number;
|
|
165
|
+
/**
|
|
166
|
+
* Calls in this slice whose cache-write TTL the log did not state, so the
|
|
167
|
+
* cheaper 5-minute rate was assumed.
|
|
168
|
+
*
|
|
169
|
+
* The document already reports the organisation-wide figure as an
|
|
170
|
+
* `assumed-write-ttl` gap. This is the same fact per slice, which is the
|
|
171
|
+
* resolution a repricing needs: the assumption travels into the comparison,
|
|
172
|
+
* and a reader is entitled to know which slices carry it.
|
|
173
|
+
*/
|
|
174
|
+
assumedWriteTtlCalls: number;
|
|
147
175
|
}
|
|
148
176
|
/** Everything a receipt refuses to answer, typed rather than left implicit. */
|
|
149
177
|
export type ReceiptGap =
|
|
@@ -230,13 +258,13 @@ export interface ReceiptDocument {
|
|
|
230
258
|
gaps: ReceiptGap[];
|
|
231
259
|
}
|
|
232
260
|
/**
|
|
233
|
-
* The
|
|
261
|
+
* The same list, published.
|
|
234
262
|
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
263
|
+
* Derived from the map rather than written again, because writing it twice is
|
|
264
|
+
* the fault this exists to prevent. Key order is insertion order, so the array
|
|
265
|
+
* a consumer reads is unchanged.
|
|
238
266
|
*/
|
|
239
|
-
export declare const RECEIPT_LINE_FIELDS: readonly [
|
|
267
|
+
export declare const RECEIPT_LINE_FIELDS: readonly string[];
|
|
240
268
|
export interface ReceiptOptions {
|
|
241
269
|
/** Stamp the document. Omit for an undated receipt, which is valid. */
|
|
242
270
|
emittedAt?: Date;
|
package/dist/receipt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;OASG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;OAQG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,OAAO,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/receipt.js
CHANGED
|
@@ -1,26 +1,47 @@
|
|
|
1
1
|
import { PROVIDER_REVIEWED, modelFrom } from './pricing.js';
|
|
2
2
|
import { UNLABELLED } from './usage.js';
|
|
3
3
|
/**
|
|
4
|
-
* The fields that leave this machine,
|
|
4
|
+
* The fields that leave this machine, keyed by the interface they describe.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* added to `ReceiptLine` and not added here
|
|
8
|
-
*
|
|
6
|
+
* `Record<keyof ReceiptLine, true>` is what holds the two together: a field
|
|
7
|
+
* added to `ReceiptLine` and not added here is a **compile error**, and so is
|
|
8
|
+
* an entry here that `ReceiptLine` does not have. A whitelist maintained in two
|
|
9
|
+
* places is a whitelist with a hole in it.
|
|
10
|
+
*
|
|
11
|
+
* **This used to say the redaction guard held that, and it did not.** The guard
|
|
12
|
+
* reads the emitted lines and checks every key it finds against this list,
|
|
13
|
+
* which catches an emitter that emits an unlisted field — a real property, kept
|
|
14
|
+
* below. It cannot catch a field added to the *type*: a plant added
|
|
15
|
+
* `operator?: string` to `ReceiptLine`, emitted it on no line the fixture
|
|
16
|
+
* built, and all twelve checks passed. A field populated in one branch is
|
|
17
|
+
* exactly the shape a leak takes, and the published whitelist customers read to
|
|
18
|
+
* see what leaves their machine would have been wrong while its own guard said
|
|
19
|
+
* otherwise.
|
|
20
|
+
*/
|
|
21
|
+
const RECEIPT_LINE_FIELD_MAP = {
|
|
22
|
+
label: true,
|
|
23
|
+
model: true,
|
|
24
|
+
calls: true,
|
|
25
|
+
inputTokens: true,
|
|
26
|
+
cacheReadTokens: true,
|
|
27
|
+
cacheWriteTokens: true,
|
|
28
|
+
cacheWrite5mTokens: true,
|
|
29
|
+
cacheWrite1hTokens: true,
|
|
30
|
+
outputTokens: true,
|
|
31
|
+
usd: true,
|
|
32
|
+
money: true,
|
|
33
|
+
pricing: true,
|
|
34
|
+
maxCallInputTokens: true,
|
|
35
|
+
assumedWriteTtlCalls: true,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* The same list, published.
|
|
39
|
+
*
|
|
40
|
+
* Derived from the map rather than written again, because writing it twice is
|
|
41
|
+
* the fault this exists to prevent. Key order is insertion order, so the array
|
|
42
|
+
* a consumer reads is unchanged.
|
|
9
43
|
*/
|
|
10
|
-
export const RECEIPT_LINE_FIELDS = Object.freeze(
|
|
11
|
-
'label',
|
|
12
|
-
'model',
|
|
13
|
-
'calls',
|
|
14
|
-
'inputTokens',
|
|
15
|
-
'cacheReadTokens',
|
|
16
|
-
'cacheWriteTokens',
|
|
17
|
-
'cacheWrite5mTokens',
|
|
18
|
-
'cacheWrite1hTokens',
|
|
19
|
-
'outputTokens',
|
|
20
|
-
'usd',
|
|
21
|
-
'money',
|
|
22
|
-
'pricing',
|
|
23
|
-
]);
|
|
44
|
+
export const RECEIPT_LINE_FIELDS = Object.freeze(Object.keys(RECEIPT_LINE_FIELD_MAP));
|
|
24
45
|
const lineFrom = (label, model, breakdown, catalogue) => {
|
|
25
46
|
/*
|
|
26
47
|
* Every slice reaching here is priced: `byLabelAndModel` holds only what the
|
|
@@ -57,6 +78,11 @@ const lineFrom = (label, model, breakdown, catalogue) => {
|
|
|
57
78
|
outputPerMTok: priced.outputPerMTok,
|
|
58
79
|
reviewedOn: PROVIDER_REVIEWED[priced.provider ?? ''] ?? null,
|
|
59
80
|
},
|
|
81
|
+
/* Copied, never derived. Neither can be recovered from the aggregates
|
|
82
|
+
above: a maximum is not a mean, and how many calls were silent about
|
|
83
|
+
their TTL is not visible in a token total. */
|
|
84
|
+
maxCallInputTokens: breakdown.maxCallInputTokens,
|
|
85
|
+
assumedWriteTtlCalls: breakdown.assumedWriteTtlCalls,
|
|
60
86
|
};
|
|
61
87
|
};
|
|
62
88
|
/**
|
package/dist/receipt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
|
package/dist/reprice.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PricingCatalogue } from './pricing.js';
|
|
2
2
|
import type { ModelPricing } from './types.js';
|
|
3
|
+
import type { ReceiptDocument } from './receipt.js';
|
|
3
4
|
import type { UsageBreakdown, UsageProfileReport } from './usage.js';
|
|
4
5
|
/**
|
|
5
6
|
* The same tokens at another model's rates.
|
|
@@ -171,6 +172,50 @@ export interface RepriceReport {
|
|
|
171
172
|
* others and of how many calls produced them.
|
|
172
173
|
*/
|
|
173
174
|
export declare function priceTokensOn(breakdown: Pick<UsageBreakdown, 'inputTokens' | 'cacheReadTokens' | 'cacheWrite5mTokens' | 'cacheWrite1hTokens' | 'outputTokens'>, model: ModelPricing, on?: Date): number;
|
|
175
|
+
/**
|
|
176
|
+
* Reprices a profile's label-and-model slices onto one target model.
|
|
177
|
+
*
|
|
178
|
+
* Returns `null` when the catalogue does not know the target: a comparison
|
|
179
|
+
* against a price nobody has is worse than no comparison, and the caller is
|
|
180
|
+
* better placed to say so in its own words than this is to invent a zero.
|
|
181
|
+
*/
|
|
182
|
+
/**
|
|
183
|
+
* The least a slice has to carry to be repriced.
|
|
184
|
+
*
|
|
185
|
+
* Narrower than `UsageBreakdown` on purpose, and that narrowing is what lets a
|
|
186
|
+
* **receipt** be repriced at all. A receipt is the aggregate that leaves a
|
|
187
|
+
* machine; it does not carry a breakdown's truncation counts or its cache
|
|
188
|
+
* economics, and it never will, because those are answers to questions a
|
|
189
|
+
* receipt does not exist to answer. What it does carry — since 2.1.0 — is
|
|
190
|
+
* exactly this.
|
|
191
|
+
*
|
|
192
|
+
* Two entry points feed it and one implementation consumes it. Two copies of
|
|
193
|
+
* this loop, one reading profiles and one reading receipts, is the defect this
|
|
194
|
+
* codebase has found more times than any other, and it would be worse here
|
|
195
|
+
* than usual: the copies would drift on which traffic is refused, and a
|
|
196
|
+
* refusal that quietly stops happening reads as a saving.
|
|
197
|
+
*/
|
|
198
|
+
export interface RepriceableSlice {
|
|
199
|
+
/** `UNLABELLED` for the unlabelled bucket, never `null`. */
|
|
200
|
+
label: string;
|
|
201
|
+
model: string;
|
|
202
|
+
calls: number;
|
|
203
|
+
inputTokens: number;
|
|
204
|
+
cacheReadTokens: number;
|
|
205
|
+
cacheWrite5mTokens: number;
|
|
206
|
+
cacheWrite1hTokens: number;
|
|
207
|
+
outputTokens: number;
|
|
208
|
+
/** What it actually cost, as apportioned rather than as recomputed. */
|
|
209
|
+
totalUsd: number;
|
|
210
|
+
maxCallInputTokens: number;
|
|
211
|
+
assumedWriteTtlCalls: number;
|
|
212
|
+
}
|
|
213
|
+
/** The slices, plus what could not be priced at all. */
|
|
214
|
+
export interface RepriceableInput {
|
|
215
|
+
slices: readonly RepriceableSlice[];
|
|
216
|
+
unpricedModels: readonly string[];
|
|
217
|
+
unpricedCalls: number;
|
|
218
|
+
}
|
|
174
219
|
/**
|
|
175
220
|
* Reprices a profile's label-and-model slices onto one target model.
|
|
176
221
|
*
|
|
@@ -179,4 +224,33 @@ export declare function priceTokensOn(breakdown: Pick<UsageBreakdown, 'inputToke
|
|
|
179
224
|
* better placed to say so in its own words than this is to invent a zero.
|
|
180
225
|
*/
|
|
181
226
|
export declare function repriceProfile(report: UsageProfileReport, targetId: string, catalogue: PricingCatalogue, on?: Date): RepriceReport | null;
|
|
227
|
+
/**
|
|
228
|
+
* The same question, asked of a **receipt** rather than of the log behind it.
|
|
229
|
+
*
|
|
230
|
+
* ## Why this exists
|
|
231
|
+
*
|
|
232
|
+
* A receipt is what leaves a machine, and by the time anybody wants to ask
|
|
233
|
+
* *what would these calls have cost on the small model* the log is usually
|
|
234
|
+
* gone — deleted by a retention policy, on a runner that no longer exists, or
|
|
235
|
+
* simply on somebody else's laptop. A comparison that can only be made where
|
|
236
|
+
* the log still is can only be made by the person who least needs it.
|
|
237
|
+
*
|
|
238
|
+
* It also settles a question the receipt format had left open. The two
|
|
239
|
+
* cache-write TTL fields say in their own comment that they exist *so a
|
|
240
|
+
* consumer can reprice this traffic*, and until 2.1.0 no consumer could: the
|
|
241
|
+
* refusal that protects the whole comparison — never price traffic the target
|
|
242
|
+
* could not have accepted — needs the largest call, and the receipt did not
|
|
243
|
+
* carry it. This is the entry point that field was added for.
|
|
244
|
+
*
|
|
245
|
+
* ## What it refuses, which is the same four things
|
|
246
|
+
*
|
|
247
|
+
* Nothing here is a second implementation. It maps a receipt's lines onto the
|
|
248
|
+
* same slices `repriceProfile` maps a profile onto, and the one loop that
|
|
249
|
+
* refuses over-context traffic, excludes calls already on the target, keeps
|
|
250
|
+
* the write TTLs apart and states `sameTokensAssumed` is the loop both use.
|
|
251
|
+
*
|
|
252
|
+
* The unlabelled bucket travels as `UNLABELLED` rather than `null`, which is
|
|
253
|
+
* the spelling every other consumer of these types already reads.
|
|
254
|
+
*/
|
|
255
|
+
export declare function repriceReceipt(document: ReceiptDocument, targetId: string, catalogue: PricingCatalogue, on?: Date): RepriceReport | null;
|
|
182
256
|
//# sourceMappingURL=reprice.d.ts.map
|
package/dist/reprice.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reprice.d.ts","sourceRoot":"","sources":["../src/reprice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"reprice.d.ts","sourceRoot":"","sources":["../src/reprice.ts"],"names":[],"mappings":"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"}
|
package/dist/reprice.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { effectivePricing, multipliersFor } from './pricing.js';
|
|
2
|
+
import { UNLABELLED } from './usage.js';
|
|
2
3
|
/**
|
|
3
4
|
* What a set of token counts costs on one model, at the rates in force on a
|
|
4
5
|
* date.
|
|
@@ -17,14 +18,7 @@ export function priceTokensOn(breakdown, model, on = new Date()) {
|
|
|
17
18
|
per(breakdown.cacheWrite1hTokens, inputPerMTok * rates.cacheWrite1h) +
|
|
18
19
|
per(breakdown.outputTokens, outputPerMTok));
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
* Reprices a profile's label-and-model slices onto one target model.
|
|
22
|
-
*
|
|
23
|
-
* Returns `null` when the catalogue does not know the target: a comparison
|
|
24
|
-
* against a price nobody has is worse than no comparison, and the caller is
|
|
25
|
-
* better placed to say so in its own words than this is to invent a zero.
|
|
26
|
-
*/
|
|
27
|
-
export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
21
|
+
function repriceSlices(input, targetId, catalogue, on) {
|
|
28
22
|
const target = catalogue.byId.get(targetId);
|
|
29
23
|
if (!target)
|
|
30
24
|
return null;
|
|
@@ -32,17 +26,16 @@ export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
|
32
26
|
const overContext = [];
|
|
33
27
|
const alreadyOnTarget = { calls: 0, usd: 0 };
|
|
34
28
|
let assumedWriteTtlCalls = 0;
|
|
35
|
-
for (const
|
|
36
|
-
|
|
37
|
-
if (slice.model === target.id) {
|
|
29
|
+
for (const breakdown of input.slices) {
|
|
30
|
+
if (breakdown.model === target.id) {
|
|
38
31
|
alreadyOnTarget.calls += breakdown.calls;
|
|
39
32
|
alreadyOnTarget.usd += breakdown.totalUsd;
|
|
40
33
|
continue;
|
|
41
34
|
}
|
|
42
35
|
if (breakdown.maxCallInputTokens > target.contextWindow) {
|
|
43
36
|
overContext.push({
|
|
44
|
-
label:
|
|
45
|
-
model:
|
|
37
|
+
label: breakdown.label,
|
|
38
|
+
model: breakdown.model,
|
|
46
39
|
calls: breakdown.calls,
|
|
47
40
|
currentUsd: breakdown.totalUsd,
|
|
48
41
|
maxCallInputTokens: breakdown.maxCallInputTokens,
|
|
@@ -78,8 +71,8 @@ export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
|
78
71
|
}
|
|
79
72
|
: null;
|
|
80
73
|
slices.push({
|
|
81
|
-
label:
|
|
82
|
-
model:
|
|
74
|
+
label: breakdown.label,
|
|
75
|
+
model: breakdown.model,
|
|
83
76
|
calls: breakdown.calls,
|
|
84
77
|
currentUsd: breakdown.totalUsd,
|
|
85
78
|
targetUsd,
|
|
@@ -101,10 +94,10 @@ export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
|
101
94
|
let batchOnTarget = null;
|
|
102
95
|
if (batchRate !== null && batchRate < 1 && slices.length > 0) {
|
|
103
96
|
const { inputPerMTok, outputPerMTok } = effectivePricing(target, on);
|
|
104
|
-
const movable =
|
|
97
|
+
const movable = input.slices.filter((slice) => slice.model !== target.id && slice.maxCallInputTokens <= target.contextWindow);
|
|
105
98
|
const inOutUsd = movable.reduce((sum, slice) => sum +
|
|
106
|
-
(slice.
|
|
107
|
-
(slice.
|
|
99
|
+
(slice.inputTokens / 1_000_000) * inputPerMTok +
|
|
100
|
+
(slice.outputTokens / 1_000_000) * outputPerMTok, 0);
|
|
108
101
|
batchOnTarget = { targetUsd: targetUsd - inOutUsd * (1 - batchRate) };
|
|
109
102
|
}
|
|
110
103
|
return {
|
|
@@ -116,10 +109,94 @@ export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
|
116
109
|
overContext,
|
|
117
110
|
alreadyOnTarget,
|
|
118
111
|
assumedWriteTtlCalls,
|
|
119
|
-
|
|
120
|
-
|
|
112
|
+
/* Copied rather than passed through. The input's array belongs to the
|
|
113
|
+
caller -- a profile's own field, or a receipt's gap -- and handing it out
|
|
114
|
+
inside a report is how a reader ends up able to edit the document they
|
|
115
|
+
were given. */
|
|
116
|
+
unpricedModels: [...input.unpricedModels],
|
|
117
|
+
unpricedCalls: input.unpricedCalls,
|
|
121
118
|
batchOnTarget,
|
|
122
119
|
sameTokensAssumed: true,
|
|
123
120
|
};
|
|
124
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Reprices a profile's label-and-model slices onto one target model.
|
|
124
|
+
*
|
|
125
|
+
* Returns `null` when the catalogue does not know the target: a comparison
|
|
126
|
+
* against a price nobody has is worse than no comparison, and the caller is
|
|
127
|
+
* better placed to say so in its own words than this is to invent a zero.
|
|
128
|
+
*/
|
|
129
|
+
export function repriceProfile(report, targetId, catalogue, on = new Date()) {
|
|
130
|
+
return repriceSlices({
|
|
131
|
+
slices: report.byLabelAndModel.map((slice) => ({
|
|
132
|
+
label: slice.label,
|
|
133
|
+
model: slice.model,
|
|
134
|
+
calls: slice.breakdown.calls,
|
|
135
|
+
inputTokens: slice.breakdown.inputTokens,
|
|
136
|
+
cacheReadTokens: slice.breakdown.cacheReadTokens,
|
|
137
|
+
cacheWrite5mTokens: slice.breakdown.cacheWrite5mTokens,
|
|
138
|
+
cacheWrite1hTokens: slice.breakdown.cacheWrite1hTokens,
|
|
139
|
+
outputTokens: slice.breakdown.outputTokens,
|
|
140
|
+
totalUsd: slice.breakdown.totalUsd,
|
|
141
|
+
maxCallInputTokens: slice.breakdown.maxCallInputTokens,
|
|
142
|
+
assumedWriteTtlCalls: slice.breakdown.assumedWriteTtlCalls,
|
|
143
|
+
})),
|
|
144
|
+
unpricedModels: report.unpricedModels,
|
|
145
|
+
unpricedCalls: report.unpriced.calls,
|
|
146
|
+
}, targetId, catalogue, on);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* The same question, asked of a **receipt** rather than of the log behind it.
|
|
150
|
+
*
|
|
151
|
+
* ## Why this exists
|
|
152
|
+
*
|
|
153
|
+
* A receipt is what leaves a machine, and by the time anybody wants to ask
|
|
154
|
+
* *what would these calls have cost on the small model* the log is usually
|
|
155
|
+
* gone — deleted by a retention policy, on a runner that no longer exists, or
|
|
156
|
+
* simply on somebody else's laptop. A comparison that can only be made where
|
|
157
|
+
* the log still is can only be made by the person who least needs it.
|
|
158
|
+
*
|
|
159
|
+
* It also settles a question the receipt format had left open. The two
|
|
160
|
+
* cache-write TTL fields say in their own comment that they exist *so a
|
|
161
|
+
* consumer can reprice this traffic*, and until 2.1.0 no consumer could: the
|
|
162
|
+
* refusal that protects the whole comparison — never price traffic the target
|
|
163
|
+
* could not have accepted — needs the largest call, and the receipt did not
|
|
164
|
+
* carry it. This is the entry point that field was added for.
|
|
165
|
+
*
|
|
166
|
+
* ## What it refuses, which is the same four things
|
|
167
|
+
*
|
|
168
|
+
* Nothing here is a second implementation. It maps a receipt's lines onto the
|
|
169
|
+
* same slices `repriceProfile` maps a profile onto, and the one loop that
|
|
170
|
+
* refuses over-context traffic, excludes calls already on the target, keeps
|
|
171
|
+
* the write TTLs apart and states `sameTokensAssumed` is the loop both use.
|
|
172
|
+
*
|
|
173
|
+
* The unlabelled bucket travels as `UNLABELLED` rather than `null`, which is
|
|
174
|
+
* the spelling every other consumer of these types already reads.
|
|
175
|
+
*/
|
|
176
|
+
export function repriceReceipt(document, targetId, catalogue, on = new Date()) {
|
|
177
|
+
/*
|
|
178
|
+
* What the catalogue could not price is in the document's gaps rather than
|
|
179
|
+
* in a line, which is the receipt's own arrangement: an unpriced call has no
|
|
180
|
+
* rate, so it has no line to be in. Read from there rather than left at
|
|
181
|
+
* zero, so a comparison covering half a bill cannot look complete.
|
|
182
|
+
*/
|
|
183
|
+
const unpriced = document.gaps.find((gap) => gap.kind === 'unpriced');
|
|
184
|
+
return repriceSlices({
|
|
185
|
+
slices: document.lines.map((line) => ({
|
|
186
|
+
label: line.label ?? UNLABELLED,
|
|
187
|
+
model: line.model,
|
|
188
|
+
calls: line.calls,
|
|
189
|
+
inputTokens: line.inputTokens,
|
|
190
|
+
cacheReadTokens: line.cacheReadTokens,
|
|
191
|
+
cacheWrite5mTokens: line.cacheWrite5mTokens,
|
|
192
|
+
cacheWrite1hTokens: line.cacheWrite1hTokens,
|
|
193
|
+
outputTokens: line.outputTokens,
|
|
194
|
+
totalUsd: line.usd,
|
|
195
|
+
maxCallInputTokens: line.maxCallInputTokens,
|
|
196
|
+
assumedWriteTtlCalls: line.assumedWriteTtlCalls,
|
|
197
|
+
})),
|
|
198
|
+
unpricedModels: unpriced === undefined ? [] : unpriced.models,
|
|
199
|
+
unpricedCalls: unpriced === undefined ? 0 : unpriced.calls,
|
|
200
|
+
}, targetId, catalogue, on);
|
|
201
|
+
}
|
|
125
202
|
//# sourceMappingURL=reprice.js.map
|
package/dist/reprice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reprice.js","sourceRoot":"","sources":["../src/reprice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"reprice.js","sourceRoot":"","sources":["../src/reprice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKhE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA+JxC;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,SAGC,EACD,KAAmB,EACnB,EAAE,GAAS,IAAI,IAAI,EAAE;IAErB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IAClF,OAAO,CACL,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC;QACxC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACpE,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QACpE,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAC3C,CAAC;AACJ,CAAC;AAgDD,SAAS,aAAa,CACpB,KAAuB,EACvB,QAAgB,EAChB,SAA2B,EAC3B,EAAQ;IAER,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC7C,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAE7B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YAClC,eAAe,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;YACzC,eAAe,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,IAAI,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,UAAU,EAAE,SAAS,CAAC,QAAQ;gBAC9B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;aACjD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvD,oBAAoB,IAAI,SAAS,CAAC,oBAAoB,CAAC;QACvD;;;;;;;WAOG;QACH,MAAM,WAAW,GACf,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;QAC1F,0EAA0E;QAC1E,qEAAqE;QACrE,2EAA2E;QAC3E,MAAM,iBAAiB,GACrB,WAAW,GAAG,CAAC;YACf,MAAM,CAAC,cAAc,KAAK,IAAI;YAC9B,SAAS,CAAC,kBAAkB,GAAG,MAAM,CAAC,cAAc;YAClD,CAAC,CAAC;gBACE,SAAS,EAAE,MAAM,CAAC,cAAc;gBAChC,UAAU,EAAE,aAAa,CACvB;oBACE,WAAW,EAAE,SAAS,CAAC,WAAW,GAAG,WAAW;oBAChD,eAAe,EAAE,CAAC;oBAClB,kBAAkB,EAAE,CAAC;oBACrB,kBAAkB,EAAE,CAAC;oBACrB,YAAY,EAAE,SAAS,CAAC,YAAY;iBACrC,EACD,MAAM,EACN,EAAE,CACH;aACF;YACH,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,SAAS;YACT,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC,QAAQ;YACxC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAElE;;;;OAIG;IACH,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;IAC/C,IAAI,aAAa,GAAiC,IAAI,CAAC;IACvD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CACjC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,kBAAkB,IAAI,MAAM,CAAC,aAAa,CACzF,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACb,GAAG;YACH,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,YAAY;YAC9C,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,aAAa,EAClD,CAAC,CACF,CAAC;QACF,aAAa,GAAG,EAAE,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE;QAC/F,MAAM;QACN,UAAU;QACV,SAAS;QACT,QAAQ,EAAE,SAAS,GAAG,UAAU;QAChC,WAAW;QACX,eAAe;QACf,oBAAoB;QACpB;;;yBAGiB;QACjB,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;QACzC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa;QACb,iBAAiB,EAAE,IAAI;KACxB,CAAC;AACJ,CAAC;AAGD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA0B,EAC1B,QAAgB,EAChB,SAA2B,EAC3B,EAAE,GAAS,IAAI,IAAI,EAAE;IAErB,OAAO,aAAa,CAClB;QACE,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK;YAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW;YACxC,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe;YAChD,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB;YACtD,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB;YACtD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY;YAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ;YAClC,kBAAkB,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB;YACtD,oBAAoB,EAAE,KAAK,CAAC,SAAS,CAAC,oBAAoB;SAC3D,CAAC,CAAC;QACH,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;KACrC,EACD,QAAQ,EACR,SAAS,EACT,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAyB,EACzB,QAAgB,EAChB,SAA2B,EAC3B,EAAE,GAAS,IAAI,IAAI,EAAE;IAErB;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAEtE,OAAO,aAAa,CAClB;QACE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAC;QACH,cAAc,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;QAC7D,aAAa,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;KAC3D,EACD,QAAQ,EACR,SAAS,EACT,EAAE,CACH,CAAC;AACJ,CAAC"}
|
package/dist/segment.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../src/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../src/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,YAAY,CAAC;AA2I1D,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAqE/C;AAED,gDAAgD;AAChD,wBAAgB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAEhD;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAE5D"}
|
package/dist/segment.js
CHANGED
|
@@ -2,8 +2,102 @@
|
|
|
2
2
|
const PATTERNS = [
|
|
3
3
|
// Fenced code blocks with ``` or ~~~ (unclosed blocks run to the end).
|
|
4
4
|
{ kind: 'fenced-code', regex: /(?:```|~~~)[\s\S]*?(?:```|~~~|$)/g },
|
|
5
|
-
|
|
5
|
+
/*
|
|
6
|
+
Indented code blocks, which this file used to leave to the rules on the
|
|
7
|
+
grounds that they are *"ambiguous in markdown"*. The ambiguity is real. The
|
|
8
|
+
consequence of acting on it was not proportionate to it.
|
|
9
|
+
|
|
10
|
+
**What the rules did to four lines of indented code**, at the aggressive
|
|
11
|
+
level, every one measured rather than imagined:
|
|
12
|
+
|
|
13
|
+
const label = "please keep"; -> Const label = " keep";
|
|
14
|
+
def run(x): -> Def run(x):
|
|
15
|
+
SELECT … WHERE note = 'please refund'; -> … = ' refund';
|
|
16
|
+
{"reason": "please cancel"} -> {"reason": " cancel"}
|
|
17
|
+
|
|
18
|
+
Three separate failures at once. The indentation goes, which by itself
|
|
19
|
+
makes the Python a syntax error. Keywords get sentence-capitalised, which
|
|
20
|
+
makes the rest of them syntax errors. And **string literals are edited** —
|
|
21
|
+
that SQL now matches a different value and that payload carries a different
|
|
22
|
+
reason. The report says tokens were saved.
|
|
23
|
+
|
|
24
|
+
The blank line before the block is what makes this checkable rather than a
|
|
25
|
+
guess: CommonMark says an indented code block cannot interrupt a paragraph,
|
|
26
|
+
so a run of indented lines after a blank line is code by the specification
|
|
27
|
+
rather than by anybody's judgement here.
|
|
28
|
+
|
|
29
|
+
**What it still gets wrong, stated rather than discovered later.** Content
|
|
30
|
+
indented four or more spaces inside a deeply nested list is continuation,
|
|
31
|
+
not code, and this protects it. That costs unsaved tokens in a rare shape.
|
|
32
|
+
Not protecting code costs a broken prompt in a common one, and those are not
|
|
33
|
+
the same kind of wrong.
|
|
34
|
+
|
|
35
|
+
Every quantifier is bounded or consumes a whole line exactly once, for the
|
|
36
|
+
reason the email mask below now carries in full.
|
|
37
|
+
*/
|
|
38
|
+
{
|
|
39
|
+
kind: 'indented-code',
|
|
40
|
+
/*
|
|
41
|
+
**The lookbehind requires real content before the blank line, and the
|
|
42
|
+
fuzzer is why.** Its first version asked only for a blank line, which a
|
|
43
|
+
document *beginning* with one satisfies — and `optimize` ends with a
|
|
44
|
+
`.trim()` on the whole reassembled string, outside every mask, which then
|
|
45
|
+
removes the leading newlines and the first line's indentation. The block
|
|
46
|
+
stopped being a block, the second pass no longer protected it, and 54 of
|
|
47
|
+
1,500 corpus inputs failed the idempotence property.
|
|
48
|
+
|
|
49
|
+
The trim is fixed at its source now — `optimize` trims the *masked* string,
|
|
50
|
+
where a protected span is a placeholder nothing can edit — so the mask can
|
|
51
|
+
also claim a block at the very start of a document. It has to: at the
|
|
52
|
+
aggressive level a rule can delete the sentence before the blank line, and
|
|
53
|
+
a block that was protected on the first pass has to still be protected on
|
|
54
|
+
the second or the output never settles.
|
|
55
|
+
*/
|
|
56
|
+
regex: /(?<=\S[ \t]*\n[ \t]*\n)(?:(?: {4,}|\t)[^\n]*(?:\n|$))+/g,
|
|
57
|
+
},
|
|
6
58
|
{ kind: 'url', regex: /\b(?:https?|ftp):\/\/[^\s<>"')\]]+/g, trimTrailing: /[.,;:!?]+$/ },
|
|
59
|
+
/*
|
|
60
|
+
Email addresses, for the reason at the top of this file.
|
|
61
|
+
|
|
62
|
+
**Five of ten realistic addresses came out corrupted before this existed.**
|
|
63
|
+
`please@example.com` became `@example.com`, and so did `thanks@`,
|
|
64
|
+
`basically@`, `essentially.ops@` and `very.important@`: the politeness,
|
|
65
|
+
filler and intensifier rules match the local part as ordinary prose and cut
|
|
66
|
+
it out. What is left is not a wrong address, it is not an address — and the
|
|
67
|
+
report says tokens were saved.
|
|
68
|
+
|
|
69
|
+
That is the failure this module's own first paragraph names. A code block, a
|
|
70
|
+
URL and a placeholder were on the list; the thing every support prompt in
|
|
71
|
+
the world carries was not. `support@` and `no-reply@` survived, and
|
|
72
|
+
`por.favor@ejemplo.es` survived only because the Spanish politeness entry is
|
|
73
|
+
written with a space — luck, not design, which is what made it invisible.
|
|
74
|
+
|
|
75
|
+
After the URL pattern so a `mailto:` link is claimed as a URL first, and
|
|
76
|
+
trailing punctuation is trimmed for the same reason it is there: the full
|
|
77
|
+
stop in "write to a@b.com." belongs to the sentence.
|
|
78
|
+
*/
|
|
79
|
+
{
|
|
80
|
+
kind: 'email',
|
|
81
|
+
/*
|
|
82
|
+
**Every quantifier here is bounded, and the first version of this was not.**
|
|
83
|
+
The local part accepts `.`, so on a long dotted run with no `@` in it —
|
|
84
|
+
a dotted run behind a scheme, which is a fixture in `security.test.js`
|
|
85
|
+
for exactly this reason — an unbounded `+` matches the whole run from every starting
|
|
86
|
+
position and then fails. Quadratic: **897ms on 40,008 characters**, and
|
|
87
|
+
`optimize` runs this alongside every other pattern, which took the total
|
|
88
|
+
past the 5-second cliff detector on a CI runner while passing on a faster
|
|
89
|
+
machine. That test's own note had already recorded the lesson from the
|
|
90
|
+
last time — *"quadratic until the label quantifiers were bounded"* — and
|
|
91
|
+
this pattern arrived a week later without them.
|
|
92
|
+
|
|
93
|
+
The bounds are RFC 5321's, not invented: 64 octets for a local part, 63
|
|
94
|
+
for a domain label. The TLD's 24 is generous against the longest real one
|
|
95
|
+
(`.travelersinsurance`, 19). Bounded, the same input takes **8ms**, and no
|
|
96
|
+
address in the corpus is lost.
|
|
97
|
+
*/
|
|
98
|
+
regex: /\b[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9-]{1,63}(?:\.[A-Za-z0-9-]{1,63})*\.[A-Za-z]{2,24}/g,
|
|
99
|
+
trimTrailing: /[.,;:!?]+$/,
|
|
100
|
+
},
|
|
7
101
|
// Template placeholders: {{var}}, {var}, ${var}, {% tag %}, <<VAR>>, %(var)s
|
|
8
102
|
{
|
|
9
103
|
kind: 'placeholder',
|