@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.
@@ -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 fields that leave this machine, listed once, in one place.
261
+ * The same list, published.
234
262
  *
235
- * The redaction guard reads this array rather than a copy of it, so a field
236
- * added to `ReceiptLine` and not added here fails the guard. A whitelist
237
- * maintained in two places is a whitelist with a hole in it.
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 ["label", "model", "calls", "inputTokens", "cacheReadTokens", "cacheWriteTokens", "cacheWrite5mTokens", "cacheWrite1hTokens", "outputTokens", "usd", "money", "pricing"];
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;
@@ -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;CACzB;AAED,+EAA+E;AAC/E,MAAM,MAAM,UAAU;AACpB;;;;;;;;;;;;;;;GAeG;AACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB;;;;;;;;GAQG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,aAAa,EAAE,CAAC,CAAC;IACjB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6DAA6D;IAC7D,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D;;;;;;;OAOG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;;;;;;;OAOG;IACH,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,mLAarB,CAAC;AA8CZ,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GAAE,cAAmB,GAC3B,eAAe,CA8CjB"}
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;IACxB;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,+EAA+E;AAC/E,MAAM,MAAM,UAAU;AACpB;;;;;;;;;;;;;;;GAeG;AACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE;AACtB;;;;;;;;GAQG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,aAAa,EAAE,CAAC,CAAC;IACjB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6DAA6D;IAC7D,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D;;;;;;;OAOG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;;;;;;;OAOG;IACH,IAAI,EAAE,UAAU,EAAE,CAAC;CACpB;AAqCD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAEhD,CAAC;AAmDF,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GAAE,cAAmB,GAC3B,eAAe,CA8CjB"}
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, listed once, in one place.
4
+ * The fields that leave this machine, keyed by the interface they describe.
5
5
  *
6
- * The redaction guard reads this array rather than a copy of it, so a field
7
- * added to `ReceiptLine` and not added here fails the guard. A whitelist
8
- * maintained in two places is a whitelist with a hole in it.
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
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.js","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"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"}
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
@@ -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;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrE;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,oDAAoD;QACpD,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;OAGG;IACH,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,4EAA4E;IAC5E,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;;;OAeG;IACH,aAAa,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,wEAAwE;IACxE,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,IAAI,CACb,cAAc,EACd,aAAa,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,cAAc,CACjG,EACD,KAAK,EAAE,YAAY,EACnB,EAAE,GAAE,IAAiB,GACpB,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,gBAAgB,EAC3B,EAAE,GAAE,IAAiB,GACpB,aAAa,GAAG,IAAI,CAmHtB"}
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 slice of report.byLabelAndModel) {
36
- const { breakdown } = slice;
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: slice.label,
45
- model: slice.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: slice.label,
82
- model: slice.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 = report.byLabelAndModel.filter((slice) => slice.model !== target.id && slice.breakdown.maxCallInputTokens <= target.contextWindow);
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.breakdown.inputTokens / 1_000_000) * inputPerMTok +
107
- (slice.breakdown.outputTokens / 1_000_000) * outputPerMTok, 0);
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
- unpricedModels: report.unpricedModels,
120
- unpricedCalls: report.unpriced.calls,
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
@@ -1 +1 @@
1
- {"version":3,"file":"reprice.js","sourceRoot":"","sources":["../src/reprice.ts"],"names":[],"mappings":"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"}
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"}
@@ -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;AA6C1D,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"}
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
- // Indented blocks of 4+ spaces are left to the rules: they are ambiguous in markdown.
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',