@mailwoman/neural 5.1.0 → 5.3.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.
@@ -20,6 +20,7 @@ import { type QueryShapeLike } from "./query-shape-prior.js";
20
20
  import { type SpanProposalPriorOpts } from "./span-proposal-prior.js";
21
21
  import { type StreetMorphologyPriorOpts } from "./street-morphology-prior.js";
22
22
  import { MailwomanTokenizer } from "./tokenizer.js";
23
+ import type { NeuralParseTrace } from "./trace.js";
23
24
  import type { ResolveWeightsOpts } from "./weights.js";
24
25
  /**
25
26
  * Structural type the classifier needs from a runner. Lets callers swap the Node-side `ONNXRunner` for a browser-side
@@ -169,6 +170,16 @@ export declare class NeuralAddressClassifier {
169
170
  * pre-repair) — they are the model's emissions, not the decode's opinions.
170
171
  */
171
172
  parseWithLogits(text: string, opts?: ParseOpts): Promise<ParseWithLogitsResult>;
173
+ /**
174
+ * Like `parse`, but returns the full decode-path trace instead of a tree: pieces, soft-feature channels as fed, raw
175
+ * logits, locale head, prior participation, post-prior emissions, viterbi path, repair diffs, and the final tokens.
176
+ * Shares the ENTIRE decode path with `parse` (one `#decode`, #481) and mirrors `parse`'s case normalization, so
177
+ * `buildAddressTree(trace.text, trace.tokens)` reproduces `parse(text)`'s tree exactly — modulo `opts.calibrate`,
178
+ * which `parse` forwards into the tree build to recalibrate node confidences and which the trace does not carry
179
+ * (tokens/labels/spans still match; re-pass the calibrator to the rebuild if calibrated confidences matter).
180
+ * Serializable by construction — see `./trace.js` for the schema and the spec reference.
181
+ */
182
+ traceParse(text: string, opts?: ParseOpts): Promise<NeuralParseTrace>;
172
183
  parseJSON(text: string, opts?: ParseOpts): Promise<Partial<Record<ComponentTag, string>>>;
173
184
  parseJSON(text: string, opts: ParseOpts & SerializeJSONOpts): Promise<Partial<Record<ComponentTag, string>> & {
174
185
  unknown?: UnknownSpan[];
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../classifier.ts"],"names":[],"mappings":"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"}
package/out/classifier.js CHANGED
@@ -12,7 +12,7 @@
12
12
  import { conventionsForSystem } from "@mailwoman/codex";
13
13
  import { buildAddressTree, decodeAsJSON, decodeAsTuples, decodeAsXML, } from "@mailwoman/core/decoder";
14
14
  import { proposeSpans } from "@mailwoman/core/pipeline";
15
- import { detectAddressSystem } from "./address-system.js";
15
+ import { detectAddressSystem, LOCALE_COUNTRIES } from "./address-system.js";
16
16
  import { normalizeInputCase } from "./case-normalize.js";
17
17
  import { buildFSTEmissionPriors } from "./fst-prior.js";
18
18
  import { STAGE2_BIO_LABELS } from "./labels.js";
@@ -24,6 +24,7 @@ import { buildSpanProposalPriors } from "./span-proposal-prior.js";
24
24
  import { buildCodexSpanLexicon } from "./span-proposer-lexicon.js";
25
25
  import { buildStreetMorphologyEmissionPriors } from "./street-morphology-prior.js";
26
26
  import { MailwomanTokenizer } from "./tokenizer.js";
27
+ import { TRACE_PRIOR_KINDS } from "./trace.js";
27
28
  import { repairUnitLabels } from "./unit-repair.js";
28
29
  import { buildBIOEndMask, buildBIOStartMask, buildBIOTransitionMask, softmax, viterbi } from "./viterbi.js";
29
30
  import { enforceWordConsistency } from "./word-consistency.js";
@@ -156,10 +157,12 @@ export class NeuralAddressClassifier {
156
157
  if (text.length === 0)
157
158
  return { raw: text, roots: [] };
158
159
  // #690: title-case all-caps ASCII input so the mixed-case-trained model doesn't go OOD.
159
- // Detection-gated (mixed-case + non-ASCII untouched), opt-in. ASCII title-case is char-for-char
160
- // length-preserving, so token offsets are unaffected; the tree is built from the normalized text
161
- // (values come out title-cased the SHOUTING is gone, the resolver name-matches case-insensitively).
162
- const modelText = opts?.normalizeCase ? normalizeInputCase(text) : text;
160
+ // Detection-gated (mixed-case + non-ASCII untouched). Default-ON (#895 settled drift D2 — the geocode
161
+ // path had run it since #713 while the pipeline factory + raw classifier defaulted off); `false`
162
+ // restores the raw-case parse. ASCII title-case is char-for-char length-preserving, so token offsets
163
+ // are unaffected; the tree is built from the normalized text (values come out title-cased — the
164
+ // SHOUTING is gone, the resolver name-matches case-insensitively).
165
+ const modelText = opts?.normalizeCase !== false ? normalizeInputCase(text) : text;
163
166
  const { tokens } = await this.#decode(modelText, opts);
164
167
  return buildAddressTree(modelText, tokens, opts?.calibrate ? { calibrate: opts.calibrate } : undefined);
165
168
  }
@@ -181,12 +184,68 @@ export class NeuralAddressClassifier {
181
184
  pieces: pieces.map((p) => ({ start: p.start, end: p.end })),
182
185
  };
183
186
  }
187
+ /**
188
+ * Like `parse`, but returns the full decode-path trace instead of a tree: pieces, soft-feature channels as fed, raw
189
+ * logits, locale head, prior participation, post-prior emissions, viterbi path, repair diffs, and the final tokens.
190
+ * Shares the ENTIRE decode path with `parse` (one `#decode`, #481) and mirrors `parse`'s case normalization, so
191
+ * `buildAddressTree(trace.text, trace.tokens)` reproduces `parse(text)`'s tree exactly — modulo `opts.calibrate`,
192
+ * which `parse` forwards into the tree build to recalibrate node confidences and which the trace does not carry
193
+ * (tokens/labels/spans still match; re-pass the calibrator to the rebuild if calibrated confidences matter).
194
+ * Serializable by construction — see `./trace.js` for the schema and the spec reference.
195
+ */
196
+ async traceParse(text, opts) {
197
+ const labels = [...this.labels];
198
+ if (text.length === 0) {
199
+ // Mirror #decode's contract on the degenerate input: systemSource still reflects the
200
+ // RESOLVED conventions mode (opts over config), and every prior kind gets its
201
+ // participation record (applied: false — nothing can fire on zero pieces).
202
+ const conventionsOpt = opts?.addressSystemConventions ?? this.cfg.addressSystemConventions;
203
+ return {
204
+ text,
205
+ caseNormalized: false,
206
+ pieces: [],
207
+ logits: [],
208
+ detectedSystem: null,
209
+ systemSource: conventionsOpt === undefined ? "off" : conventionsOpt === "auto" ? "auto" : "pinned",
210
+ priors: TRACE_PRIOR_KINDS.map((kind) => ({ kind, applied: false })),
211
+ emissions: [],
212
+ labels,
213
+ path: [],
214
+ decode: this.decodeMode,
215
+ repairs: [],
216
+ tokens: [],
217
+ };
218
+ }
219
+ const modelText = opts?.normalizeCase !== false ? normalizeInputCase(text) : text;
220
+ const { tokens, logits, pieces, trace } = await this.#decode(modelText, opts, true);
221
+ if (!trace)
222
+ throw new Error("traceParse: #decode returned no trace despite trace=true (invariant)");
223
+ return {
224
+ text: modelText,
225
+ caseNormalized: modelText !== text,
226
+ pieces: pieces.map((p) => ({ piece: p.piece, id: p.id, start: p.start, end: p.end })),
227
+ ...(trace.anchor ? { anchor: trace.anchor } : {}),
228
+ ...(trace.gazetteer ? { gazetteer: trace.gazetteer } : {}),
229
+ logits,
230
+ // The axis rides with the values (self-describing — consumers must not hardcode the order).
231
+ ...(trace.localeLogits ? { localeLogits: trace.localeLogits, localeCountries: [...LOCALE_COUNTRIES] } : {}),
232
+ detectedSystem: trace.detectedSystem,
233
+ systemSource: trace.systemSource,
234
+ priors: trace.priors,
235
+ emissions: trace.emissions,
236
+ labels,
237
+ path: trace.path,
238
+ decode: this.decodeMode,
239
+ repairs: trace.repairs,
240
+ tokens: tokens.map((t) => ({ ...t })),
241
+ };
242
+ }
184
243
  /**
185
244
  * THE decode path (#481): tokenize → anchor/gazetteer features → infer → priors → CRF/argmax → tokens → repairs. Both
186
245
  * `parse` and `parseWithLogits` consume this — never fork it; the 2026-06 audit found three drift surfaces in the
187
246
  * previous duplicated copies.
188
247
  */
189
- async #decode(text, opts) {
248
+ async #decode(text, opts, trace = false) {
190
249
  const { pieces, ids } = this.cfg.tokenizer.encode(text);
191
250
  // Soft-feature channels (#718): the postcode-anchor (#239/#240) + gazetteer-anchor (#464) clues
192
251
  // the model conditions on alongside the ids, plus the near-postcode gazetteer choreography. The
@@ -200,6 +259,34 @@ export class NeuralAddressClassifier {
200
259
  });
201
260
  const { logits, localeLogits } = await this.cfg.runner.infer(ids, soft.anchor, soft.gazetteer);
202
261
  this.assertEmissionWidth(logits);
262
+ // Trace retention (spec 2026-07-03): capture-by-reference of arrays this method already
263
+ // builds. Null when not tracing — the non-trace path allocates nothing new (every recording
264
+ // call below sits behind a `tracePriors?` / `if (traceRepairs)` guard, so even snapshot
265
+ // arguments are never built for a plain parse).
266
+ const tracePriors = trace ? [] : null;
267
+ const traceRepairs = trace ? [] : null;
268
+ const recordRepair = (pass, before, after) => {
269
+ if (!traceRepairs)
270
+ return;
271
+ if (before.length === after.length && before.every((label, i) => label === after[i]))
272
+ return;
273
+ traceRepairs.push({ pass, before, after });
274
+ };
275
+ // TraceRepair before/after are PER-PIECE (index-aligned with `pieces`). Token-count-preserving
276
+ // passes can read labels 1:1, but the span bridge MERGES fragments (dropping later tokens), so
277
+ // labels are projected back onto pieces via char offsets: each piece carries the label of the
278
+ // token covering its start. Keeps the alignment contract true for every pass.
279
+ const labelsPerPiece = (toks) => {
280
+ let t = 0;
281
+ return pieces.map((p) => {
282
+ while (t + 1 < toks.length && toks[t + 1].start <= p.start)
283
+ t++;
284
+ const tok = toks[t];
285
+ return (tok && tok.start <= p.start && p.start < tok.end ? tok.label : "O");
286
+ });
287
+ };
288
+ // `applied` reports EFFECT (see TracePrior): a composed prior counts only if any cell is nonzero.
289
+ const matrixHasBias = (m) => m.some((row) => row.some((v) => v !== 0));
203
290
  // Address-system conventions (#511 Tier A): resolve which system's rules apply — caller-pinned
204
291
  // system, or the model's own locale-head detection under a high confidence bar. Null = no
205
292
  // constraints; the parse below is byte-identical to the pre-conventions path.
@@ -213,20 +300,32 @@ export class NeuralAddressClassifier {
213
300
  ? (detectAddressSystem(localeLogits)?.system ?? null)
214
301
  : conventionsOpt;
215
302
  const conventions = conventionsForSystem(detectedSystem);
216
- let emissions = opts?.queryShape
217
- ? addEmissionMatrix(logits, buildEmissionPriors(opts.queryShape, pieces, this.labels, {
303
+ const systemSource = conventionsOpt === undefined ? "off" : conventionsOpt === "auto" ? "auto" : "pinned";
304
+ const queryShapePrior = opts?.queryShape
305
+ ? buildEmissionPriors(opts.queryShape, pieces, this.labels, {
218
306
  biasScale: opts.queryShapeBiasScale ?? 1.0,
219
307
  inputText: text,
220
- }))
221
- : logits;
222
- if (opts?.fst) {
223
- emissions = addEmissionMatrix(emissions, buildFSTEmissionPriors(opts.fst, pieces, this.labels, {
308
+ })
309
+ : undefined;
310
+ let emissions = queryShapePrior ? addEmissionMatrix(logits, queryShapePrior) : logits;
311
+ tracePriors?.push({ kind: "queryShape", applied: queryShapePrior !== undefined && matrixHasBias(queryShapePrior) });
312
+ const fstPrior = opts?.fst
313
+ ? buildFSTEmissionPriors(opts.fst, pieces, this.labels, {
224
314
  biasScale: opts.fstBiasScale ?? 1.0,
225
- }));
226
- }
227
- if (opts?.fstStreetMorphology) {
228
- emissions = addEmissionMatrix(emissions, buildStreetMorphologyEmissionPriors(opts.fstStreetMorphology, pieces, this.labels, opts.fstStreetMorphologyOpts ?? {}));
229
- }
315
+ })
316
+ : undefined;
317
+ if (fstPrior)
318
+ emissions = addEmissionMatrix(emissions, fstPrior);
319
+ tracePriors?.push({ kind: "fst", applied: fstPrior !== undefined && matrixHasBias(fstPrior) });
320
+ const morphologyPrior = opts?.fstStreetMorphology
321
+ ? buildStreetMorphologyEmissionPriors(opts.fstStreetMorphology, pieces, this.labels, opts.fstStreetMorphologyOpts ?? {})
322
+ : undefined;
323
+ if (morphologyPrior)
324
+ emissions = addEmissionMatrix(emissions, morphologyPrior);
325
+ tracePriors?.push({
326
+ kind: "streetMorphology",
327
+ applied: morphologyPrior !== undefined && matrixHasBias(morphologyPrior),
328
+ });
230
329
  // Stage 2.7 span proposer (#518, M2+M3): typed span proposals consumed as phrase priors.
231
330
  // DEFAULT ON since 2026-06-12 (operator ruling): an omitted config builds the codex lexicon
232
331
  // lazily with the frozen measured scales; `spanProposer: false` (config or per-parse) is the
@@ -237,10 +336,12 @@ export class NeuralAddressClassifier {
237
336
  if (spanProposals.length > 0) {
238
337
  emissions = addEmissionMatrix(emissions, buildSpanProposalPriors(spanProposals, pieces, this.labels, proposerCfg));
239
338
  }
339
+ tracePriors?.push({ kind: "spanProposer", applied: spanProposals.length > 0 });
240
340
  // (defaultProposer lives below decode helpers — one lazy build per classifier instance.)
241
341
  // Conventions emission mask: tags that are ungrammatical in the detected system are removed
242
342
  // from the decoder's vocabulary outright (-1e9 ≈ log 0). Copy-on-mask — `emissions` may alias
243
343
  // `logits`, which the per-token confidence below reads unmasked.
344
+ let conventionsMaskApplied = false;
244
345
  if (conventions?.forbiddenTags?.length) {
245
346
  const forbidden = new Set();
246
347
  for (const tag of conventions.forbiddenTags) {
@@ -252,9 +353,11 @@ export class NeuralAddressClassifier {
252
353
  forbidden.add(i);
253
354
  }
254
355
  if (forbidden.size > 0) {
356
+ conventionsMaskApplied = true;
255
357
  emissions = emissions.map((row) => row.map((v, idx) => (forbidden.has(idx) ? -1e9 : v)));
256
358
  }
257
359
  }
360
+ tracePriors?.push({ kind: "conventionsMask", applied: conventionsMaskApplied });
258
361
  let labelIndices = this.decodeMode === "viterbi"
259
362
  ? viterbi({
260
363
  emissions,
@@ -263,15 +366,22 @@ export class NeuralAddressClassifier {
263
366
  endTransitions: this.endTransitions,
264
367
  }).path
265
368
  : emissions.map((row) => argmaxSoftmax(row).idx);
369
+ // The trace's `path` is the DECODER's output — snapshot before the word-consistency healing
370
+ // below reassigns labelIndices (the healing itself is visible as a `wordConsistency` repair).
371
+ const decodedPath = trace ? [...labelIndices] : null;
266
372
  // Per-word BIO consistency repair (#727 + the admin-token fragmentation class). Opt-in — default
267
373
  // OFF → byte-identical. Heals words whose pieces disagree (e.g. `VERMONT`→VER[loc]+MONT[region],
268
374
  // `Lozère`→Loz[loc]+ère[region]) via a confidence-weighted vote over the post-prior emissions; a
269
375
  // word whose pieces already agree is untouched. See word-consistency.ts.
270
376
  let healedConfidence = null;
271
377
  if (opts?.enforceWordConsistency ?? this.cfg.enforceWordConsistency ?? false) {
378
+ const beforeLabels = traceRepairs ? labelIndices.map((i) => (this.labels[i] ?? "O")) : [];
272
379
  const wc = enforceWordConsistency(pieces, emissions, this.labels, labelIndices);
273
380
  labelIndices = wc.labelIndices;
274
381
  healedConfidence = wc.healedConfidence;
382
+ if (traceRepairs) {
383
+ recordRepair("wordConsistency", beforeLabels, labelIndices.map((i) => (this.labels[i] ?? "O")));
384
+ }
275
385
  }
276
386
  let tokens = pieces.map((p, i) => {
277
387
  const idx = labelIndices[i];
@@ -290,10 +400,16 @@ export class NeuralAddressClassifier {
290
400
  // shape (#511 Tier A): a span that is a sub-match of a shape-valid string is exactly the
291
401
  // snap-only truncation class the pass exists for ("47110" decoded as "4711" + a digit-split).
292
402
  if (opts?.postcodeRepair || conventions?.postcodePattern) {
403
+ const before = traceRepairs ? labelsPerPiece(tokens) : [];
293
404
  tokens = repairPostcodeLabels(text, tokens).tokens;
405
+ if (traceRepairs)
406
+ recordRepair("postcodeRepair", before, labelsPerPiece(tokens));
294
407
  }
295
408
  if (opts?.unitRepair) {
409
+ const before = traceRepairs ? labelsPerPiece(tokens) : [];
296
410
  tokens = repairUnitLabels(text, tokens).tokens;
411
+ if (traceRepairs)
412
+ recordRepair("unitRepair", before, labelsPerPiece(tokens));
297
413
  }
298
414
  // Punctuation-gap span bridging (v4.4.0 corrective — see span-bridge.ts): merge same-tag
299
415
  // fragments split at unlabeled punctuation ("P.O. Box" decoding as P + O + Box). Opt-in,
@@ -301,9 +417,34 @@ export class NeuralAddressClassifier {
301
417
  // ANNOTATION/QUOTED boundaries become merge-crossing constraints (M2's second half).
302
418
  if (opts?.bridgePunctuationGaps ?? this.cfg.bridgePunctuationGaps) {
303
419
  const blockedSpans = spanProposals.filter((p) => p.kind === "ANNOTATION_SPAN" || p.kind === "QUOTED_SPAN");
420
+ // The bridge MERGES tokens (later fragments are dropped), so both snapshots go through the
421
+ // per-piece projection — a merged span's label lands on every piece it covers, keeping
422
+ // before/after index-aligned with `pieces` per the TraceRepair contract.
423
+ const before = traceRepairs ? labelsPerPiece(tokens) : [];
304
424
  tokens = bridgePunctuationGaps(text, tokens, blockedSpans.length > 0 ? { blockedSpans } : undefined);
425
+ if (traceRepairs)
426
+ recordRepair("spanBridge", before, labelsPerPiece(tokens));
305
427
  }
306
- return { tokens, logits, pieces };
428
+ return {
429
+ tokens,
430
+ logits,
431
+ pieces,
432
+ ...(trace
433
+ ? {
434
+ trace: {
435
+ ...(soft.anchor ? { anchor: soft.anchor } : {}),
436
+ ...(soft.gazetteer ? { gazetteer: soft.gazetteer } : {}),
437
+ ...(localeLogits ? { localeLogits } : {}),
438
+ detectedSystem,
439
+ systemSource,
440
+ priors: tracePriors,
441
+ emissions,
442
+ path: decodedPath,
443
+ repairs: traceRepairs,
444
+ },
445
+ }
446
+ : {}),
447
+ };
307
448
  }
308
449
  async parseJSON(text, opts = {}) {
309
450
  return decodeAsJSON(await this.parse(text, opts), opts);
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../classifier.ts"],"names":[],"mappings":"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"}
package/out/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export * from "./soft-features.js";
18
18
  export * from "./span-proposal-prior.js";
19
19
  export * from "./span-proposer-lexicon.js";
20
20
  export * from "./tokenizer.js";
21
+ export * from "./trace.js";
21
22
  export { buildBIOEndMask, buildBIOStartMask, buildBIOTransitionMask, perTokenArgmax, softmax, viterbi, } from "./viterbi.js";
22
23
  export type { ViterbiInput, ViterbiResult } from "./viterbi.js";
23
24
  export * from "./weights.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC5G,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,OAAO,EACP,OAAO,GACP,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC/D,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC5G,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,OAAO,EACP,OAAO,GACP,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC/D,cAAc,cAAc,CAAA"}
package/out/index.js CHANGED
@@ -17,6 +17,7 @@ export * from "./soft-features.js";
17
17
  export * from "./span-proposal-prior.js";
18
18
  export * from "./span-proposer-lexicon.js";
19
19
  export * from "./tokenizer.js";
20
+ export * from "./trace.js";
20
21
  export { buildBIOEndMask, buildBIOStartMask, buildBIOTransitionMask, perTokenArgmax, softmax, viterbi, } from "./viterbi.js";
21
22
  export * from "./weights.js";
22
23
  //# sourceMappingURL=index.js.map
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE/E,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,OAAO,EACP,OAAO,GACP,MAAM,cAAc,CAAA;AAErB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAE/E,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,OAAO,EACP,OAAO,GACP,MAAM,cAAc,CAAA;AAErB,cAAc,cAAc,CAAA"}
package/out/trace.d.ts ADDED
@@ -0,0 +1,105 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Parse-trace types — the serializable record of one trip through
7
+ * `NeuralAddressClassifier`'s decode path: what the model saw (pieces + soft-feature
8
+ * channels), what it believed (raw logits, locale head), what nudged it (priors), and what
9
+ * overrode it (repair passes). Produced by `traceParse` (classifier.ts); consumed by the docs
10
+ * `<ModelVisualizer>` and, later, `mailwoman parse --trace`. Spec:
11
+ * docs/superpowers/specs/2026-07-03-parse-trace-model-visualizer-design.md.
12
+ *
13
+ * Everything here is plain JSON-serializable data by construction — no Maps, no classes, no
14
+ * typed arrays. The schema-snapshot test (test/trace-parse.test.ts) guards drift.
15
+ */
16
+ import type { SystemCode } from "@mailwoman/codex";
17
+ import type { DecoderToken } from "@mailwoman/core/decoder";
18
+ import type { SoftFeatureChannel } from "./soft-features.js";
19
+ /**
20
+ * The emission priors the decode path may compose, in application order. The ORDERED constant is the single source for
21
+ * "every kind" — the decode path's push sites and the empty-input return both produce records in exactly this order,
22
+ * and the trace test asserts against it, so adding a prior without its participation record is a test failure, not a
23
+ * silent omission.
24
+ */
25
+ export declare const TRACE_PRIOR_KINDS: readonly ["queryShape", "fst", "streetMorphology", "spanProposer", "conventionsMask"];
26
+ export type TracePriorKind = (typeof TRACE_PRIOR_KINDS)[number];
27
+ /**
28
+ * One prior's participation record: present for every kind. `applied` reports EFFECT, not configuration — true only
29
+ * when the composed prior actually carried a nonzero bias (or the mask removed at least one label). A configured source
30
+ * that matched nothing reports `false`, so "why didn't my prior move the emissions" is answerable from the trace
31
+ * alone.
32
+ */
33
+ export interface TracePrior {
34
+ kind: TracePriorKind;
35
+ applied: boolean;
36
+ }
37
+ /** The post-decode repair passes, in application order. */
38
+ export type TraceRepairPass = "wordConsistency" | "postcodeRepair" | "unitRepair" | "spanBridge";
39
+ /**
40
+ * A repair pass that changed something: per-piece BIO label sequences before and after, index-aligned with `pieces`.
41
+ * Passes that ran but changed nothing are omitted.
42
+ */
43
+ export interface TraceRepair {
44
+ pass: TraceRepairPass;
45
+ before: string[];
46
+ after: string[];
47
+ }
48
+ /** A tokenizer piece as fed to the model — `TokenizedPiece`, kept structural for JSON. */
49
+ export interface TracePiece {
50
+ piece: string;
51
+ id: number;
52
+ start: number;
53
+ end: number;
54
+ }
55
+ /**
56
+ * The full trace of one `traceParse` call. Field-by-field provenance lives in the spec's trace contract table; the one
57
+ * deviation from that table is that vocab ids ride on `pieces[].id` rather than a parallel `ids` array (same
58
+ * information, one fewer alignment invariant).
59
+ */
60
+ export interface NeuralParseTrace {
61
+ /** The text the model actually saw (post case-normalize). */
62
+ text: string;
63
+ /** True when case normalization changed the input (`normalizeInputCase`, #690). */
64
+ caseNormalized: boolean;
65
+ pieces: TracePiece[];
66
+ /** Postcode-anchor channel exactly as fed (post-choreography). Absent = channel not fed. */
67
+ anchor?: SoftFeatureChannel;
68
+ /** Gazetteer channel exactly as fed (post-suppression). Absent = channel not fed. */
69
+ gazetteer?: SoftFeatureChannel;
70
+ /** Raw model emissions, pre-prior — `logits[tokenIdx][labelIdx]`. */
71
+ logits: number[][];
72
+ /** Locale-head output, index-aligned with `localeCountries`. Absent on models without the head. */
73
+ localeLogits?: number[];
74
+ /**
75
+ * The locale-head axis: the country code each `localeLogits` index means, serialized from the producing model's own
76
+ * `LOCALE_COUNTRIES` so consumers never hardcode the order (the PLACETYPE_ORDER dual-maintenance class — a retrained
77
+ * head that adds or reorders classes would otherwise silently mislabel every downstream gauge). Present iff
78
+ * `localeLogits` is.
79
+ */
80
+ localeCountries?: string[];
81
+ /** Address system whose conventions applied, or null when conventions were off / below the bar. */
82
+ detectedSystem: SystemCode | null;
83
+ /** How `detectedSystem` was chosen: conventions off, locale-head auto-detect, or caller-pinned. */
84
+ systemSource: "off" | "auto" | "pinned";
85
+ priors: TracePrior[];
86
+ /** The post-prior, post-mask matrix viterbi actually decoded over. Equals `logits` when nothing fired. */
87
+ emissions: number[][];
88
+ /**
89
+ * The label vocabulary. Index-aligned with the logits/emissions inner dimension, which may be NARROWER than this list
90
+ * (the Stage-prefix rule: a Stage-N model loaded with Stage-N+1 labels emits only the prefix — see labels.ts +
91
+ * `assertEmissionWidth`). Never wider.
92
+ */
93
+ labels: string[];
94
+ /**
95
+ * The DECODER's label indices per piece — the raw viterbi/argmax output, captured BEFORE the word-consistency healing
96
+ * vote and before every token-repair pass (all of which appear in `repairs`; final labels live on `tokens`). This is
97
+ * what the heatmap's path outline means: the cell the decode chose, not the healed result.
98
+ */
99
+ path: number[];
100
+ decode: "viterbi" | "argmax";
101
+ repairs: TraceRepair[];
102
+ /** The final tokens — identical to what `parse()` builds its tree from. */
103
+ tokens: DecoderToken[];
104
+ }
105
+ //# sourceMappingURL=trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,uFAAwF,CAAA;AAEtH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CAChB;AAED,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAA;AAEhG;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,MAAM,EAAE,CAAA;CACf;AAED,0FAA0F;AAC1F,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,mFAAmF;IACnF,cAAc,EAAE,OAAO,CAAA;IACvB,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,qFAAqF;IACrF,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,qEAAqE;IACrE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IAClB,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,mGAAmG;IACnG,cAAc,EAAE,UAAU,GAAG,IAAI,CAAA;IACjC,mGAAmG;IACnG,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;IACvC,MAAM,EAAE,UAAU,EAAE,CAAA;IACpB,0GAA0G;IAC1G,SAAS,EAAE,MAAM,EAAE,EAAE,CAAA;IACrB;;;;OAIG;IACH,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB;;;;OAIG;IACH,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,2EAA2E;IAC3E,MAAM,EAAE,YAAY,EAAE,CAAA;CACtB"}
package/out/trace.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Parse-trace types — the serializable record of one trip through
7
+ * `NeuralAddressClassifier`'s decode path: what the model saw (pieces + soft-feature
8
+ * channels), what it believed (raw logits, locale head), what nudged it (priors), and what
9
+ * overrode it (repair passes). Produced by `traceParse` (classifier.ts); consumed by the docs
10
+ * `<ModelVisualizer>` and, later, `mailwoman parse --trace`. Spec:
11
+ * docs/superpowers/specs/2026-07-03-parse-trace-model-visualizer-design.md.
12
+ *
13
+ * Everything here is plain JSON-serializable data by construction — no Maps, no classes, no
14
+ * typed arrays. The schema-snapshot test (test/trace-parse.test.ts) guards drift.
15
+ */
16
+ /**
17
+ * The emission priors the decode path may compose, in application order. The ORDERED constant is the single source for
18
+ * "every kind" — the decode path's push sites and the empty-input return both produce records in exactly this order,
19
+ * and the trace test asserts against it, so adding a prior without its participation record is a test failure, not a
20
+ * silent omission.
21
+ */
22
+ export const TRACE_PRIOR_KINDS = ["queryShape", "fst", "streetMorphology", "spanProposer", "conventionsMask"];
23
+ //# sourceMappingURL=trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,CAAU,CAAA"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@mailwoman/neural",
3
- "version": "5.1.0",
3
+ "version": "5.3.0",
4
4
  "description": "Mailwoman neural classifier runtime: SentencePiece tokenizer + ONNX inference + decoder wiring.",
5
- "license": "AGPL-3.0-only",
5
+ "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/sister-software/mailwoman.git",
@@ -32,8 +32,8 @@
32
32
  "access": "public"
33
33
  },
34
34
  "dependencies": {
35
- "@mailwoman/codex": "5.1.0",
36
- "@mailwoman/core": "5.1.0",
35
+ "@mailwoman/codex": "5.3.0",
36
+ "@mailwoman/core": "5.3.0",
37
37
  "@sctg/sentencepiece-js": "^1.3.3",
38
38
  "onnxruntime-node": "^1.26.0"
39
39
  }