@mailwoman/core 4.10.0 → 4.12.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 (84) hide show
  1. package/README.md +90 -0
  2. package/data/coarse-placer/meta.json +17 -48
  3. package/out/decoder/arbitrate-tree.d.ts +45 -0
  4. package/out/decoder/arbitrate-tree.d.ts.map +1 -0
  5. package/out/decoder/arbitrate-tree.js +97 -0
  6. package/out/decoder/arbitrate-tree.js.map +1 -0
  7. package/out/decoder/build-tree.d.ts +4 -4
  8. package/out/decoder/build-tree.js +5 -5
  9. package/out/decoder/build-tree.js.map +1 -1
  10. package/out/decoder/containment.d.ts +2 -2
  11. package/out/decoder/containment.js +2 -2
  12. package/out/decoder/index.d.ts +2 -0
  13. package/out/decoder/index.d.ts.map +1 -1
  14. package/out/decoder/index.js +2 -0
  15. package/out/decoder/index.js.map +1 -1
  16. package/out/decoder/proposals-to-tree.d.ts +20 -1
  17. package/out/decoder/proposals-to-tree.d.ts.map +1 -1
  18. package/out/decoder/proposals-to-tree.js +37 -0
  19. package/out/decoder/proposals-to-tree.js.map +1 -1
  20. package/out/decoder/resolve-proposal-overlaps.d.ts +52 -0
  21. package/out/decoder/resolve-proposal-overlaps.d.ts.map +1 -0
  22. package/out/decoder/resolve-proposal-overlaps.js +74 -0
  23. package/out/decoder/resolve-proposal-overlaps.js.map +1 -0
  24. package/out/decoder/types.d.ts +5 -5
  25. package/out/decoder/types.js +1 -1
  26. package/out/kysley/client.d.ts +5 -1
  27. package/out/kysley/client.d.ts.map +1 -1
  28. package/out/kysley/client.js +4 -0
  29. package/out/kysley/client.js.map +1 -1
  30. package/out/parser/index.d.ts +1 -0
  31. package/out/parser/index.d.ts.map +1 -1
  32. package/out/parser/index.js +1 -0
  33. package/out/parser/index.js.map +1 -1
  34. package/out/parser/proposal-pipeline.d.ts +16 -3
  35. package/out/parser/proposal-pipeline.d.ts.map +1 -1
  36. package/out/parser/proposal-pipeline.js +18 -6
  37. package/out/parser/proposal-pipeline.js.map +1 -1
  38. package/out/parser/solution-to-proposals.d.ts +28 -0
  39. package/out/parser/solution-to-proposals.d.ts.map +1 -0
  40. package/out/parser/solution-to-proposals.js +44 -0
  41. package/out/parser/solution-to-proposals.js.map +1 -0
  42. package/out/pipeline/reconcile.js +1 -1
  43. package/out/pipeline/runtime-pipeline.d.ts.map +1 -1
  44. package/out/pipeline/runtime-pipeline.js +32 -4
  45. package/out/pipeline/runtime-pipeline.js.map +1 -1
  46. package/out/pipeline/types.d.ts +30 -1
  47. package/out/pipeline/types.d.ts.map +1 -1
  48. package/out/policy/defaults.d.ts +11 -6
  49. package/out/policy/defaults.d.ts.map +1 -1
  50. package/out/policy/defaults.js +12 -7
  51. package/out/policy/defaults.js.map +1 -1
  52. package/out/policy/from-config.d.ts +14 -4
  53. package/out/policy/from-config.d.ts.map +1 -1
  54. package/out/policy/from-config.js +16 -5
  55. package/out/policy/from-config.js.map +1 -1
  56. package/out/policy/index.d.ts +1 -0
  57. package/out/policy/index.d.ts.map +1 -1
  58. package/out/policy/index.js +1 -0
  59. package/out/policy/index.js.map +1 -1
  60. package/out/policy/input-shape-router.d.ts +104 -0
  61. package/out/policy/input-shape-router.d.ts.map +1 -0
  62. package/out/policy/input-shape-router.js +88 -0
  63. package/out/policy/input-shape-router.js.map +1 -0
  64. package/out/policy/registry.d.ts +7 -3
  65. package/out/policy/registry.d.ts.map +1 -1
  66. package/out/policy/registry.js +7 -3
  67. package/out/policy/registry.js.map +1 -1
  68. package/out/resolver/remote-resolver.d.ts +4 -2
  69. package/out/resolver/remote-resolver.d.ts.map +1 -1
  70. package/out/resolver/remote-resolver.js.map +1 -1
  71. package/out/resolver/resolve.d.ts.map +1 -1
  72. package/out/resolver/resolve.js +75 -5
  73. package/out/resolver/resolve.js.map +1 -1
  74. package/out/resolver/types.d.ts +48 -9
  75. package/out/resolver/types.d.ts.map +1 -1
  76. package/out/resolver/types.js +56 -9
  77. package/out/resolver/types.js.map +1 -1
  78. package/out/resources/whosonfirst/PlacetypeDataSource.d.ts.map +1 -1
  79. package/out/resources/whosonfirst/PlacetypeDataSource.js +2 -0
  80. package/out/resources/whosonfirst/PlacetypeDataSource.js.map +1 -1
  81. package/out/utils/repo.d.ts.map +1 -1
  82. package/out/utils/repo.js +5 -4
  83. package/out/utils/repo.js.map +1 -1
  84. package/package.json +1 -1
@@ -8,14 +8,19 @@
8
8
  * edits one entry here with a commit-message rationale.
9
9
  */
10
10
  import { type ComponentTag } from "@mailwoman/core/types";
11
- import type { ClassifierPolicy } from "./policy.js";
11
+ import type { ClassifierPolicy, PolicyMode } from "./policy.js";
12
12
  /**
13
- * Build a fresh array of `rule_only` policies — one per `ComponentTag`. Returns a new array on each
14
- * call; callers may mutate it freely.
13
+ * Build a fresh array of policies — one per `ComponentTag`, all in `mode`. Returns a new array on
14
+ * each call; callers may mutate it freely.
15
+ *
16
+ * `mode` defaults to `rule_only` (the historical default — every component rule-sourced until a
17
+ * per-tag migration). The input-shape router (#478 increment 2) passes a shape-derived default
18
+ * (e.g. `neural_preferred` for OOD-script input) so the whole table starts from the routed prior
19
+ * before per-tag config overlays.
15
20
  */
16
- export declare function buildDefaultPolicies(): ClassifierPolicy[];
21
+ export declare function buildDefaultPolicies(mode?: PolicyMode): ClassifierPolicy[];
17
22
  /**
18
- * Convenience accessor for a single-component default.
23
+ * Convenience accessor for a single-component default. `mode` defaults to `rule_only`.
19
24
  */
20
- export declare function defaultPolicyFor(component: ComponentTag): ClassifierPolicy;
25
+ export declare function defaultPolicyFor(component: ComponentTag, mode?: PolicyMode): ClassifierPolicy;
21
26
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../policy/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAKzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,GAAG,gBAAgB,CAE1E"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../policy/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,UAAwB,GAAG,gBAAgB,EAAE,CAKvF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,GAAE,UAAwB,GAAG,gBAAgB,CAE1G"}
@@ -9,19 +9,24 @@
9
9
  */
10
10
  import { COMPONENT_TAGS } from "@mailwoman/core/types";
11
11
  /**
12
- * Build a fresh array of `rule_only` policies — one per `ComponentTag`. Returns a new array on each
13
- * call; callers may mutate it freely.
12
+ * Build a fresh array of policies — one per `ComponentTag`, all in `mode`. Returns a new array on
13
+ * each call; callers may mutate it freely.
14
+ *
15
+ * `mode` defaults to `rule_only` (the historical default — every component rule-sourced until a
16
+ * per-tag migration). The input-shape router (#478 increment 2) passes a shape-derived default
17
+ * (e.g. `neural_preferred` for OOD-script input) so the whole table starts from the routed prior
18
+ * before per-tag config overlays.
14
19
  */
15
- export function buildDefaultPolicies() {
20
+ export function buildDefaultPolicies(mode = "rule_only") {
16
21
  return COMPONENT_TAGS.map((component) => ({
17
22
  component,
18
- mode: "rule_only",
23
+ mode,
19
24
  }));
20
25
  }
21
26
  /**
22
- * Convenience accessor for a single-component default.
27
+ * Convenience accessor for a single-component default. `mode` defaults to `rule_only`.
23
28
  */
24
- export function defaultPolicyFor(component) {
25
- return { component, mode: "rule_only" };
29
+ export function defaultPolicyFor(component, mode = "rule_only") {
30
+ return { component, mode };
26
31
  }
27
32
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../policy/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAA;AAGzE;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IACnC,OAAO,cAAc,CAAC,GAAG,CAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,SAAS;QACT,IAAI,EAAE,WAAW;KACjB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAuB;IACvD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../policy/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAA;AAGzE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAmB,WAAW;IAClE,OAAO,cAAc,CAAC,GAAG,CAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,SAAS;QACT,IAAI;KACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAuB,EAAE,OAAmB,WAAW;IACvF,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC"}
@@ -25,6 +25,7 @@
25
25
  * `minimumConfidence` typo cost a debugging session on 2026-06-10 — `set()` is structurally typed
26
26
  * and won't save a JSON file. This loader is where the contract is enforced.)
27
27
  */
28
+ import type { InputShapeRoute } from "./input-shape-router.js";
28
29
  import type { PolicyMode } from "./policy.js";
29
30
  import { InMemoryPolicyRegistry } from "./registry.js";
30
31
  /** The JSON shape of one tag's policy in a config file. */
@@ -35,9 +36,18 @@ export interface PolicyConfigEntry {
35
36
  /** The JSON shape of a policy config file: locale (or `"*"` for global) → tag → entry. */
36
37
  export type PolicyConfig = Record<string, Record<string, PolicyConfigEntry>>;
37
38
  /**
38
- * Build a registry from a parsed policy-config object. Starts from `withDefaults()` (every tag
39
- * `rule_only`) and overlays the config's entries — so an absent tag behaves exactly as today.
40
- * Throws on ANY unrecognized key or value; the error names the offending JSON path.
39
+ * Build a registry from a parsed policy-config object. Starts from `withDefaults(defaultMode)`
40
+ * (every tag at `defaultMode`, historically `rule_only`) and overlays the config's entries — so an
41
+ * absent tag falls to `defaultMode`. The input-shape router (#478 increment 2) passes its
42
+ * shape-derived default as `defaultMode` so config entries still win per-tag while un-configured
43
+ * tags follow the route. Throws on ANY unrecognized key or value; the error names the offending
44
+ * JSON path.
41
45
  */
42
- export declare function policyRegistryFromConfig(config: PolicyConfig): InMemoryPolicyRegistry;
46
+ export declare function policyRegistryFromConfig(config: PolicyConfig, defaultMode?: PolicyMode): InMemoryPolicyRegistry;
47
+ /**
48
+ * Build a registry whose default layer is an input-shape route's `defaultMode` (#478 increment 2),
49
+ * with optional per-tag `config` overlaid on top — so the routed prior fills every un-configured
50
+ * tag while explicit policy still wins per-tag. Thin wrapper over {@link policyRegistryFromConfig}.
51
+ */
52
+ export declare function policyRegistryFromRoute(route: InputShapeRoute, config?: PolicyConfig): InMemoryPolicyRegistry;
43
53
  //# sourceMappingURL=from-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"from-config.d.ts","sourceRoot":"","sources":["../../policy/from-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAMtD,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,UAAU,CAAA;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,0FAA0F;AAC1F,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAE5E;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,sBAAsB,CA+CrF"}
1
+ {"version":3,"file":"from-config.d.ts","sourceRoot":"","sources":["../../policy/from-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAMtD,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,UAAU,CAAA;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,0FAA0F;AAC1F,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAE5E;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,YAAY,EACpB,WAAW,GAAE,UAAwB,GACnC,sBAAsB,CA+CxB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,GAAE,YAAiB,GAAG,sBAAsB,CAEjH"}
@@ -31,15 +31,18 @@ const POLICY_MODES = ["rule_only", "neural_only", "both", "neural_preferred", "r
31
31
  const ENTRY_FIELDS = new Set(["mode", "confidence_threshold"]);
32
32
  const TAG_SET = new Set(COMPONENT_TAGS);
33
33
  /**
34
- * Build a registry from a parsed policy-config object. Starts from `withDefaults()` (every tag
35
- * `rule_only`) and overlays the config's entries — so an absent tag behaves exactly as today.
36
- * Throws on ANY unrecognized key or value; the error names the offending JSON path.
34
+ * Build a registry from a parsed policy-config object. Starts from `withDefaults(defaultMode)`
35
+ * (every tag at `defaultMode`, historically `rule_only`) and overlays the config's entries — so an
36
+ * absent tag falls to `defaultMode`. The input-shape router (#478 increment 2) passes its
37
+ * shape-derived default as `defaultMode` so config entries still win per-tag while un-configured
38
+ * tags follow the route. Throws on ANY unrecognized key or value; the error names the offending
39
+ * JSON path.
37
40
  */
38
- export function policyRegistryFromConfig(config) {
41
+ export function policyRegistryFromConfig(config, defaultMode = "rule_only") {
39
42
  if (typeof config !== "object" || config === null || Array.isArray(config)) {
40
43
  throw new Error("policy config: root must be an object of locale → tag → entry");
41
44
  }
42
- const registry = InMemoryPolicyRegistry.withDefaults();
45
+ const registry = InMemoryPolicyRegistry.withDefaults(defaultMode);
43
46
  for (const [localeKey, tags] of Object.entries(config)) {
44
47
  if (typeof tags !== "object" || tags === null || Array.isArray(tags)) {
45
48
  throw new Error(`policy config: "${localeKey}" must be an object of tag → entry`);
@@ -77,4 +80,12 @@ export function policyRegistryFromConfig(config) {
77
80
  }
78
81
  return registry;
79
82
  }
83
+ /**
84
+ * Build a registry whose default layer is an input-shape route's `defaultMode` (#478 increment 2),
85
+ * with optional per-tag `config` overlaid on top — so the routed prior fills every un-configured
86
+ * tag while explicit policy still wins per-tag. Thin wrapper over {@link policyRegistryFromConfig}.
87
+ */
88
+ export function policyRegistryFromRoute(route, config = {}) {
89
+ return policyRegistryFromConfig(config, route.defaultMode);
90
+ }
80
91
  //# sourceMappingURL=from-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"from-config.js","sourceRoot":"","sources":["../../policy/from-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from-config.js","sourceRoot":"","sources":["../../policy/from-config.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./defaults.js";
7
7
  export * from "./from-config.js";
8
+ export * from "./input-shape-router.js";
8
9
  export * from "./policy.js";
9
10
  export * from "./registry.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export * from "./defaults.js";
7
7
  export * from "./from-config.js";
8
+ export * from "./input-shape-router.js";
8
9
  export * from "./policy.js";
9
10
  export * from "./registry.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../policy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../policy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Input-shape router (#478 increment 2) — the arbitration _prior_.
7
+ *
8
+ * A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
9
+ * seeds the whole per-component policy table before per-tag config overlays. The intuition (the
10
+ * parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
11
+ * `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
12
+ * weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
13
+ *
14
+ * This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
15
+ * (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
16
+ * production `runPipeline` does not feed it live signals until the two arbitration sites are
17
+ * unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
18
+ * that wiring — the prior is proven correct in isolation before any behavior changes.
19
+ *
20
+ * Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
21
+ * `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
22
+ * safe to import from anywhere. The real signals satisfy these shapes by construction.
23
+ */
24
+ import type { PolicyMode } from "./policy.js";
25
+ /** Minimal kind-classifier signal. Compatible with `QueryKindResult` (`core/pipeline/types.ts`). */
26
+ export interface RouterKindSignal {
27
+ /** The classified kind, e.g. `structured_address`, `landmark`, `vague`. */
28
+ kind: string;
29
+ /** Top-class confidence, 0..1. */
30
+ confidence: number;
31
+ }
32
+ /** Minimal query-shape signal. Compatible with `QueryShapeLite` (`core/pipeline/types.ts`). */
33
+ export interface RouterShapeSignal {
34
+ /**
35
+ * Broad character category:
36
+ *
37
+ * - `numeric`
38
+ * - `alpha`
39
+ * - `alphanumeric`
40
+ * - `cjk`
41
+ * - `cyrillic`
42
+ * - `arabic`
43
+ * - `mixed`.
44
+ */
45
+ characterClass?: string;
46
+ }
47
+ /**
48
+ * Minimal coarse-placer signal (#244). Compatible with `CoarsePrediction`
49
+ * (`core/coarse-placer/coarse-placer.ts`). `null` means no placer ran — treated as "no OOD signal",
50
+ * never as an abstention.
51
+ */
52
+ export interface RouterPlacerSignal {
53
+ /** The in-map country argmax, `null` when abstained, or `"OTHER"` when off-map. */
54
+ country: string | null;
55
+ /** Explicit abstention flag (M2 open-set reject). */
56
+ abstained: boolean;
57
+ }
58
+ /** The routed prior: a default policy mode for the whole component table, plus an abstain signal. */
59
+ export interface InputShapeRoute {
60
+ /**
61
+ * The default {@link PolicyMode} every component starts from (per-tag config still overrides).
62
+ *
63
+ * - `rule_preferred` — clean structured Latin address; v0's home turf.
64
+ * - `neural_preferred` — noisy / non-Latin / off-map; neural carries it.
65
+ * - `both` — weak/ambiguous; keep every source (paired with `abstain: true`).
66
+ */
67
+ defaultMode: PolicyMode;
68
+ /**
69
+ * True when both sources are weak (low kind confidence and/or the placer abstained on a non-clean
70
+ * shape). A first-class outcome reserved for the resolver/admin honest-radius downgrade — but it
71
+ * has NO consumer until #478 increment 3, so for now it is computed and reported only.
72
+ * `defaultMode` is `both` when this is set (drop nothing).
73
+ */
74
+ abstain: boolean;
75
+ /** Human-readable trace of which branch fired — for telemetry and test assertions. */
76
+ reason: string;
77
+ }
78
+ /**
79
+ * Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
80
+ * v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
81
+ * both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
82
+ */
83
+ export declare const CLEAN_KIND_CONFIDENCE = 0.8;
84
+ /**
85
+ * Classify the input's shape into a default policy mode.
86
+ *
87
+ * The decision tree (first match wins):
88
+ *
89
+ * 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
90
+ * Latin-centric, so non-Latin input is neural's regardless of kind.
91
+ * 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
92
+ * {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
93
+ * `rule_preferred`. v0's home turf.
94
+ * 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
95
+ * `both`, drop nothing).
96
+ * 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
97
+ * `locality_only`) → `neural_preferred`.
98
+ *
99
+ * @param kind Kind-classifier signal.
100
+ * @param shape Query-shape signal.
101
+ * @param placer Coarse-placer signal, or `null` when none ran.
102
+ */
103
+ export declare function routeInputShape(kind: RouterKindSignal, shape: RouterShapeSignal, placer: RouterPlacerSignal | null): InputShapeRoute;
104
+ //# sourceMappingURL=input-shape-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-shape-router.d.ts","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,oGAAoG;AACpG,MAAM,WAAW,gBAAgB;IAChC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,mFAAmF;IACnF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAA;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC/B;;;;;;OAMG;IACH,WAAW,EAAE,UAAU,CAAA;IACvB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;CACd;AAcD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAC/B,eAAe,CAmCjB"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Input-shape router (#478 increment 2) — the arbitration _prior_.
7
+ *
8
+ * A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
9
+ * seeds the whole per-component policy table before per-tag config overlays. The intuition (the
10
+ * parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
11
+ * `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
12
+ * weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
13
+ *
14
+ * This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
15
+ * (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
16
+ * production `runPipeline` does not feed it live signals until the two arbitration sites are
17
+ * unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
18
+ * that wiring — the prior is proven correct in isolation before any behavior changes.
19
+ *
20
+ * Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
21
+ * `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
22
+ * safe to import from anywhere. The real signals satisfy these shapes by construction.
23
+ */
24
+ /** Kinds the rules system handles well when the rest of the shape is clean. */
25
+ const RULE_CLEAN_KINDS = new Set(["structured_address", "intersection", "po_box", "postcode_only"]);
26
+ /**
27
+ * Non-Latin scripts where the Latin-centric rules system is weak — hand to neural regardless of
28
+ * kind.
29
+ */
30
+ const OOD_SCRIPTS = new Set(["cjk", "cyrillic", "arabic"]);
31
+ /** Character classes that count as "Latin / clean" for the `rule_preferred` guard. */
32
+ const LATIN_CLASSES = new Set(["numeric", "alpha", "alphanumeric"]);
33
+ /**
34
+ * Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
35
+ * v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
36
+ * both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
37
+ */
38
+ export const CLEAN_KIND_CONFIDENCE = 0.8;
39
+ /**
40
+ * Classify the input's shape into a default policy mode.
41
+ *
42
+ * The decision tree (first match wins):
43
+ *
44
+ * 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
45
+ * Latin-centric, so non-Latin input is neural's regardless of kind.
46
+ * 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
47
+ * {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
48
+ * `rule_preferred`. v0's home turf.
49
+ * 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
50
+ * `both`, drop nothing).
51
+ * 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
52
+ * `locality_only`) → `neural_preferred`.
53
+ *
54
+ * @param kind Kind-classifier signal.
55
+ * @param shape Query-shape signal.
56
+ * @param placer Coarse-placer signal, or `null` when none ran.
57
+ */
58
+ export function routeInputShape(kind, shape, placer) {
59
+ const cc = shape.characterClass;
60
+ const placerAbstained = placer !== null && (placer.abstained || placer.country === null || placer.country === "OTHER");
61
+ // 0. Non-Latin script → neural, before any kind-based routing.
62
+ if (cc !== undefined && OOD_SCRIPTS.has(cc)) {
63
+ return { defaultMode: "neural_preferred", abstain: false, reason: `ood-script:${cc}` };
64
+ }
65
+ // 1. Clean structured Latin address with a confident clean kind and no placer abstention → rules.
66
+ const latinOrUnknown = cc === undefined || LATIN_CLASSES.has(cc);
67
+ if (RULE_CLEAN_KINDS.has(kind.kind) &&
68
+ kind.confidence >= CLEAN_KIND_CONFIDENCE &&
69
+ latinOrUnknown &&
70
+ !placerAbstained) {
71
+ return {
72
+ defaultMode: "rule_preferred",
73
+ abstain: false,
74
+ reason: `clean:${kind.kind}@${kind.confidence.toFixed(2)}`,
75
+ };
76
+ }
77
+ // 2. Both signals weak → abstain (keep every source; drop nothing).
78
+ if (placerAbstained || kind.confidence < CLEAN_KIND_CONFIDENCE) {
79
+ return {
80
+ defaultMode: "both",
81
+ abstain: true,
82
+ reason: `weak:kind=${kind.kind}@${kind.confidence.toFixed(2)},placerAbstained=${placerAbstained}`,
83
+ };
84
+ }
85
+ // 3. Confident, Latin, placer-OK, but not a clean kind → neural.
86
+ return { defaultMode: "neural_preferred", abstain: false, reason: `neural-default:${kind.kind}` };
87
+ }
88
+ //# sourceMappingURL=input-shape-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-shape-router.js","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6DH,+EAA+E;AAC/E,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;AAExH;;;GAGG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE/E,sFAAsF;AACtF,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAsB,EACtB,KAAwB,EACxB,MAAiC;IAEjC,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,CAAA;IAC/B,MAAM,eAAe,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;IAEtH,+DAA+D;IAC/D,IAAI,EAAE,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACvF,CAAC;IAED,kGAAkG;IAClG,MAAM,cAAc,GAAG,EAAE,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChE,IACC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,qBAAqB;QACxC,cAAc;QACd,CAAC,eAAe,EACf,CAAC;QACF,OAAO;YACN,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAA;IACF,CAAC;IAED,oEAAoE;IACpE,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAChE,OAAO;YACN,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,eAAe,EAAE;SACjG,CAAA;IACF,CAAC;IAED,iEAAiE;IACjE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;AAClG,CAAC"}
@@ -10,15 +10,19 @@
10
10
  * per-locale overrides at startup. Look-up and `apply` are pure.
11
11
  */
12
12
  import type { ClassificationProposal, ComponentTag } from "@mailwoman/core/types";
13
- import type { ClassifierPolicy, PolicyRegistry } from "./policy.js";
13
+ import type { ClassifierPolicy, PolicyMode, PolicyRegistry } from "./policy.js";
14
14
  /**
15
15
  * Concrete registry implementation. Construct empty with `new InMemoryPolicyRegistry()` and load
16
16
  * entries via `set()`, or pre-load defaults via `InMemoryPolicyRegistry.withDefaults()`.
17
17
  */
18
18
  export declare class InMemoryPolicyRegistry implements PolicyRegistry {
19
19
  #private;
20
- /** Build a registry pre-loaded with `rule_only` for every component. */
21
- static withDefaults(): InMemoryPolicyRegistry;
20
+ /**
21
+ * Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
22
+ * input-shape router (#478) passes a shape-derived default so the whole table starts from the
23
+ * routed prior.
24
+ */
25
+ static withDefaults(mode?: PolicyMode): InMemoryPolicyRegistry;
22
26
  /** Install a policy entry. Replaces any prior entry with the same key. */
23
27
  set(policy: ClassifierPolicy): void;
24
28
  /** Remove a policy entry, if present. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAc,cAAc,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAG5D,wEAAwE;IACxE,MAAM,CAAC,YAAY,IAAI,sBAAsB;IAQ7C,0EAA0E;IAC1E,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInC,yCAAyC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,+CAA+C;IAC/C,OAAO,IAAI,gBAAgB,EAAE;IAI7B,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAUlE,KAAK,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAkB9F"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAG5D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,UAAwB,GAAG,sBAAsB;IAQ3E,0EAA0E;IAC1E,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInC,yCAAyC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,+CAA+C;IAC/C,OAAO,IAAI,gBAAgB,EAAE;IAI7B,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAUlE,KAAK,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAkB9F"}
@@ -20,10 +20,14 @@ function policyKey(component, locale) {
20
20
  */
21
21
  export class InMemoryPolicyRegistry {
22
22
  #entries = new Map();
23
- /** Build a registry pre-loaded with `rule_only` for every component. */
24
- static withDefaults() {
23
+ /**
24
+ * Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
25
+ * input-shape router (#478) passes a shape-derived default so the whole table starts from the
26
+ * routed prior.
27
+ */
28
+ static withDefaults(mode = "rule_only") {
25
29
  const registry = new InMemoryPolicyRegistry();
26
- for (const policy of buildDefaultPolicies()) {
30
+ for (const policy of buildDefaultPolicies(mode)) {
27
31
  registry.set(policy);
28
32
  }
29
33
  return registry;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGtE,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,SAAS,SAAS,CAAC,SAAuB,EAAE,MAA0B;IACrE,OAAO,GAAG,SAAS,KAAK,MAAM,IAAI,iBAAiB,EAAE,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAClC,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE9C,wEAAwE;IACxE,MAAM,CAAC,YAAY;QAClB,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAC7C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,EAAE,CAAC;YAC7C,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,0EAA0E;IAC1E,GAAG,CAAC,MAAwB;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,SAAuB,EAAE,MAAe;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,+CAA+C;IAC/C,OAAO;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,SAAuB,EAAE,MAAe;QAC9C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;YACjE,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAA;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QACzB,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,SAA4C,EAAE,MAAe;QAClE,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAA;QAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YACnG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAEjD,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAC1G,SAAQ;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAEjD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;IAClE,CAAC;CACD;AAED,SAAS,WAAW,CAAC,QAAgC,EAAE,IAAgB;IACtE,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,WAAW;YACf,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAA;QAClC,KAAK,aAAa;YACjB,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;QACpC,KAAK,MAAM,CAAC;QACZ,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB;YACtB,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;IACnG,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC9B,SAA4C,EAC5C,iBAA8D;IAE9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAA;IACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,GAAG,GAA6B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,SAAQ;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;YACzD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACzE,SAAQ;QACT,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YACrD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACzE,SAAQ;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGtE,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,SAAS,SAAS,CAAC,SAAuB,EAAE,MAA0B;IACrE,OAAO,GAAG,SAAS,KAAK,MAAM,IAAI,iBAAiB,EAAE,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAClC,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE9C;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAmB,WAAW;QACjD,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QAC7C,KAAK,MAAM,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,0EAA0E;IAC1E,GAAG,CAAC,MAAwB;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IACtE,CAAC;IAED,yCAAyC;IACzC,MAAM,CAAC,SAAuB,EAAE,MAAe;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,+CAA+C;IAC/C,OAAO;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,SAAuB,EAAE,MAAe;QAC9C,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;YACjE,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAA;QAChC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;QACjE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QACzB,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,SAA4C,EAAE,MAAe;QAClE,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAA;QAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YACnG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YAEjD,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAC1G,SAAQ;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAEjD,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;IAClE,CAAC;CACD;AAED,SAAS,WAAW,CAAC,QAAgC,EAAE,IAAgB;IACtE,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,WAAW;YACf,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAA;QAClC,KAAK,aAAa;YACjB,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;QACpC,KAAK,MAAM,CAAC;QACZ,KAAK,gBAAgB,CAAC;QACtB,KAAK,kBAAkB;YACtB,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;IACnG,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC9B,SAA4C,EAC5C,iBAA8D;IAE9D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAA;IACjE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,GAAG,GAA6B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,SAAQ;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAA;YACzD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACzE,SAAQ;QACT,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YACrD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACzE,SAAQ;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC"}
@@ -27,8 +27,10 @@ export type SerializableResolveOpts = Omit<ResolveOpts, "addressPoints" | "inter
27
27
  /** Strip the live lookup handles from `ResolveOpts` so the rest can be JSON-serialized over HTTP. */
28
28
  export declare function serializableResolveOpts(opts?: ResolveOpts): SerializableResolveOpts | undefined;
29
29
  export interface RemoteResolverOpts {
30
- /** Full URL of the resolver service's resolve-tree endpoint, e.g.
31
- `http://resolver:7081/api/resolve-tree`. */
30
+ /**
31
+ * Full URL of the resolver service's resolve-tree endpoint, e.g.
32
+ * `http://resolver:7081/api/resolve-tree`.
33
+ */
32
34
  endpoint: string;
33
35
  /** Injectable fetch (tests / custom agents). Defaults to the global `fetch`. */
34
36
  fetch?: typeof fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;2CAC0C;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAA;CACjB;AAED,qBAAa,cAAe,YAAW,QAAQ;;gBAMlC,IAAI,EAAE,kBAAkB;IAQ9B,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAuB9E"}
1
+ {"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAA;CACjB;AAED,qBAAa,cAAe,YAAW,QAAQ;;gBAMlC,IAAI,EAAE,kBAAkB;IAQ9B,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAuB9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;AAyBD,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IACjB,MAAM,CAAc;IACpB,UAAU,CAAQ;IAClB,QAAQ,CAAwB;IAEzC,YAAY,IAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,IAAkB;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAA;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;gBAAS,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;AA2BD,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IACjB,MAAM,CAAc;IACpB,UAAU,CAAQ;IAClB,QAAQ,CAAwB;IAEzC,YAAY,IAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,IAAkB;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAA;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;gBAAS,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAQN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAEpE"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EASN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAEpE"}