mailwoman 4.8.0 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"geocode.d.ts","sourceRoot":"","sources":["../../commands/geocode.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAQH,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAOrD,QAAA,MAAM,eAAe,6BAA4E,CAAA;AACjG,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAE5D,QAAA,MAAM,aAAa;;;;;;;;;;;;qBAuDjB,CAAA;AAqHF,QAAA,MAAM,cAAc,EAAE,gBAAgB,CAAC,OAAO,aAAa,EAAE,OAAO,eAAe,CAgClF,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"geocode.d.ts","sourceRoot":"","sources":["../../commands/geocode.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AASH,OAAO,GAAG,MAAM,KAAK,CAAA;AAGrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAOrD,QAAA,MAAM,eAAe,6BAA4E,CAAA;AACjG,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAE5D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;qBAwEjB,CAAA;AAiIF,QAAA,MAAM,cAAc,EAAE,gBAAgB,CAAC,OAAO,aAAa,EAAE,OAAO,eAAe,CAgClF,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -27,6 +27,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
27
27
  * - 1 bad arguments, missing required DB, or fatal parse/resolve error
28
28
  */
29
29
  import { Spinner } from "@inkjs/ui";
30
+ import { CoarsePlacer } from "@mailwoman/core/coarse-placer";
30
31
  import { createWofResolver } from "@mailwoman/core/resolver";
31
32
  import { NeuralAddressClassifier } from "@mailwoman/neural";
32
33
  import { Text } from "ink";
@@ -81,6 +82,19 @@ const OptionsSchema = zod.object({
81
82
  "The raw half-segment radius covers only ~72% of true errors. Default (unset): the per-region " +
82
83
  "table (#584) selects by parsed region — 1.44 (DC) … 3.12 (AZ), 1.95 for unmeasured states — " +
83
84
  "for a ~90% bound. Pass an explicit number to force a single multiplier everywhere (1 = raw)."),
85
+ placeCountry: zod
86
+ .boolean()
87
+ .optional()
88
+ .default(true)
89
+ .describe("The #244 coarse-placer soft country prior (open-set rule). A confident whole-string country guess biases " +
90
+ "the resolver's locality/region ranking toward the right country (never filters); most useful when no " +
91
+ "--default-country / locale pins it. ON by default after the M2 misroute gate (0 misroutes); pass " +
92
+ "--no-place-country to disable."),
93
+ placeCountryThreshold: zod
94
+ .number()
95
+ .optional()
96
+ .default(0.9)
97
+ .describe("Abstention threshold for --place-country: below this calibrated confidence the prior is skipped. Default 0.9."),
84
98
  format: zod
85
99
  .enum(["json", "text"])
86
100
  .optional()
@@ -137,6 +151,15 @@ async function runGeocode(input, options) {
137
151
  return { addressPoints: explicitAp ?? base.addressPoints, interpolation: explicitIp ?? base.interpolation };
138
152
  }
139
153
  : shardProvider.for;
154
+ // Coarse-placer soft country prior (#244) — opt-in. Loads the int8 model bundled in @mailwoman/core
155
+ // at the requested abstention threshold; a confident in-map guess feeds the resolver's anchorPosterior.
156
+ // The M2 open-set reject rule (reject on in-map MASS 1-P(OTHER), route on the in-map argmax) lifts in-map
157
+ // right-country 85.3→91.2% with 0 regressions / 0 misroutes (the pipeline + misroute gates), so it's ON
158
+ // by default. --no-place-country disables it (passes `false`); a custom --place-country-threshold builds
159
+ // an explicit placer instead of the default-on bundled one.
160
+ const placer = options.placeCountry
161
+ ? await CoarsePlacer.fromBundled({ abstainBelow: options.placeCountryThreshold, openSet: true })
162
+ : undefined;
140
163
  try {
141
164
  const resolver = createWofResolver(lookup);
142
165
  const result = await geocodeAddress(input, {
@@ -146,6 +169,8 @@ async function runGeocode(input, options) {
146
169
  defaultCountry: resolverDefaultCountry(options) || undefined,
147
170
  // Explicit --interp-calibration forces a single multiplier; unset → the per-region table (#584).
148
171
  interpCalibration: options.interpCalibration ?? INTERP_RADIUS_CALIBRATION,
172
+ // Enabled → our threshold-honoring placer; --no-place-country → `false` (disable the default-on prior).
173
+ placeCountry: placer ? (t) => placer.predict(t) : false,
149
174
  });
150
175
  return options.format === "text" ? formatText(result) : JSON.stringify(result, null, 2);
151
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"geocode.js","sourceRoot":"","sources":["../../commands/geocode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geocode.js","sourceRoot":"","sources":["../../commands/geocode.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Piscina worker for WOF prepare — reads GeoJSON files, extracts structured fields via
7
+ * pluckPlacetypeSpec, and returns parsed data to the main thread. The main thread handles all
8
+ * SQLite writes (both mini-DBs and unified DB) to avoid concurrent writer locks.
9
+ *
10
+ * Per the WAL + Freeze design brief (docs/articles/reviews/2026-05-28-sqlite-wal-strategy.md):
11
+ * "Workers return parsed data to a single main-thread writer."
12
+ */
13
+ import { pluckPlacetypeSpec } from "@mailwoman/core/resources/whosonfirst";
14
+ import { readFileSync } from "node:fs";
15
+ const ADMIN_PLACETYPES = new Set([
16
+ "country",
17
+ "region",
18
+ "county",
19
+ "locality",
20
+ "localadmin",
21
+ "borough",
22
+ "neighbourhood",
23
+ "macroregion",
24
+ "macrocounty",
25
+ ]);
26
+ async function processFiles(input) {
27
+ const places = [];
28
+ let skipped = 0;
29
+ for (const filePath of input.filePaths) {
30
+ if (filePath.includes("-alt-")) {
31
+ skipped++;
32
+ continue;
33
+ }
34
+ let fileContent;
35
+ try {
36
+ fileContent = readFileSync(filePath, "utf8");
37
+ }
38
+ catch {
39
+ skipped++;
40
+ continue;
41
+ }
42
+ let feature;
43
+ try {
44
+ feature = JSON.parse(fileContent);
45
+ }
46
+ catch {
47
+ skipped++;
48
+ continue;
49
+ }
50
+ const superseded_by = feature.properties["wof:superseded_by"];
51
+ if (superseded_by && superseded_by.length !== 0) {
52
+ skipped++;
53
+ continue;
54
+ }
55
+ const { localizedPropMap, placetype, ...props } = pluckPlacetypeSpec(feature.properties);
56
+ if (!ADMIN_PLACETYPES.has(placetype)) {
57
+ skipped++;
58
+ continue;
59
+ }
60
+ const names = [];
61
+ for (const [languageCode, nameKindMap] of localizedPropMap) {
62
+ names.push({
63
+ language: languageCode,
64
+ preferred: nameKindMap.get("preferred") ?? null,
65
+ variant: nameKindMap.get("variant") ?? null,
66
+ colloquial: nameKindMap.get("colloquial") ?? null,
67
+ abbr: nameKindMap.get("abbr") ?? null,
68
+ short: nameKindMap.get("short") ?? null,
69
+ });
70
+ }
71
+ const concordances = {};
72
+ if (props.concordances) {
73
+ for (const [source, value] of Object.entries(props.concordances)) {
74
+ concordances[source] = String(value);
75
+ }
76
+ }
77
+ places.push({
78
+ id: props.id,
79
+ parent_id: props.parent_id,
80
+ name: props.name,
81
+ placetype,
82
+ country: props.country ?? "",
83
+ latitude: props.latitude ?? 0,
84
+ longitude: props.longitude ?? 0,
85
+ population: props.population ?? 0,
86
+ isCurrent: props.isCurrent === false ? 0 : 1,
87
+ isDeprecated: props.isDeprecated ? 1 : 0,
88
+ isCeased: props.isCeased ? 1 : 0,
89
+ isSuperseded: props.isSuperseded ? 1 : 0,
90
+ isSuperseding: props.isSuperseding ? 1 : 0,
91
+ lastmodified: props.lastmodified ?? 0,
92
+ concordances,
93
+ names,
94
+ src: props.src,
95
+ });
96
+ }
97
+ return { places, skipped };
98
+ }
99
+ export default processFiles;
100
+ //# sourceMappingURL=_app_worker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_app_worker.mjs","sourceRoot":"","sources":["../../../../commands/wof/prepare/_app_worker.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/wof/prepare/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAc3D,QAAA,MAAM,eAAe,6BAAgF,CAAA;AACrG,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,CAAA;AAElC,QAAA,MAAM,aAAa;;qBAKjB,CAAA;AACF,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAInC,QAAA,MAAM,UAAU,EAAE,gBAAgB,CAAC,OAAO,aAAa,EAAE,OAAO,eAAe,CA0J9E,CAAA;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/wof/prepare/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAK3D,QAAA,MAAM,eAAe,6BAAgF,CAAA;AACrG,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,CAAA;AAElC,QAAA,MAAM,aAAa;;qBAKjB,CAAA;AACF,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAInC,QAAA,MAAM,UAAU,EAAE,gBAAgB,CAAC,OAAO,aAAa,EAAE,OAAO,eAAe,CA+K9E,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -6,24 +6,14 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
6
6
  */
7
7
  import { ProgressBar } from "@inkjs/ui";
8
8
  import { formatMinutes, formatQuantity, takeAsync, tallyPatternCount } from "@mailwoman/core/resources";
9
- import { createUnifiedIndexes, createUnifiedSchema } from "@mailwoman/resolver-wof-sqlite/unified-schema";
10
9
  import FastGlob from "fast-glob";
11
10
  import { Box, Text } from "ink";
12
- import { availableParallelism } from "node:os";
13
11
  import { DatabaseSync } from "node:sqlite";
14
12
  import { setImmediate } from "node:timers/promises";
15
13
  import { PathBuilder } from "path-ts";
16
14
  import { Piscina } from "piscina";
17
15
  import { useEffect, useState } from "react";
18
16
  import zod from "zod";
19
- const piscina = new Piscina({
20
- filename: PathBuilder.from(import.meta.dirname, "_app_worker.mjs").href,
21
- idleTimeout: 1000 * 10,
22
- env: {
23
- WOF_DATA_DIR: process.env.WOF_DATA_DIR || "/tmp/wof-placetype-dbs",
24
- },
25
- });
26
- const WORKER_COUNT = availableParallelism();
27
17
  const FILES_PER_BATCH = 500;
28
18
  const ArgumentsSchema = zod.array(zod.string().describe("Path to the Who's On First data directory"));
29
19
  export { ArgumentsSchema as args };
@@ -57,9 +47,30 @@ const WOFPrepare = ({ args: [wofDataAdminDirectory], options, }) => {
57
47
  useEffect(() => {
58
48
  ;
59
49
  (async () => {
50
+ // Worker pool is created HERE (not at module scope) so importing this command module — which
51
+ // pastel does eagerly for every CLI invocation — has no side effects and ships no hard
52
+ // dependency on the worker being resolvable at load time.
53
+ const piscina = new Piscina({
54
+ filename: PathBuilder.from(import.meta.dirname, "_app_worker.mjs").href,
55
+ idleTimeout: 1000 * 10,
56
+ env: {
57
+ WOF_DATA_DIR: process.env.WOF_DATA_DIR || "/tmp/wof-placetype-dbs",
58
+ },
59
+ });
60
+ // The unified-DB helpers live in the optional `@mailwoman/resolver-wof-sqlite` peer. Load them
61
+ // lazily (only when --unified-db is requested) so the published CLI loads without that package —
62
+ // same graceful-optional pattern as `parse --resolve`. Without it, the standalone CLI would crash
63
+ // on startup importing an unpublished workspace (#481 follow-up / clean-install fix).
64
+ let unifiedSchema;
60
65
  if (unifiedDbPath) {
66
+ try {
67
+ unifiedSchema = await import("@mailwoman/resolver-wof-sqlite/unified-schema");
68
+ }
69
+ catch {
70
+ throw new Error("`wof prepare --unified-db` needs @mailwoman/resolver-wof-sqlite — install it (npm i @mailwoman/resolver-wof-sqlite) and retry.");
71
+ }
61
72
  const db = new DatabaseSync(unifiedDbPath, { open: true });
62
- createUnifiedSchema(db);
73
+ unifiedSchema.createUnifiedSchema(db);
63
74
  db.close();
64
75
  }
65
76
  const matchStream = FastGlob.stream(["**/*.geojson"], {
@@ -82,7 +93,6 @@ const WOFPrepare = ({ args: [wofDataAdminDirectory], options, }) => {
82
93
  populationInsert = unifiedDb.prepare("INSERT OR REPLACE INTO place_population (id, population) VALUES (?, ?)");
83
94
  }
84
95
  const tasks = [];
85
- let batchCount = 0;
86
96
  for await (const fileNames of takeAsync(matchStream, FILES_PER_BATCH)) {
87
97
  const filePaths = fileNames.map((f) => f.toString());
88
98
  const task = piscina.run({ filePaths }).then((result) => {
@@ -111,7 +121,7 @@ const WOFPrepare = ({ args: [wofDataAdminDirectory], options, }) => {
111
121
  await Promise.allSettled(tasks);
112
122
  await piscina.destroy();
113
123
  if (unifiedDb) {
114
- createUnifiedIndexes(unifiedDb);
124
+ unifiedSchema.createUnifiedIndexes(unifiedDb);
115
125
  unifiedDb.close();
116
126
  }
117
127
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../commands/wof/prepare/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../commands/wof/prepare/index.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACvG,OAAO,QAAQ,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,MAAM,eAAe,GAAG,GAAG,CAAA;AAE3B,MAAM,eAAe,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAA;AACrG,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,CAAA;AAElC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;IAChC,SAAS,EAAE,GAAG;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2EAA2E,CAAC;CACvF,CAAC,CAAA;AACF,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,CAAA;AAEnC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;AAEnC,MAAM,UAAU,GAAmE,CAAC,EACnF,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAC7B,OAAO,GACP,EAAE,EAAE;IACJ,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAA;IACvC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,GAAG,CAAA;IAChF,4FAA4F;IAC5F,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IAE7C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAA;IAE3F,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,UAAU,GAAG,GAAG;YAAE,OAAM;QAE5B,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,SAAS,CAAC,GAAG,EAAE;QACd,iBAAiB,CAAC,CAAC,WAAW,CAAC,EAAE,qBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC9E,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE3B,SAAS,CAAC,GAAG,EAAE;QACd,CAAC;QAAA,CAAC,KAAK,IAAI,EAAE;YACZ,6FAA6F;YAC7F,uFAAuF;YACvF,0DAA0D;YAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAA4B;gBACtD,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,IAAI;gBACvE,WAAW,EAAE,IAAI,GAAG,EAAE;gBACtB,GAAG,EAAE;oBACJ,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,wBAAwB;iBAClE;aACD,CAAC,CAAA;YACF,+FAA+F;YAC/F,iGAAiG;YACjG,kGAAkG;YAClG,sFAAsF;YACtF,IAAI,aAAyF,CAAA;YAC7F,IAAI,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACJ,aAAa,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAA;gBAC9E,CAAC;gBAAC,MAAM,CAAC;oBACR,MAAM,IAAI,KAAK,CACd,gIAAgI,CAChI,CAAA;gBACF,CAAC;gBACD,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC1D,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;gBACrC,EAAE,CAAC,KAAK,EAAE,CAAA;YACX,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE;gBACrD,GAAG,EAAE,qBAAsB;gBAC3B,QAAQ,EAAE,IAAI;aACd,CAAC,CAAA;YAEF,IAAI,SAAS,GAAwB,IAAI,CAAA;YACzC,IAAI,SAAS,GAA+C,IAAI,CAAA;YAChE,IAAI,WAAW,GAA+C,IAAI,CAAA;YAClE,IAAI,kBAAkB,GAA+C,IAAI,CAAA;YACzE,IAAI,gBAAgB,GAA+C,IAAI,CAAA;YAEvE,IAAI,aAAa,EAAE,CAAC;gBACnB,SAAS,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAA;gBAC3C,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;gBAC3C,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;gBAC7C,SAAS,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;gBAC7C,SAAS,GAAG,SAAS,CAAC,OAAO,CAC5B,6NAA6N,CAC7N,CAAA;gBACD,WAAW,GAAG,SAAS,CAAC,OAAO,CAC9B,oGAAoG,CACpG,CAAA;gBACD,kBAAkB,GAAG,SAAS,CAAC,OAAO,CACrC,yFAAyF,CACzF,CAAA;gBACD,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,wEAAwE,CAAC,CAAA;YAC/G,CAAC;YAED,MAAM,KAAK,GAAoB,EAAE,CAAA;YAEjC,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;gBACvE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAoB,EAAE,EAAE;oBACrE,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3C,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;wBACnC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;4BAC/B,SAAU,CAAC,GAAG,CACb,CAAC,CAAC,EAAE,EACJ,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,aAAa,EACf,CAAC,CAAC,YAAY,CACd,CAAA;4BACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gCACzB,IAAI,CAAC,CAAC,SAAS;oCAAE,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAA;gCACxG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,SAAS;oCACzC,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAA;4BACvF,CAAC;4BACD,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;gCAC9D,kBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,CAAA;4BAC7D,CAAC;4BACD,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;gCAAE,gBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;wBAChE,CAAC;wBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBACzB,CAAC;oBACD,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC3D,CAAC,CAAC,CAAA;gBAEF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,CAAC;YAED,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC/B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;YAEvB,IAAI,SAAS,EAAE,CAAC;gBACf,aAAc,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;gBAC9C,SAAS,CAAC,KAAK,EAAE,CAAA;YAClB,CAAC;QACF,CAAC,CAAC,EAAE,CAAA;IACL,CAAC,EAAE,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAA;IAE1C,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,YAAY,GAAG,GAAG,EAAE;YACzB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YAC7B,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;YAClC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAChD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAEpB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,MAAC,IAAI,4BAAW,cAAc,CAAC,cAAc,CAAC,gBAAgB,EAC9D,MAAC,IAAI,4BAAW,aAAa,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,kBAAkB,EACpE,KAAC,IAAI,wBAAa,IACb,CACN,CAAA;IACF,CAAC;IAED,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,MAAC,GAAG,eACH,MAAC,IAAI,4BAAW,cAAc,CAAC,cAAc,CAAC,IAAQ,EACtD,MAAC,IAAI,iCAAgB,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAQ,EACnF,KAAC,IAAI,gCAAqB,IACrB,EAEN,MAAC,IAAI,eAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EACxC,MAAC,IAAI,4BAAW,aAAa,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC,kBAAkB,EACpE,MAAC,IAAI,wBAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAE7E,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,aACf,KAAC,WAAW,IAAC,KAAK,EAAE,UAAU,GAAI,EAClC,MAAC,IAAI,eAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAChC,IACD,CACN,CAAA;AACF,CAAC,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-placer.d.ts","sourceRoot":"","sources":["../default-placer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,uGAAuG;AACvG,MAAM,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK;IACxD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,kGAAkG;IAClG,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC,CAAA;AAOD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmBxE"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The default coarse-placer (#244) for the user-facing geocoding surfaces. As of the M2 misrouting
7
+ * gate (0 misroutes across 2 000 in-map addresses, 10 countries — see
8
+ * docs/articles/evals/2026-06-14-coarse-placer-inmap-misroute.md) the soft country prior runs
9
+ * **on by default**: `geocodeAddress` and `createRuntimePipeline` load THIS bundled placer unless
10
+ * the caller passes their own `placeCountry` or opts out with `placeCountry: false`.
11
+ *
12
+ * Loaded LAZILY + cached once per process: the int8 model is ~0.79 MB and `predict` is
13
+ * microseconds, but the bundled-artifact read is async, so callers `await` it the first time and
14
+ * reuse the cached promise after. Returns `null` (no prior, graceful) when the bundled model
15
+ * can't be resolved — a stripped-down install, a missing `data/` dir — so a default-on consumer
16
+ * degrades to plain resolution instead of throwing.
17
+ */
18
+ // Abstention threshold for the default prior — the open-set rule's flat-optimum operating point (#244 M2).
19
+ const DEFAULT_ABSTAIN_BELOW = 0.9;
20
+ let cached = null;
21
+ /**
22
+ * Lazy-load + cache the coarse-placer bundled in `@mailwoman/core` as a place-country fn (the M2
23
+ * open-set rule at the 0.9 operating point). The result is cached for the process; `null` means the
24
+ * model couldn't be loaded and the caller should proceed with no prior.
25
+ */
26
+ export function loadDefaultPlaceCountry() {
27
+ if (!cached) {
28
+ cached = (async () => {
29
+ try {
30
+ const { CoarsePlacer, inMapPosterior } = await import("@mailwoman/core/coarse-placer");
31
+ const placer = await CoarsePlacer.fromBundled({ abstainBelow: DEFAULT_ABSTAIN_BELOW, openSet: true });
32
+ return (text) => {
33
+ const p = placer.predict(text);
34
+ // Hand the resolver the full in-map distribution (#244 residual): it boosts every plausible
35
+ // country and breaks ambiguous ties with its own evidence, instead of the lossy one-hot argmax.
36
+ const posterior = inMapPosterior(p);
37
+ return { country: p.country, confidence: p.confidence, ...(posterior ? { posterior } : {}) };
38
+ };
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ })();
44
+ }
45
+ return cached;
46
+ }
47
+ //# sourceMappingURL=default-placer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-placer.js","sourceRoot":"","sources":["../default-placer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,2GAA2G;AAC3G,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAEjC,IAAI,MAAM,GAA0C,IAAI,CAAA;AAExD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,KAAK,IAAoC,EAAE;YACpD,IAAI,CAAC;gBACJ,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;gBACtF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;gBACrG,OAAO,CAAC,IAAY,EAAE,EAAE;oBACvB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBAC9B,4FAA4F;oBAC5F,gGAAgG;oBAChG,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;oBACnC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;gBAC7F,CAAC,CAAA;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,EAAE,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAG9G,OAAO,EAAE,KAAK,mBAAmB,EAAyC,MAAM,mBAAmB,CAAA;AACnG,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAEjG;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,OAAO,CAAA;AAEvE,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,eAAe,EAAE,cAAc,CAAA;IAC/B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,mFAAmF;IACnF,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC9F;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,aAAa,CAAC,EAAE,kBAAkB,CAAA;IAClC,aAAa,CAAC,EAAE,mBAAmB,CAAA;CACnC;AAED,sGAAsG;AACtG,MAAM,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,WAAW,CAAA;AAErE,mGAAmG;AACnG,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAC9E;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,EAAE,iBAAiB,CAAA;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAA;IACnD;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,cAAc,GAAG,KAAK,CAAA;CACrC;AAQD,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAChC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,MAAM,GAAG,IAAI,CAOf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAanE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAI/F;AAED,+FAA+F;AAC/F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAI/F;AAED,oGAAoG;AACpG,MAAM,WAAW,kBAAkB;IAClC,wBAAwB,EAAE,KAAK,MAAM,EAAE,MAAM,KAAK,kBAAkB,GAAG;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAA;IACxF,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,mBAAmB,GAAG;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAA;CAC7F;AAUD;;;;;;GAMG;AACH,qBAAa,aAAa;;gBAQb,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;IAczD,QAAQ,CAAC,GAAG,EAAE,aAAa,CAQ1B;IAED,+FAA+F;IAC/F,QAAQ,IAAI,mBAAmB,GAAG,IAAI;IAItC;;;;;OAKG;IACH,MAAM,IAAI,mBAAmB,GAAG,IAAI;IAepC,KAAK,IAAI,IAAI;CASb;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAoC7F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,CAiEpF"}
@@ -23,7 +23,13 @@
23
23
  */
24
24
  import { existsSync } from "node:fs";
25
25
  import { readReleaseManifest, resolveShardPath } from "./data-release.js";
26
+ import { loadDefaultPlaceCountry } from "./default-placer.js";
26
27
  import { interpCalibrationForRegion } from "./interp-calibration.js";
28
+ /**
29
+ * Anchor weight for the coarse-placer's country prior. Matches the runtime-pipeline default — a
30
+ * whole-string country guess is broader/softer than a postcode anchor (2.0), so it blends gently.
31
+ */
32
+ const COARSE_PLACER_ANCHOR_WEIGHT = 1.0;
27
33
  /** Lowercase 2-letter state slug from a parsed region value / resolver name, else null. */
28
34
  export function regionToStateSlug(regionValue, resolverName) {
29
35
  for (const candidate of [regionValue, resolverName]) {
@@ -35,8 +41,10 @@ export function regionToStateSlug(regionValue, resolverName) {
35
41
  }
36
42
  return null;
37
43
  }
38
- /** Walk a (parsed or resolved) tree for its region → the per-state shard slug (e.g. `"tx"`), else
39
- null. */
44
+ /**
45
+ * Walk a (parsed or resolved) tree for its region → the per-state shard slug (e.g. `"tx"`), else
46
+ * null.
47
+ */
40
48
  export function regionSlugFromTree(tree) {
41
49
  let regionValue = null;
42
50
  let regionResolverName = null;
@@ -51,8 +59,10 @@ export function regionSlugFromTree(tree) {
51
59
  }
52
60
  return regionToStateSlug(regionValue, regionResolverName);
53
61
  }
54
- /** Per-state situs shard path under `<dataRoot>/address-points/`, or null if the slug/file is
55
- absent. */
62
+ /**
63
+ * Per-state situs shard path under `<dataRoot>/address-points/`, or null if the slug/file is
64
+ * absent.
65
+ */
56
66
  export function selectAddressPointsDb(dataRoot, stateSlug) {
57
67
  if (!stateSlug)
58
68
  return null;
@@ -153,6 +163,18 @@ export async function geocodeAddress(input, deps) {
153
163
  const opts = {};
154
164
  if (deps.defaultCountry)
155
165
  opts.defaultCountry = deps.defaultCountry;
166
+ // Coarse country router (#244, soft prior) — DEFAULT-ON (#244 M2). undefined → the bundled placer;
167
+ // a function → that placer; false → disabled. A confident in-map guess feeds the resolver's
168
+ // anchorPosterior re-rank; abstain/OTHER are no-ops and an explicit defaultCountry isn't disturbed.
169
+ const placeCountry = deps.placeCountry === false ? null : (deps.placeCountry ?? (await loadDefaultPlaceCountry()));
170
+ if (placeCountry) {
171
+ const placed = placeCountry(input);
172
+ if (placed.country && placed.country !== "OTHER" && !opts.anchorPosterior) {
173
+ // The full in-map distribution when supplied (resolver breaks ties); else the one-hot argmax.
174
+ opts.anchorPosterior = placed.posterior ?? { [placed.country]: placed.confidence };
175
+ opts.anchorWeight = COARSE_PLACER_ANCHOR_WEIGHT;
176
+ }
177
+ }
156
178
  if (addressPoints)
157
179
  opts.addressPoints = addressPoints;
158
180
  if (interpolation) {
@@ -1 +1 @@
1
- {"version":3,"file":"geocode-core.js","sourceRoot":"","sources":["../geocode-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geocode-core.js","sourceRoot":"","sources":["../geocode-core.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;AAOjC,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;CACpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACpC,IAAI,GAAE,yBAA8B,GAClC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,CAqBlE;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;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"}
@@ -19,6 +19,7 @@ import { detectLocale as defaultDetectLocale } from "@mailwoman/locale-gate";
19
19
  import { normalize } from "@mailwoman/normalize";
20
20
  import { groupPhrases as defaultGroupPhrases } from "@mailwoman/phrase-grouper";
21
21
  import { computeQueryShape } from "@mailwoman/query-shape";
22
+ import { loadDefaultPlaceCountry } from "./default-placer.js";
22
23
  /**
23
24
  * Build a runtime pipeline pre-wired with the default normalize + queryShape implementations.
24
25
  *
@@ -43,11 +44,28 @@ export function createRuntimePipeline(opts = {}) {
43
44
  classifier: opts.classifier,
44
45
  fst: opts.fst,
45
46
  resolver: opts.resolver,
47
+ // Coarse country router (#244) — DEFAULT-ON (#244 M2). A function override is wired here; the
48
+ // `undefined` default is lazy-loaded on the first call (below) so the sync factory stays sync;
49
+ // `false` disables it. A confident in-map guess feeds the resolver's anchorPosterior re-rank.
50
+ placeCountry: typeof opts.placeCountry === "function" ? opts.placeCountry : undefined,
46
51
  // Default locale gate: rule-based from @mailwoman/locale-gate. Derives locale from
47
52
  // QueryShape character class (CJK→ja-JP, Cyrillic→ru-RU, Arabic→ar) + known-format
48
53
  // hits (us_zip→en-US, fr_postcode→fr-FR, uk_postcode→en-GB). Caller-hint wins when set.
49
54
  detectLocale: opts.detectLocale ?? defaultDetectLocale,
50
55
  };
51
- return (raw, runOpts) => runPipeline(raw, stages, runOpts);
56
+ // Default-on lazy wiring: when the caller neither supplied a placeCountry fn nor disabled it
57
+ // (`false`), load the bundled placer once on the first call and inject it. Done in the returned
58
+ // (async) function so the factory itself stays synchronous.
59
+ const autoPlaceCountry = opts.placeCountry === undefined;
60
+ let placeCountryResolved = !autoPlaceCountry;
61
+ return async (raw, runOpts) => {
62
+ if (!placeCountryResolved) {
63
+ placeCountryResolved = true;
64
+ const fn = await loadDefaultPlaceCountry();
65
+ if (fn)
66
+ stages.placeCountry = fn;
67
+ }
68
+ return runPipeline(raw, stages, runOpts);
69
+ };
52
70
  }
53
71
  //# 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;AAkC1D;;;;;;;;;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,mFAAmF;QACnF,mFAAmF;QACnF,wFAAwF;QACxF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,mBAAmB;KACtD,CAAA;IAED,OAAO,CAAC,GAAW,EAAE,OAAsB,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAClF,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mailwoman",
3
- "version": "4.8.0",
3
+ "version": "4.9.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": [
@@ -33,15 +33,20 @@
33
33
  "dependencies": {
34
34
  "@fragaria/address-formatter": "^6.7.1",
35
35
  "@inkjs/ui": "^2.0.0",
36
- "@mailwoman/classifiers": "4.8.0",
37
- "@mailwoman/core": "4.8.0",
38
- "@mailwoman/kind-classifier": "4.8.0",
39
- "@mailwoman/locale-gate": "4.8.0",
40
- "@mailwoman/normalize": "4.8.0",
41
- "@mailwoman/phrase-grouper": "4.8.0",
42
- "@mailwoman/query-shape": "4.8.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",
45
+ "chalk": "^5.6.2",
43
46
  "change-case": "^5.4.4",
47
+ "d3-scale-chromatic": "^3.1.0",
44
48
  "express": "^5.2.1",
49
+ "fast-glob": "^3.3.3",
45
50
  "geojson": "^0.5.0",
46
51
  "ink": "^7.0.5",
47
52
  "ioredis": "^5.11.1",
@@ -52,7 +57,8 @@
52
57
  "react": "^19.2.7",
53
58
  "regenerate": "^1.4.2",
54
59
  "spliterator": "^2.0.0",
55
- "zod": "^4.4.3"
60
+ "zod": "^4.4.3",
61
+ "zx": "^8.8.5"
56
62
  },
57
63
  "peerDependencies": {
58
64
  "@mailwoman/resolver-wof-sqlite": "2.1.0"
@@ -61,7 +67,9 @@
61
67
  "!out/test/**/*",
62
68
  "!**/*.ts",
63
69
  "out/**/*.js",
70
+ "out/**/*.mjs",
64
71
  "out/**/*.js.map",
72
+ "out/**/*.mjs.map",
65
73
  "out/**/*.d.ts",
66
74
  "out/**/*.d.ts.map",
67
75
  "out/**/*.json"