mailwoman 4.9.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.
package/README.md ADDED
@@ -0,0 +1,157 @@
1
+ # mailwoman
2
+
3
+ **A calibrated, retrieval-augmented postal-address parser.**
4
+
5
+ Mailwoman parses free-text postal addresses into structured components (house
6
+ number, street, locality, region, postcode, country, …) and resolves them to
7
+ coordinates via a gazetteer. It is the user-facing CLI and library entry point
8
+ for the Mailwoman ecosystem.
9
+
10
+ ```bash
11
+ # CLI — parse an address
12
+ npx mailwoman parse "1600 Amphitheatre Parkway, Mountain View, CA 94043"
13
+ ```
14
+
15
+ ```ts
16
+ // Library — parse programmatically
17
+ import { AddressParser } from "mailwoman"
18
+
19
+ const parser = new AddressParser()
20
+ const result = await parser.parse("1600 Amphitheatre Parkway, Mountain View, CA 94043")
21
+ // result.components.house_number → "1600"
22
+ // result.components.street → "Amphitheatre Parkway"
23
+ // result.components.locality → "Mountain View"
24
+ ```
25
+
26
+ ## What it does
27
+
28
+ Mailwoman is **not** an LLM and nothing about it is generative. It is a small
29
+ transformer encoder (~30M params) doing BIO token classification over a 33-label
30
+ address schema — boring NER, which is a feature for short, structured strings.
31
+
32
+ The design splits the problem in two:
33
+
34
+ - **The model learns the grammar** — a sequence labeler trained from scratch
35
+ on a diverse corpus of real and synthetic addresses.
36
+ - **The gazetteer knows the atlas** — a provenance-tracked Who's On First
37
+ database that resolves parsed components to real-world places and coordinates.
38
+
39
+ Knowledge arrives at inference as _soft input features_ (anchors) — it
40
+ informs, never overrides. If you know RAG from the LLM world, this is RAG
41
+ for token classification.
42
+
43
+ ## Installation
44
+
45
+ ```bash
46
+ npm install mailwoman
47
+
48
+ # For the geocoder (optional — enables `geocode` command and coordinate resolution)
49
+ npm install @mailwoman/resolver-wof-sqlite
50
+ ```
51
+
52
+ Requires Node.js ≥ 22.5.1.
53
+
54
+ ## CLI
55
+
56
+ ```bash
57
+ # Parse an address
58
+ mailwoman parse "123 Main St, Springfield, IL 62701"
59
+
60
+ # Parse with explicit locale
61
+ mailwoman parse "10 Rue de la Paix, 75002 Paris" --locale fr-FR
62
+
63
+ # Geocode an address (requires @mailwoman/resolver-wof-sqlite)
64
+ mailwoman geocode "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
65
+
66
+ # Entity resolution (dedup / cross-dataset matching)
67
+ mailwoman registry --sources config.json --out entities.geojson
68
+
69
+ # Interactive TUI
70
+ mailwoman parse --tui
71
+ ```
72
+
73
+ ## Library API
74
+
75
+ ```ts
76
+ import { AddressParser } from "mailwoman"
77
+
78
+ const parser = new AddressParser({
79
+ locale: "en-US", // "en-US" | "fr-FR"
80
+ defaultCountry: "US", // ISO-3166 country for gazetteer scope
81
+ })
82
+
83
+ const result = await parser.parse("1600 Amphitheatre Parkway, Mountain View, CA 94043")
84
+
85
+ // Structured components
86
+ result.components.house_number // "1600"
87
+ result.components.street // "Amphitheatre Parkway"
88
+ result.components.locality // "Mountain View"
89
+ result.components.region // "CA"
90
+ result.components.postcode // "94043"
91
+ result.components.country // "US"
92
+
93
+ // Resolved coordinate (when gazetteer is available)
94
+ result.coordinate // { lat: 37.4224, lon: -122.0842 }
95
+
96
+ // Per-component confidence
97
+ result.confidence.house_number // 0.99
98
+ result.confidence.street // 0.95
99
+ ```
100
+
101
+ ## Configuration
102
+
103
+ ```ts
104
+ const parser = new AddressParser({
105
+ locale: "en-US",
106
+ defaultCountry: "US",
107
+ calibrate: true, // Enable isotonic confidence calibration
108
+ normalizeCase: false, // Detect + title-case all-caps input (default: off)
109
+ jointReconcile: false, // Use joint decoding (default: argmax)
110
+ arbitrate: false, // Enable rule-vs-neural arbitration (default: off)
111
+ })
112
+ ```
113
+
114
+ ## Architecture
115
+
116
+ Mailwoman's runtime pipeline is a staged coordinator:
117
+
118
+ ```
119
+ normalize → query-shape → locale-gate → kind-classifier → phrase-grouper → classifier → decoder
120
+ ```
121
+
122
+ Each stage is published as its own `@mailwoman/*` package. The `mailwoman`
123
+ package is the umbrella that wires them together as a single `npm install`.
124
+
125
+ ## Packages
126
+
127
+ | Package | Role |
128
+ | --------------------------------- | -------------------------------------------------- |
129
+ | `mailwoman` | CLI + `AddressParser` (you are here) |
130
+ | `@mailwoman/core` | Types, pipeline coordinator, decoder, dictionaries |
131
+ | `@mailwoman/neural` | SentencePiece tokenizer + ONNX runtime |
132
+ | `@mailwoman/neural-weights-en-us` | Trained model bundle (en-US) |
133
+ | `@mailwoman/neural-weights-fr-fr` | Trained model bundle (fr-FR) |
134
+ | `@mailwoman/normalize` | Stage 1: input preprocessing |
135
+ | `@mailwoman/query-shape` | Stage 1.5: structural priors |
136
+ | `@mailwoman/locale-gate` | Stage 2: locale detection |
137
+ | `@mailwoman/kind-classifier` | Stage 2.5: query kind classification |
138
+ | `@mailwoman/phrase-grouper` | Stage 2.7: phrase boundary discovery |
139
+ | `@mailwoman/classifiers` | Rule-based classifiers |
140
+ | `@mailwoman/codex` | Postal reference data |
141
+ | `@mailwoman/corpus` | Training corpus pipeline |
142
+ | `@mailwoman/spatial` | Spatial utilities |
143
+ | `@mailwoman/formatter` | Address formatting + match key |
144
+ | `@mailwoman/record` | Record schema + normalizers |
145
+ | `@mailwoman/match` | Block → score → cluster matcher |
146
+ | `@mailwoman/address-id` | Stable address primary key |
147
+ | `@mailwoman/registry` | Entity resolution application |
148
+
149
+ ## Related
150
+
151
+ - [Documentation & blog](https://mailwoman.sister.software)
152
+ - [What Mailwoman Is](https://mailwoman.sister.software/articles/concepts/what-mailwoman-is/)
153
+ - [GitHub](https://github.com/sister-software/mailwoman)
154
+
155
+ ## License
156
+
157
+ [AGPL-3.0-only](https://www.gnu.org/licenses/agpl-3.0.html)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../commands/registry.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,EAYN,KAAK,aAAa,EAGlB,MAAM,qBAAqB,CAAA;AAK5B,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAOrD,QAAA,MAAM,eAAe,8CAG+E,CAAA;AAEpG,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;qBA2FjB,CAAA;AAEF,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAM5D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,aAO7B,CAAA;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,GAAE,aAA+B,GACnC,aAAa,CAWf;AAiED;;;GAGG;AACH,UAAU,eAAe;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAC3B,OAAO,EAAE,aAAa,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kGAAkG;IAClG,IAAI,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAY7D;AAmJD,QAAA,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,aAAa,EAAE,OAAO,eAAe,CAuCnF,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -0,0 +1,382 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @copyright Sister Software
4
+ * @license AGPL-3.0
5
+ * @author Teffen Ellis, et al.
6
+ *
7
+ * `mailwoman registry <csv>` — the geocode-first record matcher, end to end (#613).
8
+ *
9
+ * This is the integration that runs `@mailwoman/registry`'s cascade on real data: it constructs the
10
+ * heavy geocoder (neural parser + WOF resolver + per-state situs/interp shards — the same wiring
11
+ * as `geocode`) and injects it into the matcher's `GeocodeAddress` seam, so the registry package
12
+ * itself never imports the runtime. Then:
13
+ *
14
+ * CSV → ingest (column-map + normalize) → geocode (the seam) → resolveEntities (block →
15
+ * Fellegi-Sunter score, EM-trained label-free → cluster) → GeoJSON.
16
+ *
17
+ * The thesis it grades: two rows reading `123 Main St` and `123 Main Street Apt 2` — different
18
+ * strings — collapse to one entity because they resolve to the same place. Blocking is
19
+ * geographic, not textual. Needs the weights + shards in hand, so the real run is
20
+ * operator-verifiable (not CI).
21
+ */
22
+ import { Spinner } from "@inkjs/ui";
23
+ import { decodeAsJson } from "@mailwoman/core/decoder";
24
+ import { createWofResolver } from "@mailwoman/core/resolver";
25
+ import { NeuralAddressClassifier } from "@mailwoman/neural";
26
+ import { geocodeAddressVia, inferMapping, ingestRows, parseCsv, reconcileCoverage, reconciliationGeoJSON, reconciliationReport, resolveEntities, streamRows, toGeoJSON, toMapHTML, } from "@mailwoman/registry";
27
+ import { Text } from "ink";
28
+ import { readFileSync, writeFileSync } from "node:fs";
29
+ import { setImmediate } from "node:timers/promises";
30
+ import { useEffect, useState } from "react";
31
+ import zod from "zod";
32
+ import { geocodeAddress, ShardProvider } from "../geocode-core.js";
33
+ import { INTERP_RADIUS_CALIBRATION } from "../interp-calibration.js";
34
+ import { resolverDefaultCountry } from "./parse.js";
35
+ // ---------------------------------------------------------------------------
36
+ // CLI contract — args + options
37
+ // ---------------------------------------------------------------------------
38
+ const ArgumentsSchema = zod
39
+ .array(zod.string().describe("Path to a CSV file of contact / organization records"))
40
+ .optional()
41
+ .describe("CSV path(s). Optional when --sources is given (multi-source mode supplies the inputs).");
42
+ const OptionsSchema = zod.object({
43
+ mapping: zod
44
+ .string()
45
+ .optional()
46
+ .describe("Column mapping: a path to a JSON file (or inline JSON) of { id?, source?, name?, organization?, address?, " +
47
+ "phone?, email? }, where each field names the CSV column(s) to draw from. Merged over the base (the built-in " +
48
+ "default, or --infer-mapping's inference); column names are matched case-sensitively."),
49
+ inferMapping: zod
50
+ .boolean()
51
+ .optional()
52
+ .default(false)
53
+ .describe("Infer the column mapping from the header by keyword (best-effort — point it at any reasonably-named CSV). " +
54
+ "Used as the base instead of the built-in default; an explicit --mapping still merges on top. Single-CSV mode."),
55
+ sources: zod
56
+ .string()
57
+ .optional()
58
+ .describe("Multi-source mode: a path to a JSON file (or inline JSON) of [{ path, delimiter?, mapping, source?, limit? }] " +
59
+ "— each dataset gets its own column mapping + provenance label, all resolved into ONE entity set across " +
60
+ "sources with no shared key. An entity spanning ≥2 sources is a cross-dataset link. The positional CSV is " +
61
+ "ignored when --sources is set. Inputs are streamed as UNQUOTED delimited files (tab inferred from .tsv) — " +
62
+ "right for the big government TSVs; convert a quoted CSV first or use the single-CSV path for those."),
63
+ out: zod.string().optional().describe("Write the GeoJSON FeatureCollection here. Default: print to stdout."),
64
+ mapOut: zod
65
+ .string()
66
+ .optional()
67
+ .describe("Also write a standalone HTML map of the resolved entities here (MapLibre + the house Protomaps " +
68
+ "basemap). Points are sized by records-merged and colored by cross-dataset-link status. SERVE IT OVER " +
69
+ "localhost (e.g. `npx serve`), don't open the file directly — the basemap tiles are CORS-restricted to " +
70
+ "localhost + the docs domain. Pairs naturally with --sources."),
71
+ trainEm: zod
72
+ .boolean()
73
+ .optional()
74
+ .default(true)
75
+ .describe("Fit the Fellegi-Sunter m/u + prior to the data with EM (label-free) before scoring. --no-train-em uses the seeds."),
76
+ threshold: zod
77
+ .number()
78
+ .optional()
79
+ .default(0)
80
+ .describe("Link two records into one entity at or above this match weight (bits). Higher = stricter. Default 0."),
81
+ maxBlockSize: zod
82
+ .number()
83
+ .optional()
84
+ .describe("Skip + report blocks larger than this rather than scanning them (recall vs cost). Default: scan all."),
85
+ reconcile: zod
86
+ .boolean()
87
+ .optional()
88
+ .default(false)
89
+ .describe("Coverage reconciliation (#621): classify each resolved entity by which KIND of source its records " +
90
+ "span — `enrolled` (eligibility + funding), `eligible-not-enrolled` (the anti-join), or " +
91
+ '`funded-not-eligible`. Requires --sources where each spec carries `role: "eligibility" | "funding"`. ' +
92
+ "Prints a set-membership report to stdout; --out writes bucket-tagged GeoJSON, --map-out a bucket-colored " +
93
+ "map. A reconciliation, never a determination."),
94
+ source: zod.string().optional().describe("A provenance label stamped on every record (e.g. the dataset name)."),
95
+ locale: zod
96
+ .string()
97
+ .regex(/^[a-z]{2}(-[A-Z]{2})?$/u, "Expected a BCP-47 tag like en-US or fr-FR")
98
+ .optional()
99
+ .default("en-US")
100
+ .describe("Locale tag matching an installed weights package. Default en-US."),
101
+ defaultCountry: zod
102
+ .string()
103
+ .optional()
104
+ .describe("ISO-3166 country to scope the resolver. Defaults from --locale's region subtag (en-US → US)."),
105
+ placeCountry: zod
106
+ .boolean()
107
+ .optional()
108
+ .default(true)
109
+ .describe("The #244 coarse-placer soft country prior (on by default). --no-place-country disables it."),
110
+ resolveDb: zod
111
+ .string()
112
+ .optional()
113
+ .describe("Path to a WOF admin SQLite distribution. Defaults to $MAILWOMAN_WOF_DB; errors if neither is set."),
114
+ dataRoot: zod
115
+ .string()
116
+ .optional()
117
+ .default("/mnt/playpen/mailwoman-data")
118
+ .describe("Root directory for per-state address-point + interpolation shards. Default: /mnt/playpen/mailwoman-data."),
119
+ });
120
+ export { ArgumentsSchema as args, OptionsSchema as options };
121
+ // ---------------------------------------------------------------------------
122
+ // Column mapping
123
+ // ---------------------------------------------------------------------------
124
+ /**
125
+ * Built-in best-effort mapping for tidy contact/org CSVs. Multi-column fields are joined (so a CSV
126
+ * that splits the address across columns composes one string). Real datasets with bespoke headers
127
+ * (e.g. NPPES "Provider First Line Business Practice Location Address") pass an explicit --mapping;
128
+ * inferring it from the header is the #603 fast-follow.
129
+ */
130
+ export const DEFAULT_MAPPING = {
131
+ id: "id",
132
+ name: ["name", "full_name", "first_name", "last_name"],
133
+ organization: ["organization", "org", "company"],
134
+ address: ["address", "address1", "street", "city", "state", "zip", "postal_code"],
135
+ phone: "phone",
136
+ email: "email",
137
+ };
138
+ /**
139
+ * Resolve --mapping (a file path or inline JSON) and merge it over `base` (default
140
+ * {@link DEFAULT_MAPPING}).
141
+ */
142
+ export function loadMapping(option, source, base = DEFAULT_MAPPING) {
143
+ let provided = {};
144
+ if (option) {
145
+ const text = option.trim().startsWith("{") ? option : readFileSync(option, "utf8");
146
+ try {
147
+ provided = JSON.parse(text);
148
+ }
149
+ catch (err) {
150
+ throw new Error(`--mapping is neither a readable file nor valid JSON: ${err.message}`);
151
+ }
152
+ }
153
+ return { ...base, ...provided, ...(source ? { source } : {}) };
154
+ }
155
+ function resolveWofPath(options) {
156
+ const path = options.resolveDb ?? process.env["MAILWOMAN_WOF_DB"];
157
+ if (!path) {
158
+ throw new Error("registry needs a WOF admin SQLite path. Set $MAILWOMAN_WOF_DB or pass --resolve-db <path>.");
159
+ }
160
+ return path;
161
+ }
162
+ /**
163
+ * Construct the heavy geocoder once (neural parser + WOF resolver + per-state shards) and wire it
164
+ * into the matcher's {@link GeocodeAddress} seam. Returns the seam plus a `close` to release the DB
165
+ * handles. Shared by the single-CSV and multi-source paths.
166
+ */
167
+ async function buildGeocoder(options) {
168
+ const wofPath = resolveWofPath(options);
169
+ let classifier;
170
+ try {
171
+ classifier = await NeuralAddressClassifier.loadFromWeights({ locale: options.locale });
172
+ }
173
+ catch {
174
+ throw new Error("registry requires the neural weights. Install @mailwoman/neural-weights-en-us (or a --locale match).");
175
+ }
176
+ let mod;
177
+ try {
178
+ mod = await import("@mailwoman/resolver-wof-sqlite");
179
+ }
180
+ catch {
181
+ throw new Error("registry requires `@mailwoman/resolver-wof-sqlite` to be installed.");
182
+ }
183
+ const lookup = new mod.WofSqlitePlaceLookup({ databasePath: wofPath });
184
+ const shardProvider = new ShardProvider(mod, options.dataRoot);
185
+ const shards = shardProvider.for;
186
+ const defaultCountry = resolverDefaultCountry(options) || undefined;
187
+ const resolver = createWofResolver(lookup);
188
+ const seam = geocodeAddressVia({
189
+ parse: async (raw) => decodeAsJson(await classifier.parse(raw, { postcodeRepair: true })),
190
+ geocode: (raw) => geocodeAddress(raw, {
191
+ classifier,
192
+ resolver,
193
+ shards,
194
+ defaultCountry,
195
+ interpCalibration: INTERP_RADIUS_CALIBRATION,
196
+ ...(options.placeCountry ? {} : { placeCountry: false }),
197
+ }),
198
+ country: defaultCountry,
199
+ });
200
+ return {
201
+ seam,
202
+ close: () => {
203
+ shardProvider.close();
204
+ lookup.close();
205
+ },
206
+ };
207
+ }
208
+ /** Parse `--sources` (a file path or inline JSON) into specs. */
209
+ export function loadSources(option) {
210
+ const text = /^[[{]/.test(option.trim()) ? option : readFileSync(option, "utf8");
211
+ let parsed;
212
+ try {
213
+ parsed = JSON.parse(text);
214
+ }
215
+ catch (err) {
216
+ throw new Error(`--sources is neither a readable file nor valid JSON: ${err.message}`);
217
+ }
218
+ if (!Array.isArray(parsed) || parsed.some((s) => !s || typeof s.path !== "string")) {
219
+ throw new Error("--sources must be a JSON array of { path, mapping, source?, delimiter?, limit? }.");
220
+ }
221
+ return parsed;
222
+ }
223
+ /**
224
+ * Write the artifacts requested via `--out` (GeoJSON) and/or `--map-out` (standalone HTML map),
225
+ * returning the lines to append to the run summary. Returns `null` when neither is set — the signal
226
+ * to dump GeoJSON to stdout (the original default). Shared by both pipeline paths.
227
+ */
228
+ function writeOutputs(geojson, options) {
229
+ if (!options.out && !options.mapOut)
230
+ return null;
231
+ const lines = [];
232
+ if (options.out) {
233
+ writeFileSync(options.out, JSON.stringify(geojson, null, 2));
234
+ lines.push(`wrote ${geojson.features.length} features → ${options.out}`);
235
+ }
236
+ if (options.mapOut) {
237
+ writeFileSync(options.mapOut, toMapHTML(geojson, options.source ? { title: `Mailwoman — ${options.source}` } : {}));
238
+ lines.push(`wrote map → ${options.mapOut} (serve over localhost to view)`);
239
+ }
240
+ return lines.join("\n");
241
+ }
242
+ /**
243
+ * Multi-source mode (#618): stream each dataset under its own mapping + provenance label into ONE
244
+ * combined record set, geocode, resolve, and report the entities that span ≥2 sources — the
245
+ * cross-dataset links. No shared key required; geography is the join.
246
+ */
247
+ async function runMultiSource(specs, options) {
248
+ const { seam, close } = await buildGeocoder(options);
249
+ try {
250
+ const records = [];
251
+ const perSource = [];
252
+ for (const spec of specs) {
253
+ const label = spec.source ?? spec.path;
254
+ const mapping = { ...spec.mapping, source: label };
255
+ let read = 0;
256
+ const rows = (async function* () {
257
+ for await (const row of streamRows(spec.path, spec.delimiter ? { delimiter: spec.delimiter } : {})) {
258
+ if (spec.limit !== undefined && read >= spec.limit)
259
+ break;
260
+ read++;
261
+ yield row;
262
+ }
263
+ })();
264
+ const recs = await ingestRows(rows, mapping, { geocodeAddress: seam });
265
+ for (const record of recs)
266
+ record.id = `${label}:${record.id}`; // namespace ids so cross-source ids never collide
267
+ records.push(...recs);
268
+ perSource.push(`${label} ${recs.length}`);
269
+ }
270
+ // learnedScorer:false — multi-source is CROSS-dataset link discovery (recall-oriented): the same
271
+ // facility under different operational names across sources is the signal we want. The default GBT is
272
+ // dedup-calibrated and rejects exactly that (it learned "same place + name drift = distinct"), so the
273
+ // cross-dataset path uses the FS spine. (Single-CSV dedup below keeps the GBT default.)
274
+ const result = resolveEntities(records, {
275
+ trainEM: options.trainEm,
276
+ threshold: options.threshold,
277
+ learnedScorer: false,
278
+ ...(options.maxBlockSize !== undefined ? { maxBlockSize: options.maxBlockSize } : {}),
279
+ });
280
+ const geocoded = records.filter((r) => r.address?.geocode).length;
281
+ // Reconciliation mode (#621): classify entities by eligibility/funding role membership, via the
282
+ // SAME @mailwoman/registry library as scripts/record-matcher/coverage-reconciliation.ts.
283
+ if (options.reconcile) {
284
+ const labelOf = (s) => s.source ?? s.path;
285
+ const eligibilitySources = specs.filter((s) => s.role === "eligibility").map(labelOf);
286
+ const fundingSources = specs.filter((s) => s.role === "funding").map(labelOf);
287
+ if (!eligibilitySources.length || !fundingSources.length) {
288
+ throw new Error('--reconcile needs each --sources entry tagged with `role: "eligibility"` or `role: "funding"` ' +
289
+ "(at least one of each).");
290
+ }
291
+ const recon = reconcileCoverage(result.entities, { eligibilitySources, fundingSources });
292
+ const geojson = reconciliationGeoJSON(recon);
293
+ const report = reconciliationReport(recon, {
294
+ scopeNote: `Resolved BLIND across ${specs.length} sources via \`mailwoman registry --reconcile\` ` +
295
+ `(${perSource.join(", ")}). Eligibility: ${eligibilitySources.join(", ")}; funding/enrollment: ` +
296
+ `${fundingSources.join(", ")}.`,
297
+ scorerNote: "Scored with the Fellegi-Sunter spine (cross-dataset join, recall-oriented): the dedup-calibrated " +
298
+ 'GBT default (#603) rejects the "same place, different operational name" pattern that IS the ' +
299
+ "cross-source signal, so it is pinned off here. See #655.",
300
+ });
301
+ const written = writeOutputs(geojson, options);
302
+ return written === null ? report : `${report}\n\n${written}`;
303
+ }
304
+ const geojson = toGeoJSON(result.entities);
305
+ const crossSource = result.entities.filter((e) => new Set(e.records.map((r) => r.source).filter(Boolean)).size >= 2).length;
306
+ const summary = `registry --sources: ${specs.length} sources (${perSource.join(", ")}) → ${records.length} records ` +
307
+ `(${geocoded} geocoded) → ${result.entities.length} entities; ${crossSource} span ≥2 sources (cross-dataset links)`;
308
+ const written = writeOutputs(geojson, options);
309
+ return written === null ? JSON.stringify(geojson, null, 2) : `${summary}\n${written}`;
310
+ }
311
+ finally {
312
+ close();
313
+ }
314
+ }
315
+ // ---------------------------------------------------------------------------
316
+ // Core
317
+ // ---------------------------------------------------------------------------
318
+ async function runRegistry(csvPath, options) {
319
+ if (options.reconcile) {
320
+ throw new Error("--reconcile is a cross-source mode: pass --sources <config.json> (each entry tagged with a " +
321
+ "`role`), not a single positional CSV.");
322
+ }
323
+ const rows = parseCsv(readFileSync(csvPath, "utf8"));
324
+ // --infer-mapping reads the header (the first row's keys) and guesses the mapping; an explicit --mapping
325
+ // still merges on top of it. Otherwise the base is the built-in default.
326
+ const base = options.inferMapping && rows[0] ? inferMapping(Object.keys(rows[0])) : DEFAULT_MAPPING;
327
+ const mapping = loadMapping(options.mapping, options.source, base);
328
+ const { seam, close } = await buildGeocoder(options);
329
+ try {
330
+ const records = await ingestRows(rows, mapping, { geocodeAddress: seam });
331
+ const result = resolveEntities(records, {
332
+ trainEM: options.trainEm,
333
+ threshold: options.threshold,
334
+ ...(options.maxBlockSize !== undefined ? { maxBlockSize: options.maxBlockSize } : {}),
335
+ });
336
+ const geojson = toGeoJSON(result.entities);
337
+ const geocoded = records.filter((r) => r.address?.geocode).length;
338
+ const summary = `registry: ${rows.length} rows → ${records.length} records (${geocoded} geocoded) → ` +
339
+ `${result.entities.length} entities ` +
340
+ `(${result.candidatePairs} candidate pairs${result.droppedBlocks.length ? `, ${result.droppedBlocks.length} oversized blocks skipped` : ""})`;
341
+ const written = writeOutputs(geojson, options);
342
+ return written === null ? JSON.stringify(geojson, null, 2) : `${summary}\n${written}`;
343
+ }
344
+ finally {
345
+ close();
346
+ }
347
+ }
348
+ // ---------------------------------------------------------------------------
349
+ // React command component
350
+ // ---------------------------------------------------------------------------
351
+ const RegistryCommand = ({ args, options }) => {
352
+ const [output, setOutput] = useState();
353
+ const [error, setError] = useState();
354
+ useEffect(() => {
355
+ if (error) {
356
+ setImmediate().then(() => process.exit(1));
357
+ }
358
+ }, [error]);
359
+ useEffect(() => {
360
+ // `loadSources` can throw on a malformed config — wrap so its error routes to the same handler.
361
+ const task = options.sources
362
+ ? Promise.resolve().then(() => runMultiSource(loadSources(options.sources), options))
363
+ : (() => {
364
+ const csv = args?.[0];
365
+ if (!csv || csv.trim().length === 0) {
366
+ return Promise.reject(new Error("registry requires a positional CSV path (or --sources <config.json> for multi-source). " +
367
+ "e.g. mailwoman registry contacts.csv --out entities.geojson"));
368
+ }
369
+ return runRegistry(csv.trim(), options);
370
+ })();
371
+ task.then(setOutput).catch((err) => setError(err.message));
372
+ }, [args, options]);
373
+ if (error) {
374
+ return _jsx(Text, { color: "red", children: error });
375
+ }
376
+ if (!output) {
377
+ return _jsx(Spinner, {});
378
+ }
379
+ return _jsx(Text, { children: output });
380
+ };
381
+ export default RegistryCommand;
382
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../commands/registry.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"geocode-core.d.ts","sourceRoot":"","sources":["../geocode-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geocode-core.d.ts","sourceRoot":"","sources":["../geocode-core.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ import { existsSync } from "node:fs";
25
25
  import { readReleaseManifest, resolveShardPath } from "./data-release.js";
26
26
  import { loadDefaultPlaceCountry } from "./default-placer.js";
27
27
  import { interpCalibrationForRegion } from "./interp-calibration.js";
28
+ import { recognizeUsRegions } from "./region-recognition.js";
28
29
  /**
29
30
  * Anchor weight for the coarse-placer's country prior. Matches the runtime-pipeline default — a
30
31
  * whole-string country guess is broader/softer than a postcode anchor (2.0), so it blends gently.
@@ -157,7 +158,7 @@ export class ShardProvider {
157
158
  * parse/resolve error — callers doing batch work should catch per-row.
158
159
  */
159
160
  export async function geocodeAddress(input, deps) {
160
- const tree = await deps.classifier.parse(input, { postcodeRepair: true });
161
+ const tree = recognizeUsRegions(await deps.classifier.parse(input, { postcodeRepair: true, normalizeCase: deps.normalizeCase ?? true }));
161
162
  const stateSlug = regionSlugFromTree(tree);
162
163
  const { addressPoints, interpolation } = deps.shards?.(stateSlug) ?? {};
163
164
  const opts = {};
@@ -1 +1 @@
1
- {"version":3,"file":"geocode-core.js","sourceRoot":"","sources":["../geocode-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EAA4B,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACnG,OAAO,EAAE,uBAAuB,EAAuB,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,0BAA0B,EAA+B,MAAM,yBAAyB,CAAA;AAyEjG;;;GAGG;AACH,MAAM,2BAA2B,GAAG,GAAG,CAAA;AAEvC,2FAA2F;AAC3F,MAAM,UAAU,iBAAiB,CAChC,WAAsC,EACtC,YAAuC;IAEvC,KAAK,MAAM,SAAS,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,SAAS;YAAE,SAAQ;QACxB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IACnD,IAAI,WAAW,GAAkB,IAAI,CAAA;IACrC,IAAI,kBAAkB,GAAkB,IAAI,CAAA;IAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACzB,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;YACvC,kBAAkB,GAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAwB,IAAI,IAAI,CAAA;QACtF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,SAAwB;IAC/E,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,MAAM,SAAS,GAAG,GAAG,QAAQ,qCAAqC,SAAS,KAAK,CAAA;IAChF,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,SAAwB;IAC/E,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3B,MAAM,SAAS,GAAG,GAAG,QAAQ,mCAAmC,SAAS,KAAK,CAAA;IAC9E,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AAChD,CAAC;AAgBD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAChB,QAAQ,CAAoB;IAC5B,SAAS,CAAQ;IACjB,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAA;IACpD,sGAAsG;IACtG,QAAQ,GAA6B,EAAE,CAAA;IACvC,SAAS,CAA4B;IAErC,YAAY,OAA2B,EAAE,QAAgB;QACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC5F,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3F,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxF,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAClF,CAAC;IAEQ,GAAG,GAAkB,CAAC,SAAS,EAAE,EAAE;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAA;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAA;IAClF,CAAC,CAAA;IAED,+FAA+F;IAC/F,QAAQ;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACrD,CAAC;IAED;;;;;OAKG;IACH,MAAM;QACL,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACpD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YACvF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YACtF,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM;gBAAE,SAAQ,CAAC,mCAAmC;YAChG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YACvC,IAAI,GAAG,CAAC,GAAG;gBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACxC,IAAI,GAAG,CAAC,GAAG;gBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACvB,CAAC;IAED,KAAK;QACJ,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;YACd,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAA;QACf,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACnB,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa,EAAE,IAAiB;IACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;IACzE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAEvE,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,IAAI,IAAI,CAAC,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;IAClE,mGAAmG;IACnG,4FAA4F;IAC5F,oGAAoG;IACpG,MAAM,YAAY,GACjB,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,uBAAuB,EAAE,CAAC,CAAC,CAAA;IAC9F,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAClC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3E,8FAA8F;YAC9F,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,CAAA;YAClF,IAAI,CAAC,YAAY,GAAG,2BAA2B,CAAA;QAChD,CAAC;IACF,CAAC;IACD,IAAI,aAAa;QAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACrD,IAAI,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,iGAAiG;QACjG,iFAAiF;QACjF,MAAM,WAAW,GAChB,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ;YACzC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAA;QAC1B,IAAI,WAAW,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,8BAA8B,GAAG,WAAW,CAAA;QAClD,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5D,OAAO,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,IAAiB;IACpE,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,MAAM,OAAO,GAAG,CAAC,KAA6B,EAAE,EAAE;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QACpB,CAAC;IACF,CAAC,CAAA;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEnB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;IAE3D,IAAI,GAAG,GAAkB,IAAI,CAAA;IAC7B,IAAI,GAAG,GAAkB,IAAI,CAAA;IAC7B,IAAI,IAAI,GAAmB,OAAO,CAAA;IAClC,IAAI,YAAY,GAAkB,IAAI,CAAA;IAEtC,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAAK,eAAe,EAAE,CAAC;QACnE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAe,CAA6C,CAAA;QAC3F,IAAI,EAAE,EAAE,CAAC;YACR,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;YACZ,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;YACZ,IAAI,GAAG,eAAe,CAAA;YACtB,YAAY,GAAG,CAAC,CAAA,CAAC,2CAA2C;QAC7D,CAAC;IACF,CAAC;IAED,IAAI,IAAI,KAAK,eAAe,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAAK,cAAc,EAAE,CAAC;QAC9F,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAA6C,CAAA;QAChG,IAAI,EAAE,EAAE,CAAC;YACR,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;YACZ,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;YACZ,IAAI,GAAG,cAAc,CAAA;YACrB,YAAY,GAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAwB,IAAI,IAAI,CAAA;QACpF,CAAC;IACF,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,aAAa,GAA0B,CAAC,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QACpG,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAA;YAClF,IAAI,IAAI,EAAE,CAAC;gBACV,GAAG,GAAG,IAAI,CAAC,GAAI,CAAA;gBACf,GAAG,GAAG,IAAI,CAAC,GAAI,CAAA;gBACf,MAAK;YACN,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,KAAK,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;IACpH,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;IAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAA;IAElF,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC3F,MAAM,SAAS,GAAG,QAAQ;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC7E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAC,CAAA;IAEJ,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;AACtH,CAAC"}
1
+ {"version":3,"file":"geocode-core.js","sourceRoot":"","sources":["../geocode-core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interp-calibration.d.ts","sourceRoot":"","sources":["../interp-calibration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,sBAAsB;IACtC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBAgBvC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtH"}
1
+ {"version":3,"file":"interp-calibration.d.ts","sourceRoot":"","sources":["../interp-calibration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,sBAAsB;IACtC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBAgBvC,CAAA;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAGR"}
@@ -3,22 +3,23 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Per-region split-conformal multipliers for the interpolation tier's `uncertainty_m` radius (#374).
7
- * Multiply the raw claimed radius (half the matched TIGER segment length) by the region's factor to
8
- * get a calibrated ~90%-coverage interval.
6
+ * Per-region split-conformal multipliers for the interpolation tier's `uncertainty_m` radius
7
+ * (#374). Multiply the raw claimed radius (half the matched TIGER segment length) by the region's
8
+ * factor to get a calibrated ~90%-coverage interval.
9
9
  *
10
10
  * #569 shipped a single 1.70 measured on Texas; the multi-region recalibration (#584) found the
11
- * factor is regional — Q̂ rises monotonically with rurality, 1.44 (DC, densest) → 3.12 (AZ, sprawl).
12
- * This wires the per-region selection the seed table anticipated.
11
+ * factor is regional — Q̂ rises monotonically with rurality, 1.44 (DC, densest) → 3.12 (AZ,
12
+ * sprawl). This wires the per-region selection the seed table anticipated.
13
13
  *
14
14
  * SOURCE OF RECORD: `data/calibration/interp-radius-conformal.json` (the eval artifact + rationale,
15
- * `docs/articles/evals/2026-06-14-interp-multiregion-recalibration.md`). Embedded here as a constant
16
- * so the published package + the server ship it without a runtime data-file dependency. **Keep the
17
- * two in sync** — when the full 50-state sweep (followups in the JSON) fills in, update both.
15
+ * `docs/articles/evals/2026-06-14-interp-multiregion-recalibration.md`). Embedded here as a
16
+ * constant so the published package + the server ship it without a runtime data-file dependency.
17
+ * **Keep the two in sync** — when the full 50-state sweep (followups in the JSON) fills in,
18
+ * update both.
18
19
  */
19
20
  /**
20
- * Measured 12-state seed table (a partial sweep; the full 50 was abandoned at the >85 °C heat ceiling).
21
- * Mirrors `data/calibration/interp-radius-conformal.json` (#584).
21
+ * Measured 12-state seed table (a partial sweep; the full 50 was abandoned at the >85 °C heat
22
+ * ceiling). Mirrors `data/calibration/interp-radius-conformal.json` (#584).
22
23
  */
23
24
  export const INTERP_RADIUS_CALIBRATION = {
24
25
  byRegion: {
@@ -1 +1 @@
1
- {"version":3,"file":"interp-calibration.js","sourceRoot":"","sources":["../interp-calibration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAChE,QAAQ,EAAE;QACT,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;KACR;IACD,OAAO,EAAE,IAAI;CACb,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA6B,EAAE,SAAoC;IAC7G,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAA;AAChE,CAAC"}
1
+ {"version":3,"file":"interp-calibration.js","sourceRoot":"","sources":["../interp-calibration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAChE,QAAQ,EAAE;QACT,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,GAAG;QACP,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;QACR,EAAE,EAAE,IAAI;KACR;IACD,OAAO,EAAE,IAAI;CACb,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACzC,KAA6B,EAC7B,SAAoC;IAEpC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,OAAO,CAAA;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAA;AAChE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region-recognition.d.ts","sourceRoot":"","sources":["../region-recognition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAgB,MAAM,yBAAyB,CAAA;AA2DrF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxD;AAuFD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAGjE"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * US region recognition (#642) — a rule-based parse-tree correction for the case the neural parser
7
+ * under-handles: a postcode-less "City, State" string. Without a postcode/street anchor the model
8
+ * mis-tags the state — it labels "Texas" a `locality` ("Dublin, Texas" → two localities), or
9
+ * merges the whole string into one locality ("Dublin, TX" / "Athens, Texas"). With no `region`
10
+ * node, the resolver can't scope the locality to its state, so "Dublin, Texas" resolves to the
11
+ * more-populous Dublin, OHIO (the #619 admin-tier >1000 km tail).
12
+ *
13
+ * This is a legitimate atlas/conventions correction: the US states are a CLOSED, known gazetteer,
14
+ * so we can confidently re-tag a state token the grammar missed. It restructures the affected
15
+ * nodes into `region → locality` NESTING, which the resolver's existing parent-scoping then
16
+ * constrains correctly (no resolver change). Two shapes are handled:
17
+ *
18
+ * - A `locality` whose WHOLE value is a US state → it becomes a `region`, and sibling `locality`
19
+ * (city) nodes are nested under it;
20
+ * - A `locality` whose value is a merged `"City, ST"` → split into `region(ST) → locality(City)`.
21
+ *
22
+ * US-scoped by design (the gazetteer is US states). The principled long-term fix is the model
23
+ * recognizing the region; this closes the gap for the bare-`City, State` class today.
24
+ */
25
+ /** Canonical 2-letter slug for a US state/territory NAME or 2-letter abbreviation, else null. */
26
+ const STATE_NAME_TO_SLUG = {
27
+ alabama: "al",
28
+ alaska: "ak",
29
+ arizona: "az",
30
+ arkansas: "ar",
31
+ california: "ca",
32
+ colorado: "co",
33
+ connecticut: "ct",
34
+ delaware: "de",
35
+ "district of columbia": "dc",
36
+ florida: "fl",
37
+ georgia: "ga",
38
+ hawaii: "hi",
39
+ idaho: "id",
40
+ illinois: "il",
41
+ indiana: "in",
42
+ iowa: "ia",
43
+ kansas: "ks",
44
+ kentucky: "ky",
45
+ louisiana: "la",
46
+ maine: "me",
47
+ maryland: "md",
48
+ massachusetts: "ma",
49
+ michigan: "mi",
50
+ minnesota: "mn",
51
+ mississippi: "ms",
52
+ missouri: "mo",
53
+ montana: "mt",
54
+ nebraska: "ne",
55
+ nevada: "nv",
56
+ "new hampshire": "nh",
57
+ "new jersey": "nj",
58
+ "new mexico": "nm",
59
+ "new york": "ny",
60
+ "north carolina": "nc",
61
+ "north dakota": "nd",
62
+ ohio: "oh",
63
+ oklahoma: "ok",
64
+ oregon: "or",
65
+ pennsylvania: "pa",
66
+ "rhode island": "ri",
67
+ "south carolina": "sc",
68
+ "south dakota": "sd",
69
+ tennessee: "tn",
70
+ texas: "tx",
71
+ utah: "ut",
72
+ vermont: "vt",
73
+ virginia: "va",
74
+ washington: "wa",
75
+ "west virginia": "wv",
76
+ wisconsin: "wi",
77
+ wyoming: "wy",
78
+ "puerto rico": "pr",
79
+ };
80
+ const STATE_SLUGS = new Set(Object.values(STATE_NAME_TO_SLUG));
81
+ /**
82
+ * Is `value` exactly a US state — its full name (e.g. "Texas") or 2-letter abbreviation (e.g.
83
+ * "TX")? Returns the canonical 2-letter slug, else null. Whitespace/case-insensitive; rejects
84
+ * anything with extra tokens (so a city literally named after a state is only matched when it's the
85
+ * WHOLE value).
86
+ */
87
+ export function usStateSlug(value) {
88
+ const v = value.trim().toLowerCase();
89
+ if (!v)
90
+ return null;
91
+ if (STATE_NAME_TO_SLUG[v])
92
+ return STATE_NAME_TO_SLUG[v];
93
+ if (/^[a-z]{2}$/.test(v) && STATE_SLUGS.has(v))
94
+ return v;
95
+ return null;
96
+ }
97
+ /** Build a region node covering the state token, carrying a (lightly-confident) provenance marker. */
98
+ function makeRegionNode(value, start, end, confidence) {
99
+ return {
100
+ tag: "region",
101
+ value,
102
+ start,
103
+ end,
104
+ confidence,
105
+ children: [],
106
+ metadata: { region_recognition: "us-state" },
107
+ };
108
+ }
109
+ /**
110
+ * Correct one container (an array of sibling nodes — the tree roots, or a node's children) for the
111
+ * two mis-tag shapes, producing `region → locality` nesting. Returns the rewritten sibling list.
112
+ */
113
+ function correctSiblings(siblings) {
114
+ // --- Pass 1: split a merged "City, ST" locality into region(ST) → locality(City). ---
115
+ const afterSplit = [];
116
+ for (const node of siblings) {
117
+ const split = node.tag === "locality" ? splitMergedCityState(node) : null;
118
+ afterSplit.push(split ?? node);
119
+ }
120
+ // --- Pass 2: a locality whose WHOLE value is a state becomes a region; sibling city localities
121
+ // nest under it. Only fires when there's exactly one state-name locality in the container (the
122
+ // unambiguous "City, State" shape) — avoids reparenting in a multi-locality list we don't model. ---
123
+ const stateIdxs = afterSplit
124
+ .map((n, i) => (n.tag === "locality" && usStateSlug(n.value) ? i : -1))
125
+ .filter((i) => i >= 0);
126
+ if (stateIdxs.length !== 1)
127
+ return afterSplit;
128
+ const si = stateIdxs[0];
129
+ const stateNode = afterSplit[si];
130
+ const region = makeRegionNode(stateNode.value, stateNode.start, stateNode.end, stateNode.confidence);
131
+ const out = [];
132
+ for (let i = 0; i < afterSplit.length; i++) {
133
+ if (i === si)
134
+ continue;
135
+ const n = afterSplit[i];
136
+ if (n.tag === "locality")
137
+ region.children.push(n); // nest sibling cities under the region
138
+ else
139
+ out.push(n);
140
+ }
141
+ // Only convert when there's a sibling city to nest — the unambiguous "City, State" shape. A LONE
142
+ // state-name locality ("Washington", "Florida") is genuinely a city in this context as often as a
143
+ // state, so leave it untouched rather than risk a mis-fire.
144
+ if (region.children.length === 0)
145
+ return afterSplit;
146
+ out.push(region);
147
+ return out;
148
+ }
149
+ /**
150
+ * Split a `locality` whose value is `"City, ST"` (state in the LAST comma segment) into region(ST)
151
+ * → locality(City). Returns null when the tail isn't a US state.
152
+ */
153
+ function splitMergedCityState(node) {
154
+ const comma = node.value.lastIndexOf(",");
155
+ if (comma < 0)
156
+ return null;
157
+ const head = node.value.slice(0, comma).trim();
158
+ const tail = node.value.slice(comma + 1).trim();
159
+ const slug = usStateSlug(tail);
160
+ if (!slug || !head)
161
+ return null;
162
+ // Offsets: the region covers the tail's char span; the locality the head's (relative to node.start).
163
+ const tailStart = node.start + node.value.indexOf(tail, comma);
164
+ const region = makeRegionNode(tail, tailStart, node.end, node.confidence);
165
+ region.children.push({
166
+ tag: "locality",
167
+ value: head,
168
+ start: node.start,
169
+ end: node.start + head.length,
170
+ confidence: node.confidence,
171
+ children: node.children, // keep any real children (rare for a locality)
172
+ ...(node.metadata ? { metadata: node.metadata } : {}),
173
+ });
174
+ return region;
175
+ }
176
+ /** Recursively correct a node's children. */
177
+ function correctNode(node) {
178
+ if (node.children.length > 0) {
179
+ node.children = correctSiblings(node.children).map(correctNode);
180
+ }
181
+ return node;
182
+ }
183
+ /**
184
+ * Recognize US regions the parser missed and restructure `"City, State"` into `region → locality`
185
+ * nesting so the resolver scopes the locality to its state (#642). Mutates + returns the tree. A
186
+ * no-op when no US state token is found mis-tagged — byte-stable for already-correct parses.
187
+ */
188
+ export function recognizeUsRegions(tree) {
189
+ tree.roots = correctSiblings(tree.roots).map(correctNode);
190
+ return tree;
191
+ }
192
+ //# sourceMappingURL=region-recognition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region-recognition.js","sourceRoot":"","sources":["../region-recognition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-pipeline.d.ts","sourceRoot":"","sources":["../runtime-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,MAAM,0BAA0B,CAAA;AAQjC,MAAM,WAAW,yBAAyB;IACzC,sEAAsE;IACtE,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAA;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC5C;;;OAGG;IACH,GAAG,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAA;CAC5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACpC,IAAI,GAAE,yBAA8B,GAClC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,CAqClE;AAKD,YAAY,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,qBAAqB,GACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"runtime-pipeline.d.ts","sourceRoot":"","sources":["../runtime-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,MAAM,0BAA0B,CAAA;AAUjC,MAAM,WAAW,yBAAyB;IACzC,sEAAsE;IACtE,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAA;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAC5C;;;OAGG;IACH,GAAG,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;OAIG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAA;IAC5D;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAA;IACpD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACpC,IAAI,GAAE,yBAA8B,GAClC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,CAsDlE;AAKD,YAAY,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,qBAAqB,GACrB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * See `docs/articles/plan/reference/STAGES.md` for the full contract.
15
15
  */
16
+ import { solutionToProposals } from "@mailwoman/core/parser";
16
17
  import { runPipeline, } from "@mailwoman/core/pipeline";
17
18
  import { classifyKind as defaultClassifyKind } from "@mailwoman/kind-classifier";
18
19
  import { detectLocale as defaultDetectLocale } from "@mailwoman/locale-gate";
@@ -20,6 +21,7 @@ import { normalize } from "@mailwoman/normalize";
20
21
  import { groupPhrases as defaultGroupPhrases } from "@mailwoman/phrase-grouper";
21
22
  import { computeQueryShape } from "@mailwoman/query-shape";
22
23
  import { loadDefaultPlaceCountry } from "./default-placer.js";
24
+ import { createAddressParser } from "./utils/parser.js";
23
25
  /**
24
26
  * Build a runtime pipeline pre-wired with the default normalize + queryShape implementations.
25
27
  *
@@ -31,6 +33,16 @@ import { loadDefaultPlaceCountry } from "./default-placer.js";
31
33
  * locale: "en-US" })
32
34
  */
33
35
  export function createRuntimePipeline(opts = {}) {
36
+ // Lazy v0 rule parser for arbitration (#478 inc 3). Built on first use (only when a caller passes
37
+ // `arbitrate: true`), so non-arbitrating pipelines pay nothing. The solved v0 output — not raw
38
+ // classifier firings — is the coherent "rule" source projected to proposals.
39
+ let v0Parser;
40
+ const defaultRuleProposer = async (normalizedText, locale) => {
41
+ v0Parser ??= createAddressParser();
42
+ const solutions = await v0Parser.parse(normalizedText, { locale });
43
+ const top = solutions[0];
44
+ return top ? solutionToProposals(top, "v0-rules") : [];
45
+ };
34
46
  const stages = {
35
47
  normalize,
36
48
  computeQueryShape,
@@ -48,6 +60,9 @@ export function createRuntimePipeline(opts = {}) {
48
60
  // `undefined` default is lazy-loaded on the first call (below) so the sync factory stays sync;
49
61
  // `false` disables it. A confident in-map guess feeds the resolver's anchorPosterior re-rank.
50
62
  placeCountry: typeof opts.placeCountry === "function" ? opts.placeCountry : undefined,
63
+ // Rule source for arbitration (#478 inc 3) — the lazy v0 parser above, override-able. Invoked
64
+ // only when a call passes `arbitrate: true`; otherwise never built.
65
+ ruleProposer: opts.ruleProposer ?? defaultRuleProposer,
51
66
  // Default locale gate: rule-based from @mailwoman/locale-gate. Derives locale from
52
67
  // QueryShape character class (CJK→ja-JP, Cyrillic→ru-RU, Arabic→ar) + known-format
53
68
  // hits (us_zip→en-US, fr_postcode→fr-FR, uk_postcode→en-GB). Caller-hint wins when set.
@@ -65,7 +80,9 @@ export function createRuntimePipeline(opts = {}) {
65
80
  if (fn)
66
81
  stages.placeCountry = fn;
67
82
  }
68
- return runPipeline(raw, stages, runOpts);
83
+ // #690: apply the factory-level normalizeCase default; a per-call runOpts value overrides it.
84
+ const effectiveRunOpts = opts.normalizeCase && runOpts?.normalizeCase === undefined ? { ...runOpts, normalizeCase: true } : runOpts;
85
+ return runPipeline(raw, stages, effectiveRunOpts);
69
86
  };
70
87
  }
71
88
  //# sourceMappingURL=runtime-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-pipeline.js","sourceRoot":"","sources":["../runtime-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACN,WAAW,GAIX,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAgD7D;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACpC,OAAkC,EAAE;IAEpC,MAAM,MAAM,GAA0B;QACrC,SAAS;QACT,iBAAiB;QACjB,4FAA4F;QAC5F,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,mBAAmB;QACtD,0FAA0F;QAC1F,0FAA0F;QAC1F,yFAAyF;QACzF,4FAA4F;QAC5F,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,mBAAmB;QACtD,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QACrF,mFAAmF;QACnF,mFAAmF;QACnF,wFAAwF;QACxF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,mBAAmB;KACtD,CAAA;IAED,6FAA6F;IAC7F,gGAAgG;IAChG,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAA;IACxD,IAAI,oBAAoB,GAAG,CAAC,gBAAgB,CAAA;IAC5C,OAAO,KAAK,EAAE,GAAW,EAAE,OAAsB,EAA2B,EAAE;QAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3B,oBAAoB,GAAG,IAAI,CAAA;YAC3B,MAAM,EAAE,GAAG,MAAM,uBAAuB,EAAE,CAAA;YAC1C,IAAI,EAAE;gBAAE,MAAM,CAAC,YAAY,GAAG,EAAE,CAAA;QACjC,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"runtime-pipeline.js","sourceRoot":"","sources":["../runtime-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GeocodeRouter.d.ts","sourceRoot":"","sources":["../../server/GeocodeRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAuB,MAAM,EAAE,MAAM,SAAS,CAAA;AAsOrD,eAAO,MAAM,aAAa,EAAE,MAAiB,CAAA"}
1
+ {"version":3,"file":"GeocodeRouter.d.ts","sourceRoot":"","sources":["../../server/GeocodeRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAuB,MAAM,EAAE,MAAM,SAAS,CAAA;AAwOrD,eAAO,MAAM,aAAa,EAAE,MAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"GeocodeRouter.js","sourceRoot":"","sources":["../../server/GeocodeRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeocodeRouter.js","sourceRoot":"","sources":["../../server/GeocodeRouter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mailwoman",
3
- "version": "4.9.0",
3
+ "version": "4.11.0",
4
4
  "description": "Utilities for working with contacts for email, phone, and postal addresses.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "contributors": [
@@ -25,6 +25,7 @@
25
25
  "exports": {
26
26
  "./package.json": "./package.json",
27
27
  ".": "./out/index.js",
28
+ "./geocode-core": "./out/geocode-core.js",
28
29
  "./server": "./out/server/index.js",
29
30
  "./sdk/test": "./out/sdk/test/index.js",
30
31
  "./sdk/repo": "./out/sdk/repo.js",
@@ -33,15 +34,16 @@
33
34
  "dependencies": {
34
35
  "@fragaria/address-formatter": "^6.7.1",
35
36
  "@inkjs/ui": "^2.0.0",
36
- "@mailwoman/classifiers": "4.9.0",
37
- "@mailwoman/core": "4.9.0",
38
- "@mailwoman/corpus": "4.9.0",
39
- "@mailwoman/kind-classifier": "4.9.0",
40
- "@mailwoman/locale-gate": "4.9.0",
41
- "@mailwoman/neural": "4.9.0",
42
- "@mailwoman/normalize": "4.9.0",
43
- "@mailwoman/phrase-grouper": "4.9.0",
44
- "@mailwoman/query-shape": "4.9.0",
37
+ "@mailwoman/classifiers": "4.11.0",
38
+ "@mailwoman/core": "4.11.0",
39
+ "@mailwoman/corpus": "4.11.0",
40
+ "@mailwoman/kind-classifier": "4.11.0",
41
+ "@mailwoman/locale-gate": "4.11.0",
42
+ "@mailwoman/neural": "4.11.0",
43
+ "@mailwoman/normalize": "4.11.0",
44
+ "@mailwoman/phrase-grouper": "4.11.0",
45
+ "@mailwoman/query-shape": "4.11.0",
46
+ "@mailwoman/registry": "4.11.0",
45
47
  "chalk": "^5.6.2",
46
48
  "change-case": "^5.4.4",
47
49
  "d3-scale-chromatic": "^3.1.0",
@@ -52,7 +54,7 @@
52
54
  "ioredis": "^5.11.1",
53
55
  "pastel": "^4.0.1",
54
56
  "path-ts": "^1.0.5",
55
- "piscina": "^4.9.2",
57
+ "piscina": "^5.2.0",
56
58
  "pluralize": "^8.0.0",
57
59
  "react": "^19.2.7",
58
60
  "regenerate": "^1.4.2",