@mailwoman/core 4.10.0 → 4.11.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.
Files changed (69) hide show
  1. package/README.md +90 -0
  2. package/data/coarse-placer/meta.json +17 -48
  3. package/out/decoder/arbitrate-tree.d.ts +45 -0
  4. package/out/decoder/arbitrate-tree.d.ts.map +1 -0
  5. package/out/decoder/arbitrate-tree.js +97 -0
  6. package/out/decoder/arbitrate-tree.js.map +1 -0
  7. package/out/decoder/index.d.ts +2 -0
  8. package/out/decoder/index.d.ts.map +1 -1
  9. package/out/decoder/index.js +2 -0
  10. package/out/decoder/index.js.map +1 -1
  11. package/out/decoder/proposals-to-tree.d.ts +20 -1
  12. package/out/decoder/proposals-to-tree.d.ts.map +1 -1
  13. package/out/decoder/proposals-to-tree.js +37 -0
  14. package/out/decoder/proposals-to-tree.js.map +1 -1
  15. package/out/decoder/resolve-proposal-overlaps.d.ts +52 -0
  16. package/out/decoder/resolve-proposal-overlaps.d.ts.map +1 -0
  17. package/out/decoder/resolve-proposal-overlaps.js +74 -0
  18. package/out/decoder/resolve-proposal-overlaps.js.map +1 -0
  19. package/out/parser/index.d.ts +1 -0
  20. package/out/parser/index.d.ts.map +1 -1
  21. package/out/parser/index.js +1 -0
  22. package/out/parser/index.js.map +1 -1
  23. package/out/parser/proposal-pipeline.d.ts +16 -3
  24. package/out/parser/proposal-pipeline.d.ts.map +1 -1
  25. package/out/parser/proposal-pipeline.js +18 -6
  26. package/out/parser/proposal-pipeline.js.map +1 -1
  27. package/out/parser/solution-to-proposals.d.ts +28 -0
  28. package/out/parser/solution-to-proposals.d.ts.map +1 -0
  29. package/out/parser/solution-to-proposals.js +44 -0
  30. package/out/parser/solution-to-proposals.js.map +1 -0
  31. package/out/pipeline/runtime-pipeline.d.ts.map +1 -1
  32. package/out/pipeline/runtime-pipeline.js +32 -4
  33. package/out/pipeline/runtime-pipeline.js.map +1 -1
  34. package/out/pipeline/types.d.ts +30 -1
  35. package/out/pipeline/types.d.ts.map +1 -1
  36. package/out/policy/defaults.d.ts +11 -6
  37. package/out/policy/defaults.d.ts.map +1 -1
  38. package/out/policy/defaults.js +12 -7
  39. package/out/policy/defaults.js.map +1 -1
  40. package/out/policy/from-config.d.ts +14 -4
  41. package/out/policy/from-config.d.ts.map +1 -1
  42. package/out/policy/from-config.js +16 -5
  43. package/out/policy/from-config.js.map +1 -1
  44. package/out/policy/index.d.ts +1 -0
  45. package/out/policy/index.d.ts.map +1 -1
  46. package/out/policy/index.js +1 -0
  47. package/out/policy/index.js.map +1 -1
  48. package/out/policy/input-shape-router.d.ts +104 -0
  49. package/out/policy/input-shape-router.d.ts.map +1 -0
  50. package/out/policy/input-shape-router.js +88 -0
  51. package/out/policy/input-shape-router.js.map +1 -0
  52. package/out/policy/registry.d.ts +7 -3
  53. package/out/policy/registry.d.ts.map +1 -1
  54. package/out/policy/registry.js +7 -3
  55. package/out/policy/registry.js.map +1 -1
  56. package/out/resolver/remote-resolver.d.ts +4 -2
  57. package/out/resolver/remote-resolver.d.ts.map +1 -1
  58. package/out/resolver/remote-resolver.js.map +1 -1
  59. package/out/resolver/resolve.d.ts.map +1 -1
  60. package/out/resolver/resolve.js +74 -4
  61. package/out/resolver/resolve.js.map +1 -1
  62. package/out/resolver/types.d.ts +48 -9
  63. package/out/resolver/types.d.ts.map +1 -1
  64. package/out/resolver/types.js +56 -9
  65. package/out/resolver/types.js.map +1 -1
  66. package/out/utils/repo.d.ts.map +1 -1
  67. package/out/utils/repo.js +5 -4
  68. package/out/utils/repo.js.map +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Input-shape router (#478 increment 2) — the arbitration _prior_.
7
+ *
8
+ * A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
9
+ * seeds the whole per-component policy table before per-tag config overlays. The intuition (the
10
+ * parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
11
+ * `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
12
+ * weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
13
+ *
14
+ * This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
15
+ * (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
16
+ * production `runPipeline` does not feed it live signals until the two arbitration sites are
17
+ * unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
18
+ * that wiring — the prior is proven correct in isolation before any behavior changes.
19
+ *
20
+ * Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
21
+ * `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
22
+ * safe to import from anywhere. The real signals satisfy these shapes by construction.
23
+ */
24
+ import type { PolicyMode } from "./policy.js";
25
+ /** Minimal kind-classifier signal. Compatible with `QueryKindResult` (`core/pipeline/types.ts`). */
26
+ export interface RouterKindSignal {
27
+ /** The classified kind, e.g. `structured_address`, `landmark`, `vague`. */
28
+ kind: string;
29
+ /** Top-class confidence, 0..1. */
30
+ confidence: number;
31
+ }
32
+ /** Minimal query-shape signal. Compatible with `QueryShapeLite` (`core/pipeline/types.ts`). */
33
+ export interface RouterShapeSignal {
34
+ /**
35
+ * Broad character category:
36
+ *
37
+ * - `numeric`
38
+ * - `alpha`
39
+ * - `alphanumeric`
40
+ * - `cjk`
41
+ * - `cyrillic`
42
+ * - `arabic`
43
+ * - `mixed`.
44
+ */
45
+ characterClass?: string;
46
+ }
47
+ /**
48
+ * Minimal coarse-placer signal (#244). Compatible with `CoarsePrediction`
49
+ * (`core/coarse-placer/coarse-placer.ts`). `null` means no placer ran — treated as "no OOD signal",
50
+ * never as an abstention.
51
+ */
52
+ export interface RouterPlacerSignal {
53
+ /** The in-map country argmax, `null` when abstained, or `"OTHER"` when off-map. */
54
+ country: string | null;
55
+ /** Explicit abstention flag (M2 open-set reject). */
56
+ abstained: boolean;
57
+ }
58
+ /** The routed prior: a default policy mode for the whole component table, plus an abstain signal. */
59
+ export interface InputShapeRoute {
60
+ /**
61
+ * The default {@link PolicyMode} every component starts from (per-tag config still overrides).
62
+ *
63
+ * - `rule_preferred` — clean structured Latin address; v0's home turf.
64
+ * - `neural_preferred` — noisy / non-Latin / off-map; neural carries it.
65
+ * - `both` — weak/ambiguous; keep every source (paired with `abstain: true`).
66
+ */
67
+ defaultMode: PolicyMode;
68
+ /**
69
+ * True when both sources are weak (low kind confidence and/or the placer abstained on a non-clean
70
+ * shape). A first-class outcome reserved for the resolver/admin honest-radius downgrade — but it
71
+ * has NO consumer until #478 increment 3, so for now it is computed and reported only.
72
+ * `defaultMode` is `both` when this is set (drop nothing).
73
+ */
74
+ abstain: boolean;
75
+ /** Human-readable trace of which branch fired — for telemetry and test assertions. */
76
+ reason: string;
77
+ }
78
+ /**
79
+ * Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
80
+ * v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
81
+ * both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
82
+ */
83
+ export declare const CLEAN_KIND_CONFIDENCE = 0.8;
84
+ /**
85
+ * Classify the input's shape into a default policy mode.
86
+ *
87
+ * The decision tree (first match wins):
88
+ *
89
+ * 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
90
+ * Latin-centric, so non-Latin input is neural's regardless of kind.
91
+ * 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
92
+ * {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
93
+ * `rule_preferred`. v0's home turf.
94
+ * 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
95
+ * `both`, drop nothing).
96
+ * 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
97
+ * `locality_only`) → `neural_preferred`.
98
+ *
99
+ * @param kind Kind-classifier signal.
100
+ * @param shape Query-shape signal.
101
+ * @param placer Coarse-placer signal, or `null` when none ran.
102
+ */
103
+ export declare function routeInputShape(kind: RouterKindSignal, shape: RouterShapeSignal, placer: RouterPlacerSignal | null): InputShapeRoute;
104
+ //# sourceMappingURL=input-shape-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-shape-router.d.ts","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,oGAAoG;AACpG,MAAM,WAAW,gBAAgB;IAChC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,mFAAmF;IACnF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAA;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC/B;;;;;;OAMG;IACH,WAAW,EAAE,UAAU,CAAA;IACvB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;CACd;AAcD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAC/B,eAAe,CAmCjB"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Input-shape router (#478 increment 2) — the arbitration _prior_.
7
+ *
8
+ * A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
9
+ * seeds the whole per-component policy table before per-tag config overlays. The intuition (the
10
+ * parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
11
+ * `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
12
+ * weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
13
+ *
14
+ * This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
15
+ * (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
16
+ * production `runPipeline` does not feed it live signals until the two arbitration sites are
17
+ * unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
18
+ * that wiring — the prior is proven correct in isolation before any behavior changes.
19
+ *
20
+ * Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
21
+ * `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
22
+ * safe to import from anywhere. The real signals satisfy these shapes by construction.
23
+ */
24
+ /** Kinds the rules system handles well when the rest of the shape is clean. */
25
+ const RULE_CLEAN_KINDS = new Set(["structured_address", "intersection", "po_box", "postcode_only"]);
26
+ /**
27
+ * Non-Latin scripts where the Latin-centric rules system is weak — hand to neural regardless of
28
+ * kind.
29
+ */
30
+ const OOD_SCRIPTS = new Set(["cjk", "cyrillic", "arabic"]);
31
+ /** Character classes that count as "Latin / clean" for the `rule_preferred` guard. */
32
+ const LATIN_CLASSES = new Set(["numeric", "alpha", "alphanumeric"]);
33
+ /**
34
+ * Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
35
+ * v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
36
+ * both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
37
+ */
38
+ export const CLEAN_KIND_CONFIDENCE = 0.8;
39
+ /**
40
+ * Classify the input's shape into a default policy mode.
41
+ *
42
+ * The decision tree (first match wins):
43
+ *
44
+ * 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
45
+ * Latin-centric, so non-Latin input is neural's regardless of kind.
46
+ * 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
47
+ * {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
48
+ * `rule_preferred`. v0's home turf.
49
+ * 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
50
+ * `both`, drop nothing).
51
+ * 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
52
+ * `locality_only`) → `neural_preferred`.
53
+ *
54
+ * @param kind Kind-classifier signal.
55
+ * @param shape Query-shape signal.
56
+ * @param placer Coarse-placer signal, or `null` when none ran.
57
+ */
58
+ export function routeInputShape(kind, shape, placer) {
59
+ const cc = shape.characterClass;
60
+ const placerAbstained = placer !== null && (placer.abstained || placer.country === null || placer.country === "OTHER");
61
+ // 0. Non-Latin script → neural, before any kind-based routing.
62
+ if (cc !== undefined && OOD_SCRIPTS.has(cc)) {
63
+ return { defaultMode: "neural_preferred", abstain: false, reason: `ood-script:${cc}` };
64
+ }
65
+ // 1. Clean structured Latin address with a confident clean kind and no placer abstention → rules.
66
+ const latinOrUnknown = cc === undefined || LATIN_CLASSES.has(cc);
67
+ if (RULE_CLEAN_KINDS.has(kind.kind) &&
68
+ kind.confidence >= CLEAN_KIND_CONFIDENCE &&
69
+ latinOrUnknown &&
70
+ !placerAbstained) {
71
+ return {
72
+ defaultMode: "rule_preferred",
73
+ abstain: false,
74
+ reason: `clean:${kind.kind}@${kind.confidence.toFixed(2)}`,
75
+ };
76
+ }
77
+ // 2. Both signals weak → abstain (keep every source; drop nothing).
78
+ if (placerAbstained || kind.confidence < CLEAN_KIND_CONFIDENCE) {
79
+ return {
80
+ defaultMode: "both",
81
+ abstain: true,
82
+ reason: `weak:kind=${kind.kind}@${kind.confidence.toFixed(2)},placerAbstained=${placerAbstained}`,
83
+ };
84
+ }
85
+ // 3. Confident, Latin, placer-OK, but not a clean kind → neural.
86
+ return { defaultMode: "neural_preferred", abstain: false, reason: `neural-default:${kind.kind}` };
87
+ }
88
+ //# sourceMappingURL=input-shape-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-shape-router.js","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6DH,+EAA+E;AAC/E,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;AAExH;;;GAGG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE/E,sFAAsF;AACtF,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAsB,EACtB,KAAwB,EACxB,MAAiC;IAEjC,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,CAAA;IAC/B,MAAM,eAAe,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;IAEtH,+DAA+D;IAC/D,IAAI,EAAE,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACvF,CAAC;IAED,kGAAkG;IAClG,MAAM,cAAc,GAAG,EAAE,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChE,IACC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,qBAAqB;QACxC,cAAc;QACd,CAAC,eAAe,EACf,CAAC;QACF,OAAO;YACN,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAA;IACF,CAAC;IAED,oEAAoE;IACpE,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAChE,OAAO;YACN,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,eAAe,EAAE;SACjG,CAAA;IACF,CAAC;IAED,iEAAiE;IACjE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;AAClG,CAAC"}
@@ -10,15 +10,19 @@
10
10
  * per-locale overrides at startup. Look-up and `apply` are pure.
11
11
  */
12
12
  import type { ClassificationProposal, ComponentTag } from "@mailwoman/core/types";
13
- import type { ClassifierPolicy, PolicyRegistry } from "./policy.js";
13
+ import type { ClassifierPolicy, PolicyMode, PolicyRegistry } from "./policy.js";
14
14
  /**
15
15
  * Concrete registry implementation. Construct empty with `new InMemoryPolicyRegistry()` and load
16
16
  * entries via `set()`, or pre-load defaults via `InMemoryPolicyRegistry.withDefaults()`.
17
17
  */
18
18
  export declare class InMemoryPolicyRegistry implements PolicyRegistry {
19
19
  #private;
20
- /** Build a registry pre-loaded with `rule_only` for every component. */
21
- static withDefaults(): InMemoryPolicyRegistry;
20
+ /**
21
+ * Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
22
+ * input-shape router (#478) passes a shape-derived default so the whole table starts from the
23
+ * routed prior.
24
+ */
25
+ static withDefaults(mode?: PolicyMode): InMemoryPolicyRegistry;
22
26
  /** Install a policy entry. Replaces any prior entry with the same key. */
23
27
  set(policy: ClassifierPolicy): void;
24
28
  /** Remove a policy entry, if present. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAc,cAAc,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAG5D,wEAAwE;IACxE,MAAM,CAAC,YAAY,IAAI,sBAAsB;IAQ7C,0EAA0E;IAC1E,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInC,yCAAyC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,+CAA+C;IAC/C,OAAO,IAAI,gBAAgB,EAAE;IAI7B,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAUlE,KAAK,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAkB9F"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAG5D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,UAAwB,GAAG,sBAAsB;IAQ3E,0EAA0E;IAC1E,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInC,yCAAyC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,+CAA+C;IAC/C,OAAO,IAAI,gBAAgB,EAAE;IAI7B,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAUlE,KAAK,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAkB9F"}
@@ -20,10 +20,14 @@ function policyKey(component, locale) {
20
20
  */
21
21
  export class InMemoryPolicyRegistry {
22
22
  #entries = new Map();
23
- /** Build a registry pre-loaded with `rule_only` for every component. */
24
- static withDefaults() {
23
+ /**
24
+ * Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
25
+ * input-shape router (#478) passes a shape-derived default so the whole table starts from the
26
+ * routed prior.
27
+ */
28
+ static withDefaults(mode = "rule_only") {
25
29
  const registry = new InMemoryPolicyRegistry();
26
- for (const policy of buildDefaultPolicies()) {
30
+ for (const policy of buildDefaultPolicies(mode)) {
27
31
  registry.set(policy);
28
32
  }
29
33
  return registry;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,10 @@ export type SerializableResolveOpts = Omit<ResolveOpts, "addressPoints" | "inter
27
27
  /** Strip the live lookup handles from `ResolveOpts` so the rest can be JSON-serialized over HTTP. */
28
28
  export declare function serializableResolveOpts(opts?: ResolveOpts): SerializableResolveOpts | undefined;
29
29
  export interface RemoteResolverOpts {
30
- /** Full URL of the resolver service's resolve-tree endpoint, e.g.
31
- `http://resolver:7081/api/resolve-tree`. */
30
+ /**
31
+ * Full URL of the resolver service's resolve-tree endpoint, e.g.
32
+ * `http://resolver:7081/api/resolve-tree`.
33
+ */
32
34
  endpoint: string;
33
35
  /** Injectable fetch (tests / custom agents). Defaults to the global `fetch`. */
34
36
  fetch?: typeof fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;2CAC0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAA;CACjB;AAED,qBAAa,cAAe,YAAW,QAAQ;;gBAMlC,IAAI,EAAE,kBAAkB;IAQ9B,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAuB9E"}
1
+ {"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAA;CACjB;AAED,qBAAa,cAAe,YAAW,QAAQ;;gBAMlC,IAAI,EAAE,kBAAkB;IAQ9B,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAuB9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;AAyBD,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IACjB,MAAM,CAAc;IACpB,UAAU,CAAQ;IAClB,QAAQ,CAAwB;IAEzC,YAAY,IAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,IAAkB;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAA;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;gBAAS,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;AA2BD,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IACjB,MAAM,CAAc;IACpB,UAAU,CAAQ;IAClB,QAAQ,CAAwB;IAEzC,YAAY,IAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,IAAkB;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAA;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;gBAAS,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAQN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAEpE"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EASN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAEpE"}
@@ -11,7 +11,7 @@
11
11
  * for ambiguous names — `Springfield` under a resolved `Illinois` parent resolves to the IL one,
12
12
  * not the MA one.
13
13
  */
14
- import { DEFAULT_PLACETYPE_MAP, } from "./types.js";
14
+ import { DEFAULT_PLACETYPE_MAP, isPlacetypeFallback, } from "./types.js";
15
15
  /**
16
16
  * Build a `Resolver` backed by a `ResolverBackend`. The backend can be any concrete impl
17
17
  * structurally compatible with `PlaceLookup` — e.g. `new WofSqlitePlaceLookup({ databasePath
@@ -62,7 +62,7 @@ const STREET_NAME_TAGS = new Set(["street", "street_prefix", "street_prefix_part
62
62
  * prefix/particle/suffix descendants (NOT house_number/unit, which also nest under street), order
63
63
  * by span offset, and join.
64
64
  */
65
- function assembleStreetValue(streetNode) {
65
+ function assembleStreetValue(streetNode, directionalUnit) {
66
66
  const parts = [];
67
67
  const stack = [streetNode];
68
68
  while (stack.length > 0) {
@@ -71,9 +71,42 @@ function assembleStreetValue(streetNode) {
71
71
  parts.push(n);
72
72
  stack.push(...n.children);
73
73
  }
74
+ // #718 admin-tail: a directional quadrant the model mis-tagged `unit` ("1532 Taylor Street NE" →
75
+ // [unit] "NE") folds back into the street key by span order, so the situs/interp lookup matches the
76
+ // shard's "taylor street northeast" (the lookup normalizer expands the abbreviation). Lookup-key
77
+ // only — the parse output and admin resolution are untouched. Byte-stable when absent (undefined).
78
+ if (directionalUnit && directionalUnit.value.trim())
79
+ parts.push(directionalUnit);
74
80
  parts.sort((a, b) => a.start - b.start);
75
81
  return parts.map((n) => n.value.trim()).join(" ");
76
82
  }
83
+ /**
84
+ * Directional quadrant values the model sometimes emits as a `unit` node instead of inside the
85
+ * street subtree (#718 admin-tail diagnostic: ~19% of the admin-fallback tail, 83% of DC). Folded
86
+ * into the street lookup key by {@link assembleStreetValue}; the situs/interp lookup normalizer
87
+ * expands the abbreviation ("ne" → "northeast") so the shard's full street name matches.
88
+ */
89
+ const STREET_DIRECTIONAL_UNITS = new Set([
90
+ "n",
91
+ "s",
92
+ "e",
93
+ "w",
94
+ "ne",
95
+ "nw",
96
+ "se",
97
+ "sw",
98
+ "north",
99
+ "south",
100
+ "east",
101
+ "west",
102
+ "northeast",
103
+ "northwest",
104
+ "southeast",
105
+ "southwest",
106
+ ]);
107
+ function isDirectionalUnit(value) {
108
+ return STREET_DIRECTIONAL_UNITS.has(value.trim().toLowerCase().replace(/\./g, ""));
109
+ }
77
110
  /**
78
111
  * Address-point tier (#476): find `street` + `house_number` in the tree (first occurrence,
79
112
  * depth-first), scope by the tree's postcode/locality values, and on an exact hit stamp the point
@@ -82,6 +115,7 @@ function assembleStreetValue(streetNode) {
82
115
  function applyAddressPoint(roots, lookup) {
83
116
  let street;
84
117
  let houseNumber;
118
+ let directionalUnit;
85
119
  let locality;
86
120
  let postcode;
87
121
  const stack = [...roots];
@@ -91,6 +125,8 @@ function applyAddressPoint(roots, lookup) {
91
125
  street = n;
92
126
  if (n.tag === "house_number" && !houseNumber)
93
127
  houseNumber = n;
128
+ if (n.tag === "unit" && !directionalUnit && isDirectionalUnit(n.value))
129
+ directionalUnit = n;
94
130
  if (n.tag === "locality" && !locality && n.value.trim())
95
131
  locality = n.value.trim();
96
132
  if (n.tag === "postcode" && !postcode && n.value.trim())
@@ -99,7 +135,12 @@ function applyAddressPoint(roots, lookup) {
99
135
  }
100
136
  if (!street || !houseNumber)
101
137
  return;
102
- const hit = lookup.find({ street: assembleStreetValue(street), number: houseNumber.value, postcode, locality });
138
+ const hit = lookup.find({
139
+ street: assembleStreetValue(street, directionalUnit),
140
+ number: houseNumber.value,
141
+ postcode,
142
+ locality,
143
+ });
103
144
  if (!hit)
104
145
  return;
105
146
  street.metadata = {
@@ -119,6 +160,7 @@ function applyAddressPoint(roots, lookup) {
119
160
  function applyInterpolation(roots, lookup, radiusCalibration) {
120
161
  let street;
121
162
  let houseNumber;
163
+ let directionalUnit;
122
164
  let postcode;
123
165
  const stack = [...roots];
124
166
  while (stack.length > 0) {
@@ -127,6 +169,8 @@ function applyInterpolation(roots, lookup, radiusCalibration) {
127
169
  street = n;
128
170
  if (n.tag === "house_number" && !houseNumber)
129
171
  houseNumber = n;
172
+ if (n.tag === "unit" && !directionalUnit && isDirectionalUnit(n.value))
173
+ directionalUnit = n;
130
174
  if (n.tag === "postcode" && !postcode && n.value.trim())
131
175
  postcode = n.value.trim();
132
176
  stack.push(...n.children);
@@ -136,7 +180,7 @@ function applyInterpolation(roots, lookup, radiusCalibration) {
136
180
  // The fall-through gate: an exact situs point already won — never override it with an estimate.
137
181
  if (street.metadata?.["resolution_tier"] === "address_point")
138
182
  return;
139
- const hit = lookup.find({ street: assembleStreetValue(street), number: houseNumber.value, postcode });
183
+ const hit = lookup.find({ street: assembleStreetValue(street, directionalUnit), number: houseNumber.value, postcode });
140
184
  if (!hit)
141
185
  return;
142
186
  // Conformal-calibrated radius when the caller supplies a multiplier (#374): the raw half-segment
@@ -340,9 +384,30 @@ class WofResolver {
340
384
  ranked = [...candidates].sort((a, b) => Number(b.exactMatch ?? false) - Number(a.exactMatch ?? false) ||
341
385
  b.score + w * (post[b.country] ?? 0) - (a.score + w * (post[a.country] ?? 0)));
342
386
  }
387
+ // Exact-type preference (#718): when the placetype-equivalence group let a broader admin tier
388
+ // (`macroregion`/`macrocounty`) into the candidate pool, prefer a candidate of the EXACT
389
+ // requested type over the macro fallback — a real `region` (US state, DE Bundesland, ES
390
+ // provincia) must win over a same-name macroregion namesake, so no real region silently
391
+ // downgrades to a macro. STABLE partition: exact-type candidates keep their (already-ranked)
392
+ // relative order ahead of fallbacks, so the score / anchor re-rank survives WITHIN each tier.
393
+ // No-op for placetypes without a macro fallback (the byte-stable default) and when every
394
+ // candidate is the same tier.
395
+ const hasFallbackCandidate = ranked.some((c) => isPlacetypeFallback(placetype, c.placetype));
396
+ if (hasFallbackCandidate && ranked.length > 1) {
397
+ ranked = [
398
+ ...ranked.filter((c) => !isPlacetypeFallback(placetype, c.placetype)),
399
+ ...ranked.filter((c) => isPlacetypeFallback(placetype, c.placetype)),
400
+ ];
401
+ }
343
402
  const top = ranked[0];
344
403
  if (top.score < state.minWinningScore)
345
404
  return null;
405
+ // Fallback-observability (#718): if the winner is a macro-type AND no exact-type candidate
406
+ // existed for this span, annotate that a broader tier stood in for the true one. Additive —
407
+ // identity/coordinate are unchanged; only `metadata.resolution_quality` is stamped downstream.
408
+ if (isPlacetypeFallback(placetype, top.placetype)) {
409
+ top.resolutionQuality = "fallback";
410
+ }
346
411
  return { top, alternatives: ranked.slice(1) };
347
412
  }
348
413
  }
@@ -377,6 +442,11 @@ function decorateNode(node, resolved, alternatives) {
377
442
  // than silently trust the resolved point.
378
443
  if (resolved.mismatch)
379
444
  node.metadata["postcode_city_mismatch"] = true;
445
+ // Fallback-observability (#718): a broader admin tier (macroregion/macrocounty) stood in for the
446
+ // true region/county because no exact-type candidate existed. Additive annotation only — the
447
+ // resolved coordinate/identity above is untouched; this just lets a consumer / QA pass see it.
448
+ if (resolved.resolutionQuality)
449
+ node.metadata["resolution_quality"] = resolved.resolutionQuality;
380
450
  if (alternatives.length > 0) {
381
451
  node.alternatives = alternatives;
382
452
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,16 @@ export interface ResolvedPlace {
54
54
  * flag the conflict instead of silently mislocating.
55
55
  */
56
56
  mismatch?: boolean;
57
+ /**
58
+ * Fallback-observability marker (#718). Set to `"fallback"` by the resolver when this span
59
+ * resolved to a placetype-EQUIVALENCE-GROUP member (a macro-type — `macroregion`/`macrocounty`)
60
+ * because no candidate of the EXACT requested placetype (`region`/`county`) existed. It does NOT
61
+ * change the resolved identity or coordinate — it only annotates that a broader admin tier stood
62
+ * in for the true one, so a downstream consumer / QA pass can see a macroregion was used in lieu
63
+ * of a region. Surfaced onto the resolved node's metadata as `resolution_quality`. Absent when
64
+ * the exact placetype matched (the normal case).
65
+ */
66
+ resolutionQuality?: "fallback";
57
67
  }
58
68
  /**
59
69
  * Pull-based contract for a single resolver query. The resolver knows nothing about `AddressTree` —
@@ -322,18 +332,35 @@ export interface ResolveOpts {
322
332
  export type PlacetypeMap = Partial<Record<ComponentTag, string>>;
323
333
  export declare const DEFAULT_PLACETYPE_MAP: PlacetypeMap;
324
334
  /**
325
- * Placetype-equivalence groups for lookup FILTERING. WOF splits "city-like place" across several
326
- * placetypes `locality` (most cities), `borough` (Brooklyn, the Paris arrondissements, the London
327
- * boroughs), and `localadmin` (FR communes, US towns/townships in New England) but an address's
328
- * locality span can name ANY of them. A backend that filters a locality query to `placetype =
329
- * 'locality'` alone makes Brooklyn-the-borough (pop 2.5M) unreachable, so the fuzzy "Brooklyn Park,
330
- * MN" wins instead.
335
+ * Placetype-equivalence groups for lookup FILTERING. WOF splits a single addressing tier across
336
+ * several placetypes, but an address's span can name ANY of them. A backend that filters to the one
337
+ * "obvious" placetype makes the equivalents unreachable, so a fuzzy same-name place in the wrong
338
+ * tier wins instead.
339
+ *
340
+ * Three tiers are affected (the value of each entry is the set the SQL filter should accept; the
341
+ * FIRST entry is the canonical/requested type, which shard routing keys off):
342
+ *
343
+ * - **`locality`** — `locality` (most cities), `borough` (Brooklyn, the Paris arrondissements, the
344
+ * London boroughs), and `localadmin` (FR communes, US towns/townships in New England). Without
345
+ * the group, Brooklyn-the-borough (pop 2.5M) was unreachable and the fuzzy "Brooklyn Park, MN"
346
+ * won.
347
+ * - **`region`** — `region` + `macroregion` (#718). WOF does NOT model every country's top-level
348
+ * civil division as `region`: Italian regions (Lombardia, Veneto, Toscana…) are `macroregion`
349
+ * (their PROVINCES are `region`), and the post-2016 French régions (Île-de-France) are
350
+ * `macroregion` too. An address's `region` span names exactly those, so a `region`-only filter
351
+ * resolved them to NOTHING (confirmed against the IT/FR eval rows). US states / DE Bundesländer /
352
+ * ES provincias are genuine `region`, so the EXACT-type match is preferred in ranking (see the
353
+ * resolve.ts fallback-quality annotation) — the macro is the recall safety net, not a demotion.
354
+ * - **`county`** — `county` + `macrocounty` (#718). The `subregion` ComponentTag maps to `county` via
355
+ * {@link DEFAULT_PLACETYPE_MAP}; WOF carries `macrocounty` for FR départements-grouping / DE / GB
356
+ * tiers above the county. Proactive (no eval row exercises `subregion` today) but symmetric with
357
+ * `region` — biasing to inclusion, since a missed resolution costs more than a too-broad
358
+ * candidate (which is QA-visible). Same exact-type preference applies.
331
359
  *
332
360
  * This table is the single source of truth for that expansion, shared by every lookup backend
333
361
  * (`@mailwoman/resolver-wof-sqlite`, `@mailwoman/resolver-wof-wasm`, and the demo's httpvfs lookup)
334
- * so the Node and browser resolvers can't drift. Keyed by the REQUESTED placetype; the value is the
335
- * set the SQL filter should actually accept. Placetypes without an entry pass through unchanged —
336
- * an explicit `placetype: "borough"` query stays narrow.
362
+ * so the Node and browser resolvers can't drift. Keyed by the REQUESTED placetype. Placetypes
363
+ * without an entry pass through unchanged an explicit `placetype: "borough"` query stays narrow.
337
364
  */
338
365
  export declare const PLACETYPE_FILTER_GROUPS: Readonly<Record<string, readonly string[]>>;
339
366
  /**
@@ -344,6 +371,18 @@ export declare const PLACETYPE_FILTER_GROUPS: Readonly<Record<string, readonly s
344
371
  export declare function expandPlacetypeFilter(placetypes: null): null;
345
372
  export declare function expandPlacetypeFilter(placetypes: readonly string[]): string[];
346
373
  export declare function expandPlacetypeFilter(placetypes: readonly string[] | null): string[] | null;
374
+ /**
375
+ * Did `candidatePlacetype` resolve `requestedPlacetype` only via a BROADER admin tier (a macro-type
376
+ * fallback within the {@link PLACETYPE_FILTER_GROUPS} expansion), rather than the exact type
377
+ * (#718)?
378
+ *
379
+ * `region` → `region` is exact (false); `region` → `macroregion` is a fallback (true). Scoped to
380
+ * the `macro*` tiers (see {@link MACRO_FALLBACK_PLACETYPES}) so the `locality` group's
381
+ * borough/localadmin peers stay exact. The resolver uses this to (a) prefer an exact-type candidate
382
+ * in ranking and (b) annotate `resolutionQuality: "fallback"` when only a macro-type matched. A
383
+ * placetype outside the requested group, or any non-macro member, is treated as exact (false).
384
+ */
385
+ export declare function isPlacetypeFallback(requestedPlacetype: string, candidatePlacetype: string): boolean;
347
386
  /**
348
387
  * The interface implemented by `createWofResolver` and any future resolver factories.
349
388
  *