mailwoman 9.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli-kit/index.ts +1 -152
- package/cli-kit/shared.ts +176 -0
- package/cli.ts +52 -8
- package/commands/autocomplete.tsx +22 -6
- package/commands/clients/generate.tsx +1 -1
- package/commands/corpus/align-shard.tsx +1 -2
- package/commands/corpus/audit.tsx +1 -2
- package/commands/corpus/build.tsx +1 -2
- package/commands/corpus/download.tsx +1 -2
- package/commands/corpus/fetch.tsx +1 -2
- package/commands/corpus/golden/expand.tsx +1 -2
- package/commands/corpus/golden/promote.tsx +1 -2
- package/commands/corpus/golden-relabel.tsx +1 -2
- package/commands/corpus/ingest-csv.tsx +1 -2
- package/commands/corpus/overlay-manifest.tsx +1 -2
- package/commands/corpus/run.tsx +1 -2
- package/commands/corpus/shard/index.tsx +1 -2
- package/commands/corpus/shard/kryptonite.tsx +1 -2
- package/commands/corpus/shard/translit.tsx +1 -2
- package/commands/corpus/stats.tsx +1 -2
- package/commands/corpus/sub-venue-extract.tsx +1 -2
- package/commands/corpus/sub-venue-lexicon.tsx +1 -2
- package/commands/corpus/upload.tsx +1 -2
- package/commands/coverage/build.tsx +1 -1
- package/commands/data/index.tsx +121 -0
- package/commands/data/pull.tsx +1 -1
- package/commands/data/status.tsx +1 -1
- package/commands/dev/download/libpostal-resources.tsx +1 -2
- package/commands/dev/download/ssl-address.tsx +1 -2
- package/commands/dev/generate/country-reference.tsx +1 -2
- package/commands/dev/generate/language-types.tsx +1 -2
- package/commands/dev/generate/official-languages.tsx +1 -2
- package/commands/dev/generate/trace-fixture.tsx +2 -3
- package/commands/dev/jsonl-to-parquet.tsx +1 -2
- package/commands/dev/lint/corpus-shard.tsx +1 -2
- package/commands/dev/lint/mdx-angles.tsx +2 -3
- package/commands/dev/lint/shard-vocab.tsx +1 -2
- package/commands/doctor.tsx +114 -57
- package/commands/eval/capability-manifest.tsx +1 -1
- package/commands/eval/error-analysis.tsx +1 -1
- package/commands/eval/es-postcode-centroids.tsx +1 -1
- package/commands/eval/fragment-board.tsx +1 -1
- package/commands/eval/fragment-dev.tsx +1 -1
- package/commands/eval/gate.tsx +1 -1
- package/commands/eval/gauntlet-build.tsx +1 -1
- package/commands/eval/gauntlet.tsx +1 -1
- package/commands/eval/invariance.tsx +9 -5
- package/commands/eval/ledger-append.tsx +1 -1
- package/commands/eval/mask-regression.tsx +1 -1
- package/commands/eval/oa-resolver.tsx +1 -1
- package/commands/eval/oracle-k.tsx +1 -1
- package/commands/eval/parity.tsx +1 -1
- package/commands/eval/poi-board.tsx +1 -1
- package/commands/eval/preset-compare.tsx +1 -1
- package/commands/eval/score-trends.tsx +1 -1
- package/commands/filer/edgar-ingest.tsx +83 -0
- package/commands/filer/linkage-eval.tsx +1 -2
- package/commands/gazetteer/affix-relabel.tsx +23 -9
- package/commands/gazetteer/anchor-lexicon.tsx +1 -2
- package/commands/gazetteer/build/admin.tsx +2 -3
- package/commands/gazetteer/build/anchor-lookup.tsx +1 -2
- package/commands/gazetteer/build/bdc.tsx +2 -3
- package/commands/gazetteer/build/candidate.tsx +32 -4
- package/commands/gazetteer/build/coincident-roles.tsx +1 -2
- package/commands/gazetteer/build/fst.tsx +1 -2
- package/commands/gazetteer/build/fts.tsx +1 -2
- package/commands/gazetteer/build/index.tsx +3 -4
- package/commands/gazetteer/build/locality-surface-lexicon.tsx +1 -2
- package/commands/gazetteer/build/nl-pc6.tsx +1 -2
- package/commands/gazetteer/build/poi-brands.tsx +3 -4
- package/commands/gazetteer/build/poi.tsx +4 -5
- package/commands/gazetteer/build/postcode-codepoint.tsx +2 -3
- package/commands/gazetteer/build/postcode-geonames.tsx +3 -4
- package/commands/gazetteer/build/postcode-locality.tsx +1 -2
- package/commands/gazetteer/build/postcode-ni-osm.tsx +2 -3
- package/commands/gazetteer/build/postcode-prefix.tsx +2 -3
- package/commands/gazetteer/build/postcode-shard.tsx +2 -3
- package/commands/gazetteer/build/street-morphology.tsx +1 -2
- package/commands/gazetteer/build/street-type-lexicon.tsx +1 -2
- package/commands/gazetteer/census.tsx +1 -1
- package/commands/gazetteer/conventions.tsx +1 -2
- package/commands/gazetteer/granularity.tsx +1 -1
- package/commands/gazetteer/importance.tsx +73 -48
- package/commands/gazetteer/inspect/fst.tsx +8 -7
- package/commands/gazetteer/inspect/graph.tsx +1 -3
- package/commands/gazetteer/inspect/mermaid.tsx +1 -3
- package/commands/gazetteer/inspect/placetype-stats.tsx +1 -2
- package/commands/gazetteer/inspect/sync.tsx +1 -2
- package/commands/gazetteer/inspect/tree.tsx +1 -3
- package/commands/gazetteer/overture-ingest.tsx +1 -2
- package/commands/gazetteer/pair-index.tsx +2 -2
- package/commands/gazetteer/polygons.tsx +1 -2
- package/commands/gazetteer/postal-alias.tsx +1 -2
- package/commands/gazetteer/postal-city.tsx +1 -2
- package/commands/gazetteer/postcode-binary.tsx +1 -1
- package/commands/gazetteer/postcode-intl.tsx +1 -2
- package/commands/gazetteer/promote.tsx +2 -3
- package/commands/gazetteer/publish.tsx +2 -8
- package/commands/gazetteer/release.tsx +3 -4
- package/commands/gazetteer/verify-codepoint.tsx +1 -2
- package/commands/gazetteer/verify.tsx +2 -3
- package/commands/geocode.tsx +127 -7
- package/commands/gnaf/assemble.tsx +1 -2
- package/commands/openapi.tsx +1 -2
- package/commands/parse.tsx +86 -18
- package/commands/placer/build-dataset.tsx +1 -2
- package/commands/placer/eval.tsx +1 -2
- package/commands/placer/probe-frontier.tsx +1 -2
- package/commands/placer/quantize.tsx +1 -2
- package/commands/placer/train.tsx +1 -2
- package/commands/poi.tsx +7 -1
- package/commands/registry/convert/tx-hhsc.tsx +1 -2
- package/commands/registry/dedup-ceiling.tsx +1 -2
- package/commands/registry/gold-set-sample.tsx +1 -2
- package/commands/registry/matcher-scale.tsx +1 -2
- package/commands/registry/run.tsx +1 -1
- package/commands/registry/scorer-eval.tsx +1 -1
- package/commands/registry/train-scorer.tsx +1 -1
- package/commands/registry/viz.tsx +1 -2
- package/commands/release/hf.tsx +1 -1
- package/commands/reverse.tsx +8 -3
- package/commands/serve.tsx +1 -1
- package/commands/situs/address-points.tsx +1 -2
- package/commands/situs/attribution-manifest.tsx +1 -2
- package/commands/situs/build.tsx +1 -2
- package/commands/situs/interpolation-shard.tsx +1 -1
- package/commands/situs/interpolation.tsx +13 -15
- package/commands/skill/install.tsx +1 -2
- package/commands/tiger/fetch.tsx +1 -2
- package/commands/tiger/race-dots-map.tsx +1 -2
- package/commands/tiger/race-dots.tsx +1 -2
- package/commands/tiger/redistricting.tsx +1 -2
- package/commands/tiles/publish.tsx +1 -2
- package/commands/wof/graph.tsx +1 -2
- package/commands/wof/mermaid.tsx +1 -2
- package/commands/wof/prepare.tsx +1 -2
- package/commands/wof/sync.tsx +1 -2
- package/commands/wof/tree.tsx +1 -2
- package/dev-tools/postcode-coherence-coverage.run.ts +1 -1
- package/dev-tools/postcode-coherence-scale.run.ts +1 -1
- package/dev-tools/probe-query-intent.run.ts +154 -0
- package/dev-tools/probe-referential-delta.run.ts +169 -0
- package/dev-tools/score-hard-slice-board.run.ts +8 -0
- package/dev-tools/score-interesting-addresses.run.ts +102 -0
- package/dev-tools/score-street-name-boundaries.run.ts +84 -0
- package/dev-tools/score-world-structures.run.ts +108 -0
- package/doctor/checks.ts +51 -3
- package/doctor/runner.ts +78 -4
- package/eval-harness/de-order-eval.ts +189 -0
- package/eval-harness/demo-cascade-rows.ts +181 -0
- package/eval-harness/demo-cascade-smoke.ts +413 -0
- package/eval-harness/external-arenas.ts +175 -0
- package/eval-harness/fr-parse-recall.ts +286 -0
- package/eval-harness/gates/v2.3.0-nl-postcode.json +1 -1
- package/eval-harness/gates/v5.3.0-family.json +1 -1
- package/eval-harness/gates/v9.0.0-base.json +2 -0
- package/eval-harness/gauntlet/build-regression-db.ts +2 -1
- package/eval-harness/gauntlet/cases/ae/street-name-boundaries.jsonl +5 -0
- package/eval-harness/gauntlet/cases/ar/street-name-boundaries.jsonl +5 -0
- package/eval-harness/gauntlet/cases/at/street-name-boundaries.jsonl +2 -0
- package/eval-harness/gauntlet/cases/au/street-name-boundaries.jsonl +13 -0
- package/eval-harness/gauntlet/cases/br/brasilia-hierarchy.jsonl +4 -0
- package/eval-harness/gauntlet/cases/br/street-name-boundaries.jsonl +5 -0
- package/eval-harness/gauntlet/cases/br/world-structures.jsonl +5 -0
- package/eval-harness/gauntlet/cases/ca/street-name-boundaries.jsonl +15 -0
- package/eval-harness/gauntlet/cases/co/world-structures.jsonl +1 -0
- package/eval-harness/gauntlet/cases/cv/world-structures.jsonl +1 -0
- package/eval-harness/gauntlet/cases/de/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/es/street-name-boundaries.jsonl +16 -0
- package/eval-harness/gauntlet/cases/fr/street-name-boundaries.jsonl +15 -0
- package/eval-harness/gauntlet/cases/gb/regression.jsonl +12 -0
- package/eval-harness/gauntlet/cases/gb/street-name-boundaries.jsonl +24 -0
- package/eval-harness/gauntlet/cases/gh/world-structures.jsonl +2 -0
- package/eval-harness/gauntlet/cases/hk/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/hu/street-name-boundaries.jsonl +2 -0
- package/eval-harness/gauntlet/cases/id/street-name-boundaries.jsonl +1 -0
- package/eval-harness/gauntlet/cases/ie/world-structures.jsonl +1 -0
- package/eval-harness/gauntlet/cases/it/street-name-boundaries.jsonl +7 -0
- package/eval-harness/gauntlet/cases/jp/regression.jsonl +2 -0
- package/eval-harness/gauntlet/cases/jp/street-name-boundaries.jsonl +3 -0
- package/eval-harness/gauntlet/cases/jp/world-structures.jsonl +2 -0
- package/eval-harness/gauntlet/cases/kw/street-name-boundaries.jsonl +1 -0
- package/eval-harness/gauntlet/cases/mn/world-structures.jsonl +3 -0
- package/eval-harness/gauntlet/cases/mx/street-name-boundaries.jsonl +2 -0
- package/eval-harness/gauntlet/cases/ne/world-structures.jsonl +1 -0
- package/eval-harness/gauntlet/cases/ng/world-structures.jsonl +2 -0
- package/eval-harness/gauntlet/cases/ni/world-structures.jsonl +2 -0
- package/eval-harness/gauntlet/cases/om/street-name-boundaries.jsonl +1 -0
- package/eval-harness/gauntlet/cases/pt/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/ru/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/sa/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/seed-case.ts +12 -0
- package/eval-harness/gauntlet/cases/sg/street-name-boundaries.jsonl +2 -0
- package/eval-harness/gauntlet/cases/th/street-name-boundaries.jsonl +4 -0
- package/eval-harness/gauntlet/cases/tr/street-name-boundaries.jsonl +1 -0
- package/eval-harness/gauntlet/cases/us/street-name-boundaries.jsonl +26 -0
- package/eval-harness/gauntlet/check-case.ts +165 -6
- package/eval-harness/gauntlet/harness.ts +7 -2
- package/eval-harness/gauntlet/schema.ts +10 -0
- package/eval-harness/invariance/runner.ts +173 -42
- package/eval-harness/oa-resolver-eval.ts +20 -16
- package/eval-harness/per-locale-f1.ts +598 -0
- package/eval-harness/promotion-gate.ts +341 -122
- package/eval-harness/score-affix.ts +203 -0
- package/eval-harness/score-country-homograph.ts +234 -0
- package/gazetteer-pipeline/admin/index.ts +2 -2
- package/gazetteer-pipeline/evidence-lexicons.ts +1 -1
- package/gazetteer-pipeline/index.ts +45 -4
- package/gazetteer-pipeline/postcode/index.ts +5 -5
- package/geocode-core.ts +259 -26
- package/out/cli-kit/index.d.ts +1 -78
- package/out/cli-kit/index.d.ts.map +1 -1
- package/out/cli-kit/index.js +1 -74
- package/out/cli-kit/index.js.map +1 -1
- package/out/cli-kit/shared.d.ts +97 -0
- package/out/cli-kit/shared.d.ts.map +1 -0
- package/out/cli-kit/shared.js +96 -0
- package/out/cli-kit/shared.js.map +1 -0
- package/out/cli.js +44 -6
- package/out/cli.js.map +1 -1
- package/out/commands/autocomplete.d.ts +10 -2
- package/out/commands/autocomplete.d.ts.map +1 -1
- package/out/commands/autocomplete.js +12 -4
- package/out/commands/autocomplete.js.map +1 -1
- package/out/commands/clients/generate.d.ts +1 -1
- package/out/commands/clients/generate.d.ts.map +1 -1
- package/out/commands/clients/generate.js +1 -1
- package/out/commands/clients/generate.js.map +1 -1
- package/out/commands/corpus/align-shard.d.ts +1 -1
- package/out/commands/corpus/align-shard.d.ts.map +1 -1
- package/out/commands/corpus/align-shard.js +1 -1
- package/out/commands/corpus/align-shard.js.map +1 -1
- package/out/commands/corpus/audit.d.ts +1 -1
- package/out/commands/corpus/audit.d.ts.map +1 -1
- package/out/commands/corpus/audit.js +1 -1
- package/out/commands/corpus/audit.js.map +1 -1
- package/out/commands/corpus/build.d.ts +1 -1
- package/out/commands/corpus/build.d.ts.map +1 -1
- package/out/commands/corpus/build.js +1 -1
- package/out/commands/corpus/build.js.map +1 -1
- package/out/commands/corpus/download.d.ts +1 -1
- package/out/commands/corpus/download.d.ts.map +1 -1
- package/out/commands/corpus/download.js +1 -1
- package/out/commands/corpus/download.js.map +1 -1
- package/out/commands/corpus/fetch.d.ts +1 -1
- package/out/commands/corpus/fetch.d.ts.map +1 -1
- package/out/commands/corpus/fetch.js +1 -1
- package/out/commands/corpus/fetch.js.map +1 -1
- package/out/commands/corpus/golden/expand.d.ts +1 -1
- package/out/commands/corpus/golden/expand.d.ts.map +1 -1
- package/out/commands/corpus/golden/expand.js +1 -1
- package/out/commands/corpus/golden/expand.js.map +1 -1
- package/out/commands/corpus/golden/promote.d.ts +1 -1
- package/out/commands/corpus/golden/promote.d.ts.map +1 -1
- package/out/commands/corpus/golden/promote.js +1 -1
- package/out/commands/corpus/golden/promote.js.map +1 -1
- package/out/commands/corpus/golden-relabel.d.ts +1 -1
- package/out/commands/corpus/golden-relabel.d.ts.map +1 -1
- package/out/commands/corpus/golden-relabel.js +1 -1
- package/out/commands/corpus/golden-relabel.js.map +1 -1
- package/out/commands/corpus/ingest-csv.d.ts +1 -1
- package/out/commands/corpus/ingest-csv.d.ts.map +1 -1
- package/out/commands/corpus/ingest-csv.js +1 -1
- package/out/commands/corpus/ingest-csv.js.map +1 -1
- package/out/commands/corpus/overlay-manifest.d.ts +1 -1
- package/out/commands/corpus/overlay-manifest.d.ts.map +1 -1
- package/out/commands/corpus/overlay-manifest.js +1 -1
- package/out/commands/corpus/overlay-manifest.js.map +1 -1
- package/out/commands/corpus/run.d.ts +1 -1
- package/out/commands/corpus/run.d.ts.map +1 -1
- package/out/commands/corpus/run.js +1 -1
- package/out/commands/corpus/run.js.map +1 -1
- package/out/commands/corpus/shard/index.d.ts +1 -1
- package/out/commands/corpus/shard/index.d.ts.map +1 -1
- package/out/commands/corpus/shard/index.js +1 -1
- package/out/commands/corpus/shard/index.js.map +1 -1
- package/out/commands/corpus/shard/kryptonite.d.ts +1 -1
- package/out/commands/corpus/shard/kryptonite.d.ts.map +1 -1
- package/out/commands/corpus/shard/kryptonite.js +1 -1
- package/out/commands/corpus/shard/kryptonite.js.map +1 -1
- package/out/commands/corpus/shard/translit.d.ts +1 -1
- package/out/commands/corpus/shard/translit.d.ts.map +1 -1
- package/out/commands/corpus/shard/translit.js +1 -1
- package/out/commands/corpus/shard/translit.js.map +1 -1
- package/out/commands/corpus/stats.d.ts +1 -1
- package/out/commands/corpus/stats.d.ts.map +1 -1
- package/out/commands/corpus/stats.js +1 -1
- package/out/commands/corpus/stats.js.map +1 -1
- package/out/commands/corpus/sub-venue-extract.d.ts +1 -1
- package/out/commands/corpus/sub-venue-extract.d.ts.map +1 -1
- package/out/commands/corpus/sub-venue-extract.js +1 -1
- package/out/commands/corpus/sub-venue-extract.js.map +1 -1
- package/out/commands/corpus/sub-venue-lexicon.d.ts +1 -1
- package/out/commands/corpus/sub-venue-lexicon.d.ts.map +1 -1
- package/out/commands/corpus/sub-venue-lexicon.js +1 -1
- package/out/commands/corpus/sub-venue-lexicon.js.map +1 -1
- package/out/commands/corpus/upload.d.ts +1 -1
- package/out/commands/corpus/upload.d.ts.map +1 -1
- package/out/commands/corpus/upload.js +1 -1
- package/out/commands/corpus/upload.js.map +1 -1
- package/out/commands/coverage/build.d.ts +1 -1
- package/out/commands/coverage/build.d.ts.map +1 -1
- package/out/commands/coverage/build.js +1 -1
- package/out/commands/coverage/build.js.map +1 -1
- package/out/commands/data/index.d.ts +32 -0
- package/out/commands/data/index.d.ts.map +1 -0
- package/out/commands/data/index.js +94 -0
- package/out/commands/data/index.js.map +1 -0
- package/out/commands/data/pull.d.ts +1 -1
- package/out/commands/data/pull.d.ts.map +1 -1
- package/out/commands/data/pull.js +1 -1
- package/out/commands/data/pull.js.map +1 -1
- package/out/commands/data/status.d.ts +1 -1
- package/out/commands/data/status.d.ts.map +1 -1
- package/out/commands/data/status.js +1 -1
- package/out/commands/data/status.js.map +1 -1
- package/out/commands/dev/download/libpostal-resources.d.ts +1 -1
- package/out/commands/dev/download/libpostal-resources.d.ts.map +1 -1
- package/out/commands/dev/download/libpostal-resources.js +1 -1
- package/out/commands/dev/download/libpostal-resources.js.map +1 -1
- package/out/commands/dev/download/ssl-address.d.ts +1 -1
- package/out/commands/dev/download/ssl-address.d.ts.map +1 -1
- package/out/commands/dev/download/ssl-address.js +1 -1
- package/out/commands/dev/download/ssl-address.js.map +1 -1
- package/out/commands/dev/generate/country-reference.d.ts.map +1 -1
- package/out/commands/dev/generate/country-reference.js +1 -1
- package/out/commands/dev/generate/country-reference.js.map +1 -1
- package/out/commands/dev/generate/language-types.d.ts.map +1 -1
- package/out/commands/dev/generate/language-types.js +1 -1
- package/out/commands/dev/generate/language-types.js.map +1 -1
- package/out/commands/dev/generate/official-languages.d.ts +1 -1
- package/out/commands/dev/generate/official-languages.d.ts.map +1 -1
- package/out/commands/dev/generate/official-languages.js +1 -1
- package/out/commands/dev/generate/official-languages.js.map +1 -1
- package/out/commands/dev/generate/trace-fixture.d.ts +1 -1
- package/out/commands/dev/generate/trace-fixture.d.ts.map +1 -1
- package/out/commands/dev/generate/trace-fixture.js +2 -2
- package/out/commands/dev/generate/trace-fixture.js.map +1 -1
- package/out/commands/dev/jsonl-to-parquet.d.ts +1 -1
- package/out/commands/dev/jsonl-to-parquet.d.ts.map +1 -1
- package/out/commands/dev/jsonl-to-parquet.js +1 -1
- package/out/commands/dev/jsonl-to-parquet.js.map +1 -1
- package/out/commands/dev/lint/corpus-shard.d.ts +1 -1
- package/out/commands/dev/lint/corpus-shard.d.ts.map +1 -1
- package/out/commands/dev/lint/corpus-shard.js +1 -1
- package/out/commands/dev/lint/corpus-shard.js.map +1 -1
- package/out/commands/dev/lint/mdx-angles.d.ts +1 -1
- package/out/commands/dev/lint/mdx-angles.d.ts.map +1 -1
- package/out/commands/dev/lint/mdx-angles.js +2 -2
- package/out/commands/dev/lint/mdx-angles.js.map +1 -1
- package/out/commands/dev/lint/shard-vocab.d.ts +1 -1
- package/out/commands/dev/lint/shard-vocab.d.ts.map +1 -1
- package/out/commands/dev/lint/shard-vocab.js +1 -1
- package/out/commands/dev/lint/shard-vocab.js.map +1 -1
- package/out/commands/doctor.d.ts +28 -8
- package/out/commands/doctor.d.ts.map +1 -1
- package/out/commands/doctor.js +94 -35
- package/out/commands/doctor.js.map +1 -1
- package/out/commands/eval/capability-manifest.d.ts +1 -1
- package/out/commands/eval/capability-manifest.d.ts.map +1 -1
- package/out/commands/eval/capability-manifest.js +1 -1
- package/out/commands/eval/capability-manifest.js.map +1 -1
- package/out/commands/eval/error-analysis.d.ts +1 -1
- package/out/commands/eval/error-analysis.d.ts.map +1 -1
- package/out/commands/eval/error-analysis.js +1 -1
- package/out/commands/eval/error-analysis.js.map +1 -1
- package/out/commands/eval/es-postcode-centroids.d.ts +1 -1
- package/out/commands/eval/es-postcode-centroids.d.ts.map +1 -1
- package/out/commands/eval/es-postcode-centroids.js +1 -1
- package/out/commands/eval/es-postcode-centroids.js.map +1 -1
- package/out/commands/eval/fragment-board.d.ts +1 -1
- package/out/commands/eval/fragment-board.d.ts.map +1 -1
- package/out/commands/eval/fragment-board.js +1 -1
- package/out/commands/eval/fragment-board.js.map +1 -1
- package/out/commands/eval/fragment-dev.d.ts +1 -1
- package/out/commands/eval/fragment-dev.d.ts.map +1 -1
- package/out/commands/eval/fragment-dev.js +1 -1
- package/out/commands/eval/fragment-dev.js.map +1 -1
- package/out/commands/eval/gate.d.ts +1 -1
- package/out/commands/eval/gate.d.ts.map +1 -1
- package/out/commands/eval/gate.js +1 -1
- package/out/commands/eval/gate.js.map +1 -1
- package/out/commands/eval/gauntlet-build.d.ts +1 -1
- package/out/commands/eval/gauntlet-build.d.ts.map +1 -1
- package/out/commands/eval/gauntlet-build.js +1 -1
- package/out/commands/eval/gauntlet-build.js.map +1 -1
- package/out/commands/eval/gauntlet.d.ts +1 -1
- package/out/commands/eval/gauntlet.d.ts.map +1 -1
- package/out/commands/eval/gauntlet.js +1 -1
- package/out/commands/eval/gauntlet.js.map +1 -1
- package/out/commands/eval/invariance.d.ts +9 -5
- package/out/commands/eval/invariance.d.ts.map +1 -1
- package/out/commands/eval/invariance.js +9 -5
- package/out/commands/eval/invariance.js.map +1 -1
- package/out/commands/eval/ledger-append.d.ts +1 -1
- package/out/commands/eval/ledger-append.d.ts.map +1 -1
- package/out/commands/eval/ledger-append.js +1 -1
- package/out/commands/eval/ledger-append.js.map +1 -1
- package/out/commands/eval/mask-regression.d.ts +1 -1
- package/out/commands/eval/mask-regression.d.ts.map +1 -1
- package/out/commands/eval/mask-regression.js +1 -1
- package/out/commands/eval/mask-regression.js.map +1 -1
- package/out/commands/eval/oa-resolver.d.ts +1 -1
- package/out/commands/eval/oa-resolver.d.ts.map +1 -1
- package/out/commands/eval/oa-resolver.js +1 -1
- package/out/commands/eval/oa-resolver.js.map +1 -1
- package/out/commands/eval/oracle-k.d.ts +1 -1
- package/out/commands/eval/oracle-k.d.ts.map +1 -1
- package/out/commands/eval/oracle-k.js +1 -1
- package/out/commands/eval/oracle-k.js.map +1 -1
- package/out/commands/eval/parity.d.ts +1 -1
- package/out/commands/eval/parity.d.ts.map +1 -1
- package/out/commands/eval/parity.js +1 -1
- package/out/commands/eval/parity.js.map +1 -1
- package/out/commands/eval/poi-board.d.ts +1 -1
- package/out/commands/eval/poi-board.d.ts.map +1 -1
- package/out/commands/eval/poi-board.js +1 -1
- package/out/commands/eval/poi-board.js.map +1 -1
- package/out/commands/eval/preset-compare.d.ts +1 -1
- package/out/commands/eval/preset-compare.d.ts.map +1 -1
- package/out/commands/eval/preset-compare.js +1 -1
- package/out/commands/eval/preset-compare.js.map +1 -1
- package/out/commands/eval/score-trends.d.ts +1 -1
- package/out/commands/eval/score-trends.d.ts.map +1 -1
- package/out/commands/eval/score-trends.js +1 -1
- package/out/commands/eval/score-trends.js.map +1 -1
- package/out/commands/filer/edgar-ingest.d.ts +21 -0
- package/out/commands/filer/edgar-ingest.d.ts.map +1 -0
- package/out/commands/filer/edgar-ingest.js +58 -0
- package/out/commands/filer/edgar-ingest.js.map +1 -0
- package/out/commands/filer/linkage-eval.d.ts +1 -1
- package/out/commands/filer/linkage-eval.d.ts.map +1 -1
- package/out/commands/filer/linkage-eval.js +1 -1
- package/out/commands/filer/linkage-eval.js.map +1 -1
- package/out/commands/gazetteer/affix-relabel.d.ts +6 -2
- package/out/commands/gazetteer/affix-relabel.d.ts.map +1 -1
- package/out/commands/gazetteer/affix-relabel.js +18 -8
- package/out/commands/gazetteer/affix-relabel.js.map +1 -1
- package/out/commands/gazetteer/anchor-lexicon.d.ts +1 -1
- package/out/commands/gazetteer/anchor-lexicon.d.ts.map +1 -1
- package/out/commands/gazetteer/anchor-lexicon.js +1 -1
- package/out/commands/gazetteer/anchor-lexicon.js.map +1 -1
- package/out/commands/gazetteer/build/admin.d.ts +1 -1
- package/out/commands/gazetteer/build/admin.d.ts.map +1 -1
- package/out/commands/gazetteer/build/admin.js +2 -2
- package/out/commands/gazetteer/build/admin.js.map +1 -1
- package/out/commands/gazetteer/build/anchor-lookup.d.ts +1 -1
- package/out/commands/gazetteer/build/anchor-lookup.d.ts.map +1 -1
- package/out/commands/gazetteer/build/anchor-lookup.js +1 -1
- package/out/commands/gazetteer/build/anchor-lookup.js.map +1 -1
- package/out/commands/gazetteer/build/bdc.d.ts +1 -1
- package/out/commands/gazetteer/build/bdc.d.ts.map +1 -1
- package/out/commands/gazetteer/build/bdc.js +2 -2
- package/out/commands/gazetteer/build/bdc.js.map +1 -1
- package/out/commands/gazetteer/build/candidate.d.ts +3 -1
- package/out/commands/gazetteer/build/candidate.d.ts.map +1 -1
- package/out/commands/gazetteer/build/candidate.js +27 -2
- package/out/commands/gazetteer/build/candidate.js.map +1 -1
- package/out/commands/gazetteer/build/coincident-roles.d.ts +1 -1
- package/out/commands/gazetteer/build/coincident-roles.d.ts.map +1 -1
- package/out/commands/gazetteer/build/coincident-roles.js +1 -1
- package/out/commands/gazetteer/build/coincident-roles.js.map +1 -1
- package/out/commands/gazetteer/build/fst.d.ts +1 -1
- package/out/commands/gazetteer/build/fst.d.ts.map +1 -1
- package/out/commands/gazetteer/build/fst.js +1 -1
- package/out/commands/gazetteer/build/fst.js.map +1 -1
- package/out/commands/gazetteer/build/fts.d.ts +1 -1
- package/out/commands/gazetteer/build/fts.d.ts.map +1 -1
- package/out/commands/gazetteer/build/fts.js +1 -1
- package/out/commands/gazetteer/build/fts.js.map +1 -1
- package/out/commands/gazetteer/build/index.d.ts +1 -1
- package/out/commands/gazetteer/build/index.d.ts.map +1 -1
- package/out/commands/gazetteer/build/index.js +2 -2
- package/out/commands/gazetteer/build/index.js.map +1 -1
- package/out/commands/gazetteer/build/locality-surface-lexicon.d.ts +1 -1
- package/out/commands/gazetteer/build/locality-surface-lexicon.d.ts.map +1 -1
- package/out/commands/gazetteer/build/locality-surface-lexicon.js +1 -1
- package/out/commands/gazetteer/build/locality-surface-lexicon.js.map +1 -1
- package/out/commands/gazetteer/build/nl-pc6.d.ts +1 -1
- package/out/commands/gazetteer/build/nl-pc6.d.ts.map +1 -1
- package/out/commands/gazetteer/build/nl-pc6.js +1 -1
- package/out/commands/gazetteer/build/nl-pc6.js.map +1 -1
- package/out/commands/gazetteer/build/poi-brands.d.ts +1 -1
- package/out/commands/gazetteer/build/poi-brands.d.ts.map +1 -1
- package/out/commands/gazetteer/build/poi-brands.js +2 -2
- package/out/commands/gazetteer/build/poi-brands.js.map +1 -1
- package/out/commands/gazetteer/build/poi.d.ts +1 -1
- package/out/commands/gazetteer/build/poi.d.ts.map +1 -1
- package/out/commands/gazetteer/build/poi.js +3 -3
- package/out/commands/gazetteer/build/poi.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-codepoint.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-codepoint.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-codepoint.js +2 -2
- package/out/commands/gazetteer/build/postcode-codepoint.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-geonames.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-geonames.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-geonames.js +2 -2
- package/out/commands/gazetteer/build/postcode-geonames.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-locality.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-locality.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-locality.js +1 -1
- package/out/commands/gazetteer/build/postcode-locality.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-ni-osm.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-ni-osm.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-ni-osm.js +2 -2
- package/out/commands/gazetteer/build/postcode-ni-osm.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-prefix.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-prefix.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-prefix.js +2 -2
- package/out/commands/gazetteer/build/postcode-prefix.js.map +1 -1
- package/out/commands/gazetteer/build/postcode-shard.d.ts +1 -1
- package/out/commands/gazetteer/build/postcode-shard.d.ts.map +1 -1
- package/out/commands/gazetteer/build/postcode-shard.js +2 -2
- package/out/commands/gazetteer/build/postcode-shard.js.map +1 -1
- package/out/commands/gazetteer/build/street-morphology.d.ts +1 -1
- package/out/commands/gazetteer/build/street-morphology.d.ts.map +1 -1
- package/out/commands/gazetteer/build/street-morphology.js +1 -1
- package/out/commands/gazetteer/build/street-morphology.js.map +1 -1
- package/out/commands/gazetteer/build/street-type-lexicon.d.ts +1 -1
- package/out/commands/gazetteer/build/street-type-lexicon.d.ts.map +1 -1
- package/out/commands/gazetteer/build/street-type-lexicon.js +1 -1
- package/out/commands/gazetteer/build/street-type-lexicon.js.map +1 -1
- package/out/commands/gazetteer/census.d.ts +1 -1
- package/out/commands/gazetteer/census.d.ts.map +1 -1
- package/out/commands/gazetteer/census.js +1 -1
- package/out/commands/gazetteer/census.js.map +1 -1
- package/out/commands/gazetteer/conventions.d.ts +1 -1
- package/out/commands/gazetteer/conventions.d.ts.map +1 -1
- package/out/commands/gazetteer/conventions.js +1 -1
- package/out/commands/gazetteer/conventions.js.map +1 -1
- package/out/commands/gazetteer/granularity.d.ts +1 -1
- package/out/commands/gazetteer/granularity.d.ts.map +1 -1
- package/out/commands/gazetteer/granularity.js +1 -1
- package/out/commands/gazetteer/granularity.js.map +1 -1
- package/out/commands/gazetteer/importance.d.ts +14 -6
- package/out/commands/gazetteer/importance.d.ts.map +1 -1
- package/out/commands/gazetteer/importance.js +59 -42
- package/out/commands/gazetteer/importance.js.map +1 -1
- package/out/commands/gazetteer/inspect/fst.d.ts +1 -1
- package/out/commands/gazetteer/inspect/fst.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/fst.js +8 -6
- package/out/commands/gazetteer/inspect/fst.js.map +1 -1
- package/out/commands/gazetteer/inspect/graph.d.ts +1 -1
- package/out/commands/gazetteer/inspect/graph.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/graph.js +1 -2
- package/out/commands/gazetteer/inspect/graph.js.map +1 -1
- package/out/commands/gazetteer/inspect/mermaid.d.ts +1 -1
- package/out/commands/gazetteer/inspect/mermaid.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/mermaid.js +1 -2
- package/out/commands/gazetteer/inspect/mermaid.js.map +1 -1
- package/out/commands/gazetteer/inspect/placetype-stats.d.ts +1 -1
- package/out/commands/gazetteer/inspect/placetype-stats.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/placetype-stats.js +1 -1
- package/out/commands/gazetteer/inspect/placetype-stats.js.map +1 -1
- package/out/commands/gazetteer/inspect/sync.d.ts +1 -1
- package/out/commands/gazetteer/inspect/sync.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/sync.js +1 -1
- package/out/commands/gazetteer/inspect/sync.js.map +1 -1
- package/out/commands/gazetteer/inspect/tree.d.ts +1 -1
- package/out/commands/gazetteer/inspect/tree.d.ts.map +1 -1
- package/out/commands/gazetteer/inspect/tree.js +1 -2
- package/out/commands/gazetteer/inspect/tree.js.map +1 -1
- package/out/commands/gazetteer/overture-ingest.d.ts +1 -1
- package/out/commands/gazetteer/overture-ingest.d.ts.map +1 -1
- package/out/commands/gazetteer/overture-ingest.js +1 -1
- package/out/commands/gazetteer/overture-ingest.js.map +1 -1
- package/out/commands/gazetteer/pair-index.d.ts +1 -1
- package/out/commands/gazetteer/pair-index.d.ts.map +1 -1
- package/out/commands/gazetteer/pair-index.js +2 -2
- package/out/commands/gazetteer/pair-index.js.map +1 -1
- package/out/commands/gazetteer/polygons.d.ts +1 -1
- package/out/commands/gazetteer/polygons.d.ts.map +1 -1
- package/out/commands/gazetteer/polygons.js +1 -1
- package/out/commands/gazetteer/polygons.js.map +1 -1
- package/out/commands/gazetteer/postal-alias.d.ts +1 -1
- package/out/commands/gazetteer/postal-alias.d.ts.map +1 -1
- package/out/commands/gazetteer/postal-alias.js +1 -1
- package/out/commands/gazetteer/postal-alias.js.map +1 -1
- package/out/commands/gazetteer/postal-city.d.ts +1 -1
- package/out/commands/gazetteer/postal-city.d.ts.map +1 -1
- package/out/commands/gazetteer/postal-city.js +1 -1
- package/out/commands/gazetteer/postal-city.js.map +1 -1
- package/out/commands/gazetteer/postcode-binary.d.ts +1 -1
- package/out/commands/gazetteer/postcode-binary.d.ts.map +1 -1
- package/out/commands/gazetteer/postcode-binary.js +1 -1
- package/out/commands/gazetteer/postcode-binary.js.map +1 -1
- package/out/commands/gazetteer/postcode-intl.d.ts +1 -1
- package/out/commands/gazetteer/postcode-intl.d.ts.map +1 -1
- package/out/commands/gazetteer/postcode-intl.js +1 -1
- package/out/commands/gazetteer/postcode-intl.js.map +1 -1
- package/out/commands/gazetteer/promote.d.ts +1 -1
- package/out/commands/gazetteer/promote.d.ts.map +1 -1
- package/out/commands/gazetteer/promote.js +2 -2
- package/out/commands/gazetteer/promote.js.map +1 -1
- package/out/commands/gazetteer/publish.d.ts +1 -1
- package/out/commands/gazetteer/publish.d.ts.map +1 -1
- package/out/commands/gazetteer/publish.js +2 -2
- package/out/commands/gazetteer/publish.js.map +1 -1
- package/out/commands/gazetteer/release.d.ts +1 -1
- package/out/commands/gazetteer/release.d.ts.map +1 -1
- package/out/commands/gazetteer/release.js +2 -2
- package/out/commands/gazetteer/release.js.map +1 -1
- package/out/commands/gazetteer/verify-codepoint.d.ts +1 -1
- package/out/commands/gazetteer/verify-codepoint.d.ts.map +1 -1
- package/out/commands/gazetteer/verify-codepoint.js +1 -1
- package/out/commands/gazetteer/verify-codepoint.js.map +1 -1
- package/out/commands/gazetteer/verify.d.ts +1 -1
- package/out/commands/gazetteer/verify.d.ts.map +1 -1
- package/out/commands/gazetteer/verify.js +2 -2
- package/out/commands/gazetteer/verify.js.map +1 -1
- package/out/commands/geocode.d.ts +43 -1
- package/out/commands/geocode.d.ts.map +1 -1
- package/out/commands/geocode.js +104 -7
- package/out/commands/geocode.js.map +1 -1
- package/out/commands/gnaf/assemble.d.ts +1 -1
- package/out/commands/gnaf/assemble.d.ts.map +1 -1
- package/out/commands/gnaf/assemble.js +1 -1
- package/out/commands/gnaf/assemble.js.map +1 -1
- package/out/commands/openapi.d.ts +1 -1
- package/out/commands/openapi.d.ts.map +1 -1
- package/out/commands/openapi.js +1 -1
- package/out/commands/openapi.js.map +1 -1
- package/out/commands/parse.d.ts +23 -9
- package/out/commands/parse.d.ts.map +1 -1
- package/out/commands/parse.js +64 -16
- package/out/commands/parse.js.map +1 -1
- package/out/commands/placer/build-dataset.d.ts +2 -2
- package/out/commands/placer/build-dataset.d.ts.map +1 -1
- package/out/commands/placer/build-dataset.js +1 -1
- package/out/commands/placer/build-dataset.js.map +1 -1
- package/out/commands/placer/eval.d.ts +1 -1
- package/out/commands/placer/eval.d.ts.map +1 -1
- package/out/commands/placer/eval.js +1 -1
- package/out/commands/placer/eval.js.map +1 -1
- package/out/commands/placer/probe-frontier.d.ts +1 -1
- package/out/commands/placer/probe-frontier.d.ts.map +1 -1
- package/out/commands/placer/probe-frontier.js +1 -1
- package/out/commands/placer/probe-frontier.js.map +1 -1
- package/out/commands/placer/quantize.d.ts +1 -1
- package/out/commands/placer/quantize.d.ts.map +1 -1
- package/out/commands/placer/quantize.js +1 -1
- package/out/commands/placer/quantize.js.map +1 -1
- package/out/commands/placer/train.d.ts +1 -1
- package/out/commands/placer/train.d.ts.map +1 -1
- package/out/commands/placer/train.js +1 -1
- package/out/commands/placer/train.js.map +1 -1
- package/out/commands/poi.d.ts +1 -1
- package/out/commands/poi.d.ts.map +1 -1
- package/out/commands/poi.js +6 -1
- package/out/commands/poi.js.map +1 -1
- package/out/commands/registry/convert/tx-hhsc.d.ts +1 -1
- package/out/commands/registry/convert/tx-hhsc.d.ts.map +1 -1
- package/out/commands/registry/convert/tx-hhsc.js +1 -1
- package/out/commands/registry/convert/tx-hhsc.js.map +1 -1
- package/out/commands/registry/dedup-ceiling.d.ts +1 -1
- package/out/commands/registry/dedup-ceiling.d.ts.map +1 -1
- package/out/commands/registry/dedup-ceiling.js +1 -1
- package/out/commands/registry/dedup-ceiling.js.map +1 -1
- package/out/commands/registry/gold-set-sample.d.ts +1 -1
- package/out/commands/registry/gold-set-sample.d.ts.map +1 -1
- package/out/commands/registry/gold-set-sample.js +1 -1
- package/out/commands/registry/gold-set-sample.js.map +1 -1
- package/out/commands/registry/matcher-scale.d.ts +1 -1
- package/out/commands/registry/matcher-scale.d.ts.map +1 -1
- package/out/commands/registry/matcher-scale.js +1 -1
- package/out/commands/registry/matcher-scale.js.map +1 -1
- package/out/commands/registry/run.d.ts +1 -1
- package/out/commands/registry/run.d.ts.map +1 -1
- package/out/commands/registry/run.js +1 -1
- package/out/commands/registry/run.js.map +1 -1
- package/out/commands/registry/scorer-eval.d.ts +1 -1
- package/out/commands/registry/scorer-eval.d.ts.map +1 -1
- package/out/commands/registry/scorer-eval.js +1 -1
- package/out/commands/registry/scorer-eval.js.map +1 -1
- package/out/commands/registry/train-scorer.d.ts +1 -1
- package/out/commands/registry/train-scorer.d.ts.map +1 -1
- package/out/commands/registry/train-scorer.js +1 -1
- package/out/commands/registry/train-scorer.js.map +1 -1
- package/out/commands/registry/viz.d.ts +1 -1
- package/out/commands/registry/viz.d.ts.map +1 -1
- package/out/commands/registry/viz.js +1 -1
- package/out/commands/registry/viz.js.map +1 -1
- package/out/commands/release/hf.d.ts +1 -1
- package/out/commands/release/hf.d.ts.map +1 -1
- package/out/commands/release/hf.js +1 -1
- package/out/commands/release/hf.js.map +1 -1
- package/out/commands/reverse.d.ts +1 -1
- package/out/commands/reverse.d.ts.map +1 -1
- package/out/commands/reverse.js +7 -2
- package/out/commands/reverse.js.map +1 -1
- package/out/commands/serve.d.ts +1 -1
- package/out/commands/serve.d.ts.map +1 -1
- package/out/commands/serve.js.map +1 -1
- package/out/commands/situs/address-points.d.ts +1 -1
- package/out/commands/situs/address-points.d.ts.map +1 -1
- package/out/commands/situs/address-points.js +1 -1
- package/out/commands/situs/address-points.js.map +1 -1
- package/out/commands/situs/attribution-manifest.d.ts +1 -1
- package/out/commands/situs/attribution-manifest.d.ts.map +1 -1
- package/out/commands/situs/attribution-manifest.js +1 -1
- package/out/commands/situs/attribution-manifest.js.map +1 -1
- package/out/commands/situs/build.d.ts +1 -1
- package/out/commands/situs/build.d.ts.map +1 -1
- package/out/commands/situs/build.js +1 -1
- package/out/commands/situs/build.js.map +1 -1
- package/out/commands/situs/interpolation-shard.d.ts +1 -1
- package/out/commands/situs/interpolation-shard.d.ts.map +1 -1
- package/out/commands/situs/interpolation-shard.js +1 -1
- package/out/commands/situs/interpolation-shard.js.map +1 -1
- package/out/commands/situs/interpolation.d.ts +1 -1
- package/out/commands/situs/interpolation.d.ts.map +1 -1
- package/out/commands/situs/interpolation.js +13 -14
- package/out/commands/situs/interpolation.js.map +1 -1
- package/out/commands/skill/install.d.ts +1 -1
- package/out/commands/skill/install.d.ts.map +1 -1
- package/out/commands/skill/install.js +1 -1
- package/out/commands/skill/install.js.map +1 -1
- package/out/commands/tiger/fetch.d.ts +1 -1
- package/out/commands/tiger/fetch.d.ts.map +1 -1
- package/out/commands/tiger/fetch.js +1 -1
- package/out/commands/tiger/fetch.js.map +1 -1
- package/out/commands/tiger/race-dots-map.d.ts +1 -1
- package/out/commands/tiger/race-dots-map.d.ts.map +1 -1
- package/out/commands/tiger/race-dots-map.js +1 -1
- package/out/commands/tiger/race-dots-map.js.map +1 -1
- package/out/commands/tiger/race-dots.d.ts +1 -1
- package/out/commands/tiger/race-dots.d.ts.map +1 -1
- package/out/commands/tiger/race-dots.js +1 -1
- package/out/commands/tiger/race-dots.js.map +1 -1
- package/out/commands/tiger/redistricting.d.ts +1 -1
- package/out/commands/tiger/redistricting.d.ts.map +1 -1
- package/out/commands/tiger/redistricting.js +1 -1
- package/out/commands/tiger/redistricting.js.map +1 -1
- package/out/commands/tiles/publish.d.ts +1 -1
- package/out/commands/tiles/publish.d.ts.map +1 -1
- package/out/commands/tiles/publish.js +1 -1
- package/out/commands/tiles/publish.js.map +1 -1
- package/out/commands/wof/graph.d.ts.map +1 -1
- package/out/commands/wof/graph.js +1 -1
- package/out/commands/wof/graph.js.map +1 -1
- package/out/commands/wof/mermaid.d.ts.map +1 -1
- package/out/commands/wof/mermaid.js +1 -1
- package/out/commands/wof/mermaid.js.map +1 -1
- package/out/commands/wof/prepare.d.ts.map +1 -1
- package/out/commands/wof/prepare.js +1 -1
- package/out/commands/wof/prepare.js.map +1 -1
- package/out/commands/wof/sync.d.ts.map +1 -1
- package/out/commands/wof/sync.js +1 -1
- package/out/commands/wof/sync.js.map +1 -1
- package/out/commands/wof/tree.d.ts.map +1 -1
- package/out/commands/wof/tree.js +1 -1
- package/out/commands/wof/tree.js.map +1 -1
- package/out/dev-tools/postcode-coherence-coverage.run.js +1 -1
- package/out/dev-tools/postcode-coherence-coverage.run.js.map +1 -1
- package/out/dev-tools/postcode-coherence-scale.run.js +1 -1
- package/out/dev-tools/postcode-coherence-scale.run.js.map +1 -1
- package/out/dev-tools/probe-query-intent.run.d.ts +92 -0
- package/out/dev-tools/probe-query-intent.run.d.ts.map +1 -0
- package/out/dev-tools/probe-query-intent.run.js +145 -0
- package/out/dev-tools/probe-query-intent.run.js.map +1 -0
- package/out/dev-tools/probe-referential-delta.run.d.ts +35 -0
- package/out/dev-tools/probe-referential-delta.run.d.ts.map +1 -0
- package/out/dev-tools/probe-referential-delta.run.js +128 -0
- package/out/dev-tools/probe-referential-delta.run.js.map +1 -0
- package/out/dev-tools/score-hard-slice-board.run.d.ts +7 -0
- package/out/dev-tools/score-hard-slice-board.run.d.ts.map +1 -1
- package/out/dev-tools/score-hard-slice-board.run.js +8 -0
- package/out/dev-tools/score-hard-slice-board.run.js.map +1 -1
- package/out/dev-tools/score-interesting-addresses.run.d.ts +10 -0
- package/out/dev-tools/score-interesting-addresses.run.d.ts.map +1 -0
- package/out/dev-tools/score-interesting-addresses.run.js +76 -0
- package/out/dev-tools/score-interesting-addresses.run.js.map +1 -0
- package/out/dev-tools/score-street-name-boundaries.run.d.ts +9 -0
- package/out/dev-tools/score-street-name-boundaries.run.d.ts.map +1 -0
- package/out/dev-tools/score-street-name-boundaries.run.js +64 -0
- package/out/dev-tools/score-street-name-boundaries.run.js.map +1 -0
- package/out/dev-tools/score-world-structures.run.d.ts +19 -0
- package/out/dev-tools/score-world-structures.run.d.ts.map +1 -0
- package/out/dev-tools/score-world-structures.run.js +82 -0
- package/out/dev-tools/score-world-structures.run.js.map +1 -0
- package/out/doctor/checks.d.ts +10 -1
- package/out/doctor/checks.d.ts.map +1 -1
- package/out/doctor/checks.js +31 -3
- package/out/doctor/checks.js.map +1 -1
- package/out/doctor/runner.d.ts +32 -3
- package/out/doctor/runner.d.ts.map +1 -1
- package/out/doctor/runner.js +50 -4
- package/out/doctor/runner.js.map +1 -1
- package/out/eval-harness/de-order-eval.d.ts +68 -0
- package/out/eval-harness/de-order-eval.d.ts.map +1 -0
- package/out/eval-harness/de-order-eval.js +121 -0
- package/out/eval-harness/de-order-eval.js.map +1 -0
- package/out/eval-harness/demo-cascade-rows.d.ts +58 -0
- package/out/eval-harness/demo-cascade-rows.d.ts.map +1 -0
- package/out/eval-harness/demo-cascade-rows.js +113 -0
- package/out/eval-harness/demo-cascade-rows.js.map +1 -0
- package/out/eval-harness/demo-cascade-smoke.d.ts +105 -0
- package/out/eval-harness/demo-cascade-smoke.d.ts.map +1 -0
- package/out/eval-harness/demo-cascade-smoke.js +278 -0
- package/out/eval-harness/demo-cascade-smoke.js.map +1 -0
- package/out/eval-harness/external-arenas.d.ts +77 -0
- package/out/eval-harness/external-arenas.d.ts.map +1 -0
- package/out/eval-harness/external-arenas.js +115 -0
- package/out/eval-harness/external-arenas.js.map +1 -0
- package/out/eval-harness/fr-parse-recall.d.ts +85 -0
- package/out/eval-harness/fr-parse-recall.d.ts.map +1 -0
- package/out/eval-harness/fr-parse-recall.js +166 -0
- package/out/eval-harness/fr-parse-recall.js.map +1 -0
- package/out/eval-harness/gauntlet/build-regression-db.d.ts.map +1 -1
- package/out/eval-harness/gauntlet/build-regression-db.js +1 -1
- package/out/eval-harness/gauntlet/build-regression-db.js.map +1 -1
- package/out/eval-harness/gauntlet/cases/seed-case.d.ts +10 -1
- package/out/eval-harness/gauntlet/cases/seed-case.d.ts.map +1 -1
- package/out/eval-harness/gauntlet/cases/seed-case.js +4 -0
- package/out/eval-harness/gauntlet/cases/seed-case.js.map +1 -1
- package/out/eval-harness/gauntlet/check-case.d.ts +25 -2
- package/out/eval-harness/gauntlet/check-case.d.ts.map +1 -1
- package/out/eval-harness/gauntlet/check-case.js +146 -6
- package/out/eval-harness/gauntlet/check-case.js.map +1 -1
- package/out/eval-harness/gauntlet/harness.d.ts +4 -0
- package/out/eval-harness/gauntlet/harness.d.ts.map +1 -1
- package/out/eval-harness/gauntlet/harness.js +3 -2
- package/out/eval-harness/gauntlet/harness.js.map +1 -1
- package/out/eval-harness/gauntlet/schema.d.ts +8 -1
- package/out/eval-harness/gauntlet/schema.d.ts.map +1 -1
- package/out/eval-harness/gauntlet/schema.js +3 -0
- package/out/eval-harness/gauntlet/schema.js.map +1 -1
- package/out/eval-harness/invariance/runner.d.ts +60 -5
- package/out/eval-harness/invariance/runner.d.ts.map +1 -1
- package/out/eval-harness/invariance/runner.js +133 -36
- package/out/eval-harness/invariance/runner.js.map +1 -1
- package/out/eval-harness/oa-resolver-eval.d.ts +1 -1
- package/out/eval-harness/oa-resolver-eval.d.ts.map +1 -1
- package/out/eval-harness/oa-resolver-eval.js +16 -16
- package/out/eval-harness/oa-resolver-eval.js.map +1 -1
- package/out/eval-harness/per-locale-f1.d.ts +128 -0
- package/out/eval-harness/per-locale-f1.d.ts.map +1 -0
- package/out/eval-harness/per-locale-f1.js +399 -0
- package/out/eval-harness/per-locale-f1.js.map +1 -0
- package/out/eval-harness/promotion-gate.d.ts +30 -6
- package/out/eval-harness/promotion-gate.d.ts.map +1 -1
- package/out/eval-harness/promotion-gate.js +290 -102
- package/out/eval-harness/promotion-gate.js.map +1 -1
- package/out/eval-harness/score-affix.d.ts +85 -0
- package/out/eval-harness/score-affix.d.ts.map +1 -0
- package/out/eval-harness/score-affix.js +111 -0
- package/out/eval-harness/score-affix.js.map +1 -0
- package/out/eval-harness/score-country-homograph.d.ts +95 -0
- package/out/eval-harness/score-country-homograph.d.ts.map +1 -0
- package/out/eval-harness/score-country-homograph.js +121 -0
- package/out/eval-harness/score-country-homograph.js.map +1 -0
- package/out/gazetteer-pipeline/admin/index.js +2 -2
- package/out/gazetteer-pipeline/admin/index.js.map +1 -1
- package/out/gazetteer-pipeline/evidence-lexicons.js +1 -1
- package/out/gazetteer-pipeline/evidence-lexicons.js.map +1 -1
- package/out/gazetteer-pipeline/index.d.ts +26 -0
- package/out/gazetteer-pipeline/index.d.ts.map +1 -1
- package/out/gazetteer-pipeline/index.js +34 -4
- package/out/gazetteer-pipeline/index.js.map +1 -1
- package/out/gazetteer-pipeline/postcode/index.js +5 -5
- package/out/gazetteer-pipeline/postcode/index.js.map +1 -1
- package/out/geocode-core.d.ts +105 -6
- package/out/geocode-core.d.ts.map +1 -1
- package/out/geocode-core.js +165 -19
- package/out/geocode-core.js.map +1 -1
- package/out/query-intent.d.ts +73 -0
- package/out/query-intent.d.ts.map +1 -0
- package/out/query-intent.js +168 -0
- package/out/query-intent.js.map +1 -0
- package/out/resolver-backend.js +2 -2
- package/out/resolver-backend.js.map +1 -1
- package/out/tools/generate-clients.d.ts +1 -1
- package/out/tools/generate-clients.d.ts.map +1 -1
- package/out/tools/generate-clients.js.map +1 -1
- package/package.json +58 -28
- package/query-intent.ts +234 -0
- package/resolver-backend.ts +2 -2
- package/tools/generate-clients.ts +1 -2
package/cli-kit/index.ts
CHANGED
|
@@ -2,157 +2,6 @@
|
|
|
2
2
|
* @copyright Sister Software
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
|
-
*
|
|
6
|
-
* The command toolkit for `mailwoman/commands/*` — Pastel/Ink helper types, the one-shot
|
|
7
|
-
* {@linkcode useCommandTask} runner, and the {@linkcode CheckList} renderer. Lives OUTSIDE
|
|
8
|
-
* `commands/` (Pastel treats every file there as a command) and OUTSIDE `sdk/` (`sdk/` submodules
|
|
9
|
-
* mean data acquisition). Built with `createElement`, not JSX, so the module stays plain `.ts` —
|
|
10
|
-
* importable under node's type stripping (the dev `node →` exports condition).
|
|
11
5
|
*/
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
import { Box, Text } from "ink"
|
|
15
|
-
import { createElement as h, useEffect, useState } from "react"
|
|
16
|
-
import type * as React from "react"
|
|
17
|
-
import type * as zod from "zod"
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Type-helper to infer the positional arguments of a command.
|
|
21
|
-
*/
|
|
22
|
-
export interface PositionalArguments<T extends zod.ZodTypeAny> {
|
|
23
|
-
args: zod.infer<T>
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* React component for a command with positional arguments.
|
|
28
|
-
*/
|
|
29
|
-
export type PositionalCommandComponent<T extends zod.ZodTypeAny> = React.FC<PositionalArguments<T>>
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Type-helper to infer the options of a command.
|
|
33
|
-
*/
|
|
34
|
-
export interface CommandProps<
|
|
35
|
-
OptionProps extends zod.ZodObject,
|
|
36
|
-
PositionalProps extends zod.ZodTypeAny | unknown = unknown,
|
|
37
|
-
> {
|
|
38
|
-
options: zod.infer<OptionProps>
|
|
39
|
-
args: PositionalProps extends zod.ZodTypeAny ? zod.infer<PositionalProps> : unknown[]
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* React component for a command with options.
|
|
44
|
-
*/
|
|
45
|
-
export type CommandComponent<
|
|
46
|
-
OptionProps extends zod.ZodObject,
|
|
47
|
-
PositionalProps extends zod.ZodTypeAny | unknown = unknown,
|
|
48
|
-
> = React.FC<CommandProps<OptionProps, PositionalProps>>
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* The lifecycle of a command's one-shot async task.
|
|
52
|
-
*/
|
|
53
|
-
export type CommandTaskState<T> =
|
|
54
|
-
| { status: "running" }
|
|
55
|
-
| { status: "done"; result: T }
|
|
56
|
-
| { status: "error"; message: string }
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Run a command's one-shot async task and own the exit-code discipline: rejection renders the error state and exits 1;
|
|
60
|
-
* resolution exits with `exitCode(result)` (default 0) — always AFTER the final frame committed. Replaces the
|
|
61
|
-
* copy-pasted useEffect/useState/setImmediate dance in every command.
|
|
62
|
-
*/
|
|
63
|
-
/* oxlint-disable react-hooks/exhaustive-deps -- One-shot by design: the task/exitCode closures
|
|
64
|
-
capture their options at mount; tracking them (fresh closure per render) would re-run the task
|
|
65
|
-
every render. The empty/[state] deps are the point. */
|
|
66
|
-
export function useCommandTask<T>(task: () => Promise<T>, exitCode?: (result: T) => number): CommandTaskState<T> {
|
|
67
|
-
const [state, setState] = useState<CommandTaskState<T>>({ status: "running" })
|
|
68
|
-
|
|
69
|
-
useEffect(() => {
|
|
70
|
-
void task().then(
|
|
71
|
-
(result) => setState({ status: "done", result }),
|
|
72
|
-
(error: unknown) =>
|
|
73
|
-
setState({ status: "error", message: error instanceof Error ? (error.stack ?? error.message) : String(error) })
|
|
74
|
-
)
|
|
75
|
-
}, [])
|
|
76
|
-
|
|
77
|
-
useEffect(() => {
|
|
78
|
-
if (state.status === "running") return
|
|
79
|
-
const code = state.status === "error" ? 1 : (exitCode?.(state.result) ?? 0)
|
|
80
|
-
setImmediate(() => process.exit(code))
|
|
81
|
-
}, [state])
|
|
82
|
-
|
|
83
|
-
return state
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* oxlint-enable react-hooks/exhaustive-deps */
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Build a guidance-grade error whose rendered form is exactly `message` — no stack. {@linkcode useCommandTask} renders
|
|
90
|
-
* `error.stack ?? error.message`, which is right for unexpected failures but turns deliberate user-facing guidance
|
|
91
|
-
* ("Set $MAILWOMAN_WOF_DB…") into a stack dump. Throw `commandError(msg)` for those instead of `new Error(msg)`.
|
|
92
|
-
*/
|
|
93
|
-
export function commandError(message: string): Error {
|
|
94
|
-
const error = new Error(message)
|
|
95
|
-
error.stack = message
|
|
96
|
-
|
|
97
|
-
return error
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* One ✓/✗ line in a {@linkcode CheckList}.
|
|
102
|
-
*/
|
|
103
|
-
export interface Check {
|
|
104
|
-
ok: boolean
|
|
105
|
-
check: string
|
|
106
|
-
detail?: string
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* The ✓/✗ check-list + PASS/FAIL renderer (extracted from `gazetteer verify`). Pass `verdict` to append the summary
|
|
111
|
-
* line.
|
|
112
|
-
*/
|
|
113
|
-
export function CheckList({ checks, verdict }: { checks: readonly Check[]; verdict?: boolean }): React.ReactElement {
|
|
114
|
-
const lines = checks.map((c, i) =>
|
|
115
|
-
h(
|
|
116
|
-
Text,
|
|
117
|
-
{ key: i, color: c.ok ? "green" : "red" },
|
|
118
|
-
`${c.ok ? "✓" : "✗"} ${c.check}${c.detail ? `: ${c.detail}` : ""}`
|
|
119
|
-
)
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
const summary =
|
|
123
|
-
verdict === undefined
|
|
124
|
-
? null
|
|
125
|
-
: h(
|
|
126
|
-
Text,
|
|
127
|
-
{ color: verdict ? "green" : "red" },
|
|
128
|
-
`${verdict ? "PASS" : "FAIL"} (${checks.filter((c) => c.ok).length}/${checks.length} checks)`
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
return h(Box, { flexDirection: "column" }, ...lines, summary)
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Parse a `--roles a,b,c` flag into validated {@link PlacetypeRole}s, or `undefined` when the flag is absent (which
|
|
136
|
-
* every caller reads as "all roles").
|
|
137
|
-
*
|
|
138
|
-
* Rejects an unknown role with {@link commandError} rather than silently filtering it — a typo in a role name would
|
|
139
|
-
* otherwise produce an empty, entirely plausible-looking result.
|
|
140
|
-
*/
|
|
141
|
-
export function parseRoles(raw: string | undefined): PlacetypeRole[] | undefined {
|
|
142
|
-
if (!raw) return undefined
|
|
143
|
-
|
|
144
|
-
const valid = new Set<string>(PlacetypeRoles)
|
|
145
|
-
|
|
146
|
-
const parsed = raw
|
|
147
|
-
.split(",")
|
|
148
|
-
.map((s) => s.trim())
|
|
149
|
-
.filter(Boolean)
|
|
150
|
-
|
|
151
|
-
for (const role of parsed) {
|
|
152
|
-
if (!valid.has(role)) {
|
|
153
|
-
throw commandError(`Unknown placetype role '${role}'. Valid roles: ${PlacetypeRoles.join(", ")}.`)
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return parsed as PlacetypeRole[]
|
|
158
|
-
}
|
|
7
|
+
export * from "./shared.ts"
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* The command toolkit for `mailwoman/commands/*` — Pastel/Ink helper types, the one-shot
|
|
7
|
+
* {@linkcode useCommandTask} runner, and the {@linkcode CheckList} renderer. Lives OUTSIDE
|
|
8
|
+
* `commands/` (Pastel treats every file there as a command) and OUTSIDE `sdk/` (`sdk/` submodules
|
|
9
|
+
* mean data acquisition). Built with `createElement`, not JSX, so the module stays plain `.ts` —
|
|
10
|
+
* importable under node's type stripping (the dev `node →` exports condition).
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { type PlacetypeRole, PlacetypeRoles } from "@mailwoman/core"
|
|
14
|
+
import { Box, Text } from "ink"
|
|
15
|
+
import { createElement as h, useEffect, useState } from "react"
|
|
16
|
+
import type * as React from "react"
|
|
17
|
+
import type * as zod from "zod"
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Type-helper to infer the positional arguments of a command.
|
|
21
|
+
*/
|
|
22
|
+
export interface PositionalArguments<T extends zod.ZodTypeAny> {
|
|
23
|
+
args: zod.infer<T>
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* React component for a command with positional arguments.
|
|
28
|
+
*/
|
|
29
|
+
export type PositionalCommandComponent<T extends zod.ZodTypeAny> = React.FC<PositionalArguments<T>>
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Type-helper to infer the options of a command.
|
|
33
|
+
*/
|
|
34
|
+
export interface CommandProps<
|
|
35
|
+
OptionProps extends zod.ZodObject,
|
|
36
|
+
PositionalProps extends zod.ZodTypeAny | unknown = unknown,
|
|
37
|
+
> {
|
|
38
|
+
options: zod.infer<OptionProps>
|
|
39
|
+
args: PositionalProps extends zod.ZodTypeAny ? zod.infer<PositionalProps> : unknown[]
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* React component for a command with options.
|
|
44
|
+
*/
|
|
45
|
+
export type CommandComponent<
|
|
46
|
+
OptionProps extends zod.ZodObject,
|
|
47
|
+
PositionalProps extends zod.ZodTypeAny | unknown = unknown,
|
|
48
|
+
> = React.FC<CommandProps<OptionProps, PositionalProps>>
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The lifecycle of a command's one-shot async task.
|
|
52
|
+
*/
|
|
53
|
+
export type CommandTaskState<T> =
|
|
54
|
+
| { status: "running" }
|
|
55
|
+
| { status: "done"; result: T }
|
|
56
|
+
| { status: "error"; message: string }
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Run a command's one-shot async task and own the exit-code discipline: rejection renders the error state and exits 1;
|
|
60
|
+
* resolution exits with `exitCode(result)` (default 0) — always AFTER the final frame committed. Replaces the
|
|
61
|
+
* copy-pasted useEffect/useState/setImmediate dance in every command.
|
|
62
|
+
*/
|
|
63
|
+
/* oxlint-disable react-hooks/exhaustive-deps -- One-shot by design: the task/exitCode closures
|
|
64
|
+
capture their options at mount; tracking them (fresh closure per render) would re-run the task
|
|
65
|
+
every render. The empty/[state] deps are the point. */
|
|
66
|
+
export function useCommandTask<T>(task: () => Promise<T>, exitCode?: (result: T) => number): CommandTaskState<T> {
|
|
67
|
+
const [state, setState] = useState<CommandTaskState<T>>({ status: "running" })
|
|
68
|
+
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
void task().then(
|
|
71
|
+
(result) => setState({ status: "done", result }),
|
|
72
|
+
(error: unknown) =>
|
|
73
|
+
setState({ status: "error", message: error instanceof Error ? (error.stack ?? error.message) : String(error) })
|
|
74
|
+
)
|
|
75
|
+
}, [])
|
|
76
|
+
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
if (state.status === "running") return
|
|
79
|
+
const code = state.status === "error" ? 1 : (exitCode?.(state.result) ?? 0)
|
|
80
|
+
setImmediate(() => process.exit(code))
|
|
81
|
+
}, [state])
|
|
82
|
+
|
|
83
|
+
return state
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* oxlint-enable react-hooks/exhaustive-deps */
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Emit a command's final output as raw bytes, bypassing Ink's `<Text>` renderer.
|
|
90
|
+
*
|
|
91
|
+
* Ink word-wraps rendered text at the terminal width — and at 80 columns when stdout is piped — which corrupts
|
|
92
|
+
* machine-readable output: a JSON string value longer than the width gets real newlines inserted mid-string, breaking
|
|
93
|
+
* the document (observed 2026-08-07: `geocode --format json` on "Toledo Ohio" wrapped `intent_markers[].message` at 80
|
|
94
|
+
* cols). Machine formats (json/jsonld/xml/tuple, `--json` flags) must never pass through `<Text>`.
|
|
95
|
+
*
|
|
96
|
+
* Returns `null` so the caller can `return writeRawStdout(result)` from the done branch. Safe to call from render:
|
|
97
|
+
* {@linkcode useCommandTask} renders the done frame exactly once before its `process.exit`. Same pattern as
|
|
98
|
+
* `commands/gazetteer/inspect/graph.tsx`.
|
|
99
|
+
*/
|
|
100
|
+
export function writeRawStdout(text: string): null {
|
|
101
|
+
process.stdout.write(text + "\n")
|
|
102
|
+
|
|
103
|
+
return null
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Build a guidance-grade error whose rendered form is exactly `message` — no stack. {@linkcode useCommandTask} renders
|
|
108
|
+
* `error.stack ?? error.message`, which is right for unexpected failures but turns deliberate user-facing guidance
|
|
109
|
+
* ("Set $MAILWOMAN_WOF_DB…") into a stack dump. Throw `commandError(msg)` for those instead of `new Error(msg)`.
|
|
110
|
+
*/
|
|
111
|
+
export function commandError(message: string): Error {
|
|
112
|
+
const error = new Error(message)
|
|
113
|
+
error.stack = message
|
|
114
|
+
|
|
115
|
+
return error
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* One ✓/✗ line in a {@linkcode CheckList}.
|
|
120
|
+
*/
|
|
121
|
+
export interface Check {
|
|
122
|
+
ok: boolean
|
|
123
|
+
check: string
|
|
124
|
+
detail?: string
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The ✓/✗ check-list + PASS/FAIL renderer (extracted from `gazetteer verify`). Pass `verdict` to append the summary
|
|
129
|
+
* line.
|
|
130
|
+
*/
|
|
131
|
+
export function CheckList({ checks, verdict }: { checks: readonly Check[]; verdict?: boolean }): React.ReactElement {
|
|
132
|
+
const lines = checks.map((c, i) =>
|
|
133
|
+
h(
|
|
134
|
+
Text,
|
|
135
|
+
{ key: i, color: c.ok ? "green" : "red" },
|
|
136
|
+
`${c.ok ? "✓" : "✗"} ${c.check}${c.detail ? `: ${c.detail}` : ""}`
|
|
137
|
+
)
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
const summary =
|
|
141
|
+
verdict === undefined
|
|
142
|
+
? null
|
|
143
|
+
: h(
|
|
144
|
+
Text,
|
|
145
|
+
{ color: verdict ? "green" : "red" },
|
|
146
|
+
`${verdict ? "PASS" : "FAIL"} (${checks.filter((c) => c.ok).length}/${checks.length} checks)`
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
return h(Box, { flexDirection: "column" }, ...lines, summary)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Parse a `--roles a,b,c` flag into validated {@link PlacetypeRole}s, or `undefined` when the flag is absent (which
|
|
154
|
+
* every caller reads as "all roles").
|
|
155
|
+
*
|
|
156
|
+
* Rejects an unknown role with {@link commandError} rather than silently filtering it — a typo in a role name would
|
|
157
|
+
* otherwise produce an empty, entirely plausible-looking result.
|
|
158
|
+
*/
|
|
159
|
+
export function parseRoles(raw: string | undefined): PlacetypeRole[] | undefined {
|
|
160
|
+
if (!raw) return undefined
|
|
161
|
+
|
|
162
|
+
const valid = new Set<string>(PlacetypeRoles)
|
|
163
|
+
|
|
164
|
+
const parsed = raw
|
|
165
|
+
.split(",")
|
|
166
|
+
.map((s) => s.trim())
|
|
167
|
+
.filter(Boolean)
|
|
168
|
+
|
|
169
|
+
for (const role of parsed) {
|
|
170
|
+
if (!valid.has(role)) {
|
|
171
|
+
throw commandError(`Unknown placetype role '${role}'. Valid roles: ${PlacetypeRoles.join(", ")}.`)
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return parsed as PlacetypeRole[]
|
|
176
|
+
}
|
package/cli.ts
CHANGED
|
@@ -7,22 +7,66 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { readFileSync } from "node:fs"
|
|
10
|
+
import { findPackageJSON } from "node:module"
|
|
10
11
|
|
|
11
12
|
import { parseJSONStrict } from "@mailwoman/core/objects"
|
|
13
|
+
import { cliArguments, scriptEntryPath } from "@mailwoman/core/scripting/utils"
|
|
12
14
|
import Pastel from "pastel"
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const packageJSONPath = findPackageJSON(import.meta.url)
|
|
17
|
+
|
|
18
|
+
if (!packageJSONPath) {
|
|
19
|
+
throw new Error("Could not find package.json for mailwoman/cli")
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const packageJSON = parseJSONStrict<{ version: string }>(readFileSync(packageJSONPath, "utf8"))
|
|
20
23
|
|
|
21
24
|
const app = new Pastel({
|
|
22
25
|
importMeta: import.meta,
|
|
23
26
|
description: "A calibrated, retrieval-augmented postal-address parser — CLI + library.",
|
|
24
27
|
name: "Mailwoman CLI",
|
|
25
|
-
version,
|
|
28
|
+
version: packageJSON.version,
|
|
26
29
|
})
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Commands whose bare invocation (`mailwoman <name>` and nothing else) should print their own help.
|
|
33
|
+
*
|
|
34
|
+
* Without this, commander answers a missing required operand with one unhelpful line — `error: missing required
|
|
35
|
+
* argument 'address'` — and no usage, no flags, no example (#1577). Pastel never exposes its commander `program`, so
|
|
36
|
+
* the only seam is the argv we hand `app.run`: append `--help` and let commander render the real, always-in-sync help
|
|
37
|
+
* for that subcommand.
|
|
38
|
+
*
|
|
39
|
+
* Deliberately narrow — the user arguments must be EXACTLY `[<name>]`. Deciding "no operand was given" for a richer
|
|
40
|
+
* argv would mean re-implementing commander's knowledge of which flags take values, and getting that wrong turns a real
|
|
41
|
+
* geocode into a help screen.
|
|
42
|
+
*/
|
|
43
|
+
const HELP_ON_BARE_INVOCATION = new Set(["geocode"])
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* A bare invocation is one user argument: the command name, nothing after it.
|
|
47
|
+
*/
|
|
48
|
+
const BARE_INVOCATION_ARGUMENT_COUNT = 1
|
|
49
|
+
|
|
50
|
+
const userArguments = cliArguments()
|
|
51
|
+
|
|
52
|
+
const bareInvocation =
|
|
53
|
+
userArguments.length === BARE_INVOCATION_ARGUMENT_COUNT && HELP_ON_BARE_INVOCATION.has(userArguments[0]!)
|
|
54
|
+
|
|
55
|
+
if (bareInvocation) {
|
|
56
|
+
// Commander's help handler exits 0, but a missing required operand is still a usage error — and
|
|
57
|
+
// `mailwoman data` (no subcommand) already answers help-with-exit-1, so that is the house contract.
|
|
58
|
+
// Node re-reads `process.exitCode` after emitting 'exit', so a listener can still raise it.
|
|
59
|
+
process.once("exit", () => {
|
|
60
|
+
process.exitCode = 1
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Rebuilt in commander's node-style shape (`[runtime, script, ...user]`) from the blessed accessors — it slices from
|
|
65
|
+
// index 2 and only ever reads argv[1] as a script path. argv[0] is never consulted once `program.name()` is set, which
|
|
66
|
+
// Pastel does above.
|
|
67
|
+
await app.run([
|
|
68
|
+
"node",
|
|
69
|
+
scriptEntryPath(),
|
|
70
|
+
...userArguments,
|
|
71
|
+
...(bareInvocation ? (["--help"] as const) : ([] as const)),
|
|
72
|
+
])
|
|
@@ -19,11 +19,10 @@ import { readFileSync } from "node:fs"
|
|
|
19
19
|
|
|
20
20
|
import { $public } from "@mailwoman/core/env"
|
|
21
21
|
import { Text } from "ink"
|
|
22
|
+
import { type CommandComponent, commandError, useCommandTask, writeRawStdout } from "mailwoman/cli-kit"
|
|
22
23
|
import { argument } from "pastel"
|
|
23
24
|
import zod from "zod"
|
|
24
25
|
|
|
25
|
-
import { type CommandComponent, commandError, useCommandTask } from "../cli-kit/index.ts"
|
|
26
|
-
|
|
27
26
|
export { ArgumentsSchema as args, AutocompleteConfigSchema as options }
|
|
28
27
|
|
|
29
28
|
const ArgumentsSchema = zod
|
|
@@ -63,7 +62,15 @@ export interface AutocompleteEntry {
|
|
|
63
62
|
name: string
|
|
64
63
|
placetype: string
|
|
65
64
|
wofID: number
|
|
66
|
-
|
|
65
|
+
/**
|
|
66
|
+
* The referential likelihood suggestions are ranked by (ROAD_TO_V9 §2).
|
|
67
|
+
*/
|
|
68
|
+
referential: number
|
|
69
|
+
/**
|
|
70
|
+
* Encyclopedic importance when the artifact carries one — displayed, never ranked on. `undefined` = no article, or a
|
|
71
|
+
* pre-v5 binary.
|
|
72
|
+
*/
|
|
73
|
+
encyclopedic?: number
|
|
67
74
|
completionTokens: string[]
|
|
68
75
|
}
|
|
69
76
|
|
|
@@ -115,7 +122,8 @@ export async function runAutocomplete(
|
|
|
115
122
|
name: s.name,
|
|
116
123
|
placetype: s.placetype,
|
|
117
124
|
wofID: s.wofID,
|
|
118
|
-
|
|
125
|
+
referential: s.referential,
|
|
126
|
+
...(s.encyclopedic === undefined ? {} : { encyclopedic: s.encyclopedic }),
|
|
119
127
|
completionTokens: s.completionTokens,
|
|
120
128
|
}))
|
|
121
129
|
}
|
|
@@ -126,9 +134,11 @@ function formatSuggestions(entries: AutocompleteEntry[]): string {
|
|
|
126
134
|
return entries
|
|
127
135
|
.map((e, i) => {
|
|
128
136
|
const completion = e.completionTokens.length ? ` [+${e.completionTokens.join(" ")}]` : ""
|
|
129
|
-
const
|
|
137
|
+
const ref = e.referential.toFixed(4)
|
|
138
|
+
// Absent encyclopedic prints nothing at all — "enc:0.0000" would assert an article that is not there.
|
|
139
|
+
const enc = e.encyclopedic === undefined ? "" : `, enc:${e.encyclopedic.toFixed(4)}`
|
|
130
140
|
|
|
131
|
-
return `${String(i + 1).padStart(2)}. ${e.name}${completion} (${e.placetype}, wof:${e.wofID},
|
|
141
|
+
return `${String(i + 1).padStart(2)}. ${e.name}${completion} (${e.placetype}, wof:${e.wofID}, ref:${ref}${enc})`
|
|
132
142
|
})
|
|
133
143
|
.join("\n")
|
|
134
144
|
}
|
|
@@ -158,6 +168,12 @@ const AutocompleteCommand: CommandComponent<typeof AutocompleteConfigSchema, typ
|
|
|
158
168
|
return <Text dimColor>Searching...</Text>
|
|
159
169
|
}
|
|
160
170
|
|
|
171
|
+
// --json emits a raw JSON array — bypass Ink's word-wrapping <Text> renderer, which corrupts
|
|
172
|
+
// long lines at 80 cols when piped (see writeRawStdout).
|
|
173
|
+
if (options.json) {
|
|
174
|
+
return writeRawStdout(state.result)
|
|
175
|
+
}
|
|
176
|
+
|
|
161
177
|
return <Text>{state.result}</Text>
|
|
162
178
|
}
|
|
163
179
|
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import { Box, Text } from "ink"
|
|
18
|
+
import { CheckList, type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
18
19
|
import zod from "zod"
|
|
19
20
|
|
|
20
|
-
import { CheckList, type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
21
21
|
import { generateClients } from "../../tools/generate-clients.ts"
|
|
22
22
|
|
|
23
23
|
export const description = "Generate + verify the Python and Rust API clients from the emitted OpenAPI specs"
|
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Text } from "ink"
|
|
11
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
11
12
|
import zod from "zod"
|
|
12
13
|
|
|
13
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
14
|
-
|
|
15
14
|
const OptionsSchema = zod.object({
|
|
16
15
|
input: zod.string().describe("Canonical jsonl input"),
|
|
17
16
|
output: zod.string().describe("Labeled jsonl output"),
|
|
@@ -9,11 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
import { audit } from "@mailwoman/corpus/tools"
|
|
11
11
|
import { Text } from "ink"
|
|
12
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
12
13
|
import { argument } from "pastel"
|
|
13
14
|
import zod from "zod"
|
|
14
15
|
|
|
15
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
16
|
-
|
|
17
16
|
const ArgsSchema = zod.tuple([
|
|
18
17
|
zod.string().describe(
|
|
19
18
|
argument({
|
|
@@ -18,11 +18,10 @@ import { parseJSONStrict } from "@mailwoman/core/objects"
|
|
|
18
18
|
import { buildCorpus, defaultAdapterRegistry, type BuildStage } from "@mailwoman/corpus"
|
|
19
19
|
import type { AdapterOptions } from "@mailwoman/corpus/types"
|
|
20
20
|
import { Box, Text } from "ink"
|
|
21
|
+
import { type CommandComponent, commandError, useCommandTask } from "mailwoman/cli-kit"
|
|
21
22
|
import { useState } from "react"
|
|
22
23
|
import zod from "zod"
|
|
23
24
|
|
|
24
|
-
import { type CommandComponent, commandError, useCommandTask } from "../../cli-kit/index.ts"
|
|
25
|
-
|
|
26
25
|
/**
|
|
27
26
|
* `--inputs` accepts either:
|
|
28
27
|
*
|
|
@@ -13,12 +13,11 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import { Box, Text } from "ink"
|
|
16
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
16
17
|
import { useState } from "react"
|
|
17
18
|
import zod from "zod"
|
|
18
19
|
import { $ } from "zx"
|
|
19
20
|
|
|
20
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
21
|
-
|
|
22
21
|
const DEFAULT_BUCKET = "mailwoman-assets"
|
|
23
22
|
|
|
24
23
|
const OptionsSchema = zod.object({
|
|
@@ -24,11 +24,10 @@ import {
|
|
|
24
24
|
fetchWikidataSubVenue,
|
|
25
25
|
} from "@mailwoman/corpus/tools"
|
|
26
26
|
import { Text } from "ink"
|
|
27
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
27
28
|
import { argument } from "pastel"
|
|
28
29
|
import zod from "zod"
|
|
29
30
|
|
|
30
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
31
|
-
|
|
32
31
|
const ArgsSchema = zod.tuple([
|
|
33
32
|
zod
|
|
34
33
|
.enum([
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
import { expandGolden } from "@mailwoman/corpus/tools"
|
|
13
13
|
import { Text } from "ink"
|
|
14
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
14
15
|
import zod from "zod"
|
|
15
16
|
|
|
16
|
-
import { type CommandComponent, useCommandTask } from "../../../cli-kit/index.ts"
|
|
17
|
-
|
|
18
17
|
const OptionsSchema = zod.object({
|
|
19
18
|
corpus: zod
|
|
20
19
|
.string()
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
import { promoteGolden } from "@mailwoman/corpus/tools"
|
|
13
13
|
import { Text } from "ink"
|
|
14
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
14
15
|
import zod from "zod"
|
|
15
16
|
|
|
16
|
-
import { type CommandComponent, useCommandTask } from "../../../cli-kit/index.ts"
|
|
17
|
-
|
|
18
17
|
const OptionsSchema = zod.object({
|
|
19
18
|
input: zod.string().describe("Candidates JSONL from corpus golden expand"),
|
|
20
19
|
bumpTo: zod.string().describe("Target golden version dir (e.g. v0.1.1)"),
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { Text } from "ink"
|
|
14
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
14
15
|
import zod from "zod"
|
|
15
16
|
|
|
16
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
17
|
-
|
|
18
17
|
const OptionsSchema = zod.object({
|
|
19
18
|
input: zod.string().describe("Parent golden version dir (read-only), e.g. data/eval/golden/v0.1.2"),
|
|
20
19
|
output: zod.string().describe("Output golden version dir, e.g. data/eval/golden/v0.1.3"),
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
import { ingestCSV } from "@mailwoman/corpus/tools"
|
|
12
12
|
import { Text } from "ink"
|
|
13
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
13
14
|
import zod from "zod"
|
|
14
15
|
|
|
15
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
16
|
-
|
|
17
16
|
const OptionsSchema = zod.object({
|
|
18
17
|
input: zod.string().describe("CSV file to ingest"),
|
|
19
18
|
table: zod.string().optional().describe("SQLite table name (default: derived from the input filename)"),
|
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Text } from "ink"
|
|
11
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
11
12
|
import zod from "zod"
|
|
12
13
|
|
|
13
|
-
import { type CommandComponent, useCommandTask } from "../../cli-kit/index.ts"
|
|
14
|
-
|
|
15
14
|
const OptionsSchema = zod.object({
|
|
16
15
|
base: zod.string().describe("Base corpus manifest path"),
|
|
17
16
|
newDir: zod.string().describe("New overlay corpus dir"),
|
package/commands/corpus/run.tsx
CHANGED
|
@@ -13,11 +13,10 @@
|
|
|
13
13
|
import { ProgressBar } from "@inkjs/ui"
|
|
14
14
|
import { defaultAdapterRegistry, runAdapter } from "@mailwoman/corpus"
|
|
15
15
|
import { Box, Text } from "ink"
|
|
16
|
+
import { type CommandComponent, commandError, useCommandTask } from "mailwoman/cli-kit"
|
|
16
17
|
import { useState } from "react"
|
|
17
18
|
import zod from "zod"
|
|
18
19
|
|
|
19
|
-
import { type CommandComponent, commandError, useCommandTask } from "../../cli-kit/index.ts"
|
|
20
|
-
|
|
21
20
|
const ArgumentsSchema = zod.array(zod.string().describe("Adapter id (e.g. wof-admin, ban, openaddresses)"))
|
|
22
21
|
|
|
23
22
|
const RunConfigSchema = zod.object({
|
|
@@ -15,10 +15,9 @@ import { createWriteStream } from "node:fs"
|
|
|
15
15
|
|
|
16
16
|
import { getShardRecipe, listShardRecipes, type ShardRecipeOpts } from "@mailwoman/corpus"
|
|
17
17
|
import { Box, Text } from "ink"
|
|
18
|
+
import { type CommandComponent, commandError, useCommandTask } from "mailwoman/cli-kit"
|
|
18
19
|
import zod from "zod"
|
|
19
20
|
|
|
20
|
-
import { type CommandComponent, commandError, useCommandTask } from "../../../cli-kit/index.ts"
|
|
21
|
-
|
|
22
21
|
/**
|
|
23
22
|
* Bare `mailwoman corpus shard` stays the recipe runner now that `shard/` hosts subcommands.
|
|
24
23
|
*/
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
import { buildKryptoniteShard } from "@mailwoman/corpus/tools"
|
|
12
12
|
import { Text } from "ink"
|
|
13
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
13
14
|
import zod from "zod"
|
|
14
15
|
|
|
15
|
-
import { type CommandComponent, useCommandTask } from "../../../cli-kit/index.ts"
|
|
16
|
-
|
|
17
16
|
const OptionsSchema = zod.object({
|
|
18
17
|
jsonl: zod.string().describe("Canonical kryptonite JSONL to shard"),
|
|
19
18
|
baseManifest: zod.string().describe("Base corpus MANIFEST.json whose shards carry forward"),
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
import { buildTranslitShard } from "@mailwoman/corpus/tools"
|
|
13
13
|
import { Text } from "ink"
|
|
14
|
+
import { type CommandComponent, useCommandTask } from "mailwoman/cli-kit"
|
|
14
15
|
import zod from "zod"
|
|
15
16
|
|
|
16
|
-
import { type CommandComponent, useCommandTask } from "../../../cli-kit/index.ts"
|
|
17
|
-
|
|
18
17
|
const OptionsSchema = zod.object({
|
|
19
18
|
jsonl: zod.string().describe("Canonical transliteration JSONL to shard"),
|
|
20
19
|
baseManifest: zod.string().describe("Base corpus MANIFEST.json whose shards carry forward"),
|