mailwoman 9.0.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1733) hide show
  1. package/README.md +20 -6
  2. package/admin-coherence.ts +322 -0
  3. package/api-engine.ts +20 -20
  4. package/autocomplete-core.ts +97 -0
  5. package/cli-kit/dropin.ts +8 -8
  6. package/cli-kit/index.ts +4 -152
  7. package/cli-kit/metadata.ts +21 -0
  8. package/cli-kit/shared.ts +225 -0
  9. package/cli-native/command-router.ts +138 -0
  10. package/cli-native/commands/autocomplete.ts +53 -0
  11. package/cli-native/commands/doctor.ts +56 -0
  12. package/cli-native/commands/geocode.ts +450 -0
  13. package/cli-native/commands/openapi.ts +50 -0
  14. package/cli-native/commands/reverse.ts +142 -0
  15. package/cli-native/router.ts +57 -0
  16. package/cli-native/spec.ts +301 -0
  17. package/cli.ts +103 -15
  18. package/commands/clients/generate.tsx +27 -17
  19. package/commands/corpus/align-shard.tsx +21 -12
  20. package/commands/corpus/audit.tsx +27 -20
  21. package/commands/corpus/build.tsx +61 -42
  22. package/commands/corpus/download.tsx +23 -15
  23. package/commands/corpus/fetch.tsx +99 -68
  24. package/commands/corpus/golden/expand.tsx +40 -21
  25. package/commands/corpus/golden/promote.tsx +30 -16
  26. package/commands/corpus/golden-relabel.tsx +32 -14
  27. package/commands/corpus/ingest-csv.tsx +42 -16
  28. package/commands/corpus/list.tsx +18 -4
  29. package/commands/corpus/overlay-manifest.tsx +36 -24
  30. package/commands/corpus/run.tsx +47 -43
  31. package/commands/corpus/shard/index.tsx +82 -60
  32. package/commands/corpus/shard/kryptonite.tsx +33 -12
  33. package/commands/corpus/shard/translit.tsx +42 -17
  34. package/commands/corpus/stats.tsx +22 -13
  35. package/commands/corpus/sub-venue-extract.tsx +19 -9
  36. package/commands/corpus/sub-venue-lexicon.tsx +31 -21
  37. package/commands/corpus/upload.tsx +160 -89
  38. package/commands/coverage/build.tsx +101 -54
  39. package/commands/data/coverage.tsx +203 -0
  40. package/commands/data/index.tsx +124 -0
  41. package/commands/data/inventory.tsx +170 -0
  42. package/commands/data/pull.tsx +86 -40
  43. package/commands/data/status.tsx +34 -40
  44. package/commands/dev/download/libpostal-resources.tsx +24 -9
  45. package/commands/dev/download/ssl-address.tsx +23 -11
  46. package/commands/dev/generate/country-population.tsx +45 -0
  47. package/commands/dev/generate/country-reference.tsx +14 -3
  48. package/commands/dev/generate/language-types.tsx +14 -3
  49. package/commands/dev/generate/official-languages.tsx +30 -13
  50. package/commands/dev/generate/trace-fixture.tsx +22 -19
  51. package/commands/dev/jsonl-to-parquet.tsx +25 -14
  52. package/commands/dev/lint/corpus-shard.tsx +30 -17
  53. package/commands/dev/lint/mdx-angles.tsx +18 -19
  54. package/commands/dev/lint/shard-vocab.tsx +35 -16
  55. package/commands/eval/capability-manifest.tsx +38 -19
  56. package/commands/eval/error-analysis.tsx +42 -23
  57. package/commands/eval/es-postcode-centroids.tsx +29 -15
  58. package/commands/eval/fragment-board.tsx +30 -17
  59. package/commands/eval/fragment-dev.tsx +33 -11
  60. package/commands/eval/gate.tsx +38 -29
  61. package/commands/eval/gauntlet-build.tsx +20 -16
  62. package/commands/eval/gauntlet.tsx +70 -47
  63. package/commands/eval/invariance.tsx +51 -34
  64. package/commands/eval/ledger-append.tsx +55 -29
  65. package/commands/eval/mask-regression.tsx +40 -20
  66. package/commands/eval/oa-resolver.tsx +95 -78
  67. package/commands/eval/oracle-k.tsx +53 -27
  68. package/commands/eval/parity.tsx +55 -48
  69. package/commands/eval/poi-board.tsx +33 -43
  70. package/commands/eval/preset-compare.tsx +22 -10
  71. package/commands/eval/score-trends.tsx +22 -10
  72. package/commands/filer/edgar-ingest.tsx +93 -0
  73. package/commands/filer/linkage-eval.tsx +22 -12
  74. package/commands/gazetteer/affix-relabel.tsx +36 -15
  75. package/commands/gazetteer/anchor-lexicon.tsx +24 -12
  76. package/commands/gazetteer/build/admin.tsx +28 -23
  77. package/commands/gazetteer/build/anchor-lookup.tsx +26 -15
  78. package/commands/gazetteer/build/bdc.tsx +66 -59
  79. package/commands/gazetteer/build/candidate.tsx +69 -44
  80. package/commands/gazetteer/build/coincident-roles.tsx +18 -27
  81. package/commands/gazetteer/build/cz-districts.tsx +48 -0
  82. package/commands/gazetteer/build/fst.tsx +22 -11
  83. package/commands/gazetteer/build/fts.tsx +23 -22
  84. package/commands/gazetteer/build/gnaf-rooftop.tsx +80 -0
  85. package/commands/gazetteer/build/index.tsx +25 -24
  86. package/commands/gazetteer/build/locality-surface-lexicon.tsx +26 -15
  87. package/commands/gazetteer/build/nl-pc6.tsx +19 -10
  88. package/commands/gazetteer/build/nz-localities.tsx +51 -0
  89. package/commands/gazetteer/build/poi-brands.tsx +31 -30
  90. package/commands/gazetteer/build/poi.tsx +43 -51
  91. package/commands/gazetteer/build/postcode-codepoint.tsx +24 -14
  92. package/commands/gazetteer/build/postcode-geonames.tsx +29 -21
  93. package/commands/gazetteer/build/postcode-locality.tsx +54 -34
  94. package/commands/gazetteer/build/postcode-ni-osm.tsx +22 -19
  95. package/commands/gazetteer/build/postcode-prefix.tsx +75 -48
  96. package/commands/gazetteer/build/postcode-shard.tsx +31 -13
  97. package/commands/gazetteer/build/street-morphology.tsx +29 -16
  98. package/commands/gazetteer/build/street-type-lexicon.tsx +17 -9
  99. package/commands/gazetteer/build/uprn.tsx +90 -0
  100. package/commands/gazetteer/capitals.tsx +74 -0
  101. package/commands/gazetteer/census.tsx +29 -27
  102. package/commands/gazetteer/conventions.tsx +33 -34
  103. package/commands/gazetteer/country-plan.tsx +292 -0
  104. package/commands/gazetteer/granularity.tsx +33 -25
  105. package/commands/gazetteer/importance.tsx +109 -72
  106. package/commands/gazetteer/inspect/fst.tsx +31 -22
  107. package/commands/gazetteer/inspect/graph.tsx +29 -36
  108. package/commands/gazetteer/inspect/mermaid.tsx +47 -49
  109. package/commands/gazetteer/inspect/placetype-stats.tsx +43 -28
  110. package/commands/gazetteer/inspect/sync-plan.ts +190 -0
  111. package/commands/gazetteer/inspect/sync.tsx +281 -86
  112. package/commands/gazetteer/inspect/tree.tsx +29 -36
  113. package/commands/gazetteer/overture-ingest.tsx +33 -16
  114. package/commands/gazetteer/pair-index.tsx +59 -83
  115. package/commands/gazetteer/polygons.tsx +51 -51
  116. package/commands/gazetteer/postal-alias.tsx +31 -23
  117. package/commands/gazetteer/postal-city.tsx +36 -31
  118. package/commands/gazetteer/postcode-binary.tsx +46 -43
  119. package/commands/gazetteer/postcode-intl.tsx +79 -44
  120. package/commands/gazetteer/promote.tsx +20 -16
  121. package/commands/gazetteer/publish.tsx +39 -34
  122. package/commands/gazetteer/release.tsx +57 -41
  123. package/commands/gazetteer/repos-sync.tsx +239 -0
  124. package/commands/gazetteer/triage.tsx +122 -0
  125. package/commands/gazetteer/verify-codepoint.tsx +25 -15
  126. package/commands/gazetteer/verify.tsx +25 -20
  127. package/commands/gnaf/assemble.tsx +29 -22
  128. package/commands/parse.tsx +204 -272
  129. package/commands/placer/build-dataset.tsx +36 -35
  130. package/commands/placer/eval.tsx +37 -36
  131. package/commands/placer/probe-frontier.tsx +28 -15
  132. package/commands/placer/quantize.tsx +23 -11
  133. package/commands/placer/train.tsx +28 -15
  134. package/commands/poi.tsx +63 -77
  135. package/commands/registry/convert/tx-hhsc.tsx +26 -15
  136. package/commands/registry/dedup-ceiling.tsx +35 -22
  137. package/commands/registry/gold-set-sample.tsx +37 -23
  138. package/commands/registry/matcher-scale.tsx +30 -14
  139. package/commands/registry/run.tsx +119 -165
  140. package/commands/registry/scorer-eval.tsx +104 -101
  141. package/commands/registry/train-scorer.tsx +47 -46
  142. package/commands/registry/viz.tsx +41 -41
  143. package/commands/release/hf.tsx +58 -69
  144. package/commands/serve.tsx +30 -23
  145. package/commands/situs/address-points.tsx +70 -57
  146. package/commands/situs/attribution-manifest.tsx +23 -13
  147. package/commands/situs/build.tsx +36 -38
  148. package/commands/situs/interpolation-shard.tsx +59 -26
  149. package/commands/situs/interpolation.tsx +55 -46
  150. package/commands/skill/install.tsx +24 -12
  151. package/commands/tiger/fetch.tsx +39 -26
  152. package/commands/tiger/race-dots-map.tsx +39 -24
  153. package/commands/tiger/race-dots.tsx +29 -16
  154. package/commands/tiger/redistricting.tsx +29 -19
  155. package/commands/tiles/publish.tsx +33 -20
  156. package/commands/wof/graph.tsx +6 -1
  157. package/commands/wof/mermaid.tsx +6 -1
  158. package/commands/wof/prepare.tsx +6 -1
  159. package/commands/wof/sync.tsx +6 -1
  160. package/commands/wof/tree.tsx +6 -1
  161. package/country-scope.ts +42 -0
  162. package/coverage-census.ts +543 -0
  163. package/data-bundles.ts +8 -3
  164. package/data-inventory.ts +304 -0
  165. package/debug-view/DebugFrame.tsx +584 -0
  166. package/debug-view/DebugSessionApp.tsx +584 -0
  167. package/debug-view/QueryInput.ts +249 -0
  168. package/debug-view/command.tsx +230 -0
  169. package/debug-view/output-lines.ts +268 -0
  170. package/debug-view/static-render.ts +52 -0
  171. package/debug-view/tag-colors.ts +59 -0
  172. package/debug-view/test/input-probe.ts +56 -0
  173. package/debug-view/tiles.ts +26 -0
  174. package/debug-view/trace-rows.ts +194 -0
  175. package/debug-view/view-policy.ts +107 -0
  176. package/default-reverse-geocoder.ts +1 -1
  177. package/dev-tools/build-gb-anchor-bin.run.ts +1 -1
  178. package/dev-tools/build-hard-slice-board.run.ts +7 -24
  179. package/dev-tools/capture-v1-parse.run.ts +5 -5
  180. package/dev-tools/convert-parity-fixtures.run.ts +3 -3
  181. package/dev-tools/diff-territory-spans.run.ts +3 -2
  182. package/dev-tools/extract-parity-corpus.run.ts +3 -3
  183. package/dev-tools/failure-census.run.ts +0 -0
  184. package/dev-tools/failure-report.run.ts +20 -24
  185. package/dev-tools/gb-fragment-board.run.ts +7 -5
  186. package/dev-tools/grammar-c4-census.run.ts +134 -0
  187. package/dev-tools/grammar-census.run.ts +175 -0
  188. package/dev-tools/postcode-coherence-coverage.run.ts +11 -6
  189. package/dev-tools/postcode-coherence-scale.run.ts +11 -6
  190. package/dev-tools/probe-comma-free-locality.run.ts +4 -3
  191. package/dev-tools/probe-fst-bias.run.ts +3 -16
  192. package/dev-tools/probe-query-intent.run.ts +154 -0
  193. package/dev-tools/probe-referential-delta.run.ts +170 -0
  194. package/dev-tools/retrieval-rescue-census.run.ts +116 -0
  195. package/dev-tools/router-kind-probe.run.ts +4 -2
  196. package/dev-tools/score-anchor-v2-boards.run.ts +5 -4
  197. package/dev-tools/score-hard-slice-board.run.ts +25 -27
  198. package/dev-tools/score-interesting-addresses.run.ts +104 -0
  199. package/dev-tools/score-street-name-boundaries.run.ts +79 -0
  200. package/dev-tools/score-world-structures.run.ts +109 -0
  201. package/dev-tools/us-recall-flip-census.run.ts +15 -4
  202. package/doctor/checks.ts +47 -21
  203. package/doctor/format.ts +69 -0
  204. package/doctor/index.ts +9 -0
  205. package/doctor/runner.ts +93 -33
  206. package/eval-harness/capability-manifest.ts +14 -105
  207. package/eval-harness/de-order-eval.ts +189 -0
  208. package/eval-harness/demo-cascade-rows.ts +193 -0
  209. package/eval-harness/demo-cascade-smoke.ts +371 -0
  210. package/eval-harness/digit-board.ts +3 -20
  211. package/eval-harness/error-analysis.ts +2 -2
  212. package/eval-harness/es-postcode-centroids.ts +9 -3
  213. package/eval-harness/external-arenas.ts +176 -0
  214. package/eval-harness/flatten-nodes.ts +42 -0
  215. package/eval-harness/fr-parse-recall.ts +330 -0
  216. package/eval-harness/fragment-board.ts +7 -22
  217. package/eval-harness/gates/v2.3.0-nl-postcode.json +1 -1
  218. package/eval-harness/gates/v5.3.0-family.json +1 -1
  219. package/eval-harness/gates/v9.0.0-base.json +2 -0
  220. package/eval-harness/gauntlet/ablation-expectation.ts +17 -114
  221. package/eval-harness/gauntlet/ablation-gazetteer.ts +20 -23
  222. package/eval-harness/gauntlet/ablation.ts +4 -1
  223. package/eval-harness/gauntlet/build-fdic-holdout.ts +12 -13
  224. package/eval-harness/gauntlet/build-regression-db.ts +4 -1
  225. package/eval-harness/gauntlet/cases/ad/regression.jsonl +2 -2
  226. package/eval-harness/gauntlet/cases/ae/street-name-boundaries.jsonl +5 -0
  227. package/eval-harness/gauntlet/cases/af/regression.jsonl +2 -2
  228. package/eval-harness/gauntlet/cases/al/gloss-keys.jsonl +1 -0
  229. package/eval-harness/gauntlet/cases/al/regression.jsonl +2 -2
  230. package/eval-harness/gauntlet/cases/ar/street-name-boundaries.jsonl +5 -0
  231. package/eval-harness/gauntlet/cases/at/street-name-boundaries.jsonl +2 -0
  232. package/eval-harness/gauntlet/cases/au/bare-country.jsonl +1 -0
  233. package/eval-harness/gauntlet/cases/au/gnaf-rooftop.jsonl +3 -0
  234. package/eval-harness/gauntlet/cases/au/street-name-boundaries.jsonl +13 -0
  235. package/eval-harness/gauntlet/cases/aw/regression.jsonl +1 -1
  236. package/eval-harness/gauntlet/cases/ba/regression.jsonl +2 -2
  237. package/eval-harness/gauntlet/cases/bb/regression.jsonl +1 -1
  238. package/eval-harness/gauntlet/cases/be/bare-capital.jsonl +1 -0
  239. package/eval-harness/gauntlet/cases/bf/gloss-keys.jsonl +2 -0
  240. package/eval-harness/gauntlet/cases/bf/regression.jsonl +1 -1
  241. package/eval-harness/gauntlet/cases/bi/regression.jsonl +1 -1
  242. package/eval-harness/gauntlet/cases/bj/regression.jsonl +2 -2
  243. package/eval-harness/gauntlet/cases/bn/regression.jsonl +2 -2
  244. package/eval-harness/gauntlet/cases/bq/regression.jsonl +1 -1
  245. package/eval-harness/gauntlet/cases/br/brasilia-hierarchy.jsonl +4 -0
  246. package/eval-harness/gauntlet/cases/br/street-name-boundaries.jsonl +5 -0
  247. package/eval-harness/gauntlet/cases/br/world-structures.jsonl +5 -0
  248. package/eval-harness/gauntlet/cases/bs/regression.jsonl +2 -2
  249. package/eval-harness/gauntlet/cases/bt/regression.jsonl +2 -2
  250. package/eval-harness/gauntlet/cases/bw/regression.jsonl +2 -2
  251. package/eval-harness/gauntlet/cases/by/regression.jsonl +1 -1
  252. package/eval-harness/gauntlet/cases/bz/regression.jsonl +2 -2
  253. package/eval-harness/gauntlet/cases/ca/regression.jsonl +6 -4
  254. package/eval-harness/gauntlet/cases/ca/street-name-boundaries.jsonl +15 -0
  255. package/eval-harness/gauntlet/cases/cd/regression.jsonl +2 -2
  256. package/eval-harness/gauntlet/cases/cf/gloss-keys.jsonl +1 -0
  257. package/eval-harness/gauntlet/cases/cf/regression.jsonl +1 -1
  258. package/eval-harness/gauntlet/cases/cg/regression.jsonl +2 -2
  259. package/eval-harness/gauntlet/cases/ch/gloss-keys.jsonl +1 -0
  260. package/eval-harness/gauntlet/cases/ck/regression.jsonl +2 -2
  261. package/eval-harness/gauntlet/cases/cn/bare-country.jsonl +1 -0
  262. package/eval-harness/gauntlet/cases/cn/regression.jsonl +1 -1
  263. package/eval-harness/gauntlet/cases/co/regression.jsonl +2 -2
  264. package/eval-harness/gauntlet/cases/co/world-structures.jsonl +1 -0
  265. package/eval-harness/gauntlet/cases/cv/regression.jsonl +2 -2
  266. package/eval-harness/gauntlet/cases/cv/world-structures.jsonl +1 -0
  267. package/eval-harness/gauntlet/cases/cw/regression.jsonl +1 -1
  268. package/eval-harness/gauntlet/cases/cy/regression.jsonl +2 -2
  269. package/eval-harness/gauntlet/cases/cz/bare-postcode.jsonl +3 -0
  270. package/eval-harness/gauntlet/cases/de/bare-country.jsonl +2 -0
  271. package/eval-harness/gauntlet/cases/de/regression.jsonl +5 -3
  272. package/eval-harness/gauntlet/cases/de/situs-wrong-village.jsonl +1 -0
  273. package/eval-harness/gauntlet/cases/de/street-name-boundaries.jsonl +4 -0
  274. package/eval-harness/gauntlet/cases/dj/regression.jsonl +1 -1
  275. package/eval-harness/gauntlet/cases/eg/regression.jsonl +1 -1
  276. package/eval-harness/gauntlet/cases/er/regression.jsonl +1 -1
  277. package/eval-harness/gauntlet/cases/es/regression.jsonl +9 -8
  278. package/eval-harness/gauntlet/cases/es/street-name-boundaries.jsonl +16 -0
  279. package/eval-harness/gauntlet/cases/fr/bare-country.jsonl +1 -0
  280. package/eval-harness/gauntlet/cases/fr/fork-entity.jsonl +1 -0
  281. package/eval-harness/gauntlet/cases/fr/fuzzy-scope.jsonl +1 -0
  282. package/eval-harness/gauntlet/cases/fr/gloss-keys.jsonl +3 -0
  283. package/eval-harness/gauntlet/cases/fr/regression.jsonl +42 -36
  284. package/eval-harness/gauntlet/cases/fr/street-name-boundaries.jsonl +15 -0
  285. package/eval-harness/gauntlet/cases/gb/bare-postcode.jsonl +2 -0
  286. package/eval-harness/gauntlet/cases/gb/category-query.jsonl +1 -0
  287. package/eval-harness/gauntlet/cases/gb/fork-entity.jsonl +1 -0
  288. package/eval-harness/gauntlet/cases/gb/lexical-boundary-adversarial.jsonl +11 -0
  289. package/eval-harness/gauntlet/cases/gb/regression.jsonl +93 -53
  290. package/eval-harness/gauntlet/cases/gb/street-name-boundaries.jsonl +24 -0
  291. package/eval-harness/gauntlet/cases/gh/world-structures.jsonl +2 -0
  292. package/eval-harness/gauntlet/cases/gm/regression.jsonl +1 -1
  293. package/eval-harness/gauntlet/cases/hk/street-name-boundaries.jsonl +4 -0
  294. package/eval-harness/gauntlet/cases/hu/street-name-boundaries.jsonl +2 -0
  295. package/eval-harness/gauntlet/cases/id/street-name-boundaries.jsonl +1 -0
  296. package/eval-harness/gauntlet/cases/ie/regression.jsonl +1 -1
  297. package/eval-harness/gauntlet/cases/ie/world-structures.jsonl +1 -0
  298. package/eval-harness/gauntlet/cases/il/regression.jsonl +2 -2
  299. package/eval-harness/gauntlet/cases/it/gloss-keys.jsonl +2 -0
  300. package/eval-harness/gauntlet/cases/it/regression.jsonl +3 -2
  301. package/eval-harness/gauntlet/cases/it/street-name-boundaries.jsonl +7 -0
  302. package/eval-harness/gauntlet/cases/jo/regression.jsonl +1 -1
  303. package/eval-harness/gauntlet/cases/jp/bare-country.jsonl +2 -0
  304. package/eval-harness/gauntlet/cases/jp/regression.jsonl +2 -0
  305. package/eval-harness/gauntlet/cases/jp/street-name-boundaries.jsonl +3 -0
  306. package/eval-harness/gauntlet/cases/jp/world-structures.jsonl +2 -0
  307. package/eval-harness/gauntlet/cases/kh/regression.jsonl +1 -1
  308. package/eval-harness/gauntlet/cases/kw/street-name-boundaries.jsonl +1 -0
  309. package/eval-harness/gauntlet/cases/load.ts +2 -2
  310. package/eval-harness/gauntlet/cases/ma/regression.jsonl +1 -1
  311. package/eval-harness/gauntlet/cases/ml/regression.jsonl +1 -1
  312. package/eval-harness/gauntlet/cases/mn/world-structures.jsonl +3 -0
  313. package/eval-harness/gauntlet/cases/mw/regression.jsonl +1 -1
  314. package/eval-harness/gauntlet/cases/mx/street-name-boundaries.jsonl +2 -0
  315. package/eval-harness/gauntlet/cases/my/regression.jsonl +2 -2
  316. package/eval-harness/gauntlet/cases/na/regression.jsonl +1 -1
  317. package/eval-harness/gauntlet/cases/ne/world-structures.jsonl +1 -0
  318. package/eval-harness/gauntlet/cases/ng/bare-country.jsonl +1 -0
  319. package/eval-harness/gauntlet/cases/ng/world-structures.jsonl +2 -0
  320. package/eval-harness/gauntlet/cases/ni/world-structures.jsonl +2 -0
  321. package/eval-harness/gauntlet/cases/nl/bare-postcode.jsonl +1 -0
  322. package/eval-harness/gauntlet/cases/nl/regression.jsonl +1 -0
  323. package/eval-harness/gauntlet/cases/nz/bare-capital.jsonl +1 -0
  324. package/eval-harness/gauntlet/cases/nz/fuzzy-scope.jsonl +3 -0
  325. package/eval-harness/gauntlet/cases/om/street-name-boundaries.jsonl +1 -0
  326. package/eval-harness/gauntlet/cases/pg/regression.jsonl +1 -0
  327. package/eval-harness/gauntlet/cases/pk/regression.jsonl +1 -1
  328. package/eval-harness/gauntlet/cases/pl/regression.jsonl +2 -2
  329. package/eval-harness/gauntlet/cases/pr/regression.jsonl +3 -3
  330. package/eval-harness/gauntlet/cases/pt/gloss-keys.jsonl +1 -0
  331. package/eval-harness/gauntlet/cases/pt/regression.jsonl +1 -0
  332. package/eval-harness/gauntlet/cases/pt/street-name-boundaries.jsonl +4 -0
  333. package/eval-harness/gauntlet/cases/ru/fuzzy-scope.jsonl +2 -0
  334. package/eval-harness/gauntlet/cases/ru/regression.jsonl +1 -1
  335. package/eval-harness/gauntlet/cases/ru/street-name-boundaries.jsonl +4 -0
  336. package/eval-harness/gauntlet/cases/rw/regression.jsonl +1 -1
  337. package/eval-harness/gauntlet/cases/sa/regression.jsonl +1 -1
  338. package/eval-harness/gauntlet/cases/sa/street-name-boundaries.jsonl +4 -0
  339. package/eval-harness/gauntlet/cases/se/regression.jsonl +1 -1
  340. package/eval-harness/gauntlet/cases/seed-case.ts +39 -4
  341. package/eval-harness/gauntlet/cases/sg/street-name-boundaries.jsonl +2 -0
  342. package/eval-harness/gauntlet/cases/si/regression.jsonl +5 -5
  343. package/eval-harness/gauntlet/cases/sk/bare-postcode.jsonl +1 -0
  344. package/eval-harness/gauntlet/cases/sk/regression.jsonl +1 -1
  345. package/eval-harness/gauntlet/cases/sm/regression.jsonl +1 -1
  346. package/eval-harness/gauntlet/cases/so/regression.jsonl +2 -2
  347. package/eval-harness/gauntlet/cases/sx/regression.jsonl +1 -1
  348. package/eval-harness/gauntlet/cases/th/street-name-boundaries.jsonl +4 -0
  349. package/eval-harness/gauntlet/cases/tm/regression.jsonl +1 -1
  350. package/eval-harness/gauntlet/cases/tr/street-name-boundaries.jsonl +1 -0
  351. package/eval-harness/gauntlet/cases/tt/regression.jsonl +2 -2
  352. package/eval-harness/gauntlet/cases/ua/regression.jsonl +1 -1
  353. package/eval-harness/gauntlet/cases/us/bare-country.jsonl +3 -0
  354. package/eval-harness/gauntlet/cases/us/bare-postcode.jsonl +2 -0
  355. package/eval-harness/gauntlet/cases/us/category-query.jsonl +6 -0
  356. package/eval-harness/gauntlet/cases/us/fuzzy-scope.jsonl +1 -0
  357. package/eval-harness/gauntlet/cases/us/regression.jsonl +50 -31
  358. package/eval-harness/gauntlet/cases/us/street-name-boundaries.jsonl +26 -0
  359. package/eval-harness/gauntlet/cases/us/street-tier-retrieval.jsonl +2 -0
  360. package/eval-harness/gauntlet/cases/ve/regression.jsonl +8 -1
  361. package/eval-harness/gauntlet/cases/vn/regression.jsonl +1 -1
  362. package/eval-harness/gauntlet/cases/za/regression.jsonl +3 -1
  363. package/eval-harness/gauntlet/check-case.ts +178 -6
  364. package/eval-harness/gauntlet/harness.ts +277 -35
  365. package/eval-harness/gauntlet/holdout.ts +21 -9
  366. package/eval-harness/gauntlet/metamorphic.ts +10 -15
  367. package/eval-harness/gauntlet/regression.ts +10 -1
  368. package/eval-harness/gauntlet/routing.ts +36 -0
  369. package/eval-harness/gauntlet/run.ts +25 -3
  370. package/eval-harness/gauntlet/schema.ts +31 -1
  371. package/eval-harness/gb-codepoint-eval.ts +236 -0
  372. package/eval-harness/grammar-census-c4.ts +262 -0
  373. package/eval-harness/grammar-census.ts +267 -0
  374. package/eval-harness/hard-slice-board.ts +5 -3
  375. package/eval-harness/invariance/runner.ts +175 -43
  376. package/eval-harness/ledger-append.ts +4 -4
  377. package/eval-harness/mask-regression.ts +13 -103
  378. package/eval-harness/oa-resolver/admin-match.ts +221 -0
  379. package/eval-harness/oa-resolver/aggregate.ts +120 -0
  380. package/eval-harness/oa-resolver/assembled-arm.ts +85 -0
  381. package/eval-harness/oa-resolver/coordinate-tiers.ts +196 -0
  382. package/eval-harness/oa-resolver/options.ts +170 -0
  383. package/eval-harness/oa-resolver/parse-rig.ts +155 -0
  384. package/eval-harness/oa-resolver/row-score.ts +59 -0
  385. package/eval-harness/oa-resolver/rows.ts +31 -0
  386. package/eval-harness/oa-resolver/tree-hits.ts +210 -0
  387. package/eval-harness/oa-resolver-eval.ts +72 -1103
  388. package/eval-harness/oa-resolver-report.ts +0 -1
  389. package/eval-harness/parity-corpus.ts +35 -2
  390. package/eval-harness/per-locale-f1.ts +598 -0
  391. package/eval-harness/per-tag-f1.ts +102 -0
  392. package/eval-harness/poi-board.ts +10 -9
  393. package/eval-harness/promotion-gate-verdict.ts +22 -2
  394. package/eval-harness/promotion-gate.ts +448 -146
  395. package/eval-harness/retrieval-rescue-census.ts +204 -0
  396. package/eval-harness/score-affix.ts +205 -0
  397. package/eval-harness/score-country-homograph.ts +236 -0
  398. package/eval-harness/v0-tree-adapter.ts +2 -1
  399. package/eval-harness/wof-hot-db.ts +35 -0
  400. package/fork-entity.ts +413 -0
  401. package/gazetteer-pipeline/admin/fold-overture.ts +30 -2
  402. package/gazetteer-pipeline/admin/freeze.ts +4 -6
  403. package/gazetteer-pipeline/admin/index.ts +32 -2
  404. package/gazetteer-pipeline/admin/ingest-wof.ts +14 -2
  405. package/gazetteer-pipeline/admin/manifest.ts +110 -0
  406. package/gazetteer-pipeline/admin-locator.ts +184 -0
  407. package/gazetteer-pipeline/anchor-lookup.ts +1 -1
  408. package/gazetteer-pipeline/candidate-manifest.ts +109 -0
  409. package/gazetteer-pipeline/capitals.ts +272 -0
  410. package/gazetteer-pipeline/country-plan.ts +229 -0
  411. package/gazetteer-pipeline/country-sources.ts +163 -0
  412. package/gazetteer-pipeline/cz-districts.ts +127 -0
  413. package/gazetteer-pipeline/defaults.ts +55 -1
  414. package/gazetteer-pipeline/evidence-lexicons.ts +5 -5
  415. package/gazetteer-pipeline/fst.ts +18 -6
  416. package/gazetteer-pipeline/gnaf-rooftop.ts +383 -0
  417. package/gazetteer-pipeline/granularity.ts +3 -9
  418. package/gazetteer-pipeline/index.ts +150 -38
  419. package/gazetteer-pipeline/nz-localities.ts +0 -0
  420. package/gazetteer-pipeline/overture-release.ts +108 -0
  421. package/gazetteer-pipeline/pair-index-hierarchy-probe.ts +20 -13
  422. package/gazetteer-pipeline/pair-index-hierarchy-verify.ts +14 -7
  423. package/gazetteer-pipeline/poi/build-brands.ts +7 -16
  424. package/gazetteer-pipeline/poi/build-poi.ts +30 -34
  425. package/gazetteer-pipeline/poi/defaults.ts +40 -0
  426. package/gazetteer-pipeline/postcode/centroid-fills.ts +21 -5
  427. package/gazetteer-pipeline/postcode/codepoint/fetch.ts +1 -0
  428. package/gazetteer-pipeline/postcode/codepoint-shard.ts +0 -1
  429. package/gazetteer-pipeline/postcode/geonames-tail.ts +3 -9
  430. package/gazetteer-pipeline/postcode/index.ts +13 -8
  431. package/gazetteer-pipeline/postcode/ni-osm/fetch.ts +1 -1
  432. package/gazetteer-pipeline/postcode-locality/base.ts +24 -43
  433. package/gazetteer-pipeline/postcode-locality/jp.ts +20 -35
  434. package/gazetteer-pipeline/postcode-locality/kr.ts +22 -37
  435. package/gazetteer-pipeline/postcode-locality/schema.ts +164 -0
  436. package/gazetteer-pipeline/postcode-locality/tw.ts +29 -43
  437. package/gazetteer-pipeline/postcode-prefix.ts +296 -2
  438. package/gazetteer-pipeline/recipe-edit.ts +165 -0
  439. package/gazetteer-pipeline/repos-audit.ts +247 -0
  440. package/gazetteer-pipeline/repos-sync.ts +281 -0
  441. package/gazetteer-pipeline/stamp-manifest.ts +68 -0
  442. package/gazetteer-pipeline/uprn-layer.ts +848 -0
  443. package/gazetteer-pipeline/wof-repo-origin.ts +115 -0
  444. package/gazetteer-pipeline/wof-triage.ts +467 -0
  445. package/geocode-command-options.ts +78 -0
  446. package/geocode-core.ts +720 -167
  447. package/geocode-diff.ts +278 -0
  448. package/geocode-session.ts +790 -0
  449. package/geocode-worker.ts +4 -1
  450. package/hierarchy-lineage.ts +163 -0
  451. package/inferred-scope.ts +55 -0
  452. package/intent-refusal.ts +63 -0
  453. package/kbest-street-rerank.ts +1 -3
  454. package/man/mailwoman.1 +233 -0
  455. package/out/admin-coherence.d.ts +142 -0
  456. package/out/admin-coherence.d.ts.map +1 -0
  457. package/out/admin-coherence.js +214 -0
  458. package/out/admin-coherence.js.map +1 -0
  459. package/out/api-engine.d.ts.map +1 -1
  460. package/out/api-engine.js +9 -9
  461. package/out/api-engine.js.map +1 -1
  462. package/out/autocomplete-core.d.ts +38 -0
  463. package/out/autocomplete-core.d.ts.map +1 -0
  464. package/out/autocomplete-core.js +71 -0
  465. package/out/autocomplete-core.js.map +1 -0
  466. package/out/cli-kit/dropin.d.ts +3 -3
  467. package/out/cli-kit/dropin.js +7 -7
  468. package/out/cli-kit/index.d.ts +4 -78
  469. package/out/cli-kit/index.d.ts.map +1 -1
  470. package/out/cli-kit/index.js +4 -74
  471. package/out/cli-kit/index.js.map +1 -1
  472. package/out/cli-kit/metadata.d.ts +18 -0
  473. package/out/cli-kit/metadata.d.ts.map +1 -0
  474. package/out/cli-kit/metadata.js +15 -0
  475. package/out/cli-kit/metadata.js.map +1 -0
  476. package/out/cli-kit/shared.d.ts +104 -0
  477. package/out/cli-kit/shared.d.ts.map +1 -0
  478. package/out/cli-kit/shared.js +142 -0
  479. package/out/cli-kit/shared.js.map +1 -0
  480. package/out/cli-native/command-router.d.ts +6 -0
  481. package/out/cli-native/command-router.d.ts.map +1 -0
  482. package/out/cli-native/command-router.js +95 -0
  483. package/out/cli-native/command-router.js.map +1 -0
  484. package/out/cli-native/commands/autocomplete.d.ts +41 -0
  485. package/out/cli-native/commands/autocomplete.d.ts.map +1 -0
  486. package/out/cli-native/commands/autocomplete.js +45 -0
  487. package/out/cli-native/commands/autocomplete.js.map +1 -0
  488. package/out/cli-native/commands/doctor.d.ts +29 -0
  489. package/out/cli-native/commands/doctor.d.ts.map +1 -0
  490. package/out/cli-native/commands/doctor.js +43 -0
  491. package/out/cli-native/commands/doctor.js.map +1 -0
  492. package/out/cli-native/commands/geocode.d.ts +182 -0
  493. package/out/cli-native/commands/geocode.d.ts.map +1 -0
  494. package/out/cli-native/commands/geocode.js +372 -0
  495. package/out/cli-native/commands/geocode.js.map +1 -0
  496. package/out/cli-native/commands/openapi.d.ts +30 -0
  497. package/out/cli-native/commands/openapi.d.ts.map +1 -0
  498. package/out/cli-native/commands/openapi.js +42 -0
  499. package/out/cli-native/commands/openapi.js.map +1 -0
  500. package/out/cli-native/commands/reverse.d.ts +44 -0
  501. package/out/cli-native/commands/reverse.d.ts.map +1 -0
  502. package/out/cli-native/commands/reverse.js +112 -0
  503. package/out/cli-native/commands/reverse.js.map +1 -0
  504. package/out/cli-native/router.d.ts +25 -0
  505. package/out/cli-native/router.d.ts.map +1 -0
  506. package/out/cli-native/router.js +44 -0
  507. package/out/cli-native/router.js.map +1 -0
  508. package/out/cli-native/spec.d.ts +77 -0
  509. package/out/cli-native/spec.d.ts.map +1 -0
  510. package/out/cli-native/spec.js +189 -0
  511. package/out/cli-native/spec.js.map +1 -0
  512. package/out/cli.d.ts +9 -0
  513. package/out/cli.d.ts.map +1 -1
  514. package/out/cli.js +79 -13
  515. package/out/cli.js.map +1 -1
  516. package/out/commands/clients/generate.d.ts +24 -8
  517. package/out/commands/clients/generate.d.ts.map +1 -1
  518. package/out/commands/clients/generate.js +24 -16
  519. package/out/commands/clients/generate.js.map +1 -1
  520. package/out/commands/corpus/align-shard.d.ts +32 -11
  521. package/out/commands/corpus/align-shard.d.ts.map +1 -1
  522. package/out/commands/corpus/align-shard.js +14 -10
  523. package/out/commands/corpus/align-shard.js.map +1 -1
  524. package/out/commands/corpus/audit.d.ts +29 -9
  525. package/out/commands/corpus/audit.d.ts.map +1 -1
  526. package/out/commands/corpus/audit.js +20 -15
  527. package/out/commands/corpus/audit.js.map +1 -1
  528. package/out/commands/corpus/build.d.ts +51 -11
  529. package/out/commands/corpus/build.d.ts.map +1 -1
  530. package/out/commands/corpus/build.js +43 -47
  531. package/out/commands/corpus/build.js.map +1 -1
  532. package/out/commands/corpus/download.d.ts +31 -9
  533. package/out/commands/corpus/download.d.ts.map +1 -1
  534. package/out/commands/corpus/download.js +15 -13
  535. package/out/commands/corpus/download.js.map +1 -1
  536. package/out/commands/corpus/fetch.d.ts +93 -35
  537. package/out/commands/corpus/fetch.d.ts.map +1 -1
  538. package/out/commands/corpus/fetch.js +61 -50
  539. package/out/commands/corpus/fetch.js.map +1 -1
  540. package/out/commands/corpus/golden/expand.d.ts +58 -17
  541. package/out/commands/corpus/golden/expand.d.ts.map +1 -1
  542. package/out/commands/corpus/golden/expand.js +37 -27
  543. package/out/commands/corpus/golden/expand.js.map +1 -1
  544. package/out/commands/corpus/golden/promote.d.ts +49 -12
  545. package/out/commands/corpus/golden/promote.d.ts.map +1 -1
  546. package/out/commands/corpus/golden/promote.js +27 -20
  547. package/out/commands/corpus/golden/promote.js.map +1 -1
  548. package/out/commands/corpus/golden-relabel.d.ts +41 -11
  549. package/out/commands/corpus/golden-relabel.d.ts.map +1 -1
  550. package/out/commands/corpus/golden-relabel.js +23 -13
  551. package/out/commands/corpus/golden-relabel.js.map +1 -1
  552. package/out/commands/corpus/ingest-csv.d.ts +59 -14
  553. package/out/commands/corpus/ingest-csv.d.ts.map +1 -1
  554. package/out/commands/corpus/ingest-csv.js +30 -15
  555. package/out/commands/corpus/ingest-csv.js.map +1 -1
  556. package/out/commands/corpus/list.d.ts +8 -1
  557. package/out/commands/corpus/list.d.ts.map +1 -1
  558. package/out/commands/corpus/list.js +16 -5
  559. package/out/commands/corpus/list.js.map +1 -1
  560. package/out/commands/corpus/overlay-manifest.d.ts +56 -15
  561. package/out/commands/corpus/overlay-manifest.d.ts.map +1 -1
  562. package/out/commands/corpus/overlay-manifest.js +22 -19
  563. package/out/commands/corpus/overlay-manifest.js.map +1 -1
  564. package/out/commands/corpus/run.d.ts +59 -13
  565. package/out/commands/corpus/run.d.ts.map +1 -1
  566. package/out/commands/corpus/run.js +30 -35
  567. package/out/commands/corpus/run.js.map +1 -1
  568. package/out/commands/corpus/shard/index.d.ts +160 -35
  569. package/out/commands/corpus/shard/index.d.ts.map +1 -1
  570. package/out/commands/corpus/shard/index.js +46 -55
  571. package/out/commands/corpus/shard/index.js.map +1 -1
  572. package/out/commands/corpus/shard/kryptonite.d.ts +43 -11
  573. package/out/commands/corpus/shard/kryptonite.d.ts.map +1 -1
  574. package/out/commands/corpus/shard/kryptonite.js +24 -11
  575. package/out/commands/corpus/shard/kryptonite.js.map +1 -1
  576. package/out/commands/corpus/shard/translit.d.ts +48 -12
  577. package/out/commands/corpus/shard/translit.d.ts.map +1 -1
  578. package/out/commands/corpus/shard/translit.js +32 -15
  579. package/out/commands/corpus/shard/translit.js.map +1 -1
  580. package/out/commands/corpus/stats.d.ts +31 -11
  581. package/out/commands/corpus/stats.d.ts.map +1 -1
  582. package/out/commands/corpus/stats.js +15 -11
  583. package/out/commands/corpus/stats.js.map +1 -1
  584. package/out/commands/corpus/sub-venue-extract.d.ts +30 -9
  585. package/out/commands/corpus/sub-venue-extract.d.ts.map +1 -1
  586. package/out/commands/corpus/sub-venue-extract.js +13 -8
  587. package/out/commands/corpus/sub-venue-extract.js.map +1 -1
  588. package/out/commands/corpus/sub-venue-lexicon.d.ts +34 -10
  589. package/out/commands/corpus/sub-venue-lexicon.d.ts.map +1 -1
  590. package/out/commands/corpus/sub-venue-lexicon.js +22 -20
  591. package/out/commands/corpus/sub-venue-lexicon.js.map +1 -1
  592. package/out/commands/corpus/upload.d.ts +61 -14
  593. package/out/commands/corpus/upload.d.ts.map +1 -1
  594. package/out/commands/corpus/upload.js +120 -76
  595. package/out/commands/corpus/upload.js.map +1 -1
  596. package/out/commands/coverage/build.d.ts +153 -28
  597. package/out/commands/coverage/build.d.ts.map +1 -1
  598. package/out/commands/coverage/build.js +70 -51
  599. package/out/commands/coverage/build.js.map +1 -1
  600. package/out/commands/data/coverage.d.ts +58 -0
  601. package/out/commands/data/coverage.d.ts.map +1 -0
  602. package/out/commands/data/coverage.js +151 -0
  603. package/out/commands/data/coverage.js.map +1 -0
  604. package/out/commands/data/index.d.ts +41 -0
  605. package/out/commands/data/index.d.ts.map +1 -0
  606. package/out/commands/data/index.js +92 -0
  607. package/out/commands/data/index.js.map +1 -0
  608. package/out/commands/data/inventory.d.ts +53 -0
  609. package/out/commands/data/inventory.d.ts.map +1 -0
  610. package/out/commands/data/inventory.js +120 -0
  611. package/out/commands/data/inventory.js.map +1 -0
  612. package/out/commands/data/pull.d.ts +47 -11
  613. package/out/commands/data/pull.d.ts.map +1 -1
  614. package/out/commands/data/pull.js +59 -35
  615. package/out/commands/data/pull.js.map +1 -1
  616. package/out/commands/data/status.d.ts +29 -9
  617. package/out/commands/data/status.d.ts.map +1 -1
  618. package/out/commands/data/status.js +25 -35
  619. package/out/commands/data/status.js.map +1 -1
  620. package/out/commands/dev/download/libpostal-resources.d.ts +19 -7
  621. package/out/commands/dev/download/libpostal-resources.d.ts.map +1 -1
  622. package/out/commands/dev/download/libpostal-resources.js +19 -8
  623. package/out/commands/dev/download/libpostal-resources.js.map +1 -1
  624. package/out/commands/dev/download/ssl-address.d.ts +24 -8
  625. package/out/commands/dev/download/ssl-address.d.ts.map +1 -1
  626. package/out/commands/dev/download/ssl-address.js +16 -9
  627. package/out/commands/dev/download/ssl-address.js.map +1 -1
  628. package/out/commands/dev/generate/country-population.d.ts +19 -0
  629. package/out/commands/dev/generate/country-population.d.ts.map +1 -0
  630. package/out/commands/dev/generate/country-population.js +34 -0
  631. package/out/commands/dev/generate/country-population.js.map +1 -0
  632. package/out/commands/dev/generate/country-reference.d.ts +7 -0
  633. package/out/commands/dev/generate/country-reference.d.ts.map +1 -1
  634. package/out/commands/dev/generate/country-reference.js +12 -3
  635. package/out/commands/dev/generate/country-reference.js.map +1 -1
  636. package/out/commands/dev/generate/language-types.d.ts +7 -0
  637. package/out/commands/dev/generate/language-types.d.ts.map +1 -1
  638. package/out/commands/dev/generate/language-types.js +12 -3
  639. package/out/commands/dev/generate/language-types.js.map +1 -1
  640. package/out/commands/dev/generate/official-languages.d.ts +24 -8
  641. package/out/commands/dev/generate/official-languages.d.ts.map +1 -1
  642. package/out/commands/dev/generate/official-languages.js +23 -9
  643. package/out/commands/dev/generate/official-languages.js.map +1 -1
  644. package/out/commands/dev/generate/trace-fixture.d.ts +14 -5
  645. package/out/commands/dev/generate/trace-fixture.d.ts.map +1 -1
  646. package/out/commands/dev/generate/trace-fixture.js +19 -12
  647. package/out/commands/dev/generate/trace-fixture.js.map +1 -1
  648. package/out/commands/dev/jsonl-to-parquet.d.ts +31 -9
  649. package/out/commands/dev/jsonl-to-parquet.d.ts.map +1 -1
  650. package/out/commands/dev/jsonl-to-parquet.js +17 -10
  651. package/out/commands/dev/jsonl-to-parquet.js.map +1 -1
  652. package/out/commands/dev/lint/corpus-shard.d.ts +40 -11
  653. package/out/commands/dev/lint/corpus-shard.d.ts.map +1 -1
  654. package/out/commands/dev/lint/corpus-shard.js +26 -20
  655. package/out/commands/dev/lint/corpus-shard.js.map +1 -1
  656. package/out/commands/dev/lint/mdx-angles.d.ts +14 -5
  657. package/out/commands/dev/lint/mdx-angles.d.ts.map +1 -1
  658. package/out/commands/dev/lint/mdx-angles.js +15 -12
  659. package/out/commands/dev/lint/mdx-angles.js.map +1 -1
  660. package/out/commands/dev/lint/shard-vocab.d.ts +48 -12
  661. package/out/commands/dev/lint/shard-vocab.d.ts.map +1 -1
  662. package/out/commands/dev/lint/shard-vocab.js +31 -20
  663. package/out/commands/dev/lint/shard-vocab.js.map +1 -1
  664. package/out/commands/eval/capability-manifest.d.ts +44 -12
  665. package/out/commands/eval/capability-manifest.d.ts.map +1 -1
  666. package/out/commands/eval/capability-manifest.js +26 -16
  667. package/out/commands/eval/capability-manifest.js.map +1 -1
  668. package/out/commands/eval/error-analysis.d.ts +51 -13
  669. package/out/commands/eval/error-analysis.d.ts.map +1 -1
  670. package/out/commands/eval/error-analysis.js +29 -20
  671. package/out/commands/eval/error-analysis.js.map +1 -1
  672. package/out/commands/eval/es-postcode-centroids.d.ts +34 -10
  673. package/out/commands/eval/es-postcode-centroids.d.ts.map +1 -1
  674. package/out/commands/eval/es-postcode-centroids.js +21 -14
  675. package/out/commands/eval/es-postcode-centroids.js.map +1 -1
  676. package/out/commands/eval/fragment-board.d.ts +34 -10
  677. package/out/commands/eval/fragment-board.d.ts.map +1 -1
  678. package/out/commands/eval/fragment-board.js +26 -19
  679. package/out/commands/eval/fragment-board.js.map +1 -1
  680. package/out/commands/eval/fragment-dev.d.ts +38 -10
  681. package/out/commands/eval/fragment-dev.d.ts.map +1 -1
  682. package/out/commands/eval/fragment-dev.js +25 -10
  683. package/out/commands/eval/fragment-dev.js.map +1 -1
  684. package/out/commands/eval/gate.d.ts +58 -14
  685. package/out/commands/eval/gate.d.ts.map +1 -1
  686. package/out/commands/eval/gate.js +23 -24
  687. package/out/commands/eval/gate.js.map +1 -1
  688. package/out/commands/eval/gauntlet-build.d.ts +15 -9
  689. package/out/commands/eval/gauntlet-build.d.ts.map +1 -1
  690. package/out/commands/eval/gauntlet-build.js +19 -14
  691. package/out/commands/eval/gauntlet-build.js.map +1 -1
  692. package/out/commands/eval/gauntlet.d.ts +102 -23
  693. package/out/commands/eval/gauntlet.d.ts.map +1 -1
  694. package/out/commands/eval/gauntlet.js +70 -63
  695. package/out/commands/eval/gauntlet.js.map +1 -1
  696. package/out/commands/eval/invariance.d.ts +76 -21
  697. package/out/commands/eval/invariance.d.ts.map +1 -1
  698. package/out/commands/eval/invariance.js +36 -31
  699. package/out/commands/eval/invariance.js.map +1 -1
  700. package/out/commands/eval/ledger-append.d.ts +68 -16
  701. package/out/commands/eval/ledger-append.d.ts.map +1 -1
  702. package/out/commands/eval/ledger-append.js +39 -26
  703. package/out/commands/eval/ledger-append.js.map +1 -1
  704. package/out/commands/eval/mask-regression.d.ts +48 -13
  705. package/out/commands/eval/mask-regression.d.ts.map +1 -1
  706. package/out/commands/eval/mask-regression.js +27 -17
  707. package/out/commands/eval/mask-regression.js.map +1 -1
  708. package/out/commands/eval/oa-resolver.d.ts +214 -43
  709. package/out/commands/eval/oa-resolver.d.ts.map +1 -1
  710. package/out/commands/eval/oa-resolver.js +59 -81
  711. package/out/commands/eval/oa-resolver.js.map +1 -1
  712. package/out/commands/eval/oracle-k.d.ts +47 -12
  713. package/out/commands/eval/oracle-k.d.ts.map +1 -1
  714. package/out/commands/eval/oracle-k.js +46 -29
  715. package/out/commands/eval/oracle-k.js.map +1 -1
  716. package/out/commands/eval/parity.d.ts +70 -15
  717. package/out/commands/eval/parity.d.ts.map +1 -1
  718. package/out/commands/eval/parity.js +49 -49
  719. package/out/commands/eval/parity.js.map +1 -1
  720. package/out/commands/eval/poi-board.d.ts +56 -14
  721. package/out/commands/eval/poi-board.d.ts.map +1 -1
  722. package/out/commands/eval/poi-board.js +21 -40
  723. package/out/commands/eval/poi-board.js.map +1 -1
  724. package/out/commands/eval/preset-compare.d.ts +23 -8
  725. package/out/commands/eval/preset-compare.d.ts.map +1 -1
  726. package/out/commands/eval/preset-compare.js +16 -9
  727. package/out/commands/eval/preset-compare.js.map +1 -1
  728. package/out/commands/eval/score-trends.d.ts +23 -8
  729. package/out/commands/eval/score-trends.d.ts.map +1 -1
  730. package/out/commands/eval/score-trends.js +16 -9
  731. package/out/commands/eval/score-trends.js.map +1 -1
  732. package/out/commands/filer/edgar-ingest.d.ts +47 -0
  733. package/out/commands/filer/edgar-ingest.d.ts.map +1 -0
  734. package/out/commands/filer/edgar-ingest.js +60 -0
  735. package/out/commands/filer/edgar-ingest.js.map +1 -0
  736. package/out/commands/filer/linkage-eval.d.ts +23 -8
  737. package/out/commands/filer/linkage-eval.d.ts.map +1 -1
  738. package/out/commands/filer/linkage-eval.js +16 -9
  739. package/out/commands/filer/linkage-eval.js.map +1 -1
  740. package/out/commands/gazetteer/affix-relabel.d.ts +23 -8
  741. package/out/commands/gazetteer/affix-relabel.d.ts.map +1 -1
  742. package/out/commands/gazetteer/affix-relabel.js +28 -13
  743. package/out/commands/gazetteer/affix-relabel.js.map +1 -1
  744. package/out/commands/gazetteer/anchor-lexicon.d.ts +18 -7
  745. package/out/commands/gazetteer/anchor-lexicon.d.ts.map +1 -1
  746. package/out/commands/gazetteer/anchor-lexicon.js +15 -10
  747. package/out/commands/gazetteer/anchor-lexicon.js.map +1 -1
  748. package/out/commands/gazetteer/build/admin.d.ts +44 -12
  749. package/out/commands/gazetteer/build/admin.d.ts.map +1 -1
  750. package/out/commands/gazetteer/build/admin.js +18 -22
  751. package/out/commands/gazetteer/build/admin.js.map +1 -1
  752. package/out/commands/gazetteer/build/anchor-lookup.d.ts +35 -10
  753. package/out/commands/gazetteer/build/anchor-lookup.d.ts.map +1 -1
  754. package/out/commands/gazetteer/build/anchor-lookup.js +19 -14
  755. package/out/commands/gazetteer/build/anchor-lookup.js.map +1 -1
  756. package/out/commands/gazetteer/build/bdc.d.ts +47 -13
  757. package/out/commands/gazetteer/build/bdc.d.ts.map +1 -1
  758. package/out/commands/gazetteer/build/bdc.js +36 -37
  759. package/out/commands/gazetteer/build/bdc.js.map +1 -1
  760. package/out/commands/gazetteer/build/candidate.d.ts +50 -11
  761. package/out/commands/gazetteer/build/candidate.d.ts.map +1 -1
  762. package/out/commands/gazetteer/build/candidate.js +44 -31
  763. package/out/commands/gazetteer/build/candidate.js.map +1 -1
  764. package/out/commands/gazetteer/build/coincident-roles.d.ts +26 -9
  765. package/out/commands/gazetteer/build/coincident-roles.d.ts.map +1 -1
  766. package/out/commands/gazetteer/build/coincident-roles.js +13 -19
  767. package/out/commands/gazetteer/build/coincident-roles.js.map +1 -1
  768. package/out/commands/gazetteer/build/cz-districts.d.ts +35 -0
  769. package/out/commands/gazetteer/build/cz-districts.d.ts.map +1 -0
  770. package/out/commands/gazetteer/build/cz-districts.js +38 -0
  771. package/out/commands/gazetteer/build/cz-districts.js.map +1 -0
  772. package/out/commands/gazetteer/build/fst.d.ts +34 -10
  773. package/out/commands/gazetteer/build/fst.d.ts.map +1 -1
  774. package/out/commands/gazetteer/build/fst.js +15 -10
  775. package/out/commands/gazetteer/build/fst.js.map +1 -1
  776. package/out/commands/gazetteer/build/fts.d.ts +27 -10
  777. package/out/commands/gazetteer/build/fts.d.ts.map +1 -1
  778. package/out/commands/gazetteer/build/fts.js +20 -19
  779. package/out/commands/gazetteer/build/fts.js.map +1 -1
  780. package/out/commands/gazetteer/build/gnaf-rooftop.d.ts +58 -0
  781. package/out/commands/gazetteer/build/gnaf-rooftop.d.ts.map +1 -0
  782. package/out/commands/gazetteer/build/gnaf-rooftop.js +63 -0
  783. package/out/commands/gazetteer/build/gnaf-rooftop.js.map +1 -0
  784. package/out/commands/gazetteer/build/index.d.ts +24 -8
  785. package/out/commands/gazetteer/build/index.d.ts.map +1 -1
  786. package/out/commands/gazetteer/build/index.js +14 -12
  787. package/out/commands/gazetteer/build/index.js.map +1 -1
  788. package/out/commands/gazetteer/build/locality-surface-lexicon.d.ts +33 -10
  789. package/out/commands/gazetteer/build/locality-surface-lexicon.d.ts.map +1 -1
  790. package/out/commands/gazetteer/build/locality-surface-lexicon.js +18 -13
  791. package/out/commands/gazetteer/build/locality-surface-lexicon.js.map +1 -1
  792. package/out/commands/gazetteer/build/nl-pc6.d.ts +23 -8
  793. package/out/commands/gazetteer/build/nl-pc6.d.ts.map +1 -1
  794. package/out/commands/gazetteer/build/nl-pc6.js +13 -8
  795. package/out/commands/gazetteer/build/nl-pc6.js.map +1 -1
  796. package/out/commands/gazetteer/build/nz-localities.d.ts +35 -0
  797. package/out/commands/gazetteer/build/nz-localities.d.ts.map +1 -0
  798. package/out/commands/gazetteer/build/nz-localities.js +41 -0
  799. package/out/commands/gazetteer/build/nz-localities.js.map +1 -0
  800. package/out/commands/gazetteer/build/poi-brands.d.ts +33 -10
  801. package/out/commands/gazetteer/build/poi-brands.d.ts.map +1 -1
  802. package/out/commands/gazetteer/build/poi-brands.js +18 -16
  803. package/out/commands/gazetteer/build/poi-brands.js.map +1 -1
  804. package/out/commands/gazetteer/build/poi.d.ts +62 -19
  805. package/out/commands/gazetteer/build/poi.d.ts.map +1 -1
  806. package/out/commands/gazetteer/build/poi.js +26 -41
  807. package/out/commands/gazetteer/build/poi.js.map +1 -1
  808. package/out/commands/gazetteer/build/postcode-codepoint.d.ts +28 -9
  809. package/out/commands/gazetteer/build/postcode-codepoint.d.ts.map +1 -1
  810. package/out/commands/gazetteer/build/postcode-codepoint.js +18 -13
  811. package/out/commands/gazetteer/build/postcode-codepoint.js.map +1 -1
  812. package/out/commands/gazetteer/build/postcode-geonames.d.ts +28 -9
  813. package/out/commands/gazetteer/build/postcode-geonames.d.ts.map +1 -1
  814. package/out/commands/gazetteer/build/postcode-geonames.js +22 -16
  815. package/out/commands/gazetteer/build/postcode-geonames.js.map +1 -1
  816. package/out/commands/gazetteer/build/postcode-locality.d.ts +82 -24
  817. package/out/commands/gazetteer/build/postcode-locality.d.ts.map +1 -1
  818. package/out/commands/gazetteer/build/postcode-locality.js +34 -29
  819. package/out/commands/gazetteer/build/postcode-locality.js.map +1 -1
  820. package/out/commands/gazetteer/build/postcode-ni-osm.d.ts +28 -9
  821. package/out/commands/gazetteer/build/postcode-ni-osm.d.ts.map +1 -1
  822. package/out/commands/gazetteer/build/postcode-ni-osm.js +15 -16
  823. package/out/commands/gazetteer/build/postcode-ni-osm.js.map +1 -1
  824. package/out/commands/gazetteer/build/postcode-prefix.d.ts +69 -14
  825. package/out/commands/gazetteer/build/postcode-prefix.d.ts.map +1 -1
  826. package/out/commands/gazetteer/build/postcode-prefix.js +52 -33
  827. package/out/commands/gazetteer/build/postcode-prefix.js.map +1 -1
  828. package/out/commands/gazetteer/build/postcode-shard.d.ts +44 -12
  829. package/out/commands/gazetteer/build/postcode-shard.d.ts.map +1 -1
  830. package/out/commands/gazetteer/build/postcode-shard.js +21 -12
  831. package/out/commands/gazetteer/build/postcode-shard.js.map +1 -1
  832. package/out/commands/gazetteer/build/street-morphology.d.ts +28 -9
  833. package/out/commands/gazetteer/build/street-morphology.d.ts.map +1 -1
  834. package/out/commands/gazetteer/build/street-morphology.js +23 -15
  835. package/out/commands/gazetteer/build/street-morphology.js.map +1 -1
  836. package/out/commands/gazetteer/build/street-type-lexicon.d.ts +18 -7
  837. package/out/commands/gazetteer/build/street-type-lexicon.d.ts.map +1 -1
  838. package/out/commands/gazetteer/build/street-type-lexicon.js +12 -7
  839. package/out/commands/gazetteer/build/street-type-lexicon.js.map +1 -1
  840. package/out/commands/gazetteer/build/uprn.d.ts +49 -0
  841. package/out/commands/gazetteer/build/uprn.d.ts.map +1 -0
  842. package/out/commands/gazetteer/build/uprn.js +68 -0
  843. package/out/commands/gazetteer/build/uprn.js.map +1 -0
  844. package/out/commands/gazetteer/capitals.d.ts +36 -0
  845. package/out/commands/gazetteer/capitals.d.ts.map +1 -0
  846. package/out/commands/gazetteer/capitals.js +52 -0
  847. package/out/commands/gazetteer/capitals.js.map +1 -0
  848. package/out/commands/gazetteer/census.d.ts +35 -10
  849. package/out/commands/gazetteer/census.d.ts.map +1 -1
  850. package/out/commands/gazetteer/census.js +18 -17
  851. package/out/commands/gazetteer/census.js.map +1 -1
  852. package/out/commands/gazetteer/conventions.d.ts +24 -8
  853. package/out/commands/gazetteer/conventions.d.ts.map +1 -1
  854. package/out/commands/gazetteer/conventions.js +21 -31
  855. package/out/commands/gazetteer/conventions.js.map +1 -1
  856. package/out/commands/gazetteer/country-plan.d.ts +54 -0
  857. package/out/commands/gazetteer/country-plan.d.ts.map +1 -0
  858. package/out/commands/gazetteer/country-plan.js +194 -0
  859. package/out/commands/gazetteer/country-plan.js.map +1 -0
  860. package/out/commands/gazetteer/granularity.d.ts +30 -9
  861. package/out/commands/gazetteer/granularity.d.ts.map +1 -1
  862. package/out/commands/gazetteer/granularity.js +21 -18
  863. package/out/commands/gazetteer/granularity.js.map +1 -1
  864. package/out/commands/gazetteer/importance.d.ts +37 -13
  865. package/out/commands/gazetteer/importance.d.ts.map +1 -1
  866. package/out/commands/gazetteer/importance.js +83 -59
  867. package/out/commands/gazetteer/importance.js.map +1 -1
  868. package/out/commands/gazetteer/inspect/fst.d.ts +37 -13
  869. package/out/commands/gazetteer/inspect/fst.d.ts.map +1 -1
  870. package/out/commands/gazetteer/inspect/fst.js +23 -20
  871. package/out/commands/gazetteer/inspect/fst.js.map +1 -1
  872. package/out/commands/gazetteer/inspect/graph.d.ts +38 -10
  873. package/out/commands/gazetteer/inspect/graph.d.ts.map +1 -1
  874. package/out/commands/gazetteer/inspect/graph.js +20 -27
  875. package/out/commands/gazetteer/inspect/graph.js.map +1 -1
  876. package/out/commands/gazetteer/inspect/mermaid.d.ts +37 -10
  877. package/out/commands/gazetteer/inspect/mermaid.d.ts.map +1 -1
  878. package/out/commands/gazetteer/inspect/mermaid.js +33 -31
  879. package/out/commands/gazetteer/inspect/mermaid.js.map +1 -1
  880. package/out/commands/gazetteer/inspect/placetype-stats.d.ts +29 -9
  881. package/out/commands/gazetteer/inspect/placetype-stats.d.ts.map +1 -1
  882. package/out/commands/gazetteer/inspect/placetype-stats.js +26 -26
  883. package/out/commands/gazetteer/inspect/placetype-stats.js.map +1 -1
  884. package/out/commands/gazetteer/inspect/sync-plan.d.ts +64 -0
  885. package/out/commands/gazetteer/inspect/sync-plan.d.ts.map +1 -0
  886. package/out/commands/gazetteer/inspect/sync-plan.js +125 -0
  887. package/out/commands/gazetteer/inspect/sync-plan.js.map +1 -0
  888. package/out/commands/gazetteer/inspect/sync.d.ts +50 -14
  889. package/out/commands/gazetteer/inspect/sync.d.ts.map +1 -1
  890. package/out/commands/gazetteer/inspect/sync.js +201 -60
  891. package/out/commands/gazetteer/inspect/sync.js.map +1 -1
  892. package/out/commands/gazetteer/inspect/tree.d.ts +38 -10
  893. package/out/commands/gazetteer/inspect/tree.d.ts.map +1 -1
  894. package/out/commands/gazetteer/inspect/tree.js +20 -27
  895. package/out/commands/gazetteer/inspect/tree.js.map +1 -1
  896. package/out/commands/gazetteer/overture-ingest.d.ts +46 -12
  897. package/out/commands/gazetteer/overture-ingest.d.ts.map +1 -1
  898. package/out/commands/gazetteer/overture-ingest.js +22 -14
  899. package/out/commands/gazetteer/overture-ingest.js.map +1 -1
  900. package/out/commands/gazetteer/pair-index.d.ts +74 -17
  901. package/out/commands/gazetteer/pair-index.d.ts.map +1 -1
  902. package/out/commands/gazetteer/pair-index.js +41 -68
  903. package/out/commands/gazetteer/pair-index.js.map +1 -1
  904. package/out/commands/gazetteer/polygons.d.ts +46 -12
  905. package/out/commands/gazetteer/polygons.d.ts.map +1 -1
  906. package/out/commands/gazetteer/polygons.js +36 -46
  907. package/out/commands/gazetteer/polygons.js.map +1 -1
  908. package/out/commands/gazetteer/postal-alias.d.ts +31 -9
  909. package/out/commands/gazetteer/postal-alias.d.ts.map +1 -1
  910. package/out/commands/gazetteer/postal-alias.js +20 -18
  911. package/out/commands/gazetteer/postal-alias.js.map +1 -1
  912. package/out/commands/gazetteer/postal-city.d.ts +29 -9
  913. package/out/commands/gazetteer/postal-city.d.ts.map +1 -1
  914. package/out/commands/gazetteer/postal-city.js +23 -29
  915. package/out/commands/gazetteer/postal-city.js.map +1 -1
  916. package/out/commands/gazetteer/postcode-binary.d.ts +33 -12
  917. package/out/commands/gazetteer/postcode-binary.d.ts.map +1 -1
  918. package/out/commands/gazetteer/postcode-binary.js +30 -31
  919. package/out/commands/gazetteer/postcode-binary.js.map +1 -1
  920. package/out/commands/gazetteer/postcode-intl.d.ts +38 -11
  921. package/out/commands/gazetteer/postcode-intl.d.ts.map +1 -1
  922. package/out/commands/gazetteer/postcode-intl.js +59 -40
  923. package/out/commands/gazetteer/postcode-intl.js.map +1 -1
  924. package/out/commands/gazetteer/promote.d.ts +13 -6
  925. package/out/commands/gazetteer/promote.d.ts.map +1 -1
  926. package/out/commands/gazetteer/promote.js +17 -10
  927. package/out/commands/gazetteer/promote.js.map +1 -1
  928. package/out/commands/gazetteer/publish.d.ts +45 -12
  929. package/out/commands/gazetteer/publish.d.ts.map +1 -1
  930. package/out/commands/gazetteer/publish.js +26 -21
  931. package/out/commands/gazetteer/publish.js.map +1 -1
  932. package/out/commands/gazetteer/release.d.ts +57 -14
  933. package/out/commands/gazetteer/release.d.ts.map +1 -1
  934. package/out/commands/gazetteer/release.js +30 -25
  935. package/out/commands/gazetteer/release.js.map +1 -1
  936. package/out/commands/gazetteer/repos-sync.d.ts +63 -0
  937. package/out/commands/gazetteer/repos-sync.d.ts.map +1 -0
  938. package/out/commands/gazetteer/repos-sync.js +179 -0
  939. package/out/commands/gazetteer/repos-sync.js.map +1 -0
  940. package/out/commands/gazetteer/triage.d.ts +56 -0
  941. package/out/commands/gazetteer/triage.d.ts.map +1 -0
  942. package/out/commands/gazetteer/triage.js +76 -0
  943. package/out/commands/gazetteer/triage.js.map +1 -0
  944. package/out/commands/gazetteer/verify-codepoint.d.ts +28 -9
  945. package/out/commands/gazetteer/verify-codepoint.d.ts.map +1 -1
  946. package/out/commands/gazetteer/verify-codepoint.js +19 -14
  947. package/out/commands/gazetteer/verify-codepoint.js.map +1 -1
  948. package/out/commands/gazetteer/verify.d.ts +30 -9
  949. package/out/commands/gazetteer/verify.d.ts.map +1 -1
  950. package/out/commands/gazetteer/verify.js +14 -15
  951. package/out/commands/gazetteer/verify.js.map +1 -1
  952. package/out/commands/gnaf/assemble.d.ts +38 -10
  953. package/out/commands/gnaf/assemble.d.ts.map +1 -1
  954. package/out/commands/gnaf/assemble.js +21 -19
  955. package/out/commands/gnaf/assemble.js.map +1 -1
  956. package/out/commands/parse.d.ts +155 -64
  957. package/out/commands/parse.d.ts.map +1 -1
  958. package/out/commands/parse.js +125 -202
  959. package/out/commands/parse.js.map +1 -1
  960. package/out/commands/placer/build-dataset.d.ts +49 -17
  961. package/out/commands/placer/build-dataset.d.ts.map +1 -1
  962. package/out/commands/placer/build-dataset.js +23 -26
  963. package/out/commands/placer/build-dataset.js.map +1 -1
  964. package/out/commands/placer/eval.d.ts +56 -19
  965. package/out/commands/placer/eval.d.ts.map +1 -1
  966. package/out/commands/placer/eval.js +21 -27
  967. package/out/commands/placer/eval.js.map +1 -1
  968. package/out/commands/placer/probe-frontier.d.ts +29 -9
  969. package/out/commands/placer/probe-frontier.d.ts.map +1 -1
  970. package/out/commands/placer/probe-frontier.js +20 -13
  971. package/out/commands/placer/probe-frontier.js.map +1 -1
  972. package/out/commands/placer/quantize.d.ts +23 -8
  973. package/out/commands/placer/quantize.d.ts.map +1 -1
  974. package/out/commands/placer/quantize.js +16 -9
  975. package/out/commands/placer/quantize.js.map +1 -1
  976. package/out/commands/placer/train.d.ts +41 -11
  977. package/out/commands/placer/train.d.ts.map +1 -1
  978. package/out/commands/placer/train.js +19 -12
  979. package/out/commands/placer/train.js.map +1 -1
  980. package/out/commands/poi.d.ts +53 -13
  981. package/out/commands/poi.d.ts.map +1 -1
  982. package/out/commands/poi.js +43 -60
  983. package/out/commands/poi.js.map +1 -1
  984. package/out/commands/registry/convert/tx-hhsc.d.ts +24 -8
  985. package/out/commands/registry/convert/tx-hhsc.d.ts.map +1 -1
  986. package/out/commands/registry/convert/tx-hhsc.js +20 -12
  987. package/out/commands/registry/convert/tx-hhsc.js.map +1 -1
  988. package/out/commands/registry/dedup-ceiling.d.ts +41 -11
  989. package/out/commands/registry/dedup-ceiling.d.ts.map +1 -1
  990. package/out/commands/registry/dedup-ceiling.js +22 -15
  991. package/out/commands/registry/dedup-ceiling.js.map +1 -1
  992. package/out/commands/registry/gold-set-sample.d.ts +47 -12
  993. package/out/commands/registry/gold-set-sample.d.ts.map +1 -1
  994. package/out/commands/registry/gold-set-sample.js +30 -23
  995. package/out/commands/registry/gold-set-sample.js.map +1 -1
  996. package/out/commands/registry/matcher-scale.d.ts +36 -10
  997. package/out/commands/registry/matcher-scale.d.ts.map +1 -1
  998. package/out/commands/registry/matcher-scale.js +30 -19
  999. package/out/commands/registry/matcher-scale.js.map +1 -1
  1000. package/out/commands/registry/run.d.ts +103 -24
  1001. package/out/commands/registry/run.d.ts.map +1 -1
  1002. package/out/commands/registry/run.js +75 -124
  1003. package/out/commands/registry/run.js.map +1 -1
  1004. package/out/commands/registry/scorer-eval.d.ts +160 -45
  1005. package/out/commands/registry/scorer-eval.d.ts.map +1 -1
  1006. package/out/commands/registry/scorer-eval.js +58 -95
  1007. package/out/commands/registry/scorer-eval.js.map +1 -1
  1008. package/out/commands/registry/train-scorer.d.ts +77 -22
  1009. package/out/commands/registry/train-scorer.d.ts.map +1 -1
  1010. package/out/commands/registry/train-scorer.js +26 -35
  1011. package/out/commands/registry/train-scorer.js.map +1 -1
  1012. package/out/commands/registry/viz.d.ts +72 -22
  1013. package/out/commands/registry/viz.d.ts.map +1 -1
  1014. package/out/commands/registry/viz.js +25 -35
  1015. package/out/commands/registry/viz.js.map +1 -1
  1016. package/out/commands/release/hf.d.ts +119 -32
  1017. package/out/commands/release/hf.d.ts.map +1 -1
  1018. package/out/commands/release/hf.js +35 -58
  1019. package/out/commands/release/hf.js.map +1 -1
  1020. package/out/commands/serve.d.ts +30 -12
  1021. package/out/commands/serve.d.ts.map +1 -1
  1022. package/out/commands/serve.js +19 -17
  1023. package/out/commands/serve.js.map +1 -1
  1024. package/out/commands/situs/address-points.d.ts +56 -14
  1025. package/out/commands/situs/address-points.d.ts.map +1 -1
  1026. package/out/commands/situs/address-points.js +49 -50
  1027. package/out/commands/situs/address-points.js.map +1 -1
  1028. package/out/commands/situs/attribution-manifest.d.ts +24 -8
  1029. package/out/commands/situs/attribution-manifest.d.ts.map +1 -1
  1030. package/out/commands/situs/attribution-manifest.js +16 -11
  1031. package/out/commands/situs/attribution-manifest.js.map +1 -1
  1032. package/out/commands/situs/build.d.ts +53 -13
  1033. package/out/commands/situs/build.d.ts.map +1 -1
  1034. package/out/commands/situs/build.js +21 -34
  1035. package/out/commands/situs/build.js.map +1 -1
  1036. package/out/commands/situs/interpolation-shard.d.ts +37 -10
  1037. package/out/commands/situs/interpolation-shard.d.ts.map +1 -1
  1038. package/out/commands/situs/interpolation-shard.js +48 -24
  1039. package/out/commands/situs/interpolation-shard.js.map +1 -1
  1040. package/out/commands/situs/interpolation.d.ts +66 -15
  1041. package/out/commands/situs/interpolation.d.ts.map +1 -1
  1042. package/out/commands/situs/interpolation.js +39 -44
  1043. package/out/commands/situs/interpolation.js.map +1 -1
  1044. package/out/commands/skill/install.d.ts +18 -7
  1045. package/out/commands/skill/install.d.ts.map +1 -1
  1046. package/out/commands/skill/install.js +12 -10
  1047. package/out/commands/skill/install.js.map +1 -1
  1048. package/out/commands/tiger/fetch.d.ts +43 -15
  1049. package/out/commands/tiger/fetch.d.ts.map +1 -1
  1050. package/out/commands/tiger/fetch.js +27 -20
  1051. package/out/commands/tiger/fetch.js.map +1 -1
  1052. package/out/commands/tiger/race-dots-map.d.ts +66 -15
  1053. package/out/commands/tiger/race-dots-map.d.ts.map +1 -1
  1054. package/out/commands/tiger/race-dots-map.js +24 -20
  1055. package/out/commands/tiger/race-dots-map.js.map +1 -1
  1056. package/out/commands/tiger/race-dots.d.ts +36 -10
  1057. package/out/commands/tiger/race-dots.d.ts.map +1 -1
  1058. package/out/commands/tiger/race-dots.js +22 -15
  1059. package/out/commands/tiger/race-dots.js.map +1 -1
  1060. package/out/commands/tiger/redistricting.d.ts +37 -10
  1061. package/out/commands/tiger/redistricting.d.ts.map +1 -1
  1062. package/out/commands/tiger/redistricting.js +21 -16
  1063. package/out/commands/tiger/redistricting.js.map +1 -1
  1064. package/out/commands/tiles/publish.d.ts +43 -11
  1065. package/out/commands/tiles/publish.d.ts.map +1 -1
  1066. package/out/commands/tiles/publish.js +22 -17
  1067. package/out/commands/tiles/publish.js.map +1 -1
  1068. package/out/commands/wof/graph.d.ts +7 -0
  1069. package/out/commands/wof/graph.d.ts.map +1 -1
  1070. package/out/commands/wof/graph.js +5 -1
  1071. package/out/commands/wof/graph.js.map +1 -1
  1072. package/out/commands/wof/mermaid.d.ts +7 -0
  1073. package/out/commands/wof/mermaid.d.ts.map +1 -1
  1074. package/out/commands/wof/mermaid.js +5 -1
  1075. package/out/commands/wof/mermaid.js.map +1 -1
  1076. package/out/commands/wof/prepare.d.ts +7 -0
  1077. package/out/commands/wof/prepare.d.ts.map +1 -1
  1078. package/out/commands/wof/prepare.js +5 -1
  1079. package/out/commands/wof/prepare.js.map +1 -1
  1080. package/out/commands/wof/sync.d.ts +7 -0
  1081. package/out/commands/wof/sync.d.ts.map +1 -1
  1082. package/out/commands/wof/sync.js +5 -1
  1083. package/out/commands/wof/sync.js.map +1 -1
  1084. package/out/commands/wof/tree.d.ts +7 -0
  1085. package/out/commands/wof/tree.d.ts.map +1 -1
  1086. package/out/commands/wof/tree.js +5 -1
  1087. package/out/commands/wof/tree.js.map +1 -1
  1088. package/out/country-scope.d.ts +24 -0
  1089. package/out/country-scope.d.ts.map +1 -0
  1090. package/out/country-scope.js +28 -0
  1091. package/out/country-scope.js.map +1 -0
  1092. package/out/coverage-census.d.ts +216 -0
  1093. package/out/coverage-census.d.ts.map +1 -0
  1094. package/out/coverage-census.js +356 -0
  1095. package/out/coverage-census.js.map +1 -0
  1096. package/out/data-bundles.d.ts +5 -2
  1097. package/out/data-bundles.d.ts.map +1 -1
  1098. package/out/data-bundles.js +7 -3
  1099. package/out/data-bundles.js.map +1 -1
  1100. package/out/data-inventory.d.ts +151 -0
  1101. package/out/data-inventory.d.ts.map +1 -0
  1102. package/out/data-inventory.js +219 -0
  1103. package/out/data-inventory.js.map +1 -0
  1104. package/out/debug-view/DebugFrame.d.ts +135 -0
  1105. package/out/debug-view/DebugFrame.d.ts.map +1 -0
  1106. package/out/debug-view/DebugFrame.js +274 -0
  1107. package/out/debug-view/DebugFrame.js.map +1 -0
  1108. package/out/debug-view/DebugSessionApp.d.ts +36 -0
  1109. package/out/debug-view/DebugSessionApp.d.ts.map +1 -0
  1110. package/out/debug-view/DebugSessionApp.js +415 -0
  1111. package/out/debug-view/DebugSessionApp.js.map +1 -0
  1112. package/out/debug-view/QueryInput.d.ts +67 -0
  1113. package/out/debug-view/QueryInput.d.ts.map +1 -0
  1114. package/out/debug-view/QueryInput.js +181 -0
  1115. package/out/debug-view/QueryInput.js.map +1 -0
  1116. package/out/debug-view/command.d.ts +43 -0
  1117. package/out/debug-view/command.d.ts.map +1 -0
  1118. package/out/debug-view/command.js +177 -0
  1119. package/out/debug-view/command.js.map +1 -0
  1120. package/out/debug-view/output-lines.d.ts +77 -0
  1121. package/out/debug-view/output-lines.d.ts.map +1 -0
  1122. package/out/debug-view/output-lines.js +172 -0
  1123. package/out/debug-view/output-lines.js.map +1 -0
  1124. package/out/debug-view/static-render.d.ts +19 -0
  1125. package/out/debug-view/static-render.d.ts.map +1 -0
  1126. package/out/debug-view/static-render.js +42 -0
  1127. package/out/debug-view/static-render.js.map +1 -0
  1128. package/out/debug-view/tag-colors.d.ts +16 -0
  1129. package/out/debug-view/tag-colors.d.ts.map +1 -0
  1130. package/out/debug-view/tag-colors.js +55 -0
  1131. package/out/debug-view/tag-colors.js.map +1 -0
  1132. package/out/debug-view/test/input-probe.d.ts +15 -0
  1133. package/out/debug-view/test/input-probe.d.ts.map +1 -0
  1134. package/out/debug-view/test/input-probe.js +38 -0
  1135. package/out/debug-view/test/input-probe.js.map +1 -0
  1136. package/out/debug-view/tiles.d.ts +13 -0
  1137. package/out/debug-view/tiles.d.ts.map +1 -0
  1138. package/out/debug-view/tiles.js +23 -0
  1139. package/out/debug-view/tiles.js.map +1 -0
  1140. package/out/debug-view/trace-rows.d.ts +62 -0
  1141. package/out/debug-view/trace-rows.d.ts.map +1 -0
  1142. package/out/debug-view/trace-rows.js +162 -0
  1143. package/out/debug-view/trace-rows.js.map +1 -0
  1144. package/out/debug-view/view-policy.d.ts +44 -0
  1145. package/out/debug-view/view-policy.d.ts.map +1 -0
  1146. package/out/debug-view/view-policy.js +90 -0
  1147. package/out/debug-view/view-policy.js.map +1 -0
  1148. package/out/default-reverse-geocoder.d.ts +1 -1
  1149. package/out/default-reverse-geocoder.js +1 -1
  1150. package/out/dev-tools/build-gb-anchor-bin.run.d.ts +1 -1
  1151. package/out/dev-tools/build-gb-anchor-bin.run.js +1 -1
  1152. package/out/dev-tools/build-hard-slice-board.run.d.ts +1 -1
  1153. package/out/dev-tools/build-hard-slice-board.run.js +7 -21
  1154. package/out/dev-tools/build-hard-slice-board.run.js.map +1 -1
  1155. package/out/dev-tools/capture-v1-parse.run.d.ts +1 -1
  1156. package/out/dev-tools/capture-v1-parse.run.js +5 -5
  1157. package/out/dev-tools/capture-v1-parse.run.js.map +1 -1
  1158. package/out/dev-tools/convert-parity-fixtures.run.d.ts +1 -1
  1159. package/out/dev-tools/convert-parity-fixtures.run.js +3 -3
  1160. package/out/dev-tools/convert-parity-fixtures.run.js.map +1 -1
  1161. package/out/dev-tools/diff-territory-spans.run.d.ts +1 -1
  1162. package/out/dev-tools/diff-territory-spans.run.js +2 -2
  1163. package/out/dev-tools/diff-territory-spans.run.js.map +1 -1
  1164. package/out/dev-tools/extract-parity-corpus.run.d.ts +1 -1
  1165. package/out/dev-tools/extract-parity-corpus.run.js +3 -3
  1166. package/out/dev-tools/extract-parity-corpus.run.js.map +1 -1
  1167. package/out/dev-tools/failure-census.run.js +0 -0
  1168. package/out/dev-tools/failure-census.run.js.map +1 -1
  1169. package/out/dev-tools/failure-report.run.d.ts +2 -2
  1170. package/out/dev-tools/failure-report.run.js +15 -17
  1171. package/out/dev-tools/failure-report.run.js.map +1 -1
  1172. package/out/dev-tools/gb-fragment-board.run.d.ts +1 -1
  1173. package/out/dev-tools/gb-fragment-board.run.js +5 -5
  1174. package/out/dev-tools/gb-fragment-board.run.js.map +1 -1
  1175. package/out/dev-tools/grammar-c4-census.run.d.ts +6 -0
  1176. package/out/dev-tools/grammar-c4-census.run.d.ts.map +1 -0
  1177. package/out/dev-tools/grammar-c4-census.run.js +94 -0
  1178. package/out/dev-tools/grammar-c4-census.run.js.map +1 -0
  1179. package/out/dev-tools/grammar-census.run.d.ts +5 -0
  1180. package/out/dev-tools/grammar-census.run.d.ts.map +1 -0
  1181. package/out/dev-tools/grammar-census.run.js +125 -0
  1182. package/out/dev-tools/grammar-census.run.js.map +1 -0
  1183. package/out/dev-tools/postcode-coherence-coverage.run.d.ts +1 -1
  1184. package/out/dev-tools/postcode-coherence-coverage.run.js +10 -6
  1185. package/out/dev-tools/postcode-coherence-coverage.run.js.map +1 -1
  1186. package/out/dev-tools/postcode-coherence-scale.run.d.ts +1 -1
  1187. package/out/dev-tools/postcode-coherence-scale.run.js +9 -6
  1188. package/out/dev-tools/postcode-coherence-scale.run.js.map +1 -1
  1189. package/out/dev-tools/probe-comma-free-locality.run.d.ts +1 -1
  1190. package/out/dev-tools/probe-comma-free-locality.run.js +3 -3
  1191. package/out/dev-tools/probe-comma-free-locality.run.js.map +1 -1
  1192. package/out/dev-tools/probe-fst-bias.run.d.ts +1 -1
  1193. package/out/dev-tools/probe-fst-bias.run.js +3 -14
  1194. package/out/dev-tools/probe-fst-bias.run.js.map +1 -1
  1195. package/out/dev-tools/probe-query-intent.run.d.ts +92 -0
  1196. package/out/dev-tools/probe-query-intent.run.d.ts.map +1 -0
  1197. package/out/dev-tools/probe-query-intent.run.js +145 -0
  1198. package/out/dev-tools/probe-query-intent.run.js.map +1 -0
  1199. package/out/dev-tools/probe-referential-delta.run.d.ts +35 -0
  1200. package/out/dev-tools/probe-referential-delta.run.d.ts.map +1 -0
  1201. package/out/dev-tools/probe-referential-delta.run.js +124 -0
  1202. package/out/dev-tools/probe-referential-delta.run.js.map +1 -0
  1203. package/out/dev-tools/retrieval-rescue-census.run.d.ts +9 -0
  1204. package/out/dev-tools/retrieval-rescue-census.run.d.ts.map +1 -0
  1205. package/out/dev-tools/retrieval-rescue-census.run.js +90 -0
  1206. package/out/dev-tools/retrieval-rescue-census.run.js.map +1 -0
  1207. package/out/dev-tools/router-kind-probe.run.js +2 -2
  1208. package/out/dev-tools/router-kind-probe.run.js.map +1 -1
  1209. package/out/dev-tools/score-anchor-v2-boards.run.d.ts +1 -1
  1210. package/out/dev-tools/score-anchor-v2-boards.run.js +4 -4
  1211. package/out/dev-tools/score-anchor-v2-boards.run.js.map +1 -1
  1212. package/out/dev-tools/score-hard-slice-board.run.d.ts +8 -1
  1213. package/out/dev-tools/score-hard-slice-board.run.d.ts.map +1 -1
  1214. package/out/dev-tools/score-hard-slice-board.run.js +20 -23
  1215. package/out/dev-tools/score-hard-slice-board.run.js.map +1 -1
  1216. package/out/dev-tools/score-interesting-addresses.run.d.ts +11 -0
  1217. package/out/dev-tools/score-interesting-addresses.run.d.ts.map +1 -0
  1218. package/out/dev-tools/score-interesting-addresses.run.js +77 -0
  1219. package/out/dev-tools/score-interesting-addresses.run.js.map +1 -0
  1220. package/out/dev-tools/score-street-name-boundaries.run.d.ts +9 -0
  1221. package/out/dev-tools/score-street-name-boundaries.run.d.ts.map +1 -0
  1222. package/out/dev-tools/score-street-name-boundaries.run.js +59 -0
  1223. package/out/dev-tools/score-street-name-boundaries.run.js.map +1 -0
  1224. package/out/dev-tools/score-world-structures.run.d.ts +19 -0
  1225. package/out/dev-tools/score-world-structures.run.d.ts.map +1 -0
  1226. package/out/dev-tools/score-world-structures.run.js +82 -0
  1227. package/out/dev-tools/score-world-structures.run.js.map +1 -0
  1228. package/out/dev-tools/us-recall-flip-census.run.d.ts +1 -1
  1229. package/out/dev-tools/us-recall-flip-census.run.js +11 -5
  1230. package/out/dev-tools/us-recall-flip-census.run.js.map +1 -1
  1231. package/out/doctor/checks.d.ts +10 -5
  1232. package/out/doctor/checks.d.ts.map +1 -1
  1233. package/out/doctor/checks.js +28 -20
  1234. package/out/doctor/checks.js.map +1 -1
  1235. package/out/doctor/format.d.ts +12 -0
  1236. package/out/doctor/format.d.ts.map +1 -0
  1237. package/out/doctor/format.js +54 -0
  1238. package/out/doctor/format.js.map +1 -0
  1239. package/out/doctor/index.d.ts +9 -0
  1240. package/out/doctor/index.d.ts.map +1 -0
  1241. package/out/doctor/index.js +9 -0
  1242. package/out/doctor/index.js.map +1 -0
  1243. package/out/doctor/runner.d.ts +32 -3
  1244. package/out/doctor/runner.d.ts.map +1 -1
  1245. package/out/doctor/runner.js +64 -30
  1246. package/out/doctor/runner.js.map +1 -1
  1247. package/out/eval-harness/capability-manifest.d.ts.map +1 -1
  1248. package/out/eval-harness/capability-manifest.js +13 -83
  1249. package/out/eval-harness/capability-manifest.js.map +1 -1
  1250. package/out/eval-harness/de-order-eval.d.ts +68 -0
  1251. package/out/eval-harness/de-order-eval.d.ts.map +1 -0
  1252. package/out/eval-harness/de-order-eval.js +121 -0
  1253. package/out/eval-harness/de-order-eval.js.map +1 -0
  1254. package/out/eval-harness/demo-cascade-rows.d.ts +58 -0
  1255. package/out/eval-harness/demo-cascade-rows.d.ts.map +1 -0
  1256. package/out/eval-harness/demo-cascade-rows.js +125 -0
  1257. package/out/eval-harness/demo-cascade-rows.js.map +1 -0
  1258. package/out/eval-harness/demo-cascade-smoke.d.ts +105 -0
  1259. package/out/eval-harness/demo-cascade-smoke.d.ts.map +1 -0
  1260. package/out/eval-harness/demo-cascade-smoke.js +257 -0
  1261. package/out/eval-harness/demo-cascade-smoke.js.map +1 -0
  1262. package/out/eval-harness/digit-board.d.ts +1 -1
  1263. package/out/eval-harness/digit-board.d.ts.map +1 -1
  1264. package/out/eval-harness/digit-board.js +3 -12
  1265. package/out/eval-harness/digit-board.js.map +1 -1
  1266. package/out/eval-harness/error-analysis.d.ts +2 -2
  1267. package/out/eval-harness/error-analysis.js +2 -2
  1268. package/out/eval-harness/es-postcode-centroids.d.ts +7 -1
  1269. package/out/eval-harness/es-postcode-centroids.d.ts.map +1 -1
  1270. package/out/eval-harness/es-postcode-centroids.js +2 -2
  1271. package/out/eval-harness/es-postcode-centroids.js.map +1 -1
  1272. package/out/eval-harness/external-arenas.d.ts +77 -0
  1273. package/out/eval-harness/external-arenas.d.ts.map +1 -0
  1274. package/out/eval-harness/external-arenas.js +116 -0
  1275. package/out/eval-harness/external-arenas.js.map +1 -0
  1276. package/out/eval-harness/flatten-nodes.d.ts +25 -0
  1277. package/out/eval-harness/flatten-nodes.d.ts.map +1 -0
  1278. package/out/eval-harness/flatten-nodes.js +23 -0
  1279. package/out/eval-harness/flatten-nodes.js.map +1 -0
  1280. package/out/eval-harness/fr-parse-recall.d.ts +90 -0
  1281. package/out/eval-harness/fr-parse-recall.d.ts.map +1 -0
  1282. package/out/eval-harness/fr-parse-recall.js +195 -0
  1283. package/out/eval-harness/fr-parse-recall.js.map +1 -0
  1284. package/out/eval-harness/fragment-board.d.ts +1 -1
  1285. package/out/eval-harness/fragment-board.d.ts.map +1 -1
  1286. package/out/eval-harness/fragment-board.js +3 -12
  1287. package/out/eval-harness/fragment-board.js.map +1 -1
  1288. package/out/eval-harness/gauntlet/ablation-expectation.d.ts +6 -103
  1289. package/out/eval-harness/gauntlet/ablation-expectation.d.ts.map +1 -1
  1290. package/out/eval-harness/gauntlet/ablation-expectation.js +15 -112
  1291. package/out/eval-harness/gauntlet/ablation-expectation.js.map +1 -1
  1292. package/out/eval-harness/gauntlet/ablation-gazetteer.d.ts +5 -6
  1293. package/out/eval-harness/gauntlet/ablation-gazetteer.d.ts.map +1 -1
  1294. package/out/eval-harness/gauntlet/ablation-gazetteer.js +9 -10
  1295. package/out/eval-harness/gauntlet/ablation-gazetteer.js.map +1 -1
  1296. package/out/eval-harness/gauntlet/ablation.d.ts.map +1 -1
  1297. package/out/eval-harness/gauntlet/ablation.js +4 -0
  1298. package/out/eval-harness/gauntlet/ablation.js.map +1 -1
  1299. package/out/eval-harness/gauntlet/build-fdic-holdout.d.ts.map +1 -1
  1300. package/out/eval-harness/gauntlet/build-fdic-holdout.js +11 -12
  1301. package/out/eval-harness/gauntlet/build-fdic-holdout.js.map +1 -1
  1302. package/out/eval-harness/gauntlet/build-regression-db.d.ts.map +1 -1
  1303. package/out/eval-harness/gauntlet/build-regression-db.js +1 -1
  1304. package/out/eval-harness/gauntlet/build-regression-db.js.map +1 -1
  1305. package/out/eval-harness/gauntlet/cases/load.d.ts +1 -1
  1306. package/out/eval-harness/gauntlet/cases/load.js +2 -2
  1307. package/out/eval-harness/gauntlet/cases/seed-case.d.ts +29 -2
  1308. package/out/eval-harness/gauntlet/cases/seed-case.d.ts.map +1 -1
  1309. package/out/eval-harness/gauntlet/cases/seed-case.js +15 -2
  1310. package/out/eval-harness/gauntlet/cases/seed-case.js.map +1 -1
  1311. package/out/eval-harness/gauntlet/check-case.d.ts +38 -2
  1312. package/out/eval-harness/gauntlet/check-case.d.ts.map +1 -1
  1313. package/out/eval-harness/gauntlet/check-case.js +157 -6
  1314. package/out/eval-harness/gauntlet/check-case.js.map +1 -1
  1315. package/out/eval-harness/gauntlet/harness.d.ts +71 -0
  1316. package/out/eval-harness/gauntlet/harness.d.ts.map +1 -1
  1317. package/out/eval-harness/gauntlet/harness.js +171 -32
  1318. package/out/eval-harness/gauntlet/harness.js.map +1 -1
  1319. package/out/eval-harness/gauntlet/holdout.d.ts +34 -2
  1320. package/out/eval-harness/gauntlet/holdout.d.ts.map +1 -1
  1321. package/out/eval-harness/gauntlet/holdout.js +12 -7
  1322. package/out/eval-harness/gauntlet/holdout.js.map +1 -1
  1323. package/out/eval-harness/gauntlet/metamorphic.d.ts.map +1 -1
  1324. package/out/eval-harness/gauntlet/metamorphic.js +9 -15
  1325. package/out/eval-harness/gauntlet/metamorphic.js.map +1 -1
  1326. package/out/eval-harness/gauntlet/regression.d.ts.map +1 -1
  1327. package/out/eval-harness/gauntlet/regression.js +9 -1
  1328. package/out/eval-harness/gauntlet/regression.js.map +1 -1
  1329. package/out/eval-harness/gauntlet/routing.d.ts +20 -0
  1330. package/out/eval-harness/gauntlet/routing.d.ts.map +1 -0
  1331. package/out/eval-harness/gauntlet/routing.js +28 -0
  1332. package/out/eval-harness/gauntlet/routing.js.map +1 -0
  1333. package/out/eval-harness/gauntlet/run.d.ts +14 -0
  1334. package/out/eval-harness/gauntlet/run.d.ts.map +1 -1
  1335. package/out/eval-harness/gauntlet/run.js +10 -3
  1336. package/out/eval-harness/gauntlet/run.js.map +1 -1
  1337. package/out/eval-harness/gauntlet/schema.d.ts +24 -2
  1338. package/out/eval-harness/gauntlet/schema.d.ts.map +1 -1
  1339. package/out/eval-harness/gauntlet/schema.js +8 -0
  1340. package/out/eval-harness/gauntlet/schema.js.map +1 -1
  1341. package/out/eval-harness/gb-codepoint-eval.d.ts +32 -0
  1342. package/out/eval-harness/gb-codepoint-eval.d.ts.map +1 -0
  1343. package/out/eval-harness/gb-codepoint-eval.js +178 -0
  1344. package/out/eval-harness/gb-codepoint-eval.js.map +1 -0
  1345. package/out/eval-harness/grammar-census-c4.d.ts +89 -0
  1346. package/out/eval-harness/grammar-census-c4.d.ts.map +1 -0
  1347. package/out/eval-harness/grammar-census-c4.js +150 -0
  1348. package/out/eval-harness/grammar-census-c4.js.map +1 -0
  1349. package/out/eval-harness/grammar-census.d.ts +118 -0
  1350. package/out/eval-harness/grammar-census.d.ts.map +1 -0
  1351. package/out/eval-harness/grammar-census.js +162 -0
  1352. package/out/eval-harness/grammar-census.js.map +1 -0
  1353. package/out/eval-harness/hard-slice-board.d.ts +1 -1
  1354. package/out/eval-harness/hard-slice-board.d.ts.map +1 -1
  1355. package/out/eval-harness/hard-slice-board.js +3 -1
  1356. package/out/eval-harness/hard-slice-board.js.map +1 -1
  1357. package/out/eval-harness/invariance/runner.d.ts +61 -6
  1358. package/out/eval-harness/invariance/runner.d.ts.map +1 -1
  1359. package/out/eval-harness/invariance/runner.js +134 -37
  1360. package/out/eval-harness/invariance/runner.js.map +1 -1
  1361. package/out/eval-harness/ledger-append.d.ts +2 -2
  1362. package/out/eval-harness/ledger-append.js +3 -3
  1363. package/out/eval-harness/ledger-append.js.map +1 -1
  1364. package/out/eval-harness/mask-regression.d.ts.map +1 -1
  1365. package/out/eval-harness/mask-regression.js +10 -81
  1366. package/out/eval-harness/mask-regression.js.map +1 -1
  1367. package/out/eval-harness/oa-resolver/admin-match.d.ts +47 -0
  1368. package/out/eval-harness/oa-resolver/admin-match.d.ts.map +1 -0
  1369. package/out/eval-harness/oa-resolver/admin-match.js +181 -0
  1370. package/out/eval-harness/oa-resolver/admin-match.js.map +1 -0
  1371. package/out/eval-harness/oa-resolver/aggregate.d.ts +67 -0
  1372. package/out/eval-harness/oa-resolver/aggregate.d.ts.map +1 -0
  1373. package/out/eval-harness/oa-resolver/aggregate.js +75 -0
  1374. package/out/eval-harness/oa-resolver/aggregate.js.map +1 -0
  1375. package/out/eval-harness/oa-resolver/assembled-arm.d.ts +24 -0
  1376. package/out/eval-harness/oa-resolver/assembled-arm.d.ts.map +1 -0
  1377. package/out/eval-harness/oa-resolver/assembled-arm.js +66 -0
  1378. package/out/eval-harness/oa-resolver/assembled-arm.js.map +1 -0
  1379. package/out/eval-harness/oa-resolver/coordinate-tiers.d.ts +73 -0
  1380. package/out/eval-harness/oa-resolver/coordinate-tiers.d.ts.map +1 -0
  1381. package/out/eval-harness/oa-resolver/coordinate-tiers.js +144 -0
  1382. package/out/eval-harness/oa-resolver/coordinate-tiers.js.map +1 -0
  1383. package/out/eval-harness/oa-resolver/options.d.ts +170 -0
  1384. package/out/eval-harness/oa-resolver/options.d.ts.map +1 -0
  1385. package/out/eval-harness/oa-resolver/options.js +8 -0
  1386. package/out/eval-harness/oa-resolver/options.js.map +1 -0
  1387. package/out/eval-harness/oa-resolver/parse-rig.d.ts +32 -0
  1388. package/out/eval-harness/oa-resolver/parse-rig.d.ts.map +1 -0
  1389. package/out/eval-harness/oa-resolver/parse-rig.js +122 -0
  1390. package/out/eval-harness/oa-resolver/parse-rig.js.map +1 -0
  1391. package/out/eval-harness/oa-resolver/row-score.d.ts +33 -0
  1392. package/out/eval-harness/oa-resolver/row-score.d.ts.map +1 -0
  1393. package/out/eval-harness/oa-resolver/row-score.js +39 -0
  1394. package/out/eval-harness/oa-resolver/row-score.js.map +1 -0
  1395. package/out/eval-harness/oa-resolver/rows.d.ts +27 -0
  1396. package/out/eval-harness/oa-resolver/rows.d.ts.map +1 -0
  1397. package/out/eval-harness/oa-resolver/rows.js +14 -0
  1398. package/out/eval-harness/oa-resolver/rows.js.map +1 -0
  1399. package/out/eval-harness/oa-resolver/tree-hits.d.ts +68 -0
  1400. package/out/eval-harness/oa-resolver/tree-hits.d.ts.map +1 -0
  1401. package/out/eval-harness/oa-resolver/tree-hits.js +150 -0
  1402. package/out/eval-harness/oa-resolver/tree-hits.js.map +1 -0
  1403. package/out/eval-harness/oa-resolver-eval.d.ts +5 -177
  1404. package/out/eval-harness/oa-resolver-eval.d.ts.map +1 -1
  1405. package/out/eval-harness/oa-resolver-eval.js +49 -748
  1406. package/out/eval-harness/oa-resolver-eval.js.map +1 -1
  1407. package/out/eval-harness/oa-resolver-report.d.ts.map +1 -1
  1408. package/out/eval-harness/oa-resolver-report.js +1 -1
  1409. package/out/eval-harness/oa-resolver-report.js.map +1 -1
  1410. package/out/eval-harness/parity-corpus.d.ts +10 -2
  1411. package/out/eval-harness/parity-corpus.d.ts.map +1 -1
  1412. package/out/eval-harness/parity-corpus.js +21 -2
  1413. package/out/eval-harness/parity-corpus.js.map +1 -1
  1414. package/out/eval-harness/per-locale-f1.d.ts +128 -0
  1415. package/out/eval-harness/per-locale-f1.d.ts.map +1 -0
  1416. package/out/eval-harness/per-locale-f1.js +399 -0
  1417. package/out/eval-harness/per-locale-f1.js.map +1 -0
  1418. package/out/eval-harness/per-tag-f1.d.ts +22 -0
  1419. package/out/eval-harness/per-tag-f1.d.ts.map +1 -0
  1420. package/out/eval-harness/per-tag-f1.js +78 -0
  1421. package/out/eval-harness/per-tag-f1.js.map +1 -0
  1422. package/out/eval-harness/poi-board.d.ts +3 -3
  1423. package/out/eval-harness/poi-board.d.ts.map +1 -1
  1424. package/out/eval-harness/poi-board.js +7 -7
  1425. package/out/eval-harness/poi-board.js.map +1 -1
  1426. package/out/eval-harness/promotion-gate-verdict.d.ts.map +1 -1
  1427. package/out/eval-harness/promotion-gate-verdict.js +16 -2
  1428. package/out/eval-harness/promotion-gate-verdict.js.map +1 -1
  1429. package/out/eval-harness/promotion-gate.d.ts +49 -10
  1430. package/out/eval-harness/promotion-gate.d.ts.map +1 -1
  1431. package/out/eval-harness/promotion-gate.js +371 -123
  1432. package/out/eval-harness/promotion-gate.js.map +1 -1
  1433. package/out/eval-harness/retrieval-rescue-census.d.ts +103 -0
  1434. package/out/eval-harness/retrieval-rescue-census.d.ts.map +1 -0
  1435. package/out/eval-harness/retrieval-rescue-census.js +91 -0
  1436. package/out/eval-harness/retrieval-rescue-census.js.map +1 -0
  1437. package/out/eval-harness/score-affix.d.ts +85 -0
  1438. package/out/eval-harness/score-affix.d.ts.map +1 -0
  1439. package/out/eval-harness/score-affix.js +111 -0
  1440. package/out/eval-harness/score-affix.js.map +1 -0
  1441. package/out/eval-harness/score-country-homograph.d.ts +95 -0
  1442. package/out/eval-harness/score-country-homograph.d.ts.map +1 -0
  1443. package/out/eval-harness/score-country-homograph.js +121 -0
  1444. package/out/eval-harness/score-country-homograph.js.map +1 -0
  1445. package/out/eval-harness/v0-tree-adapter.d.ts +1 -1
  1446. package/out/eval-harness/v0-tree-adapter.d.ts.map +1 -1
  1447. package/out/eval-harness/v0-tree-adapter.js.map +1 -1
  1448. package/out/eval-harness/wof-hot-db.d.ts +25 -0
  1449. package/out/eval-harness/wof-hot-db.d.ts.map +1 -0
  1450. package/out/eval-harness/wof-hot-db.js +32 -0
  1451. package/out/eval-harness/wof-hot-db.js.map +1 -0
  1452. package/out/fork-entity.d.ts +124 -0
  1453. package/out/fork-entity.d.ts.map +1 -0
  1454. package/out/fork-entity.js +281 -0
  1455. package/out/fork-entity.js.map +1 -0
  1456. package/out/gazetteer-pipeline/admin/fold-overture.d.ts +1 -0
  1457. package/out/gazetteer-pipeline/admin/fold-overture.d.ts.map +1 -1
  1458. package/out/gazetteer-pipeline/admin/fold-overture.js +16 -2
  1459. package/out/gazetteer-pipeline/admin/fold-overture.js.map +1 -1
  1460. package/out/gazetteer-pipeline/admin/freeze.d.ts.map +1 -1
  1461. package/out/gazetteer-pipeline/admin/freeze.js +3 -5
  1462. package/out/gazetteer-pipeline/admin/freeze.js.map +1 -1
  1463. package/out/gazetteer-pipeline/admin/index.d.ts.map +1 -1
  1464. package/out/gazetteer-pipeline/admin/index.js +24 -2
  1465. package/out/gazetteer-pipeline/admin/index.js.map +1 -1
  1466. package/out/gazetteer-pipeline/admin/ingest-wof.d.ts.map +1 -1
  1467. package/out/gazetteer-pipeline/admin/ingest-wof.js +12 -2
  1468. package/out/gazetteer-pipeline/admin/ingest-wof.js.map +1 -1
  1469. package/out/gazetteer-pipeline/admin/manifest.d.ts +55 -0
  1470. package/out/gazetteer-pipeline/admin/manifest.d.ts.map +1 -0
  1471. package/out/gazetteer-pipeline/admin/manifest.js +77 -0
  1472. package/out/gazetteer-pipeline/admin/manifest.js.map +1 -0
  1473. package/out/gazetteer-pipeline/admin-locator.d.ts +62 -0
  1474. package/out/gazetteer-pipeline/admin-locator.d.ts.map +1 -0
  1475. package/out/gazetteer-pipeline/admin-locator.js +127 -0
  1476. package/out/gazetteer-pipeline/admin-locator.js.map +1 -0
  1477. package/out/gazetteer-pipeline/anchor-lookup.d.ts +1 -1
  1478. package/out/gazetteer-pipeline/anchor-lookup.js +1 -1
  1479. package/out/gazetteer-pipeline/candidate-manifest.d.ts +57 -0
  1480. package/out/gazetteer-pipeline/candidate-manifest.d.ts.map +1 -0
  1481. package/out/gazetteer-pipeline/candidate-manifest.js +80 -0
  1482. package/out/gazetteer-pipeline/candidate-manifest.js.map +1 -0
  1483. package/out/gazetteer-pipeline/capitals.d.ts +100 -0
  1484. package/out/gazetteer-pipeline/capitals.d.ts.map +1 -0
  1485. package/out/gazetteer-pipeline/capitals.js +160 -0
  1486. package/out/gazetteer-pipeline/capitals.js.map +1 -0
  1487. package/out/gazetteer-pipeline/country-plan.d.ts +101 -0
  1488. package/out/gazetteer-pipeline/country-plan.d.ts.map +1 -0
  1489. package/out/gazetteer-pipeline/country-plan.js +150 -0
  1490. package/out/gazetteer-pipeline/country-plan.js.map +1 -0
  1491. package/out/gazetteer-pipeline/country-sources.d.ts +101 -0
  1492. package/out/gazetteer-pipeline/country-sources.d.ts.map +1 -0
  1493. package/out/gazetteer-pipeline/country-sources.js +132 -0
  1494. package/out/gazetteer-pipeline/country-sources.js.map +1 -0
  1495. package/out/gazetteer-pipeline/cz-districts.d.ts +42 -0
  1496. package/out/gazetteer-pipeline/cz-districts.d.ts.map +1 -0
  1497. package/out/gazetteer-pipeline/cz-districts.js +93 -0
  1498. package/out/gazetteer-pipeline/cz-districts.js.map +1 -0
  1499. package/out/gazetteer-pipeline/defaults.d.ts +51 -1
  1500. package/out/gazetteer-pipeline/defaults.d.ts.map +1 -1
  1501. package/out/gazetteer-pipeline/defaults.js +51 -1
  1502. package/out/gazetteer-pipeline/defaults.js.map +1 -1
  1503. package/out/gazetteer-pipeline/evidence-lexicons.js +5 -5
  1504. package/out/gazetteer-pipeline/evidence-lexicons.js.map +1 -1
  1505. package/out/gazetteer-pipeline/fst.d.ts +11 -2
  1506. package/out/gazetteer-pipeline/fst.d.ts.map +1 -1
  1507. package/out/gazetteer-pipeline/fst.js +18 -6
  1508. package/out/gazetteer-pipeline/fst.js.map +1 -1
  1509. package/out/gazetteer-pipeline/gnaf-rooftop.d.ts +65 -0
  1510. package/out/gazetteer-pipeline/gnaf-rooftop.d.ts.map +1 -0
  1511. package/out/gazetteer-pipeline/gnaf-rooftop.js +239 -0
  1512. package/out/gazetteer-pipeline/gnaf-rooftop.js.map +1 -0
  1513. package/out/gazetteer-pipeline/granularity.d.ts +1 -8
  1514. package/out/gazetteer-pipeline/granularity.d.ts.map +1 -1
  1515. package/out/gazetteer-pipeline/granularity.js +2 -8
  1516. package/out/gazetteer-pipeline/granularity.js.map +1 -1
  1517. package/out/gazetteer-pipeline/index.d.ts +54 -21
  1518. package/out/gazetteer-pipeline/index.d.ts.map +1 -1
  1519. package/out/gazetteer-pipeline/index.js +105 -36
  1520. package/out/gazetteer-pipeline/index.js.map +1 -1
  1521. package/out/gazetteer-pipeline/nz-localities.d.ts +52 -0
  1522. package/out/gazetteer-pipeline/nz-localities.d.ts.map +1 -0
  1523. package/out/gazetteer-pipeline/nz-localities.js +0 -0
  1524. package/out/gazetteer-pipeline/nz-localities.js.map +1 -0
  1525. package/out/gazetteer-pipeline/overture-release.d.ts +45 -0
  1526. package/out/gazetteer-pipeline/overture-release.d.ts.map +1 -0
  1527. package/out/gazetteer-pipeline/overture-release.js +87 -0
  1528. package/out/gazetteer-pipeline/overture-release.js.map +1 -0
  1529. package/out/gazetteer-pipeline/pair-index-hierarchy-probe.js +7 -13
  1530. package/out/gazetteer-pipeline/pair-index-hierarchy-probe.js.map +1 -1
  1531. package/out/gazetteer-pipeline/pair-index-hierarchy-verify.js +4 -6
  1532. package/out/gazetteer-pipeline/pair-index-hierarchy-verify.js.map +1 -1
  1533. package/out/gazetteer-pipeline/poi/build-brands.d.ts +1 -12
  1534. package/out/gazetteer-pipeline/poi/build-brands.d.ts.map +1 -1
  1535. package/out/gazetteer-pipeline/poi/build-brands.js +6 -17
  1536. package/out/gazetteer-pipeline/poi/build-brands.js.map +1 -1
  1537. package/out/gazetteer-pipeline/poi/build-poi.d.ts +1 -10
  1538. package/out/gazetteer-pipeline/poi/build-poi.d.ts.map +1 -1
  1539. package/out/gazetteer-pipeline/poi/build-poi.js +25 -31
  1540. package/out/gazetteer-pipeline/poi/build-poi.js.map +1 -1
  1541. package/out/gazetteer-pipeline/poi/defaults.d.ts +38 -0
  1542. package/out/gazetteer-pipeline/poi/defaults.d.ts.map +1 -0
  1543. package/out/gazetteer-pipeline/poi/defaults.js +38 -0
  1544. package/out/gazetteer-pipeline/poi/defaults.js.map +1 -0
  1545. package/out/gazetteer-pipeline/postcode/centroid-fills.d.ts.map +1 -1
  1546. package/out/gazetteer-pipeline/postcode/centroid-fills.js +16 -4
  1547. package/out/gazetteer-pipeline/postcode/centroid-fills.js.map +1 -1
  1548. package/out/gazetteer-pipeline/postcode/codepoint/fetch.d.ts.map +1 -1
  1549. package/out/gazetteer-pipeline/postcode/codepoint/fetch.js +1 -0
  1550. package/out/gazetteer-pipeline/postcode/codepoint/fetch.js.map +1 -1
  1551. package/out/gazetteer-pipeline/postcode/codepoint-shard.d.ts.map +1 -1
  1552. package/out/gazetteer-pipeline/postcode/codepoint-shard.js +0 -1
  1553. package/out/gazetteer-pipeline/postcode/codepoint-shard.js.map +1 -1
  1554. package/out/gazetteer-pipeline/postcode/geonames-tail.d.ts +1 -8
  1555. package/out/gazetteer-pipeline/postcode/geonames-tail.d.ts.map +1 -1
  1556. package/out/gazetteer-pipeline/postcode/geonames-tail.js +3 -9
  1557. package/out/gazetteer-pipeline/postcode/geonames-tail.js.map +1 -1
  1558. package/out/gazetteer-pipeline/postcode/index.d.ts.map +1 -1
  1559. package/out/gazetteer-pipeline/postcode/index.js +11 -8
  1560. package/out/gazetteer-pipeline/postcode/index.js.map +1 -1
  1561. package/out/gazetteer-pipeline/postcode/ni-osm/fetch.js +1 -1
  1562. package/out/gazetteer-pipeline/postcode/ni-osm/fetch.js.map +1 -1
  1563. package/out/gazetteer-pipeline/postcode-locality/base.d.ts +4 -4
  1564. package/out/gazetteer-pipeline/postcode-locality/base.d.ts.map +1 -1
  1565. package/out/gazetteer-pipeline/postcode-locality/base.js +13 -37
  1566. package/out/gazetteer-pipeline/postcode-locality/base.js.map +1 -1
  1567. package/out/gazetteer-pipeline/postcode-locality/jp.d.ts +1 -1
  1568. package/out/gazetteer-pipeline/postcode-locality/jp.d.ts.map +1 -1
  1569. package/out/gazetteer-pipeline/postcode-locality/jp.js +8 -29
  1570. package/out/gazetteer-pipeline/postcode-locality/jp.js.map +1 -1
  1571. package/out/gazetteer-pipeline/postcode-locality/kr.d.ts +1 -1
  1572. package/out/gazetteer-pipeline/postcode-locality/kr.d.ts.map +1 -1
  1573. package/out/gazetteer-pipeline/postcode-locality/kr.js +10 -31
  1574. package/out/gazetteer-pipeline/postcode-locality/kr.js.map +1 -1
  1575. package/out/gazetteer-pipeline/postcode-locality/schema.d.ts +99 -0
  1576. package/out/gazetteer-pipeline/postcode-locality/schema.d.ts.map +1 -0
  1577. package/out/gazetteer-pipeline/postcode-locality/schema.js +78 -0
  1578. package/out/gazetteer-pipeline/postcode-locality/schema.js.map +1 -0
  1579. package/out/gazetteer-pipeline/postcode-locality/tw.d.ts +3 -3
  1580. package/out/gazetteer-pipeline/postcode-locality/tw.d.ts.map +1 -1
  1581. package/out/gazetteer-pipeline/postcode-locality/tw.js +14 -34
  1582. package/out/gazetteer-pipeline/postcode-locality/tw.js.map +1 -1
  1583. package/out/gazetteer-pipeline/postcode-prefix.d.ts +53 -0
  1584. package/out/gazetteer-pipeline/postcode-prefix.d.ts.map +1 -1
  1585. package/out/gazetteer-pipeline/postcode-prefix.js +211 -2
  1586. package/out/gazetteer-pipeline/postcode-prefix.js.map +1 -1
  1587. package/out/gazetteer-pipeline/recipe-edit.d.ts +47 -0
  1588. package/out/gazetteer-pipeline/recipe-edit.d.ts.map +1 -0
  1589. package/out/gazetteer-pipeline/recipe-edit.js +131 -0
  1590. package/out/gazetteer-pipeline/recipe-edit.js.map +1 -0
  1591. package/out/gazetteer-pipeline/repos-audit.d.ts +105 -0
  1592. package/out/gazetteer-pipeline/repos-audit.d.ts.map +1 -0
  1593. package/out/gazetteer-pipeline/repos-audit.js +178 -0
  1594. package/out/gazetteer-pipeline/repos-audit.js.map +1 -0
  1595. package/out/gazetteer-pipeline/repos-sync.d.ts +139 -0
  1596. package/out/gazetteer-pipeline/repos-sync.d.ts.map +1 -0
  1597. package/out/gazetteer-pipeline/repos-sync.js +206 -0
  1598. package/out/gazetteer-pipeline/repos-sync.js.map +1 -0
  1599. package/out/gazetteer-pipeline/stamp-manifest.d.ts +37 -0
  1600. package/out/gazetteer-pipeline/stamp-manifest.d.ts.map +1 -0
  1601. package/out/gazetteer-pipeline/stamp-manifest.js +61 -0
  1602. package/out/gazetteer-pipeline/stamp-manifest.js.map +1 -0
  1603. package/out/gazetteer-pipeline/uprn-layer.d.ts +275 -0
  1604. package/out/gazetteer-pipeline/uprn-layer.d.ts.map +1 -0
  1605. package/out/gazetteer-pipeline/uprn-layer.js +523 -0
  1606. package/out/gazetteer-pipeline/uprn-layer.js.map +1 -0
  1607. package/out/gazetteer-pipeline/wof-repo-origin.d.ts +78 -0
  1608. package/out/gazetteer-pipeline/wof-repo-origin.d.ts.map +1 -0
  1609. package/out/gazetteer-pipeline/wof-repo-origin.js +80 -0
  1610. package/out/gazetteer-pipeline/wof-repo-origin.js.map +1 -0
  1611. package/out/gazetteer-pipeline/wof-triage.d.ts +150 -0
  1612. package/out/gazetteer-pipeline/wof-triage.d.ts.map +1 -0
  1613. package/out/gazetteer-pipeline/wof-triage.js +305 -0
  1614. package/out/gazetteer-pipeline/wof-triage.js.map +1 -0
  1615. package/out/geocode-command-options.d.ts +51 -0
  1616. package/out/geocode-command-options.d.ts.map +1 -0
  1617. package/out/geocode-command-options.js +32 -0
  1618. package/out/geocode-command-options.js.map +1 -0
  1619. package/out/geocode-core.d.ts +281 -33
  1620. package/out/geocode-core.d.ts.map +1 -1
  1621. package/out/geocode-core.js +426 -140
  1622. package/out/geocode-core.js.map +1 -1
  1623. package/out/geocode-diff.d.ts +118 -0
  1624. package/out/geocode-diff.d.ts.map +1 -0
  1625. package/out/geocode-diff.js +168 -0
  1626. package/out/geocode-diff.js.map +1 -0
  1627. package/out/geocode-session.d.ts +249 -0
  1628. package/out/geocode-session.d.ts.map +1 -0
  1629. package/out/geocode-session.js +468 -0
  1630. package/out/geocode-session.js.map +1 -0
  1631. package/out/geocode-worker.d.ts.map +1 -1
  1632. package/out/geocode-worker.js +4 -1
  1633. package/out/geocode-worker.js.map +1 -1
  1634. package/out/hierarchy-lineage.d.ts +90 -0
  1635. package/out/hierarchy-lineage.d.ts.map +1 -0
  1636. package/out/hierarchy-lineage.js +99 -0
  1637. package/out/hierarchy-lineage.js.map +1 -0
  1638. package/out/inferred-scope.d.ts +41 -0
  1639. package/out/inferred-scope.d.ts.map +1 -0
  1640. package/out/inferred-scope.js +48 -0
  1641. package/out/inferred-scope.js.map +1 -0
  1642. package/out/intent-refusal.d.ts +33 -0
  1643. package/out/intent-refusal.d.ts.map +1 -0
  1644. package/out/intent-refusal.js +50 -0
  1645. package/out/intent-refusal.js.map +1 -0
  1646. package/out/kbest-street-rerank.d.ts +0 -1
  1647. package/out/kbest-street-rerank.d.ts.map +1 -1
  1648. package/out/kbest-street-rerank.js +1 -2
  1649. package/out/kbest-street-rerank.js.map +1 -1
  1650. package/out/plus-code-override.d.ts +22 -0
  1651. package/out/plus-code-override.d.ts.map +1 -0
  1652. package/out/plus-code-override.js +64 -0
  1653. package/out/plus-code-override.js.map +1 -0
  1654. package/out/poi-intent.d.ts +15 -0
  1655. package/out/poi-intent.d.ts.map +1 -1
  1656. package/out/poi-intent.js +80 -14
  1657. package/out/poi-intent.js.map +1 -1
  1658. package/out/postcode-repair.d.ts +30 -0
  1659. package/out/postcode-repair.d.ts.map +1 -0
  1660. package/out/postcode-repair.js +115 -0
  1661. package/out/postcode-repair.js.map +1 -0
  1662. package/out/query-intent.d.ts +73 -0
  1663. package/out/query-intent.d.ts.map +1 -0
  1664. package/out/query-intent.js +168 -0
  1665. package/out/query-intent.js.map +1 -0
  1666. package/out/release-tools/publish-hf.d.ts.map +1 -1
  1667. package/out/release-tools/publish-hf.js +22 -18
  1668. package/out/release-tools/publish-hf.js.map +1 -1
  1669. package/out/resolver-backend.d.ts +48 -7
  1670. package/out/resolver-backend.d.ts.map +1 -1
  1671. package/out/resolver-backend.js +95 -15
  1672. package/out/resolver-backend.js.map +1 -1
  1673. package/out/runtime-pipeline.d.ts +12 -2
  1674. package/out/runtime-pipeline.d.ts.map +1 -1
  1675. package/out/runtime-pipeline.js +35 -6
  1676. package/out/runtime-pipeline.js.map +1 -1
  1677. package/out/stranded-affix-repair.d.ts +31 -0
  1678. package/out/stranded-affix-repair.d.ts.map +1 -0
  1679. package/out/stranded-affix-repair.js +98 -0
  1680. package/out/stranded-affix-repair.js.map +1 -0
  1681. package/out/street-miss-fallback.d.ts +39 -0
  1682. package/out/street-miss-fallback.d.ts.map +1 -0
  1683. package/out/street-miss-fallback.js +53 -0
  1684. package/out/street-miss-fallback.js.map +1 -0
  1685. package/out/street-name-assembly.d.ts +16 -0
  1686. package/out/street-name-assembly.d.ts.map +1 -0
  1687. package/out/street-name-assembly.js +33 -0
  1688. package/out/street-name-assembly.js.map +1 -0
  1689. package/out/test-kit/cli-spawn-lock.js +2 -2
  1690. package/out/test-kit/cli-spawn-lock.js.map +1 -1
  1691. package/out/tools/generate-clients.d.ts +5 -4
  1692. package/out/tools/generate-clients.d.ts.map +1 -1
  1693. package/out/tools/generate-clients.js +7 -7
  1694. package/out/tools/generate-clients.js.map +1 -1
  1695. package/package.json +464 -33
  1696. package/plus-code-override.ts +77 -0
  1697. package/poi-intent.ts +107 -23
  1698. package/postcode-repair.ts +139 -0
  1699. package/query-intent.ts +234 -0
  1700. package/release-tools/publish-hf.ts +23 -18
  1701. package/resolver-backend.ts +132 -18
  1702. package/runtime-pipeline.ts +56 -6
  1703. package/stranded-affix-repair.ts +114 -0
  1704. package/street-miss-fallback.ts +80 -0
  1705. package/street-name-assembly.ts +41 -0
  1706. package/test-kit/cli-spawn-lock.ts +2 -2
  1707. package/tools/generate-clients.ts +11 -13
  1708. package/types/node.d.ts +3 -1
  1709. package/commands/autocomplete.tsx +0 -164
  1710. package/commands/doctor.tsx +0 -126
  1711. package/commands/geocode.tsx +0 -447
  1712. package/commands/openapi.tsx +0 -44
  1713. package/commands/reverse.tsx +0 -182
  1714. package/out/commands/autocomplete.d.ts +0 -50
  1715. package/out/commands/autocomplete.d.ts.map +0 -1
  1716. package/out/commands/autocomplete.js +0 -124
  1717. package/out/commands/autocomplete.js.map +0 -1
  1718. package/out/commands/doctor.d.ts +0 -28
  1719. package/out/commands/doctor.d.ts.map +0 -1
  1720. package/out/commands/doctor.js +0 -86
  1721. package/out/commands/doctor.js.map +0 -1
  1722. package/out/commands/geocode.d.ts +0 -58
  1723. package/out/commands/geocode.d.ts.map +0 -1
  1724. package/out/commands/geocode.js +0 -348
  1725. package/out/commands/geocode.js.map +0 -1
  1726. package/out/commands/openapi.d.ts +0 -27
  1727. package/out/commands/openapi.d.ts.map +0 -1
  1728. package/out/commands/openapi.js +0 -37
  1729. package/out/commands/openapi.js.map +0 -1
  1730. package/out/commands/reverse.d.ts +0 -32
  1731. package/out/commands/reverse.d.ts.map +0 -1
  1732. package/out/commands/reverse.js +0 -141
  1733. package/out/commands/reverse.js.map +0 -1
package/README.md CHANGED
@@ -147,8 +147,6 @@ const parse = createRuntimePipeline({
147
147
  await parse("350 5TH AVE, NEW YORK, NY 10118", {
148
148
  locale: "en-US", // assert a locale instead of detecting it
149
149
  hardPlaceCountry: true, // confine resolution to a confidently-detected country (default: on)
150
- jointReconcile: false, // beam-search decode instead of argmax (default: off)
151
- arbitrate: false, // union the neural parse with the legacy rule parse (default: off)
152
150
  })
153
151
  ```
154
152
 
@@ -166,13 +164,29 @@ mailwoman parse "350 5th Ave, New York, NY 10118" --resolve --resolve-db ./wof.s
166
164
  mailwoman geocode "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
167
165
  ```
168
166
 
169
- Programmatically, build a `WofSqlitePlaceLookup` backend (from
167
+ Programmatically, build a `WOFSQLitePlaceLookup` backend (from
170
168
  `@mailwoman/resolver-wof-sqlite`), pass it to `createWOFResolver` (from `@mailwoman/resolver`),
171
169
  and hand the resolver to `createRuntimePipeline({ classifier, resolver })`. The resolved
172
170
  `result.tree` roots then carry a `wof:id` and coordinate. See
173
- [Getting started → Adding resolution](https://mailwoman.sister.software/docs/developers/get-started/install-and-first-parse)
171
+ [Getting started → Adding resolution](https://mailwoman.ai/docs/developers/get-started/install-and-first-parse)
174
172
  for the worked example.
175
173
 
174
+ ### Which place the coordinate comes from
175
+
176
+ When nothing finer than an administrative centroid resolved, result assembly walks a ladder and takes the first rung that has a coordinate. That ladder is **not fixed** — it leads with the postcode when the postcode is the finer thing, and with the locality otherwise:
177
+
178
+ ```
179
+ GB unit / NL PC6 / CA urban LDU → postcode, locality, dependent_locality, region, country
180
+ Germany → postcode, locality, dependent_locality, region, country
181
+ everything else → locality, dependent_locality, postcode, region, country
182
+ ```
183
+
184
+ Both routes to the first arm live in `@mailwoman/codex` and are read by `@mailwoman/resolver`'s `adminLadderForNodes`. The second arm is the #945 convention, adopted for France where one _code postal_ often spans several communes.
185
+
186
+ The distinction is a fact about a country's **administrative** geography rather than its postal system, and code length does not predict it — France and Germany are both five digits and disagree. Germany's Gemeinden are large enough that Berlin is a single locality, so its PLZ is finer by a wide margin: on 2,997 OpenAddresses rows the coordinate p50 goes 5.84 km → 1.24 km, better on every percentile including p99, and the within-5-km population doubles.
187
+
188
+ Membership is earned by a full-panel measurement, never by a shape that looks tight. See [`@mailwoman/codex`](../codex) for the tier table and what each member measured.
189
+
176
190
  ## Architecture
177
191
 
178
192
  Mailwoman's runtime pipeline is a staged coordinator:
@@ -209,8 +223,8 @@ package is the umbrella that wires them together as a single `npm install`.
209
223
 
210
224
  ## Related
211
225
 
212
- - [Documentation & blog](https://mailwoman.sister.software)
213
- - [What Mailwoman Is](https://mailwoman.sister.software/docs/developers/get-started/what-mailwoman-is)
226
+ - [Documentation & blog](https://mailwoman.ai)
227
+ - [What Mailwoman Is](https://mailwoman.ai/docs/developers/get-started/what-mailwoman-is)
214
228
  - [GitHub](https://github.com/sister-software/mailwoman)
215
229
 
216
230
  ## License
@@ -0,0 +1,322 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Admin-coherence verdicts (#1717 stage 1) — after a geocode resolves, compare the PARSED admin
7
+ * qualifiers (`region`, `country`) against what the winning candidate's resolved ancestry actually
8
+ * says, and report a per-component verdict. FLAG-ONLY: nothing reads these verdicts to rank,
9
+ * re-pick, or gate — they exist so a board run can count how often the resolver's answer ignores a
10
+ * qualifier the parse got right (`Weimar, Thüringen` → Weimar TX), and how often the winner
11
+ * carries no ancestry to check at all (the `unverifiable` count).
12
+ *
13
+ * Per-component verdicts, never one scalar (the Google-confirmation-levels / USPS-DPV pattern):
14
+ *
15
+ * - `confirmed` — the qualifier matches a winner-ancestry node of its class under the shared
16
+ * name fold ({@link normalizeLocalityForKey}, the same fold candidate.db's `name_key` is built
17
+ * with — build side and check side agree by construction), or the winner IS that qualifier's
18
+ * own resolution (a region-tagged winner confirms the region qualifier by identity —
19
+ * containment degenerates to self).
20
+ * - `contradicted` — the winner's ancestry HAS a node of that class and none of them fold-match
21
+ * the parsed value.
22
+ * - `unstated` — the parse produced no such qualifier. The common case, and not a problem: most
23
+ * queries simply don't name a region or country.
24
+ * - `unverifiable` — the parse produced the qualifier but the winner carries NO ancestry of that
25
+ * class to check against. Report it faithfully; folding it into either decided verdict would
26
+ * hide exactly the gap #1717 wants measured.
27
+ *
28
+ * STATED BOUNDS (v1 is fold-equality only — do not read more into a verdict than this):
29
+ *
30
+ * - Cross-language variant forms are NOT bridged: `Thüringen` folds to `thuringen`, the stored
31
+ * exonym `Thuringia` to `thuringia`, so a variant-form match the gazetteer could vouch for
32
+ * still reads `contradicted`. Bridging it needs a candidate.db alias probe, which would pull
33
+ * the SQLite lookup machinery into this pure module — deliberately skipped.
34
+ * - The only normalizers consulted beyond the fold are the codex tables, because they are pure
35
+ * and already in-house: {@link matchCountry} (surface form / alpha-2 / alpha-3 → country) and
36
+ * {@link matchSubdivision} (US state + CA province code ↔ name). So `IL` confirms against
37
+ * `Illinois` and `Deutschland` against a DE winner, but an uncurated endonym (`Alemania`)
38
+ * against a DE winner reads `contradicted` — the module never silently over-claims a match it
39
+ * cannot derive.
40
+ * - The region verdict additionally carries the MISLABEL BRIDGE: a region slot holding a COUNTRY
41
+ * name ("Batumi, Georgia" parses region="Georgia") confirms against the winner's country-class
42
+ * evidence, because containment holds and `contradicted` would misdescribe the geography. It
43
+ * runs after the region band, is monotone (`contradicted`/`unverifiable` → `confirmed` is the
44
+ * only movement it can cause), and inherits the pure-codex bound above — parsed "Russia"
45
+ * against an RU winner still reads `contradicted`, because codex holds only "Russian
46
+ * Federation" for RU and the module never over-claims.
47
+ *
48
+ * The winner's checkable ancestry arrives as the resolver's `metadata.ancestors` stamp (#404 —
49
+ * the geocode path opts in by default, and both backends serve it when their artifact carries an
50
+ * ancestors table: the FTS shard's `ancestors`, candidate.db's `candidate_ancestor` sidecar),
51
+ * while country-class ancestry is nearly always available via the `resolver_country` stamp.
52
+ * `unverifiable` remains the faithful verdict wherever the stamp is absent — an artifact
53
+ * predating the sidecar, a shard-fed winner with no recorded ancestry, or a caller that opted
54
+ * out.
55
+ */
56
+
57
+ import { countrySurfaceForms, ISO2_TO_NAME, matchCountry } from "@mailwoman/codex/country"
58
+ import { REGION_CLASS_PLACETYPES, regionKeys } from "@mailwoman/resolver-wof-sqlite/region-keys"
59
+ import { normalizeLocalityForKey } from "@mailwoman/resolver-wof-sqlite/street-normalize"
60
+
61
+ /**
62
+ * One admin-coherence verdict. See the module docstring for the exact meaning of each — in particular, `unverifiable`
63
+ * is an absence-of-evidence claim about the WINNER, never about the parse.
64
+ */
65
+ type AdminCoherenceVerdict = "confirmed" | "contradicted" | "unstated" | "unverifiable"
66
+
67
+ /**
68
+ * The per-component verdicts. Both members are always present when the report exists (the `intent_markers` discipline:
69
+ * state the empty case — `unstated` IS the explicit "no qualifier" claim, so an optional member would be a second way
70
+ * to say the same thing). The report as a whole is what's optional: absent means the geocode resolved no winner to
71
+ * check against.
72
+ */
73
+ export interface AdminCoherenceReport {
74
+ region: AdminCoherenceVerdict
75
+ country: AdminCoherenceVerdict
76
+ }
77
+
78
+ /**
79
+ * The parsed admin qualifiers — the raw spans off the address tree's `region` / `country` nodes (the parse view, not
80
+ * the resolved view). Empty / whitespace-only reads as absent.
81
+ */
82
+ export interface ParsedAdminQualifiers {
83
+ region?: string | undefined
84
+ country?: string | undefined
85
+ }
86
+
87
+ /**
88
+ * One link of the winner's containment lineage, as the resolver stamped it (`metadata.ancestors`, the #404 opt-in) — a
89
+ * structural slice of `@mailwoman/core`'s `Ancestor`.
90
+ */
91
+ interface AdminAncestor {
92
+ placetype: string
93
+ name: string
94
+ }
95
+
96
+ /**
97
+ * The winning candidate, reduced to what the check reads: its own component tag (for the self-confirmation case), the
98
+ * resolver-stamped ISO 3166-1 alpha-2 (`resolver_country` — the one piece of country-class ancestry the candidate
99
+ * backend always carries), and the stamped ancestor chain when a backend supplied one.
100
+ */
101
+ export interface AdminCoherenceWinner {
102
+ tag: string
103
+ countryCode?: string | undefined
104
+ ancestry?: readonly AdminAncestor[] | undefined
105
+ }
106
+
107
+ /**
108
+ * Fold both sides of every name comparison through the shared candidate.db `name_key` normalizer — one function, both
109
+ * sides, so the check can never disagree with the index it's checking against.
110
+ *
111
+ * The region-side expansion ({@link regionKeys}) and the region band ({@link REGION_CLASS_PLACETYPES}) moved DOWN to
112
+ * `@mailwoman/resolver-wof-sqlite/region-keys` when the #1717 stage-2 containment re-rank became their second consumer
113
+ * — the dependency points that way, and the #861 rule wants one function, not a mirrored copy.
114
+ */
115
+ function foldKey(name: string): string {
116
+ return normalizeLocalityForKey(name)
117
+ }
118
+
119
+ /**
120
+ * The comparable keys a country-class value expands to: its own fold, plus — when {@link matchCountry} recognizes it —
121
+ * an `iso2:` channel key and the folds of the canonical name and curated surface forms, so `Deutschland`, `DEU`, `DE`
122
+ * and `Germany` all meet in one key set regardless of which side spelled which.
123
+ */
124
+ function countryKeys(value: string): Set<string> {
125
+ const keys = new Set([foldKey(value)])
126
+ const match = matchCountry(value)
127
+
128
+ if (match) {
129
+ keys.add(`iso2:${match.iso2}`)
130
+
131
+ if (match.canonical) {
132
+ keys.add(foldKey(match.canonical))
133
+ }
134
+
135
+ for (const form of countrySurfaceForms(match.iso2)) {
136
+ keys.add(foldKey(form))
137
+ }
138
+ }
139
+
140
+ return keys
141
+ }
142
+
143
+ function intersects(a: ReadonlySet<string>, b: ReadonlySet<string>): boolean {
144
+ for (const key of a) {
145
+ if (b.has(key)) return true
146
+ }
147
+
148
+ return false
149
+ }
150
+
151
+ /**
152
+ * The winner's COUNTRY-class evidence keys: the resolver-stamped alpha-2 expanded through the codex tables into every
153
+ * spelling the check can vouch for, plus any country-placetype ancestors. One assembly, two consumers — the country
154
+ * verdict compares against it, and the region verdict's mislabel bridge (below) does too, so the two verdicts can never
155
+ * disagree about what counts as country-class evidence.
156
+ */
157
+ function winnerCountryKeys(winner: AdminCoherenceWinner): Set<string> {
158
+ const winnerKeys = new Set<string>()
159
+ const iso = winner.countryCode?.trim().toUpperCase() || undefined
160
+
161
+ if (iso) {
162
+ winnerKeys.add(`iso2:${iso}`)
163
+ winnerKeys.add(foldKey(iso))
164
+ const canonical = ISO2_TO_NAME.get(iso)
165
+
166
+ if (canonical) {
167
+ winnerKeys.add(foldKey(canonical))
168
+ }
169
+
170
+ for (const form of countrySurfaceForms(iso)) {
171
+ winnerKeys.add(foldKey(form))
172
+ }
173
+ }
174
+
175
+ for (const ancestor of winner.ancestry ?? []) {
176
+ if (ancestor.placetype !== "country") continue
177
+
178
+ for (const key of countryKeys(ancestor.name)) {
179
+ winnerKeys.add(key)
180
+ }
181
+ }
182
+
183
+ return winnerKeys
184
+ }
185
+
186
+ function regionVerdict(parsedRegion: string | undefined, winner: AdminCoherenceWinner): AdminCoherenceVerdict {
187
+ const parsed = parsedRegion?.trim()
188
+
189
+ if (!parsed) return "unstated"
190
+
191
+ // The winner IS a region resolution — the qualifier is the thing that resolved, so containment
192
+ // degenerates to identity. The resolver's own binding (alias-aware, unlike the fold) is the
193
+ // match evidence here; re-checking it under fold-equality would misread every alias hit as a
194
+ // contradiction.
195
+ if (winner.tag === "region") return "confirmed"
196
+
197
+ const regionAncestors = (winner.ancestry ?? []).filter((a) => REGION_CLASS_PLACETYPES.has(a.placetype))
198
+ const iso = winner.countryCode?.trim().toUpperCase() || undefined
199
+ const parsedKeys = regionKeys(parsed, iso)
200
+
201
+ for (const ancestor of regionAncestors) {
202
+ if (intersects(parsedKeys, regionKeys(ancestor.name, iso))) return "confirmed"
203
+ }
204
+
205
+ // The mislabel bridge: the region SLOT sometimes holds a COUNTRY name — "Moscow, Russia" parses
206
+ // region="Russia", "Batumi, Georgia" parses region="Georgia" (the shape the flag's own first
207
+ // triage counted at ~4 of 16 contradictions). Containment still holds when the winner's
208
+ // country-class evidence matches the qualifier, so `contradicted` would be the wrong claim about
209
+ // the geography. Checked AFTER the region band (a genuine region match never depends on it) and
210
+ // monotone by construction: it can only move `contradicted`/`unverifiable` → `confirmed`.
211
+ if (intersects(countryKeys(parsed), winnerCountryKeys(winner))) return "confirmed"
212
+
213
+ return regionAncestors.length ? "contradicted" : "unverifiable"
214
+ }
215
+
216
+ function countryVerdict(parsedCountry: string | undefined, winner: AdminCoherenceWinner): AdminCoherenceVerdict {
217
+ const parsed = parsedCountry?.trim()
218
+
219
+ if (!parsed) return "unstated"
220
+
221
+ if (winner.tag === "country") return "confirmed"
222
+
223
+ const winnerKeys = winnerCountryKeys(winner)
224
+
225
+ if (!winnerKeys.size) return "unverifiable"
226
+
227
+ return intersects(countryKeys(parsed), winnerKeys) ? "confirmed" : "contradicted"
228
+ }
229
+
230
+ /**
231
+ * Assess the parsed admin qualifiers against the winning candidate. Pure — no I/O, no lookup, no side effects; call it
232
+ * once at result assembly, only when a winner exists (no winner → no report, absence meaning "nothing resolved to check
233
+ * against").
234
+ */
235
+ export function assessAdminCoherence(
236
+ parsed: ParsedAdminQualifiers,
237
+ winner: AdminCoherenceWinner
238
+ ): AdminCoherenceReport {
239
+ return {
240
+ region: regionVerdict(parsed.region, winner),
241
+ country: countryVerdict(parsed.country, winner),
242
+ }
243
+ }
244
+
245
+ /**
246
+ * A resolved-tree node slice the assembly adapter reads — structurally satisfied by `@mailwoman/core`'s `AddressNode`,
247
+ * declared locally so the pure module carries no decoder import.
248
+ */
249
+ export interface AdminCoherenceSourceNode {
250
+ tag: string
251
+ value: string
252
+ metadata?: Record<string, unknown> | undefined
253
+ }
254
+
255
+ /**
256
+ * The assembly-point adapter: derive the parsed qualifiers (the `region` / `country` node spans — the parse view) and
257
+ * the winner's checkable ancestry (the `resolver_country` stamp + any `metadata.ancestors` chain) off the resolved
258
+ * tree's nodes, and return a spreadable result fragment. `winner` is the admin-ladder pick; `fallbackWinner` is the
259
+ * primary resolved node the street-backed tiers report instead (the resolution context the coordinate was scoped by).
260
+ * No winner at all → an empty fragment: the `admin_coherence` field stays ABSENT, which is a different claim from
261
+ * `unverifiable` (nothing resolved, so there was no candidate to check).
262
+ */
263
+ export function adminCoherenceField(
264
+ nodes: readonly AdminCoherenceSourceNode[],
265
+ winner: AdminCoherenceSourceNode | undefined,
266
+ fallbackWinner: AdminCoherenceSourceNode | undefined
267
+ ): { admin_coherence?: AdminCoherenceReport } {
268
+ const picked = winner ?? fallbackWinner
269
+
270
+ if (!picked) return {}
271
+
272
+ const report = assessAdminCoherence(
273
+ {
274
+ region: nodes.find((n) => n.tag === "region")?.value?.trim() || undefined,
275
+ country: nodes.find((n) => n.tag === "country")?.value?.trim() || undefined,
276
+ },
277
+ {
278
+ tag: picked.tag,
279
+ countryCode: (picked.metadata?.["resolver_country"] as string | undefined)?.trim() || undefined,
280
+ // The resolver's #404 stamp — present when the geocode path opted in AND the backend's
281
+ // artifact carries an ancestors table; its absence is what the verdicts report as
282
+ // `unverifiable`.
283
+ ancestry: picked.metadata?.["ancestors"] as readonly AdminAncestor[] | undefined,
284
+ }
285
+ )
286
+
287
+ return { admin_coherence: report }
288
+ }
289
+
290
+ /**
291
+ * A node tree shaped like the decoder's `AddressNode` — structural rather than imported, so this module stays free of
292
+ * the decoder dependency.
293
+ */
294
+ export interface AdminCoherenceTreeNode extends AdminCoherenceSourceNode {
295
+ children: readonly AdminCoherenceTreeNode[]
296
+ }
297
+
298
+ /**
299
+ * Coherence for a fork-to-entity answer (#1724): a forked answer carries a verdict like any other resolved answer --
300
+ * absence means "nothing resolved to check", and something did. The entity offers a country and no ancestor chain, so a
301
+ * stated region grades `unverifiable` rather than going silently unchecked.
302
+ */
303
+ export function forkedEntityCoherenceField(
304
+ roots: readonly AdminCoherenceTreeNode[],
305
+ entity: { name: string; country: string }
306
+ ): { admin_coherence?: AdminCoherenceReport } {
307
+ const nodes: AdminCoherenceSourceNode[] = []
308
+ const stack: AdminCoherenceTreeNode[] = [...roots]
309
+
310
+ while (stack.length) {
311
+ const n = stack.pop()!
312
+
313
+ nodes.push({ tag: n.tag, value: n.value, metadata: n.metadata })
314
+ stack.push(...n.children)
315
+ }
316
+
317
+ return adminCoherenceField(
318
+ nodes,
319
+ { tag: "venue", value: entity.name, metadata: { resolver_country: entity.country } },
320
+ undefined
321
+ )
322
+ }
package/api-engine.ts CHANGED
@@ -28,25 +28,26 @@
28
28
  import { existsSync, readdirSync, readFileSync } from "node:fs"
29
29
  import { fileURLToPath } from "node:url"
30
30
 
31
- import type { BatchRow, GeocodeOutcome, HealthData, MailwomanAPIEngine, ResolveTreeOutcome } from "@mailwoman/api"
31
+ import type {
32
+ BatchResultEntry,
33
+ GeocodeCallback,
34
+ GeocodeOutcome,
35
+ HealthData,
36
+ MailwomanAPIEngine,
37
+ ResolveTreeOutcome,
38
+ } from "@mailwoman/api"
32
39
  import { recordTimed } from "@mailwoman/api-kit"
33
40
  import { decodeAsTuples, decodeAsXML } from "@mailwoman/core"
34
41
  import type { AddressTree } from "@mailwoman/core/decoder"
35
42
  import { $public } from "@mailwoman/core/env"
36
- import { tryParsingJSON } from "@mailwoman/core/objects"
43
+ import { isPresent, tryParsingJSON } from "@mailwoman/core/objects"
37
44
  import { deriveInputMode } from "@mailwoman/core/pipeline"
38
45
  import { classifyKindSync } from "@mailwoman/kind-classifier"
39
46
  import { computeQueryShape } from "@mailwoman/query-shape"
40
47
  import { createWOFResolver, type Resolver, type ResolveOpts } from "@mailwoman/resolver"
41
48
 
42
49
  import { readReleaseManifest } from "./data-release.ts"
43
- import {
44
- geocodeAddress,
45
- type GeocodeClassifier,
46
- type GeocodeResult,
47
- regionSlugFromTree,
48
- ShardProvider,
49
- } from "./geocode-core.ts"
50
+ import { geocodeAddress, type GeocodeClassifier, regionSlugFromTree, ShardProvider } from "./geocode-core.ts"
50
51
  import { INTERP_RADIUS_CALIBRATION, interpCalibrationForRegion } from "./interp-calibration.ts"
51
52
  import {
52
53
  buildNoGazetteerMessage,
@@ -81,7 +82,7 @@ function wofPaths(): string[] {
81
82
  return env
82
83
  .split(",")
83
84
  .map((p) => p.trim())
84
- .filter(Boolean)
85
+ .filter(isPresent)
85
86
 
86
87
  return wofShardPaths().filter((p) => existsSync(p))
87
88
  }
@@ -120,7 +121,7 @@ function readModelCard(): Record<string, unknown> | null {
120
121
  /* package not resolvable from here — fall through */
121
122
  }
122
123
 
123
- candidates.push("neural-weights-en-us/model-card.json")
124
+ candidates.push("packages/neural-weights-en-us/model-card.json")
124
125
 
125
126
  for (const p of candidates) {
126
127
  try {
@@ -188,7 +189,7 @@ function oneGeocode(
188
189
  deps: GeocodeDepsBundle,
189
190
  address: string,
190
191
  inputMode?: "fragmented" | "formatted"
191
- ): Promise<GeocodeResult> {
192
+ ): Promise<GeocodeOutcome> {
192
193
  return geocodeAddress(address, {
193
194
  classifier: deps.classifier,
194
195
  resolver: deps.resolver,
@@ -295,11 +296,11 @@ export async function createServeEngine(): Promise<ServeEngine> {
295
296
  // Candidate backend → country-agnostic default (demo's global, population-first behavior); a per-request `country`
296
297
  // still scopes. FTS backend keeps the US default. (#170) A candidate DB alone (no WOF admin shard) is a valid boot
297
298
  // configuration — `createResolverBackend` prefers it over `wofPaths` — so the preflight gate below checks BOTH,
298
- // mirroring the drop-ins' `!candidateDb && wofPaths.length === 0` gate rather than `GeocodeRouter`'s WOF-only check.
299
+ // mirroring the drop-ins' `!candidateDB && wofPaths.length === 0` gate rather than `GeocodeRouter`'s WOF-only check.
299
300
  // This gate governs geocode/batch/resolveTree/reload ONLY — `parse` is already wired above and unaffected.
300
- const candidateDb = resolveCandidateDBPath()
301
+ const candidateDB = resolveCandidateDBPath()
301
302
 
302
- if (!paths.length && !candidateDb) {
303
+ if (!paths.length && !candidateDB) {
303
304
  console.error("createServeEngine: no WOF DBs found — set MAILWOMAN_WOF_DB or MAILWOMAN_CANDIDATE_DB")
304
305
 
305
306
  return { engine: { parse, health }, preflight: { ok: false, message: buildPreflightMessage() } }
@@ -308,13 +309,12 @@ export async function createServeEngine(): Promise<ServeEngine> {
308
309
  const backend = createResolverBackend(resolverMod, { wofPaths: paths })
309
310
  const resolver = createWOFResolver(backend)
310
311
  const shards = new ShardProvider(resolverMod, DATA_ROOT)
311
- const deps: GeocodeDepsBundle = { classifier, resolver, shards, defaultCountry: candidateDb ? undefined : "US" }
312
+ const deps: GeocodeDepsBundle = { classifier, resolver, shards, defaultCountry: candidateDB ? undefined : "US" }
312
313
 
313
314
  // Route records the whole-call metric already (`@mailwoman/api`'s `routes.ts`) — the engine records nothing extra
314
315
  // here. Ported from `GeocodeRouter`'s `singleHandler`. The cast mirrors `@mailwoman/api/routes.ts`'s established
315
316
  // "documented wire shape looser than the domain type" idiom — `GeocodeOutcome` is a deliberately loose passthrough.
316
- const geocode: MailwomanAPIEngine["geocode"] = async (address, opts) =>
317
- (await oneGeocode(deps, address, opts?.inputMode)) as unknown as GeocodeOutcome
317
+ const geocode: GeocodeCallback = async (address, opts) => oneGeocode(deps, address, opts?.inputMode)
318
318
 
319
319
  // Sequential loop — results land in input order; a thrown row is isolated to its own
320
320
  // `{ input, error }` slot. Rows are trimmed here (the route passes the raw validated array through).
@@ -329,7 +329,7 @@ export async function createServeEngine(): Promise<ServeEngine> {
329
329
  // Decision A endpoint default: batch rows are the record register.
330
330
  const inputMode = opts?.inputMode ?? "formatted"
331
331
  const inputs = addresses.map((a) => a.trim())
332
- const results: BatchRow[] = new Array<BatchRow>(inputs.length)
332
+ const results: BatchResultEntry[] = new Array<BatchResultEntry>(inputs.length)
333
333
 
334
334
  for (let i = 0; i < inputs.length; i++) {
335
335
  const input = inputs[i]!
@@ -338,7 +338,7 @@ export async function createServeEngine(): Promise<ServeEngine> {
338
338
  try {
339
339
  const result = await oneGeocode(deps, input, inputMode)
340
340
  recordTimed(performance.now() - t0, result.resolution_tier)
341
- results[i] = result as unknown as GeocodeOutcome
341
+ results[i] = result
342
342
  } catch (error) {
343
343
  recordTimed(performance.now() - t0, "error")
344
344
  results[i] = { input, error: error instanceof Error ? error.message : String(error) }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Framework-free FST autocomplete shared by CLI and library-facing adapters.
7
+ */
8
+
9
+ import { existsSync, readFileSync } from "node:fs"
10
+
11
+ import { $public } from "@mailwoman/core/env"
12
+ import { CommandError } from "@mailwoman/core/scripting/command"
13
+ import { dataRootPath } from "@mailwoman/core/utils"
14
+
15
+ /**
16
+ * Resolve the FST artifact from an explicit flag, environment, or the application data directory.
17
+ *
18
+ * The filename is LOWERCASE on both halves of the locale tag, because that is what the builder writes
19
+ * (`gazetteer-pipeline/fst.ts`'s artifact list). A `fst-en-US.bin` default resolves to nothing on every machine, and
20
+ * the command reports it as a missing artifact rather than as a name it got wrong.
21
+ */
22
+ export function resolveFSTPath(explicitPath?: string): string {
23
+ return explicitPath ?? $public.MAILWOMAN_FST_BIN ?? dataRootPath("wof", "fst-per-locale", "fst-en-us.bin")
24
+ }
25
+
26
+ /**
27
+ * One ranked FST completion.
28
+ */
29
+ export interface AutocompleteEntry {
30
+ name: string
31
+ placetype: string
32
+ wofID: number
33
+ referential: number
34
+ encyclopedic?: number
35
+ completionTokens: string[]
36
+ }
37
+
38
+ /**
39
+ * Load an FST artifact and return ranked prefix completions.
40
+ */
41
+ export async function runAutocomplete(
42
+ prefix: string,
43
+ opts: { fstPath: string; limit?: number }
44
+ ): Promise<AutocompleteEntry[]> {
45
+ if (!existsSync(opts.fstPath)) {
46
+ throw new CommandError(
47
+ `FST binary not found at ${opts.fstPath}.\n` +
48
+ "Pass --fst <path>, set $MAILWOMAN_FST_BIN, or build it with `mailwoman gazetteer build fst`."
49
+ )
50
+ }
51
+
52
+ let buffer: Buffer
53
+
54
+ try {
55
+ buffer = readFileSync(opts.fstPath)
56
+ } catch (error) {
57
+ throw new CommandError(`Failed to read FST binary at ${opts.fstPath}`, { cause: error })
58
+ }
59
+
60
+ const [{ deserializeFST }, { autocomplete }] = await Promise.all([
61
+ import("@mailwoman/resolver-wof-sqlite/fst-serialize"),
62
+ import("@mailwoman/resolver-wof-sqlite/fst-autocomplete"),
63
+ ])
64
+
65
+ let matcher
66
+
67
+ try {
68
+ matcher = deserializeFST(buffer)
69
+ } catch (error) {
70
+ throw new CommandError(`Malformed FST binary at ${opts.fstPath}`, { cause: error })
71
+ }
72
+
73
+ return autocomplete(matcher, prefix, { maxSuggestions: opts.limit ?? 10 }).suggestions.map((suggestion) => ({
74
+ name: suggestion.name,
75
+ placetype: suggestion.placetype,
76
+ wofID: suggestion.wofID,
77
+ referential: suggestion.referential,
78
+ ...(suggestion.encyclopedic === undefined ? {} : { encyclopedic: suggestion.encyclopedic }),
79
+ completionTokens: suggestion.completionTokens,
80
+ }))
81
+ }
82
+
83
+ /**
84
+ * Render ranked completions for a terminal.
85
+ */
86
+ export function formatAutocomplete(entries: readonly AutocompleteEntry[]): string {
87
+ if (!entries.length) return "(no completions)"
88
+
89
+ return entries
90
+ .map((entry, index) => {
91
+ const completion = entry.completionTokens.length ? ` [+${entry.completionTokens.join(" ")}]` : ""
92
+ const encyclopedic = entry.encyclopedic === undefined ? "" : `, enc:${entry.encyclopedic.toFixed(4)}`
93
+
94
+ return `${String(index + 1).padStart(2)}. ${entry.name}${completion} (${entry.placetype}, wof:${entry.wofID}, ref:${entry.referential.toFixed(4)}${encyclopedic})`
95
+ })
96
+ .join("\n")
97
+ }
package/cli-kit/dropin.ts CHANGED
@@ -18,7 +18,7 @@
18
18
  * three drop-ins already declare `mailwoman` as a dependency, so landing the whole thing here adds
19
19
  * no dependency to anyone.
20
20
  *
21
- * WHY IT IS NOT IN `cli-kit/index.ts`: that barrel is the Pastel/Ink toolkit for
21
+ * WHY IT IS NOT IN `cli-kit/index.ts`: that barrel is the Ink toolkit for
22
22
  * `mailwoman/commands/*` and imports `ink` + `react`. The drop-ins are plain `parseArgs` scripts
23
23
  * that render no UI, and `npx @mailwoman/libpostal serve` should not pay for a TUI runtime to
24
24
  * start an HTTP server. Hence a standalone module with its own `mailwoman/cli-kit/dropin`
@@ -99,7 +99,7 @@ export interface GazetteerPaths {
99
99
  /**
100
100
  * The candidate gazetteer (worldwide resolution), when one was found.
101
101
  */
102
- candidateDb: string | undefined
102
+ candidateDB: string | undefined
103
103
  /**
104
104
  * The WOF admin FTS shards that exist on disk.
105
105
  */
@@ -127,13 +127,13 @@ export function resolveGazetteerOrExit(candidateDBFlag: string | undefined): Gaz
127
127
  // Candidate gazetteer = worldwide resolution (population-first ranking + global coverage + the FTS5-trigram typo
128
128
  // fallback). --candidate-db, else $MAILWOMAN_CANDIDATE_DB, else the `<data-root>/wof/candidate.db` convention
129
129
  // path. Absent → the admin FTS shards.
130
- const candidateDb = resolveCandidateDBPath(candidateDBFlag)
130
+ const candidateDB = resolveCandidateDBPath(candidateDBFlag)
131
131
 
132
- if (!candidateDb && !wofPaths.length) {
132
+ if (!candidateDB && !wofPaths.length) {
133
133
  fail(buildNoGazetteerMessage({ dataRoot: mailwomanDataRoot(), docsPath: GAZETTEER_DOCS_PATH }))
134
134
  }
135
135
 
136
- return { adminDBPath: wofPaths[0], candidateDb, wofPaths }
136
+ return { adminDBPath: wofPaths[0], candidateDB, wofPaths }
137
137
  }
138
138
 
139
139
  /**
@@ -147,11 +147,11 @@ export function corsBannerLine(cors: boolean): string {
147
147
  * The `wof:` + `resolver:` lines of a geocoding drop-in's startup banner — which gazetteer the process actually opened,
148
148
  * and (when it fell back to admin-only) the flag that widens it.
149
149
  */
150
- export function gazetteerBannerLines({ adminDBPath, candidateDb }: GazetteerPaths): string[] {
150
+ export function gazetteerBannerLines({ adminDBPath, candidateDB }: GazetteerPaths): string[] {
151
151
  return [
152
152
  ` wof: ${adminDBPath ?? "(none found — set MAILWOMAN_WOF_DB)"}`,
153
- candidateDb
154
- ? ` resolver: candidate gazetteer (worldwide) — ${candidateDb}`
153
+ candidateDB
154
+ ? ` resolver: candidate gazetteer (worldwide) — ${candidateDB}`
155
155
  : ` resolver: admin-only (US-optimized) — point --candidate-db / $MAILWOMAN_CANDIDATE_DB at a candidate gazetteer for worldwide`,
156
156
  ]
157
157
  }