@mailwoman/resolver-wof-sqlite 10.0.0 → 10.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 (477) hide show
  1. package/README.md +9 -8
  2. package/lib/address/point/interpolation.ts +45 -39
  3. package/lib/address/point/schema.ts +17 -40
  4. package/lib/address/point.ts +316 -0
  5. package/lib/{address/index.ts → address.ts} +1 -1
  6. package/lib/ancestry/backfill.ts +20 -86
  7. package/lib/{ancestry/index.ts → ancestry.ts} +19 -15
  8. package/lib/build/candidate.ts +122 -174
  9. package/lib/build/population-corrections.ts +64 -0
  10. package/lib/build/slim.ts +44 -114
  11. package/lib/candidate/alias-bags.ts +16 -17
  12. package/lib/candidate/ancestors/schema.ts +77 -61
  13. package/lib/candidate/ancestors/sidecar.ts +15 -22
  14. package/lib/candidate/country-display-names.ts +6 -20
  15. package/lib/candidate/extract-fold.ts +10 -55
  16. package/lib/candidate/fts.ts +5 -23
  17. package/lib/candidate/importance.ts +65 -68
  18. package/lib/candidate/lookup.ts +124 -415
  19. package/lib/candidate/name-roles.ts +15 -33
  20. package/lib/candidate/own-name.ts +35 -32
  21. package/lib/candidate/place-attrs.ts +20 -13
  22. package/lib/candidate/schema.ts +29 -65
  23. package/lib/candidate/scoring.ts +54 -93
  24. package/lib/capital-schema.ts +21 -17
  25. package/lib/capitals.ts +29 -27
  26. package/lib/coincident-roles.ts +85 -55
  27. package/lib/convention/schema.ts +15 -16
  28. package/lib/convention.ts +144 -0
  29. package/lib/coverage-manifest-schema.ts +40 -45
  30. package/lib/currency-backfill.ts +34 -79
  31. package/lib/env.ts +1 -1
  32. package/lib/exact-match.ts +32 -21
  33. package/lib/extracts.ts +97 -74
  34. package/lib/fst/autocomplete.ts +54 -37
  35. package/lib/fst/builder.ts +37 -41
  36. package/lib/fst/deserialize-web.ts +16 -17
  37. package/lib/fst/format.ts +41 -23
  38. package/lib/fst/freshness.ts +43 -120
  39. package/lib/fst/matcher.ts +7 -5
  40. package/lib/fst/serialize.ts +54 -74
  41. package/lib/fst/types.ts +78 -75
  42. package/lib/{fst/index.ts → fst.ts} +1 -0
  43. package/lib/fts/query.ts +5 -36
  44. package/lib/fts.ts +280 -0
  45. package/lib/geonames/aliases.ts +73 -144
  46. package/lib/geonames/postal.ts +162 -71
  47. package/lib/index.ts +9 -8
  48. package/lib/interpolation.ts +48 -100
  49. package/lib/lookup.ts +155 -270
  50. package/lib/name-score.ts +9 -7
  51. package/lib/nsul/lookup.ts +37 -54
  52. package/lib/nsul/schema.ts +16 -43
  53. package/lib/paths.ts +159 -0
  54. package/lib/place-importance-schema.ts +62 -169
  55. package/lib/poi/lookup.ts +104 -121
  56. package/lib/poi/schema.ts +42 -26
  57. package/lib/polygon-schema.ts +10 -6
  58. package/lib/postal/city/alias/lookup.ts +22 -40
  59. package/lib/postal/city/alias/schema.ts +14 -10
  60. package/lib/postal/city/candidate-schema.ts +26 -20
  61. package/lib/postcode-point-lookup.ts +8 -27
  62. package/lib/primary-preference.ts +46 -126
  63. package/lib/proximity-rerank.ts +44 -33
  64. package/lib/ranking-weights.ts +105 -78
  65. package/lib/region-keys.ts +70 -42
  66. package/lib/reverse.ts +149 -86
  67. package/lib/schema.ts +73 -50
  68. package/lib/search-fetch.ts +90 -68
  69. package/lib/sqlite/convention-source.ts +15 -23
  70. package/lib/sqlite/utils.ts +19 -22
  71. package/lib/street/centroid/schema.ts +37 -42
  72. package/lib/street/{centroid/index.ts → centroid.ts} +16 -25
  73. package/lib/street/morphology/fst/builder.ts +60 -42
  74. package/lib/street/morphology/fst/loader.ts +40 -32
  75. package/lib/street/name-lookup.ts +45 -41
  76. package/lib/street/normalize.ts +88 -219
  77. package/lib/street/segment-schema.ts +116 -43
  78. package/lib/{street/index.ts → street.ts} +1 -1
  79. package/lib/types.ts +109 -150
  80. package/lib/unified-schema.ts +29 -29
  81. package/lib/uprn/existence.ts +30 -19
  82. package/lib/uprn/lookup.ts +29 -68
  83. package/lib/uprn/schema.ts +18 -40
  84. package/lib/weights-overlay-linker.ts +236 -252
  85. package/out/address/point/interpolation.d.ts +20 -23
  86. package/out/address/point/interpolation.d.ts.map +1 -1
  87. package/out/address/point/interpolation.js +42 -39
  88. package/out/address/point/interpolation.js.map +1 -1
  89. package/out/address/point/schema.d.ts +12 -35
  90. package/out/address/point/schema.d.ts.map +1 -1
  91. package/out/address/point/schema.js +3 -19
  92. package/out/address/point/schema.js.map +1 -1
  93. package/out/address/point.d.ts +57 -0
  94. package/out/address/point.d.ts.map +1 -0
  95. package/out/address/point.js +206 -0
  96. package/out/address/point.js.map +1 -0
  97. package/out/{address/index.js → address.d.ts} +2 -2
  98. package/out/address.d.ts.map +1 -0
  99. package/out/{address/index.d.ts → address.js} +2 -2
  100. package/out/address.js.map +1 -0
  101. package/out/ancestry/backfill.d.ts +11 -64
  102. package/out/ancestry/backfill.d.ts.map +1 -1
  103. package/out/ancestry/backfill.js +14 -74
  104. package/out/ancestry/backfill.js.map +1 -1
  105. package/out/ancestry.d.ts +49 -0
  106. package/out/ancestry.d.ts.map +1 -0
  107. package/out/ancestry.js +59 -0
  108. package/out/ancestry.js.map +1 -0
  109. package/out/build/candidate.d.ts +82 -112
  110. package/out/build/candidate.d.ts.map +1 -1
  111. package/out/build/candidate.js +17 -100
  112. package/out/build/candidate.js.map +1 -1
  113. package/out/build/population-corrections.d.ts +52 -0
  114. package/out/build/population-corrections.d.ts.map +1 -0
  115. package/out/build/population-corrections.js +40 -0
  116. package/out/build/population-corrections.js.map +1 -0
  117. package/out/build/slim.d.ts +8 -44
  118. package/out/build/slim.d.ts.map +1 -1
  119. package/out/build/slim.js +33 -94
  120. package/out/build/slim.js.map +1 -1
  121. package/out/candidate/alias-bags.d.ts +6 -6
  122. package/out/candidate/alias-bags.d.ts.map +1 -1
  123. package/out/candidate/alias-bags.js +16 -17
  124. package/out/candidate/alias-bags.js.map +1 -1
  125. package/out/candidate/ancestors/schema.d.ts +73 -57
  126. package/out/candidate/ancestors/schema.d.ts.map +1 -1
  127. package/out/candidate/ancestors/schema.js +56 -48
  128. package/out/candidate/ancestors/schema.js.map +1 -1
  129. package/out/candidate/ancestors/sidecar.d.ts +3 -8
  130. package/out/candidate/ancestors/sidecar.d.ts.map +1 -1
  131. package/out/candidate/ancestors/sidecar.js +15 -22
  132. package/out/candidate/ancestors/sidecar.js.map +1 -1
  133. package/out/candidate/country-display-names.d.ts +5 -15
  134. package/out/candidate/country-display-names.d.ts.map +1 -1
  135. package/out/candidate/country-display-names.js +6 -20
  136. package/out/candidate/country-display-names.js.map +1 -1
  137. package/out/candidate/extract-fold.d.ts +7 -15
  138. package/out/candidate/extract-fold.d.ts.map +1 -1
  139. package/out/candidate/extract-fold.js +5 -47
  140. package/out/candidate/extract-fold.js.map +1 -1
  141. package/out/candidate/fts.d.ts +5 -23
  142. package/out/candidate/fts.d.ts.map +1 -1
  143. package/out/candidate/fts.js +5 -23
  144. package/out/candidate/fts.js.map +1 -1
  145. package/out/candidate/importance.d.ts +60 -65
  146. package/out/candidate/importance.d.ts.map +1 -1
  147. package/out/candidate/importance.js +56 -63
  148. package/out/candidate/importance.js.map +1 -1
  149. package/out/candidate/lookup.d.ts +18 -55
  150. package/out/candidate/lookup.d.ts.map +1 -1
  151. package/out/candidate/lookup.js +82 -385
  152. package/out/candidate/lookup.js.map +1 -1
  153. package/out/candidate/name-roles.d.ts +9 -21
  154. package/out/candidate/name-roles.d.ts.map +1 -1
  155. package/out/candidate/name-roles.js +15 -33
  156. package/out/candidate/name-roles.js.map +1 -1
  157. package/out/candidate/own-name.d.ts +23 -25
  158. package/out/candidate/own-name.d.ts.map +1 -1
  159. package/out/candidate/own-name.js +35 -32
  160. package/out/candidate/own-name.js.map +1 -1
  161. package/out/candidate/place-attrs.d.ts +20 -13
  162. package/out/candidate/place-attrs.d.ts.map +1 -1
  163. package/out/candidate/place-attrs.js +4 -5
  164. package/out/candidate/place-attrs.js.map +1 -1
  165. package/out/candidate/schema.d.ts +27 -62
  166. package/out/candidate/schema.d.ts.map +1 -1
  167. package/out/candidate/schema.js +10 -22
  168. package/out/candidate/schema.js.map +1 -1
  169. package/out/candidate/scoring.d.ts +7 -8
  170. package/out/candidate/scoring.d.ts.map +1 -1
  171. package/out/candidate/scoring.js +52 -89
  172. package/out/candidate/scoring.js.map +1 -1
  173. package/out/capital-schema.d.ts +21 -17
  174. package/out/capital-schema.d.ts.map +1 -1
  175. package/out/capital-schema.js +17 -15
  176. package/out/capital-schema.js.map +1 -1
  177. package/out/capitals.d.ts +27 -25
  178. package/out/capitals.d.ts.map +1 -1
  179. package/out/capitals.js +23 -21
  180. package/out/capitals.js.map +1 -1
  181. package/out/coincident-roles.d.ts +60 -43
  182. package/out/coincident-roles.d.ts.map +1 -1
  183. package/out/coincident-roles.js +72 -50
  184. package/out/coincident-roles.js.map +1 -1
  185. package/out/convention/schema.d.ts +14 -14
  186. package/out/convention/schema.d.ts.map +1 -1
  187. package/out/convention/schema.js +6 -4
  188. package/out/convention/schema.js.map +1 -1
  189. package/out/convention.d.ts +97 -0
  190. package/out/convention.d.ts.map +1 -0
  191. package/out/convention.js +81 -0
  192. package/out/convention.js.map +1 -0
  193. package/out/coverage-manifest-schema.d.ts +34 -39
  194. package/out/coverage-manifest-schema.d.ts.map +1 -1
  195. package/out/coverage-manifest-schema.js +25 -34
  196. package/out/coverage-manifest-schema.js.map +1 -1
  197. package/out/currency-backfill.d.ts +16 -38
  198. package/out/currency-backfill.d.ts.map +1 -1
  199. package/out/currency-backfill.js +19 -46
  200. package/out/currency-backfill.js.map +1 -1
  201. package/out/env.d.ts +1 -1
  202. package/out/env.js +1 -1
  203. package/out/exact-match.d.ts +19 -10
  204. package/out/exact-match.d.ts.map +1 -1
  205. package/out/exact-match.js +32 -21
  206. package/out/exact-match.js.map +1 -1
  207. package/out/extracts.d.ts +66 -55
  208. package/out/extracts.d.ts.map +1 -1
  209. package/out/extracts.js +63 -55
  210. package/out/extracts.js.map +1 -1
  211. package/out/fst/autocomplete.d.ts +29 -21
  212. package/out/fst/autocomplete.d.ts.map +1 -1
  213. package/out/fst/autocomplete.js +39 -28
  214. package/out/fst/autocomplete.js.map +1 -1
  215. package/out/fst/builder.d.ts.map +1 -1
  216. package/out/fst/builder.js +37 -41
  217. package/out/fst/builder.js.map +1 -1
  218. package/out/fst/deserialize-web.d.ts +4 -4
  219. package/out/fst/deserialize-web.d.ts.map +1 -1
  220. package/out/fst/deserialize-web.js +15 -16
  221. package/out/fst/deserialize-web.js.map +1 -1
  222. package/out/fst/format.d.ts +41 -23
  223. package/out/fst/format.d.ts.map +1 -1
  224. package/out/fst/format.js +41 -23
  225. package/out/fst/format.js.map +1 -1
  226. package/out/fst/freshness.d.ts +19 -81
  227. package/out/fst/freshness.d.ts.map +1 -1
  228. package/out/fst/freshness.js +31 -94
  229. package/out/fst/freshness.js.map +1 -1
  230. package/out/fst/matcher.d.ts +5 -4
  231. package/out/fst/matcher.d.ts.map +1 -1
  232. package/out/fst/matcher.js +2 -2
  233. package/out/fst/matcher.js.map +1 -1
  234. package/out/fst/serialize.d.ts +28 -28
  235. package/out/fst/serialize.d.ts.map +1 -1
  236. package/out/fst/serialize.js +53 -71
  237. package/out/fst/serialize.js.map +1 -1
  238. package/out/fst/types.d.ts +78 -74
  239. package/out/fst/types.d.ts.map +1 -1
  240. package/out/fst/types.js +1 -4
  241. package/out/fst/types.js.map +1 -1
  242. package/out/{fst/index.js → fst.d.ts} +2 -1
  243. package/out/fst.d.ts.map +1 -0
  244. package/out/{fst/index.d.ts → fst.js} +2 -1
  245. package/out/fst.js.map +1 -0
  246. package/out/fts/query.d.ts +2 -27
  247. package/out/fts/query.d.ts.map +1 -1
  248. package/out/fts/query.js +5 -36
  249. package/out/fts/query.js.map +1 -1
  250. package/out/fts.d.ts +126 -0
  251. package/out/fts.d.ts.map +1 -0
  252. package/out/fts.js +188 -0
  253. package/out/fts.js.map +1 -0
  254. package/out/geonames/aliases.d.ts +26 -62
  255. package/out/geonames/aliases.d.ts.map +1 -1
  256. package/out/geonames/aliases.js +45 -117
  257. package/out/geonames/aliases.js.map +1 -1
  258. package/out/geonames/postal.d.ts +84 -44
  259. package/out/geonames/postal.d.ts.map +1 -1
  260. package/out/geonames/postal.js +115 -73
  261. package/out/geonames/postal.js.map +1 -1
  262. package/out/{geonames/index.js → geonames.d.ts} +1 -1
  263. package/out/geonames.d.ts.map +1 -0
  264. package/out/{geonames/index.d.ts → geonames.js} +1 -1
  265. package/out/geonames.js.map +1 -0
  266. package/out/index.d.ts +9 -8
  267. package/out/index.d.ts.map +1 -1
  268. package/out/index.js +6 -5
  269. package/out/index.js.map +1 -1
  270. package/out/interpolation.d.ts +18 -55
  271. package/out/interpolation.d.ts.map +1 -1
  272. package/out/interpolation.js +27 -69
  273. package/out/interpolation.js.map +1 -1
  274. package/out/lookup.d.ts +23 -51
  275. package/out/lookup.d.ts.map +1 -1
  276. package/out/lookup.js +136 -234
  277. package/out/lookup.js.map +1 -1
  278. package/out/name-score.d.ts +2 -2
  279. package/out/name-score.d.ts.map +1 -1
  280. package/out/name-score.js +9 -7
  281. package/out/name-score.js.map +1 -1
  282. package/out/nsul/lookup.d.ts +33 -34
  283. package/out/nsul/lookup.d.ts.map +1 -1
  284. package/out/nsul/lookup.js +26 -40
  285. package/out/nsul/lookup.js.map +1 -1
  286. package/out/nsul/schema.d.ts +16 -43
  287. package/out/nsul/schema.d.ts.map +1 -1
  288. package/out/nsul/schema.js +9 -35
  289. package/out/nsul/schema.js.map +1 -1
  290. package/out/{nsul/index.d.ts → nsul.d.ts} +1 -1
  291. package/out/nsul.d.ts.map +1 -0
  292. package/out/{nsul/index.js → nsul.js} +1 -1
  293. package/out/nsul.js.map +1 -0
  294. package/out/paths.d.ts +124 -0
  295. package/out/paths.d.ts.map +1 -0
  296. package/out/paths.js +104 -0
  297. package/out/paths.js.map +1 -0
  298. package/out/place-importance-schema.d.ts +51 -143
  299. package/out/place-importance-schema.d.ts.map +1 -1
  300. package/out/place-importance-schema.js +28 -143
  301. package/out/place-importance-schema.js.map +1 -1
  302. package/out/poi/lookup.d.ts +40 -47
  303. package/out/poi/lookup.d.ts.map +1 -1
  304. package/out/poi/lookup.js +69 -96
  305. package/out/poi/lookup.js.map +1 -1
  306. package/out/poi/schema.d.ts +41 -25
  307. package/out/poi/schema.d.ts.map +1 -1
  308. package/out/poi/schema.js +25 -17
  309. package/out/poi/schema.js.map +1 -1
  310. package/out/{poi/index.js → poi.d.ts} +1 -1
  311. package/out/poi.d.ts.map +1 -0
  312. package/out/{poi/index.d.ts → poi.js} +1 -1
  313. package/out/poi.js.map +1 -0
  314. package/out/polygon-schema.d.ts +10 -6
  315. package/out/polygon-schema.d.ts.map +1 -1
  316. package/out/polygon-schema.js +2 -2
  317. package/out/polygon-schema.js.map +1 -1
  318. package/out/postal/city/alias/lookup.d.ts +20 -23
  319. package/out/postal/city/alias/lookup.d.ts.map +1 -1
  320. package/out/postal/city/alias/lookup.js +17 -30
  321. package/out/postal/city/alias/lookup.js.map +1 -1
  322. package/out/postal/city/alias/schema.d.ts +14 -10
  323. package/out/postal/city/alias/schema.d.ts.map +1 -1
  324. package/out/postal/city/alias/schema.js +10 -8
  325. package/out/postal/city/alias/schema.js.map +1 -1
  326. package/out/postal/city/candidate-schema.d.ts +25 -19
  327. package/out/postal/city/candidate-schema.d.ts.map +1 -1
  328. package/out/postal/city/candidate-schema.js +21 -17
  329. package/out/postal/city/candidate-schema.js.map +1 -1
  330. package/out/{postal/index.d.ts → postal.d.ts} +1 -1
  331. package/out/postal.d.ts.map +1 -0
  332. package/out/{postal/index.js → postal.js} +1 -1
  333. package/out/postal.js.map +1 -0
  334. package/out/postcode-point-lookup.d.ts +6 -24
  335. package/out/postcode-point-lookup.d.ts.map +1 -1
  336. package/out/postcode-point-lookup.js +5 -17
  337. package/out/postcode-point-lookup.js.map +1 -1
  338. package/out/primary-preference.d.ts +38 -92
  339. package/out/primary-preference.d.ts.map +1 -1
  340. package/out/primary-preference.js +15 -99
  341. package/out/primary-preference.js.map +1 -1
  342. package/out/proximity-rerank.d.ts +41 -30
  343. package/out/proximity-rerank.d.ts.map +1 -1
  344. package/out/proximity-rerank.js +38 -29
  345. package/out/proximity-rerank.js.map +1 -1
  346. package/out/ranking-weights.d.ts +98 -64
  347. package/out/ranking-weights.d.ts.map +1 -1
  348. package/out/ranking-weights.js +26 -25
  349. package/out/ranking-weights.js.map +1 -1
  350. package/out/region-keys.d.ts +50 -31
  351. package/out/region-keys.d.ts.map +1 -1
  352. package/out/region-keys.js +68 -40
  353. package/out/region-keys.js.map +1 -1
  354. package/out/reverse.d.ts +78 -50
  355. package/out/reverse.d.ts.map +1 -1
  356. package/out/reverse.js +98 -61
  357. package/out/reverse.js.map +1 -1
  358. package/out/schema.d.ts +72 -49
  359. package/out/schema.d.ts.map +1 -1
  360. package/out/schema.js +4 -5
  361. package/out/schema.js.map +1 -1
  362. package/out/search-fetch.d.ts +16 -12
  363. package/out/search-fetch.d.ts.map +1 -1
  364. package/out/search-fetch.js +83 -63
  365. package/out/search-fetch.js.map +1 -1
  366. package/out/sqlite/convention-source.d.ts +12 -16
  367. package/out/sqlite/convention-source.d.ts.map +1 -1
  368. package/out/sqlite/convention-source.js +13 -22
  369. package/out/sqlite/convention-source.js.map +1 -1
  370. package/out/sqlite/utils.d.ts +19 -19
  371. package/out/sqlite/utils.d.ts.map +1 -1
  372. package/out/sqlite/utils.js +14 -15
  373. package/out/sqlite/utils.js.map +1 -1
  374. package/out/street/centroid/schema.d.ts +37 -42
  375. package/out/street/centroid/schema.d.ts.map +1 -1
  376. package/out/street/centroid/schema.js +9 -21
  377. package/out/street/centroid/schema.js.map +1 -1
  378. package/out/street/centroid.d.ts +30 -0
  379. package/out/street/centroid.d.ts.map +1 -0
  380. package/out/street/{centroid/index.js → centroid.js} +13 -24
  381. package/out/street/centroid.js.map +1 -0
  382. package/out/street/morphology/fst/builder.d.ts +20 -10
  383. package/out/street/morphology/fst/builder.d.ts.map +1 -1
  384. package/out/street/morphology/fst/builder.js +44 -34
  385. package/out/street/morphology/fst/builder.js.map +1 -1
  386. package/out/street/morphology/fst/loader.d.ts +33 -26
  387. package/out/street/morphology/fst/loader.d.ts.map +1 -1
  388. package/out/street/morphology/fst/loader.js +23 -22
  389. package/out/street/morphology/fst/loader.js.map +1 -1
  390. package/out/street/name-lookup.d.ts +24 -18
  391. package/out/street/name-lookup.d.ts.map +1 -1
  392. package/out/street/name-lookup.js +34 -35
  393. package/out/street/name-lookup.js.map +1 -1
  394. package/out/street/normalize.d.ts +35 -136
  395. package/out/street/normalize.d.ts.map +1 -1
  396. package/out/street/normalize.js +77 -194
  397. package/out/street/normalize.js.map +1 -1
  398. package/out/street/segment-schema.d.ts +79 -39
  399. package/out/street/segment-schema.d.ts.map +1 -1
  400. package/out/street/segment-schema.js +71 -21
  401. package/out/street/segment-schema.js.map +1 -1
  402. package/out/{street/index.js → street.d.ts} +2 -2
  403. package/out/street.d.ts.map +1 -0
  404. package/out/{street/index.d.ts → street.js} +2 -2
  405. package/out/street.js.map +1 -0
  406. package/out/types.d.ts +84 -149
  407. package/out/types.d.ts.map +1 -1
  408. package/out/types.js +0 -6
  409. package/out/types.js.map +1 -1
  410. package/out/unified-schema.d.ts +8 -12
  411. package/out/unified-schema.d.ts.map +1 -1
  412. package/out/unified-schema.js +29 -29
  413. package/out/unified-schema.js.map +1 -1
  414. package/out/uprn/existence.d.ts +28 -17
  415. package/out/uprn/existence.d.ts.map +1 -1
  416. package/out/uprn/existence.js +26 -16
  417. package/out/uprn/existence.js.map +1 -1
  418. package/out/uprn/lookup.d.ts +14 -44
  419. package/out/uprn/lookup.d.ts.map +1 -1
  420. package/out/uprn/lookup.js +21 -57
  421. package/out/uprn/lookup.js.map +1 -1
  422. package/out/uprn/schema.d.ts +18 -40
  423. package/out/uprn/schema.d.ts.map +1 -1
  424. package/out/uprn/schema.js +10 -32
  425. package/out/uprn/schema.js.map +1 -1
  426. package/out/{uprn/index.d.ts → uprn.d.ts} +1 -1
  427. package/out/uprn.d.ts.map +1 -0
  428. package/out/{uprn/index.js → uprn.js} +1 -1
  429. package/out/uprn.js.map +1 -0
  430. package/out/weights-overlay-linker.d.ts +138 -144
  431. package/out/weights-overlay-linker.d.ts.map +1 -1
  432. package/out/weights-overlay-linker.js +105 -159
  433. package/out/weights-overlay-linker.js.map +1 -1
  434. package/package.json +91 -596
  435. package/lib/address/point/index.ts +0 -328
  436. package/lib/convention/index.ts +0 -154
  437. package/lib/fts/index.ts +0 -361
  438. package/out/address/index.d.ts.map +0 -1
  439. package/out/address/index.js.map +0 -1
  440. package/out/address/point/index.d.ts +0 -53
  441. package/out/address/point/index.d.ts.map +0 -1
  442. package/out/address/point/index.js +0 -222
  443. package/out/address/point/index.js.map +0 -1
  444. package/out/ancestry/index.d.ts +0 -45
  445. package/out/ancestry/index.d.ts.map +0 -1
  446. package/out/ancestry/index.js +0 -55
  447. package/out/ancestry/index.js.map +0 -1
  448. package/out/convention/index.d.ts +0 -106
  449. package/out/convention/index.d.ts.map +0 -1
  450. package/out/convention/index.js +0 -93
  451. package/out/convention/index.js.map +0 -1
  452. package/out/fst/index.d.ts.map +0 -1
  453. package/out/fst/index.js.map +0 -1
  454. package/out/fts/index.d.ts +0 -184
  455. package/out/fts/index.d.ts.map +0 -1
  456. package/out/fts/index.js +0 -277
  457. package/out/fts/index.js.map +0 -1
  458. package/out/geonames/index.d.ts.map +0 -1
  459. package/out/geonames/index.js.map +0 -1
  460. package/out/nsul/index.d.ts.map +0 -1
  461. package/out/nsul/index.js.map +0 -1
  462. package/out/poi/index.d.ts.map +0 -1
  463. package/out/poi/index.js.map +0 -1
  464. package/out/postal/index.d.ts.map +0 -1
  465. package/out/postal/index.js.map +0 -1
  466. package/out/street/centroid/index.d.ts +0 -40
  467. package/out/street/centroid/index.d.ts.map +0 -1
  468. package/out/street/centroid/index.js.map +0 -1
  469. package/out/street/index.d.ts.map +0 -1
  470. package/out/street/index.js.map +0 -1
  471. package/out/uprn/index.d.ts.map +0 -1
  472. package/out/uprn/index.js.map +0 -1
  473. /package/lib/{geonames/index.ts → geonames.ts} +0 -0
  474. /package/lib/{nsul/index.ts → nsul.ts} +0 -0
  475. /package/lib/{poi/index.ts → poi.ts} +0 -0
  476. /package/lib/{postal/index.ts → postal.ts} +0 -0
  477. /package/lib/{uprn/index.ts → uprn.ts} +0 -0
@@ -2,29 +2,26 @@
2
2
  * @copyright Sister Software
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
- * Shared development tooling for weights overlays: the symlink primitives every overlay linker uses, the
6
- * placetype-pair index build, and the manifest form ({@link materializeDevOverlay}) each locale's
7
- * `scripts/link-dev-weights.ts` declares itself in.
8
5
  */
9
- import { dataRootPath } from "@mailwoman/core/data-root";
10
- import { pathExists, readLocalJSONFile, readLocalTextFile, statPath, readLocalBuffer, statLink, } from "@mailwoman/core/fs/readers";
6
+ import { dataRootPath, weightsOverlayPath } from "@mailwoman/core/data-root";
7
+ import { readLocalJSONFile, readLocalTextFile, readLocalBuffer } from "@mailwoman/core/fs/readers";
8
+ import { pathExists, statPath, statLink } from "@mailwoman/core/fs/readers/stat";
11
9
  import { createSymbolicLink, makeDirectories, movePath, removePath, writeLocalTextFile, } from "@mailwoman/core/fs/writers";
12
10
  import { md5File } from "@mailwoman/core/hash";
13
11
  import { parseJSONStrict } from "@mailwoman/core/json";
14
- import { repoRootPath, workspacePath } from "@mailwoman/core/paths";
12
+ import { repoRootPath, repoRootPathBuilder, workspacePathBuilder } from "@mailwoman/core/paths";
15
13
  import { spawnProcessSync } from "@mailwoman/core/process";
16
14
  import { readReleaseConfig, repoCommittedSoftFeedSources } from "@mailwoman/core/release-config";
17
- import { weightsOverlayPath } from "@mailwoman/core/utils";
18
- import { resolvePath } from "path-ts";
19
15
  import { $public } from "#env";
20
16
  import { fstFreshnessWarning } from "#fst/freshness";
17
+ import { wofDatabasePath } from "#paths";
21
18
  /**
22
- * Replicate `ln -sf SRC DEST` ATOMICALLY: symlink under a temp name, then rename over the destination. A plain
23
- * unlink-then-symlink leaves a no-file window that concurrent vitest workers can hit mid-suite — bit CI on 2026-07-24.
24
- * rename(2) replaces the destination atomically.
19
+ * Replaces `dest` with a symlink to `src` by renaming a temporary link over it.
20
+ *
21
+ * The rename is atomic, so concurrent test workers never see `dest` missing.
25
22
  */
26
23
  export async function linkForce(src, dest) {
27
- const tmp = `${dest}.tmp-link`;
24
+ const tmp = `${dest.toString()}.tmp-link`;
28
25
  if (await pathExists(tmp)) {
29
26
  await removePath(tmp);
30
27
  }
@@ -32,7 +29,7 @@ export async function linkForce(src, dest) {
32
29
  await movePath(tmp, dest);
33
30
  }
34
31
  /**
35
- * Remove a leftover local file/symlink so the #1179 base-weights fallback engages.
32
+ * Removes a file or symlink at `dest` so that the runtime falls back to the base en-us weights.
36
33
  */
37
34
  export async function removeIfPresent(dest) {
38
35
  try {
@@ -45,11 +42,10 @@ export async function removeIfPresent(dest) {
45
42
  console.log(`removed stale local ${dest} (base fallback to en-us engages)`);
46
43
  }
47
44
  /**
48
- * Symlink one soft-feed sibling into an overlay, warning rather than failing when the source is absent.
45
+ * Symlinks one optional soft-feed artifact into an overlay and returns whether the source existed.
49
46
  *
50
- * Every one of these artifacts is OPTIONAL by design — the runtime has a fallback for each, so a fresh worktree that
51
- * has not built the gazetteer still geocodes. That is why the miss prints the consequence instead of throwing: the
52
- * operator needs to know which channel just resolved OFF, not to have the link step abort.
47
+ * A missing source prints `consequenceIfMissing` and does not throw, because the
48
+ * runtime has a fallback for every soft-feed artifact.
53
49
  */
54
50
  export async function linkSoftFeedSibling(source, destination, consequenceIfMissing) {
55
51
  if (!(await pathExists(source))) {
@@ -61,36 +57,29 @@ export async function linkSoftFeedSibling(source, destination, consequenceIfMiss
61
57
  return true;
62
58
  }
63
59
  /**
64
- * The calibrated pair-index emission bias every shipped artifact is built at today — the R5/R6/R9/R10/R11 bars were all
65
- * measured at δ=10 (each linker's own docstring carries its locale's receipt).
60
+ * The pair-index emission bias (δ) used by every shipped pair-index artifact.
66
61
  */
67
62
  export const PAIR_INDEX_DELTA = 10;
68
63
  /**
69
- * The decoder transition-entry bonus (TRANSITION-BETA build, 2026-07-24 — operator-approved β=5 from the
70
- * transition-level probe). en-nz deliberately builds WITHOUT one (unmeasured there): the two magnitudes are calibrated
71
- * independently, and a locale earning one says nothing about the other.
64
+ * The decoder transition-entry bonus (β).
65
+ * Only locales that were calibrated with it pass it.
72
66
  */
73
67
  export const PAIR_INDEX_TRANSITION_BETA = 5;
74
68
  /**
75
- * The WHOLE-EDGE parent-bias magnitude (#46, default-on 2026-08-04) at the verdict's recommended δ=5 — see
76
- * `docs/records/evals/2026-08-04-pix1-whole-edge-verdict.md`. Only the measured locales (us/gb/nz/fr) pass it; the
77
- * D-rule's answer to an unmeasured locale is a per-locale absence, not an inherited magnitude.
69
+ * The whole-edge parent-bias magnitude.
70
+ * Only locales that were calibrated with it pass it.
71
+ *
72
+ * Other locales omit the flag and do not inherit this value.
78
73
  */
79
74
  export const PAIR_INDEX_PARENT_DELTA = 5;
80
75
  /**
81
- * Minimal PIX1 header reader — magic + header only, reimplemented so a data-only weights package gains no dependency on
82
- * `@mailwoman/neural` (which pulls onnxruntime-node) to read a few fields. `neural/pair-index-resolver.ts`'s own header
83
- * parse is the source of truth this must follow.
76
+ * Reads the calibration fields from a PIX1 pair-index header without depending on `@mailwoman/neural`.
84
77
  *
85
- * Shared by the overlay build below AND by the four hand-written base linkers
86
- * (`neural-weights-{en-us,en-gb,en-nz,fr-fr}/scripts/link-dev-weights.ts`), which each carried their own near-copy
87
- * before 2026-08-04 — the ×5 clone the taste audit named, and the reason three of them were schema-blind while this one
88
- * was not.
78
+ * The parse must match the reader in `neural/lib/pair/index/resolver.ts`.
89
79
  */
90
80
  export async function peekPairIndexHeaderFields(path) {
91
81
  const bytes = await readLocalBuffer(path);
92
82
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
93
- // "PIX1" little-endian.
94
83
  const MAGIC = 0x31_58_49_50;
95
84
  if (view.getUint32(0, true) !== MAGIC) {
96
85
  throw new Error(`pair index: bad magic reading ${path}`);
@@ -105,20 +94,16 @@ export async function peekPairIndexHeaderFields(path) {
105
94
  sourceMD5s: header.sourceMD5s ?? [],
106
95
  };
107
96
  }
108
- /**
109
- * Hex characters in an md5 digest.
110
- */
111
97
  const MD5_HEX_LENGTH = 32;
98
+ // repo-health-ignore export-name-affix -- This variant caches the hash in a sidecar.
99
+ // `md5File` hashes every time.
112
100
  /**
113
- * Md5 of `path`, cached in a standard `md5sum`-format sidecar (`<hash> <filename>`) beside it so a multi-gigabyte
114
- * source is hashed once per change rather than once per linker run. The sidecar is trusted only when at least as new as
115
- * the source; a missing or stale sidecar recomputes and rewrites, so the cache self-heals.
101
+ * Returns the MD5 of `path`, cached in a `<path>.md5` sidecar in `md5sum` format.
116
102
  *
117
- * The shared home for the copies the base linkers (`en-us`, `en-gb`, `en-nz`) each carry — new callers import this one.
103
+ * The sidecar is used only when it is at least as new as the source.
118
104
  */
119
- // repo-health-ignore export-name-affix -- the sidecar cache IS the added behaviour; `md5File` hashes every time.
120
105
  export async function md5FileWithSidecar(path) {
121
- const sidecarPath = `${path}.md5`;
106
+ const sidecarPath = `${path.toString()}.md5`;
122
107
  const sourceStats = await statPath(path);
123
108
  if (await pathExists(sidecarPath)) {
124
109
  try {
@@ -128,9 +113,7 @@ export async function md5FileWithSidecar(path) {
128
113
  return hash;
129
114
  }
130
115
  }
131
- catch {
132
- // Unreadable sidecar — recompute below.
133
- }
116
+ catch { }
134
117
  }
135
118
  const hash = await md5File(path);
136
119
  const filename = path.split(/[/\\]/).pop() || path;
@@ -138,12 +121,10 @@ export async function md5FileWithSidecar(path) {
138
121
  return hash;
139
122
  }
140
123
  /**
141
- * Why an existing `pair-index-*.bin` is stale against `expected`, or `undefined` when its header matches. Covers the
142
- * FORMAT (schemaVersion) and every calibrated magnitude; source-md5 freshness stays with the caller, because each base
143
- * linker passes a different set of sources and only it knows what they are.
124
+ * Returns why a pair-index header's schema or magnitudes differ from `expected`,
125
+ * or `undefined` when they match.
144
126
  *
145
- * One place so a magnitude added to the header cannot be checked by some linkers and not others — which is exactly how
146
- * three of the four base linkers ended up unable to notice a schema bump.
127
+ * The caller checks the source MD5s because only the caller knows its sources.
147
128
  */
148
129
  export function pairIndexStaleReason(header, expected) {
149
130
  if (header.schemaVersion !== REQUIRED_PAIR_INDEX_SCHEMA) {
@@ -157,75 +138,49 @@ export function pairIndexStaleReason(header, expected) {
157
138
  if (header.parentDelta !== expected.parentDelta) {
158
139
  return `parentDelta ${header.parentDelta ?? "(absent)"} → ${expected.parentDelta ?? "(absent)"}`;
159
140
  }
160
- return undefined;
141
+ return null;
161
142
  }
162
143
  /**
163
- * The PIX1 schema this tree's reader requires. MUST equal `KNOWN_SCHEMA_VERSION` in `neural/pair-index-resolver.ts` —
164
- * they are two ends of one fact, and this copy exists only because a data-only overlay must not gain a dependency on
165
- * `@mailwoman/neural` (onnxruntime-node) to read one header field. Bump BOTH in the same commit; a schema bump that
166
- * leaves this behind makes every dev checkout rebuild-loop or serve an artifact the runtime refuses.
144
+ * The PIX1 schema version the pair-index reader requires.
167
145
  *
168
- * The freshness guard must compare it: a guard that checks only delta + source md5 reads a format-obsolete binary as
169
- * "current" and leaves every dev checkout with artifacts the runtime refuses — the R5 freshness-guard lesson, format
170
- * edition. Also compared by the four hand-written base linkers (`neural-weights-{en-us,en-gb,en-nz,fr-fr}`), which
171
- * import this constant rather than re-typing the number.
146
+ * It must equal `KNOWN_SCHEMA_VERSION` in `neural/lib/pair/index/resolver.ts`.
147
+ * A mismatch makes dev checkouts rebuild on every run or link an artifact that the runtime refuses.
172
148
  */
173
149
  export const REQUIRED_PAIR_INDEX_SCHEMA = 3;
174
150
  /**
175
- * Warn when the per-locale FST a linker just symlinked was built from a DIFFERENT admin database than the one on disk
176
- * now.
177
- *
178
- * WHY IT WARNS RATHER THAN REBUILDS, unlike its pair-index sibling above. A pair index is seconds of work and the
179
- * linker owns its whole recipe. A locale FST is a multi-minute build whose output goes to a STAGING dir on purpose —
180
- * the swap into `fst-per-locale/` is operator-approved after the battery, because an FST changes decoder behaviour and
181
- * the D-rule does not let that land unmeasured. So the guard's job is to make the drift impossible to miss, and to name
182
- * the command that starts fixing it. It is also why a stale FST is never fatal: the artifact is a decode-time bias
183
- * list, and a dev tree must still run.
151
+ * Warns when a linked per-locale FST was built from a different admin database than the one on disk.
184
152
  *
185
- * The source-side half of the comparison lives here rather than in `fst-freshness.ts` for the same reason
186
- * `pairIndexStaleReason` splits: only the caller knows which database it built against. All three FST-linking base
187
- * packages build against the same one, so they share this rather than each pinning it.
153
+ * It does not rebuild, because an FST rebuild writes to a staging directory
154
+ * and an operator swaps it in after evaluation.
188
155
  */
189
156
  export async function warnIfFSTStale(fstPath, locale) {
190
157
  const warning = await fstFreshnessWarning({
191
158
  fstPath,
192
- sourceDBPath: String(dataRootPath("wof", "admin-global-priority.db")),
193
- rebuildCommand: `node packages/mailwoman/out/cli/index.js gazetteer build fst --locales ${locale} (writes to a staging dir; swap is operator-conditional)`,
159
+ sourceDBPath: wofDatabasePath("admin-global-priority.db"),
160
+ rebuildCommand: `node packages/mailwoman/out/cli/main.js gazetteer build fst --locales ${locale} (writes to a staging dir; swap is operator-conditional)`,
194
161
  });
195
162
  if (warning) {
196
163
  console.error(warning);
197
164
  }
198
165
  }
199
166
  /**
200
- * Symlink the per-locale FST gazetteer (`fst-<locale>.bin`) from the shared build area
201
- * (`$MAILWOMAN_DATA_ROOT/wof/fst-per-locale/`) into an overlay so `resolveWeights` surfaces `fstPath` in dev and the
202
- * runtime pipeline can auto-wire the gazetteer + street-context check, then run {@link warnIfFSTStale} on the linked
203
- * artifact. The publish flow stages the real binary (release-sequenced).
167
+ * Symlinks the per-locale FST gazetteer `fst-<locale>.bin` into an overlay
168
+ * and checks it with {@link warnIfFSTStale}.
204
169
  */
205
170
  export async function linkLocaleFST(destDir, locale) {
206
- const source = String(dataRootPath("wof", "fst-per-locale", `fst-${locale}.bin`));
207
- const linked = await linkSoftFeedSibling(source, resolvePath(destDir, `fst-${locale}.bin`), "the FST gazetteer default will resolve OFF for this locale.");
171
+ const source = wofDatabasePath("fst-per-locale", `fst-${locale}.bin`);
172
+ const linked = await linkSoftFeedSibling(source, destDir(`fst-${locale}.bin`), "the FST gazetteer default will resolve OFF for this locale.");
208
173
  if (linked) {
209
174
  await warnIfFSTStale(source, locale);
210
175
  }
211
176
  }
212
177
  /**
213
- * Symlink the sealed locale-general street-morphology FST (`$MAILWOMAN_DATA_ROOT/wof/fst-street-morphology.bin`,
214
- * `mailwoman gazetteer build street-morphology`) into an overlay so `resolveWeights` surfaces `streetMorphologyPath` in
215
- * dev and the street-context check (#1315) deserializes the artifact instead of rebuilding from the libpostal
216
- * dictionaries per process. Missing is non-fatal — the runtime loader's dictionary-build fallback covers it.
178
+ * Symlinks the prebuilt street-morphology FST into an overlay so that the
179
+ * street-context check does not rebuild it from dictionaries.
217
180
  */
218
181
  export async function linkStreetMorphologyFST(destDir) {
219
- await linkSoftFeedSibling(String(dataRootPath("wof", "fst-street-morphology.bin")), resolvePath(destDir, "fst-street-morphology.bin"), "the street-context check falls back to the per-process dictionary build.");
182
+ await linkSoftFeedSibling(wofDatabasePath("fst-street-morphology.bin"), destDir("fst-street-morphology.bin"), "the street-context check falls back to the per-process dictionary build.");
220
183
  }
221
- /**
222
- * Why an existing artifact may be TRUSTED without a rebuild, or `undefined` when it must be rebuilt (with the reason
223
- * already printed). The skip requires both halves (#1734): the header magnitudes + format (`pairIndexStaleReason`) AND
224
- * the header's `sourceMD5s` against the current sources' md5s. Magnitudes alone read a source change as "current"
225
- * whenever pair counts happen not to move the calibrated numbers — the R5 freshness-guard lesson, which resurfaced in
226
- * the 2026-08-18 admin swap. A source that is not on disk to re-hash leaves the magnitudes as the best available answer
227
- * (the "missing source, can't build" branch below would fire anyway if a rebuild were needed).
228
- */
229
184
  async function pairIndexIsFresh(dest, artifact, expected, sources, minimumPlausibleBytes) {
230
185
  try {
231
186
  const header = await peekPairIndexHeaderFields(dest);
@@ -271,28 +226,20 @@ async function pairIndexIsFresh(dest, artifact, expected, sources, minimumPlausi
271
226
  }
272
227
  }
273
228
  /**
274
- * Build `pair-index-<country>.bin` into the overlay, skipping the work when the artifact on disk was already built at
275
- * these magnitudes FROM the sources on disk (see {@link pairIndexIsFresh}). The calibration object drives both the
276
- * staleness expectation and the CLI flags, so a magnitude cannot be checked by the guard and dropped from the build.
229
+ * Builds `pair-index-<country>.bin` into the overlay unless the existing artifact
230
+ * already matches these magnitudes and sources.
277
231
  *
278
- * Exits non-zero on a failed build. Missing INPUTS (an unbuilt CLI, an absent source) warn and return instead: a fresh
279
- * clone has neither, and `yarn test` invokes this to verify auto-resolve, so a hard failure there would be a failure to
280
- * have run a build yet rather than a real fault.
232
+ * A failed build exits the process.
233
+ * A missing CLI or input only prints a warning, because a fresh clone has neither.
281
234
  */
282
235
  export async function buildPairIndexOverlay(overlay) {
283
236
  const { packageDir, country, delta, transitionBeta, parentDelta } = overlay;
284
- const CLI = String(workspacePath("mailwoman", "out", "cli", "index.js"));
237
+ const CLI = workspacePathBuilder("mailwoman", "out", "cli", "main.js");
285
238
  const ARTIFACT = `pair-index-${country}.bin`;
286
- // Built into the data-root OVERLAY, not into the tracked package. The locale is recovered from the
287
- // workspace name (`neural-weights-en-gb` → `en-gb`) so callers keep passing the one identifier they
288
- // already had.
289
- const PKG_DIR = String(weightsOverlayPath(packageDir.replace(/^neural-weights-/, "")));
290
- const DEST = resolvePath(PKG_DIR, ARTIFACT);
239
+ const PKG_DIR = weightsOverlayPath(packageDir.replace(/^neural-weights-/, ""));
240
+ const DEST = PKG_DIR(ARTIFACT);
291
241
  await makeDirectories(PKG_DIR);
292
- /**
293
- * Checked-in WOF-derived admin pairs — the default source, and the whole source list for the small overlays.
294
- */
295
- const WOF_ADMIN_DB = String(dataRootPath("wof", "admin-global-priority.db"));
242
+ const WOF_ADMIN_DB = wofDatabasePath("admin-global-priority.db");
296
243
  const sources = overlay.sources ?? [WOF_ADMIN_DB];
297
244
  const inputs = overlay.inputs ?? sources;
298
245
  const extraArgs = overlay.extraArgs ?? ["--borough-db", WOF_ADMIN_DB];
@@ -331,16 +278,16 @@ export async function buildPairIndexOverlay(overlay) {
331
278
  console.log(`built ${ARTIFACT}`);
332
279
  }
333
280
  /**
334
- * The committed soft-feed lexicons as links, by channel, read from `release.config.json` so the filename a manifest
335
- * links is the one the release ships. `streetType` is offered for completeness; the manifests link the evidence
336
- * lexicons by the generation their CARD names instead (`evidenceLexiconsFromCard`).
281
+ * Returns the committed soft-feed lexicons as links.
282
+ *
283
+ * The filenames come from `release.config.json` so that dev links match the release.
337
284
  */
338
285
  export async function committedSoftFeedLinks() {
339
286
  const config = await readReleaseConfig();
340
287
  const sources = repoCommittedSoftFeedSources(repoRootPath(), config.softFeed ?? {});
341
288
  const link = (name, consequenceIfMissing) => {
342
289
  const source = sources.get(name);
343
- return source ? { source, name, consequenceIfMissing } : undefined;
290
+ return source ? { source, name, consequenceIfMissing } : null;
344
291
  };
345
292
  const anchor = link("anchor-lexicon-v1.json", "gazetteer channel will resolve OFF in this worktree.");
346
293
  const country = link("country-surface-lexicon-v1.json", "country channel will resolve OFF in this worktree.");
@@ -348,59 +295,52 @@ export async function committedSoftFeedLinks() {
348
295
  throw new Error("release.config.json names no softFeed.gazetteerLexicon / softFeed.countryLexicon — the overlays cannot link them.");
349
296
  }
350
297
  const streetType = link("street-type-lexicon-v3.json", "the street_type channel will resolve OFF in this worktree.");
351
- return { anchor, country, ...(streetType ? { streetType } : {}) };
298
+ return { anchor, country, streetType };
352
299
  }
353
- /**
354
- * Where each evidence channel's lexicon is found, by the name the card declares.
355
- */
356
300
  const EVIDENCE_LEXICON_SOURCES = [
357
- { channel: "street_type", source: (name) => String(repoRootPath("data", "gazetteer", name)) },
358
- { channel: "locality_surface", source: (name) => String(dataRootPath("gazetteer", name)) },
301
+ { channel: "street_type", source: (name) => repoRootPathBuilder("data", "gazetteer", name) },
302
+ { channel: "locality_surface", source: (name) => dataRootPath("gazetteer", name) },
359
303
  ];
360
304
  /**
361
- * Read a weights workspace's committed card, or `undefined` when the workspace carries none.
305
+ * Whether the locale's workspace package declares `mailwoman.baseWeights`.
362
306
  */
307
+ async function declaresBaseWeights(locale) {
308
+ const path = workspacePathBuilder(`neural-weights-${locale}`, "package.json");
309
+ if (!(await pathExists(path)))
310
+ return false;
311
+ const { mailwoman } = await readLocalJSONFile(path);
312
+ return typeof mailwoman?.baseWeights === "string" && mailwoman.baseWeights.length > 0;
313
+ }
363
314
  async function readWeightsCard(workspace) {
364
- const path = resolvePath(String(workspacePath(workspace)), "model-card.json");
315
+ const path = workspacePathBuilder(workspace, "model-card.json");
365
316
  if (!(await pathExists(path)))
366
- return undefined;
317
+ return null;
367
318
  return readLocalJSONFile(path);
368
319
  }
369
- /**
370
- * Link the base model pair from the release recipe and, when a digest card is named, hold the linked default bytes to
371
- * that card's `files_md5`. The recipe and the card are the two registers a ship bumps in lockstep; a path bumped
372
- * without the card, or the reverse, fails here rather than after an eval shift graded against the wrong weights.
373
- */
374
- /**
375
- * A char-path base (#2164): the graph and its sealed vocabulary from `release.config.json`'s `charWeights[family]`, no
376
- * tokenizer. The dev overlay carries both so `resolveWeights` finds the package whole.
377
- */
378
320
  async function linkCharModel(destDir, family) {
379
321
  const recipe = (await readReleaseConfig()).charWeights?.[family];
380
322
  if (!recipe) {
381
323
  throw new Error(`release.config.json declares no charWeights.${family} — nothing to link for the ${family} base`);
382
324
  }
383
- const dataRoot = String(dataRootPath());
325
+ const dataRoot = dataRootPath();
384
326
  for (const [name, relative] of [
385
327
  ["model.onnx", recipe.model],
386
328
  ["char-vocab.json", recipe.charVocab],
387
329
  ]) {
388
- const source = resolvePath(dataRoot, relative);
330
+ const source = dataRoot(relative);
389
331
  if (!(await pathExists(source))) {
390
332
  throw new Error(`missing char-path source ${name} for ${family}: ${source}`);
391
333
  }
392
- await linkForce(source, resolvePath(destDir, name));
393
- console.log(`linked ${resolvePath(destDir, name)} ← ${source}`);
394
- }
395
- // The card is what tells `resolveWeights` this package owes a vocabulary rather than a tokenizer (its `encoder`
396
- // block), so the overlay carries the workspace's committed card beside the two binaries.
397
- const card = resolvePath(String(workspacePath(`neural-weights-${family}`)), "model-card.json");
398
- await linkForce(card, resolvePath(destDir, "model-card.json"));
399
- await removeIfPresent(resolvePath(destDir, "tokenizer.model"));
334
+ await linkForce(source, destDir(name));
335
+ console.log(`linked ${destDir(name)} ← ${source}`);
336
+ }
337
+ const card = workspacePathBuilder(`neural-weights-${family}`, "model-card.json");
338
+ await linkForce(card, destDir("model-card.json"));
339
+ await removeIfPresent(destDir("tokenizer.model"));
400
340
  }
401
341
  async function linkBaseModelPair(destDir, digestCard) {
402
342
  const recipe = await readReleaseConfig();
403
- const dataRoot = String(dataRootPath());
343
+ const dataRoot = dataRootPath();
404
344
  const digests = digestCard ? (await readWeightsCard(digestCard))?.files_md5 : undefined;
405
345
  const pair = [
406
346
  { label: "model", name: "model.onnx", override: $public.MAILWOMAN_DEV_MODEL, recipe: recipe.weights.model },
@@ -412,11 +352,11 @@ async function linkBaseModelPair(destDir, digestCard) {
412
352
  },
413
353
  ];
414
354
  for (const { label, name, override, recipe: recipePath } of pair) {
415
- const source = override || resolvePath(dataRoot, recipePath);
355
+ const source = override || dataRoot(recipePath);
416
356
  if (!(await pathExists(source))) {
417
357
  throw new Error(`missing source ${label}: ${source} — set MAILWOMAN_DEV_${label.toUpperCase()} to override`);
418
358
  }
419
- const dest = resolvePath(destDir, name);
359
+ const dest = destDir(name);
420
360
  await linkForce(source, dest);
421
361
  console.log(`linked ${dest} ← ${source}`);
422
362
  if (!digestCard)
@@ -438,13 +378,9 @@ async function linkBaseModelPair(destDir, digestCard) {
438
378
  console.log(` ${name} digest ok`);
439
379
  }
440
380
  }
441
- /**
442
- * Build a postcode binary from a WOF postcode extract, skip-if-present. A missing CLI or extract is a warning (the
443
- * anchor channel resolves OFF for that country); a build that runs and fails is an error.
444
- */
445
381
  async function buildPostcodeBinary(destDir, cli, { country, database }) {
446
382
  const artifact = `postcode-${country.toLowerCase()}.bin`;
447
- const dest = resolvePath(destDir, artifact);
383
+ const dest = destDir(artifact);
448
384
  if (await pathExists(dest)) {
449
385
  console.log(`skipped ${artifact} build — ${dest} already present`);
450
386
  return;
@@ -457,33 +393,43 @@ async function buildPostcodeBinary(destDir, cli, { country, database }) {
457
393
  console.error(`WARNING: missing ${database} — ${artifact} not built; the anchor channel will resolve OFF for ${country.toUpperCase()}.`);
458
394
  return;
459
395
  }
460
- const result = spawnProcessSync(process.execPath, [cli, "gazetteer", "postcode-binary", "--out", destDir, "--locale", `${country.toUpperCase()}:${database}`], { stdio: "inherit" });
396
+ const result = spawnProcessSync(process.execPath, [
397
+ cli,
398
+ "gazetteer",
399
+ "postcode-binary",
400
+ "--out",
401
+ destDir,
402
+ "--locale",
403
+ `${country.toUpperCase()}:${database.toString()}`,
404
+ ], { stdio: "inherit" });
461
405
  if (result.status !== 0 || !(await pathExists(dest))) {
462
406
  throw new Error(`failed to build ${dest} (exit ${result.status})`);
463
407
  }
464
408
  console.log(`built ${dest}`);
465
409
  }
466
410
  /**
467
- * Materialize one locale's dev overlay from its manifest. The steps run in the order {@link DevOverlayManifest}
468
- * documents, each independent on disk, and the result carries what a locale-specific step needs afterwards.
411
+ * Materializes one locale's dev weights overlay from its manifest.
469
412
  */
470
413
  export async function materializeDevOverlay(manifest) {
471
- const destDir = String(weightsOverlayPath(manifest.locale));
472
- const cli = String(workspacePath("mailwoman", "out", "cli", "index.js"));
414
+ const destDir = weightsOverlayPath(manifest.locale);
415
+ const cli = workspacePathBuilder("mailwoman", "out", "cli", "main.js");
473
416
  const card = await readWeightsCard(`neural-weights-${manifest.locale}`);
474
417
  await makeDirectories(destDir);
475
- if (manifest.model?.kind === "inherit") {
476
- await removeIfPresent(resolvePath(destDir, "model.onnx"));
477
- await removeIfPresent(resolvePath(destDir, "tokenizer.model"));
418
+ // A package that declares `mailwoman.baseWeights` inherits its graph whatever the manifest says,
419
+ // because `resolveWeights` takes the base's graph over a file in the overlay directory.
420
+ const inherits = manifest.model?.kind === "inherit" || (!manifest.model && (await declaresBaseWeights(manifest.locale)));
421
+ if (inherits) {
422
+ await removeIfPresent(destDir("model.onnx"));
423
+ await removeIfPresent(destDir("tokenizer.model"));
478
424
  }
479
425
  else if (manifest.model?.kind === "link") {
480
- await linkBaseModelPair(destDir, manifest.model.digestCard);
426
+ await linkBaseModelPair(destDir, manifest.model.digestCard ?? null);
481
427
  }
482
428
  else if (manifest.model?.kind === "char") {
483
429
  await linkCharModel(destDir, manifest.model.family);
484
430
  }
485
431
  for (const { source, name, consequenceIfMissing } of manifest.softFeed ?? []) {
486
- await linkSoftFeedSibling(source, resolvePath(destDir, name), consequenceIfMissing);
432
+ await linkSoftFeedSibling(source, destDir(name), consequenceIfMissing);
487
433
  }
488
434
  if (manifest.evidenceLexiconsFromCard) {
489
435
  for (const { channel, source } of EVIDENCE_LEXICON_SOURCES) {
@@ -492,7 +438,7 @@ export async function materializeDevOverlay(manifest) {
492
438
  console.error(`WARNING: model-card declares no requires.${channel}.lexicon — the ${channel} channel stays OFF.`);
493
439
  continue;
494
440
  }
495
- await linkSoftFeedSibling(source(declared), resolvePath(destDir, declared), `the ${channel} channel will resolve OFF in this worktree.`);
441
+ await linkSoftFeedSibling(source(declared), destDir(declared), `the ${channel} channel will resolve OFF in this worktree.`);
496
442
  }
497
443
  }
498
444
  if (manifest.postcodeBinary) {
@@ -1 +1 @@
1
- {"version":3,"file":"weights-overlay-linker.js","sourceRoot":"","sources":["../lib/weights-overlay-linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weights-overlay-linker.js","sourceRoot":"","sources":["../lib/weights-overlay-linker.ts"],"names":[],"mappings":"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"}