@sdd-method/sdd-cli 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  2. package/dist/lib/catalogue/aggregate.js +116 -8
  3. package/dist/lib/catalogue/aggregate.js.map +1 -1
  4. package/dist/lib/catalogue/build.d.ts.map +1 -1
  5. package/dist/lib/catalogue/build.js +2 -6
  6. package/dist/lib/catalogue/build.js.map +1 -1
  7. package/dist/lib/catalogue/builders/capability-spec.d.ts +9 -3
  8. package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -1
  9. package/dist/lib/catalogue/builders/capability-spec.js +9 -3
  10. package/dist/lib/catalogue/builders/capability-spec.js.map +1 -1
  11. package/dist/lib/catalogue/builders/external-system-exemption.d.ts.map +1 -1
  12. package/dist/lib/catalogue/builders/external-system-exemption.js +32 -3
  13. package/dist/lib/catalogue/builders/external-system-exemption.js.map +1 -1
  14. package/dist/lib/catalogue/builders/product-edges.d.ts.map +1 -1
  15. package/dist/lib/catalogue/builders/product-edges.js +9 -0
  16. package/dist/lib/catalogue/builders/product-edges.js.map +1 -1
  17. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +12 -0
  18. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -1
  19. package/dist/lib/catalogue/builders/product-platform-dependencies.js +99 -0
  20. package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -1
  21. package/dist/lib/catalogue/canonical-schema.yaml +64 -11
  22. package/dist/lib/catalogue/contract-path-resolution.d.ts +55 -0
  23. package/dist/lib/catalogue/contract-path-resolution.d.ts.map +1 -0
  24. package/dist/lib/catalogue/contract-path-resolution.js +149 -0
  25. package/dist/lib/catalogue/contract-path-resolution.js.map +1 -0
  26. package/dist/lib/catalogue/coverage-predicates.d.ts +176 -0
  27. package/dist/lib/catalogue/coverage-predicates.d.ts.map +1 -0
  28. package/dist/lib/catalogue/coverage-predicates.js +603 -0
  29. package/dist/lib/catalogue/coverage-predicates.js.map +1 -0
  30. package/dist/lib/catalogue/coverage-render.d.ts +39 -0
  31. package/dist/lib/catalogue/coverage-render.d.ts.map +1 -0
  32. package/dist/lib/catalogue/coverage-render.js +347 -0
  33. package/dist/lib/catalogue/coverage-render.js.map +1 -0
  34. package/dist/lib/catalogue/coverage-run.d.ts +33 -0
  35. package/dist/lib/catalogue/coverage-run.d.ts.map +1 -0
  36. package/dist/lib/catalogue/coverage-run.js +91 -0
  37. package/dist/lib/catalogue/coverage-run.js.map +1 -0
  38. package/dist/lib/catalogue/ddl-generator.d.ts +80 -0
  39. package/dist/lib/catalogue/ddl-generator.d.ts.map +1 -0
  40. package/dist/lib/catalogue/ddl-generator.js +215 -0
  41. package/dist/lib/catalogue/ddl-generator.js.map +1 -0
  42. package/dist/lib/catalogue/engine-validator.d.ts +103 -0
  43. package/dist/lib/catalogue/engine-validator.d.ts.map +1 -0
  44. package/dist/lib/catalogue/engine-validator.js +221 -0
  45. package/dist/lib/catalogue/engine-validator.js.map +1 -0
  46. package/dist/lib/catalogue/enum-validator.d.ts.map +1 -1
  47. package/dist/lib/catalogue/enum-validator.js +15 -0
  48. package/dist/lib/catalogue/enum-validator.js.map +1 -1
  49. package/dist/lib/catalogue/fk-validator.d.ts +6 -0
  50. package/dist/lib/catalogue/fk-validator.d.ts.map +1 -1
  51. package/dist/lib/catalogue/fk-validator.js +6 -0
  52. package/dist/lib/catalogue/fk-validator.js.map +1 -1
  53. package/dist/lib/catalogue/gate-checks.d.ts +117 -0
  54. package/dist/lib/catalogue/gate-checks.d.ts.map +1 -0
  55. package/dist/lib/catalogue/gate-checks.js +261 -0
  56. package/dist/lib/catalogue/gate-checks.js.map +1 -0
  57. package/dist/lib/catalogue/parity-harness.d.ts +48 -0
  58. package/dist/lib/catalogue/parity-harness.d.ts.map +1 -0
  59. package/dist/lib/catalogue/parity-harness.js +76 -0
  60. package/dist/lib/catalogue/parity-harness.js.map +1 -0
  61. package/dist/lib/catalogue/schema-compat.d.ts +3 -3
  62. package/dist/lib/catalogue/schema-compat.js +3 -3
  63. package/dist/lib/catalogue/validate.d.ts.map +1 -1
  64. package/dist/lib/catalogue/validate.js +6 -11
  65. package/dist/lib/catalogue/validate.js.map +1 -1
  66. package/dist/lib/sync/apply.d.ts +29 -1
  67. package/dist/lib/sync/apply.d.ts.map +1 -1
  68. package/dist/lib/sync/apply.js +77 -2
  69. package/dist/lib/sync/apply.js.map +1 -1
  70. package/dist/lib/sync/index.d.ts.map +1 -1
  71. package/dist/lib/sync/index.js +23 -1
  72. package/dist/lib/sync/index.js.map +1 -1
  73. package/dist/lib/sync/settings-merge.d.ts +29 -0
  74. package/dist/lib/sync/settings-merge.d.ts.map +1 -1
  75. package/dist/lib/sync/settings-merge.js +31 -0
  76. package/dist/lib/sync/settings-merge.js.map +1 -1
  77. package/dist/lib/validate/dispatch.d.ts.map +1 -1
  78. package/dist/lib/validate/dispatch.js +19 -17
  79. package/dist/lib/validate/dispatch.js.map +1 -1
  80. package/dist/lib/validate/index.d.ts.map +1 -1
  81. package/dist/lib/validate/index.js +23 -4
  82. package/dist/lib/validate/index.js.map +1 -1
  83. package/dist/verbs/catalogue.d.ts.map +1 -1
  84. package/dist/verbs/catalogue.js +24 -0
  85. package/dist/verbs/catalogue.js.map +1 -1
  86. package/dist/verbs/conformance.d.ts.map +1 -1
  87. package/dist/verbs/conformance.js +3 -2
  88. package/dist/verbs/conformance.js.map +1 -1
  89. package/dist/verbs/contracts.d.ts.map +1 -1
  90. package/dist/verbs/contracts.js +3 -2
  91. package/dist/verbs/contracts.js.map +1 -1
  92. package/dist/verbs/generate-briefing.d.ts.map +1 -1
  93. package/dist/verbs/generate-briefing.js +2 -1
  94. package/dist/verbs/generate-briefing.js.map +1 -1
  95. package/dist/verbs/init.d.ts.map +1 -1
  96. package/dist/verbs/init.js +3 -2
  97. package/dist/verbs/init.js.map +1 -1
  98. package/dist/verbs/pack.d.ts.map +1 -1
  99. package/dist/verbs/pack.js +2 -1
  100. package/dist/verbs/pack.js.map +1 -1
  101. package/dist/verbs/path-option.d.ts +22 -0
  102. package/dist/verbs/path-option.d.ts.map +1 -0
  103. package/dist/verbs/path-option.js +25 -0
  104. package/dist/verbs/path-option.js.map +1 -0
  105. package/dist/verbs/plan.d.ts.map +1 -1
  106. package/dist/verbs/plan.js +2 -1
  107. package/dist/verbs/plan.js.map +1 -1
  108. package/dist/verbs/scaffold.d.ts.map +1 -1
  109. package/dist/verbs/scaffold.js +2 -1
  110. package/dist/verbs/scaffold.js.map +1 -1
  111. package/dist/verbs/sync.d.ts.map +1 -1
  112. package/dist/verbs/sync.js +2 -1
  113. package/dist/verbs/sync.js.map +1 -1
  114. package/dist/verbs/validate.d.ts.map +1 -1
  115. package/dist/verbs/validate.js +3 -2
  116. package/dist/verbs/validate.js.map +1 -1
  117. package/package.json +3 -2
  118. package/scripts/validate-app-dependencies.sh +378 -58
@@ -1 +1 @@
1
- {"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"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"}
@@ -58,13 +58,64 @@
58
58
  # `[finding] external`) and validated by the aggregator after merge.
59
59
  # Default for unspecified `external` is `false` (internal FK).
60
60
  #
61
- # Conceptual model: see docs/method/methods/catalogue-metamodel.md.
62
- # Builder contract: see docs/method/methods/catalogue-builder-specification.md.
63
- # Category taxonomy: see docs/method/methods/product-category-taxonomy.md.
61
+ # Conceptual model: see docs/method/methods/guides/catalogue-metamodel.md.
62
+ # Builder contract: see docs/method/methods/guides/catalogue-builder-specification.md.
63
+ # Category taxonomy: see docs/method/methods/standards/product-category-taxonomy.md.
64
64
 
65
- schema_version: "3.0.0"
65
+ schema_version: "3.1.3"
66
66
  schema_owner: "sdd-method"
67
67
  schema_status: "canonical"
68
+ # Bump rationale (3.1.3 — patch, 2026-08-05): `repositories.column_enums`
69
+ # bound `service_type` — the AUTHORING field's name — but the catalogue
70
+ # column that carries the value is `component_type` (the builder maps
71
+ # repo-config `service_type` into it). A binding to a column the catalogue
72
+ # does not declare validated as vacuously true from 3.0.0 on: the in-memory
73
+ # enum validator read an absent cell as empty and skipped it. Found by the
74
+ # M-ADR 0205 §4.3 schema-driven DDL generator, whose engine refused the
75
+ # binding instead of skipping it. The binding key is corrected to
76
+ # `component_type` and the service_type enum's description corrected to name
77
+ # the real column. ACTIVATION NOTE (M-ADR 0200 §4.6): correcting the key
78
+ # activates enum validation on values the wrong key never checked; measured
79
+ # before shipping across both estate classes' built repository catalogues —
80
+ # one estate carries 14 rows with an out-of-vocabulary improvised value, the
81
+ # other none. Those 14 become error-severity findings at that estate's first
82
+ # build on a CLI carrying this schema; the remedial route is re-declaring
83
+ # the repo-config `service_type` inside the enum (profile already conveys
84
+ # what the improvised value tried to say, per §7.1).
85
+ # Bump rationale (3.1.2 — comment-only patch, 2026-08-05): records the 3.1.0
86
+ # entry below, which shipped without one — the rationale lived only in
87
+ # M-ADR 0204 and the cut commit. No structural change; no column, enum, or
88
+ # catalogue touched.
89
+ # Bump rationale (3.1.1 — comment-only patch, 2026-08-05): corrects the three
90
+ # companion-doc pointers above, stale since the docs moved under
91
+ # methods/guides/ and methods/standards/. No structural change; no column,
92
+ # enum, or catalogue touched.
93
+ # Bump rationale (3.1.0 — additive minor, 2026-08-03, per M-ADR 0204): the
94
+ # target-locus change-set on `product_platform_dependencies`. A dependency row
95
+ # can now declare that its target is NOT the platform:
96
+ # 1. `target_locus` added (closed enum `platform | external | legacy`;
97
+ # absent/empty = platform, so every pre-3.1.0 row keeps its exact
98
+ # meaning). A statement about the TARGET only — never about the consuming
99
+ # product, and never a stability/lifecycle/quality claim. Before this
100
+ # column, off-platform targets had nowhere to go and corrupted other
101
+ # fields (external/legacy smuggled into required_stability; a product's
102
+ # own feature slug forced into target_capability_id).
103
+ # 2. `target_external_system_id` added: for external|legacy rows, the
104
+ # M-ADR 0189 external-system entry id the dependency targets. Authored in
105
+ # the source file's service_id slot; the builder routes it here so the FK
106
+ # columns stay clean. Deliberately NOT a declared FK — corroboration
107
+ # against c4_external_systems is WARNING-severity at aggregation
108
+ # (0204 §4.2) because the C4 surface may legitimately lag discovery, and
109
+ # a declared FK can only fail.
110
+ # 3. `target_capability_id` becomes conditionally nullable (0204 §4.3, the
111
+ # 2.36.0 / M-ADR 0192 precedent): EMPTY when target_locus is
112
+ # external|legacy — there is no platform capability to name. A
113
+ # platform-locus row still requires it.
114
+ # 4. The PK gains an off-platform form:
115
+ # {product_id}__{target_locus}__{target_external_system_id}, falling back
116
+ # to contract_path when no external-system id is named.
117
+ # external/legacy rows skip platform resolution and the F18 realiser-join,
118
+ # with every skip named.
68
119
  # Bump rationale (3.0.0 — BREAKING major, 2026-07-29, per M-ADR 0203): the 2.x line's
69
120
  # five deferred breaks land as one audited cut, each a complete change-set in the
70
121
  # M-ADR 0200 §4.1 sense. This entry records each break as its change-set lands:
@@ -556,7 +607,7 @@ enums:
556
607
  service_type:
557
608
  description: >
558
609
  Type of repository, declared in `orchestration/repo-config/*.yaml` as
559
- `service_type` and surfaced in `repositories.service_type` and
610
+ `service_type` and surfaced in `repositories.component_type` and
560
611
  `services.component_type`. The canonical builder uses this to decide
561
612
  which repos are runtime services (api_service, worker, gateway,
562
613
  frontend, mobile) and which are non-runtime (library, infrastructure,
@@ -1077,7 +1128,7 @@ catalogues:
1077
1128
  - { name: doc_path, type: string, nullable: false }
1078
1129
  - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
1079
1130
  column_enums:
1080
- service_type: enums.service_type # canonical builder validates against the service_type enum above
1131
+ component_type: enums.service_type # the repo-config `service_type` value lands in THIS column (3.1.3 — the binding previously named the authoring field and checked nothing)
1081
1132
 
1082
1133
  domain_models:
1083
1134
  primary_key: id
@@ -1255,7 +1306,7 @@ catalogues:
1255
1306
  - { name: product_id, type: string, nullable: false }
1256
1307
  - { name: service_id, type: string, nullable: false }
1257
1308
  - { name: role, type: string, nullable: false, description: "consumes." }
1258
- - { name: required_stability, type: string, nullable: true, description: "provisional | locked." }
1309
+ - { name: required_stability, type: string, nullable: true, description: "provisional | locked | unknown. The consuming SDD's expectation of contract stability, carried verbatim from app-platform-dependencies.yaml. Not a bound enum: an out-of-vocabulary value is carried, not rejected, and is reported by validate-app-dependencies.sh." }
1259
1310
 
1260
1311
  service_contract:
1261
1312
  primary_key: id
@@ -1639,16 +1690,18 @@ catalogues:
1639
1690
  §"Cross-SDD platform-capability-edge".
1640
1691
  foreign_keys:
1641
1692
  - { column: product_id, references: products.id, nullable: false }
1642
- - { column: target_capability_id, references: capabilities.id, nullable: false, external: true }
1693
+ - { column: target_capability_id, references: capabilities.id, nullable: true, external: true }
1643
1694
  - { column: target_service_id, references: services.id, nullable: true, external: true }
1644
1695
  columns:
1645
- - { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}, EXCEPT for async shared-stream rows (M-ADR 0192) where there is no realiser service: the third component falls back to the stream contract_path, i.e. {product_id}__{target_capability_id}__{contract_path}. This keeps the PK stable and collision-free when a product depends on the same capability via two distinct streams." }
1696
+ - { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}, EXCEPT for async shared-stream rows (M-ADR 0192) where there is no realiser service: the third component falls back to the stream contract_path, i.e. {product_id}__{target_capability_id}__{contract_path}. For OFF-PLATFORM rows (M-ADR 0204, target_locus external|legacy) there is no platform capability either: id = {product_id}__{target_locus}__{target_external_system_id}, falling back to contract_path as the third component when no external-system id is named. This keeps the PK stable and collision-free when a product depends on the same capability via two distinct streams." }
1646
1697
  - { name: product_id, type: string, nullable: false, description: "Consuming product (this SDD's product id)." }
1647
- - { name: target_capability_id, type: string, nullable: false, description: "Capability the consuming product depends on. Resolves at aggregation against a sibling SDD's capabilities.id; external by definition." }
1698
+ - { name: target_capability_id, type: string, nullable: true, description: "Capability the consuming product depends on. Resolves at aggregation against a sibling SDD's capabilities.id; external by definition. Conditionally nullable (M-ADR 0204 §4.3): EMPTY when target_locus is external|legacy — there is no platform capability to name on an off-platform row, and demanding a value is what put a product's own feature slug in this column. A platform-locus row still requires it." }
1699
+ - { name: target_locus, type: string, nullable: true, description: "platform | external | legacy (M-ADR 0204; closed enum, absent/empty = platform). A statement about the TARGET only — never about the consuming product, and never a stability, lifecycle or quality claim. platform rows behave exactly as before this column existed. external/legacy rows carry empty target_capability_id and target_service_id and name their target in target_external_system_id; they skip platform resolution and the F18 realiser-join, with every skip named." }
1700
+ - { name: target_external_system_id, type: string, nullable: true, description: "For target_locus external|legacy rows only: the M-ADR 0189 external-system entry id the dependency targets (authored in the source file's service_id slot; the builder routes it here so the FK columns stay clean). Deliberately NOT a declared FK: corroboration against c4_external_systems is WARNING-severity at aggregation (M-ADR 0204 §4.2), because the C4 surface may legitimately lag discovery, and a declared FK can only fail." }
1648
1701
  - { name: target_service_id, type: string, nullable: true, description: "Service identifier the consuming product depends on. Resolves at aggregation against a sibling SDD's services.id; external by definition. The join key the aggregator uses to derive cross_sdd_platform_capability for SYNCHRONOUS dependencies. Conditionally nullable (M-ADR 0192): for an async shared-stream dependency (contract_type in the async set — `event`/`event-stream`/`stream`) there is no single realiser service, so this is empty and the dependency binds to the stream contract_path + target_capability_id instead. A synchronous contract_type still requires it. Made nullable in schema 2.36.0." }
1649
1702
  - { name: target_domain, type: string, nullable: true, description: "Domain hint as declared in the consuming SDD's evidence (free-form; reviewer-facing annotation). May be a comma-separated list when the target spans multiple domains." }
1650
1703
  - { name: contract_type, type: string, nullable: true, description: "rest | graphql | openapi | grpc | event | event-stream | stream | other. Optional; reflects what the consuming SDD declares. The async set (`event`/`event-stream`/`stream`) marks a shared-stream subscription that binds to a stream contract rather than a realiser service (M-ADR 0192) — such rows skip the F18 synchronous realiser-join at aggregation." }
1651
- - { name: required_stability, type: string, nullable: true, description: "locked | provisional | unknown. Optional; the consuming SDD's expectation of contract stability." }
1704
+ - { name: required_stability, type: string, nullable: true, description: "provisional | locked | unknown. Optional; the consuming SDD's expectation of contract stability — and only that: where the target lives and what lifecycle its implementation is in are separate concerns that do not belong in this field. Not a bound enum: an out-of-vocabulary value is carried, not rejected, and is reported by validate-app-dependencies.sh." }
1652
1705
  - { name: contract_path, type: string, nullable: true, description: "Path to the contract file the dependency is against, as declared in the consuming SDD's evidence. External — resolution happens at aggregation if it happens at all." }
1653
1706
  - { name: consumed_by_services, type: string, nullable: true, description: "Comma-separated list of service names within the consuming product that consume the dependency. Free-text; not FK-validated (services are within-product and resolution is owner-side concern)." }
1654
1707
  - { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per M-ADR 0134." }
@@ -0,0 +1,55 @@
1
+ import type { FindingsLog } from "./findings.js";
2
+ import type { CatalogueRow } from "./csv-writer.js";
3
+ /** Absolute SDD repo roots by sdd_id — the ecosystem root plus every sibling. */
4
+ export type SddRoots = ReadonlyMap<string, string>;
5
+ export interface ContractPathResolutionSummary {
6
+ /** Declared, path-shaped, and found under exactly one SDD root. */
7
+ readonly resolved: number;
8
+ /** Path-shaped but found under no SDD root — a reference to a missing file. */
9
+ readonly missing: number;
10
+ /** Path-shaped and found under more than one SDD root — never guessed. */
11
+ readonly ambiguous: number;
12
+ /** Declared but not a path at all (`n/a`, prose, a bracketed note). */
13
+ readonly nonPath: number;
14
+ /** No contract_path declared. Not a defect here; check 3a owns that rule. */
15
+ readonly absent: number;
16
+ }
17
+ /**
18
+ * True when the declared value is shaped like a repo-relative path, as opposed to
19
+ * a sentinel or a prose note.
20
+ *
21
+ * The reverse template types this field `<platform-relative-path-or-unknown>`,
22
+ * which openly admits a non-path value — so `n/a` is the template being followed
23
+ * and free text is that licence stretched. Both are reported, neither is treated
24
+ * as a path, and NEITHER is silently ignored: an unresolvable declaration that
25
+ * nothing mentions is indistinguishable from a resolved one in the output.
26
+ */
27
+ export declare function isPathShaped(value: string): boolean;
28
+ /**
29
+ * Strip a leading `platform/<name>/` when `<name>` identifies a known SDD — by its
30
+ * sdd_id OR by its directory basename, and the distinction is not cosmetic: an
31
+ * author writing this prefix is reading it off the filesystem, so it is the
32
+ * DIRECTORY they write. In one measured estate every such prefix is
33
+ * `platform/sdd-experience-platform/` while that SDD's declared sdd_id is
34
+ * `experience-platform` — matching on sdd_id alone therefore split nothing and
35
+ * reported 13 existing contracts as missing. Both keys are accepted.
36
+ *
37
+ * That prefix
38
+ * is the estate-relative form authors reached for when the declared
39
+ * platform-root-relative base could not name a sibling's contract. Returns the
40
+ * owning SDD id and the path relative to ITS root, or null when the value carries
41
+ * no such prefix.
42
+ */
43
+ export declare function splitEstateRelative(value: string, roots: SddRoots): {
44
+ readonly sddId: string;
45
+ readonly relPath: string;
46
+ } | null;
47
+ /**
48
+ * Resolve every declared contract_path against the SDD roots present in this
49
+ * aggregation, emitting one finding per unresolved declaration.
50
+ *
51
+ * `exists` is injected so this is testable without a filesystem, and so the
52
+ * caller owns the stat strategy.
53
+ */
54
+ export declare function resolveContractPaths(productPlatformDeps: readonly CatalogueRow[], roots: SddRoots, aliases: SddRoots, exists: (absPath: string) => Promise<boolean>, findings: FindingsLog): Promise<ContractPathResolutionSummary>;
55
+ //# sourceMappingURL=contract-path-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-path-resolution.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/contract-path-resolution.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,iFAAiF;AACjF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,6BAA6B;IAC5C,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,GACd;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO7D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,mBAAmB,EAAE,SAAS,YAAY,EAAE,EAC5C,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAC7C,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,6BAA6B,CAAC,CA+ExC"}
@@ -0,0 +1,149 @@
1
+ // Contract-path resolution at aggregation tier (post-3.0.0-followons.md A2 step 5).
2
+ //
3
+ // WHY THIS LIVES AT AGGREGATE TIER AND NOWHERE ELSE
4
+ // `app-platform-dependencies.yaml` declares, per dependency, the contract the
5
+ // consuming app binds to. Both distributed templates say that path is relative
6
+ // to the platform repo root — and in a federation that rule cannot express the
7
+ // truth, because one app's dependencies span several platform SDDs. Measured in
8
+ // a 67-SDD reverse estate: 21 of 152 declared paths name a contract owned by a
9
+ // DIFFERENT platform SDD than the one the app would be validated against, and
10
+ // their authors compensated by prefixing `platform/<sdd-id>/` — writing the
11
+ // truth against a rule that could not hold it.
12
+ //
13
+ // The app-tier gate therefore cannot resolve these at all: given one
14
+ // --platform-root it reports LOCKED UNMET for a contract that exists. That is a
15
+ // false failure of the instrument, and no amount of app-tier cleverness fixes it
16
+ // — the file is in a sibling the app repo cannot see. At aggregate tier every
17
+ // SDD root IS visible, so resolution becomes possible for the first time.
18
+ // Same argument as M-ADR 0198: a join that can span SDDs belongs where the SDDs
19
+ // are all present.
20
+ //
21
+ // WHAT IT DOES NOT DO
22
+ // It does not rewrite anything or pick a winner when a path is ambiguous. An
23
+ // ambiguous path is reported as a divergence and left alone, because guessing
24
+ // which sibling a contract came from is exactly the silent-wrong-answer this
25
+ // whole arc has been removing.
26
+ /**
27
+ * True when the declared value is shaped like a repo-relative path, as opposed to
28
+ * a sentinel or a prose note.
29
+ *
30
+ * The reverse template types this field `<platform-relative-path-or-unknown>`,
31
+ * which openly admits a non-path value — so `n/a` is the template being followed
32
+ * and free text is that licence stretched. Both are reported, neither is treated
33
+ * as a path, and NEITHER is silently ignored: an unresolvable declaration that
34
+ * nothing mentions is indistinguishable from a resolved one in the output.
35
+ */
36
+ export function isPathShaped(value) {
37
+ const v = value.trim();
38
+ if (v === "" || v === "null")
39
+ return false;
40
+ if (v.toLowerCase().startsWith("n/a"))
41
+ return false;
42
+ if (v.startsWith("["))
43
+ return false;
44
+ // Prose gives itself away with whitespace before the first separator
45
+ // ("Kafka (<vendor> bus): topic-a / topic-b", "Kinesis: <stream-name>").
46
+ const firstSegment = v.split("/")[0] ?? "";
47
+ if (/\s/.test(firstSegment))
48
+ return false;
49
+ // A path must actually have a directory part; a bare token is not a contract path.
50
+ return v.includes("/");
51
+ }
52
+ /**
53
+ * Strip a leading `platform/<name>/` when `<name>` identifies a known SDD — by its
54
+ * sdd_id OR by its directory basename, and the distinction is not cosmetic: an
55
+ * author writing this prefix is reading it off the filesystem, so it is the
56
+ * DIRECTORY they write. In one measured estate every such prefix is
57
+ * `platform/sdd-experience-platform/` while that SDD's declared sdd_id is
58
+ * `experience-platform` — matching on sdd_id alone therefore split nothing and
59
+ * reported 13 existing contracts as missing. Both keys are accepted.
60
+ *
61
+ * That prefix
62
+ * is the estate-relative form authors reached for when the declared
63
+ * platform-root-relative base could not name a sibling's contract. Returns the
64
+ * owning SDD id and the path relative to ITS root, or null when the value carries
65
+ * no such prefix.
66
+ */
67
+ export function splitEstateRelative(value, roots) {
68
+ const parts = value.trim().split("/");
69
+ if (parts.length < 3)
70
+ return null;
71
+ if (parts[0] !== "platform")
72
+ return null;
73
+ const sddId = parts[1] ?? "";
74
+ if (!roots.has(sddId))
75
+ return null;
76
+ return { sddId, relPath: parts.slice(2).join("/") };
77
+ }
78
+ /**
79
+ * Resolve every declared contract_path against the SDD roots present in this
80
+ * aggregation, emitting one finding per unresolved declaration.
81
+ *
82
+ * `exists` is injected so this is testable without a filesystem, and so the
83
+ * caller owns the stat strategy.
84
+ */
85
+ export async function resolveContractPaths(productPlatformDeps, roots, aliases, exists, findings) {
86
+ let resolved = 0;
87
+ let missing = 0;
88
+ let ambiguous = 0;
89
+ let nonPath = 0;
90
+ let absent = 0;
91
+ // One stat per (root, path) pair at worst. Cached because a shared platform
92
+ // contract is declared by many consumers — in the measured estate the same
93
+ // embedding contract is named by 21 dependencies.
94
+ const cache = new Map();
95
+ const existsCached = async (abs) => {
96
+ const hit = cache.get(abs);
97
+ if (hit !== undefined)
98
+ return hit;
99
+ const got = await exists(abs);
100
+ cache.set(abs, got);
101
+ return got;
102
+ };
103
+ for (const dep of productPlatformDeps) {
104
+ const declared = String(dep["contract_path"] ?? "").trim();
105
+ const who = `${String(dep["source_sdd_id"] ?? "")}/${String(dep["product_id"] ?? "")}`;
106
+ const target = String(dep["target_service_id"] ?? "") ||
107
+ String(dep["target_capability_id"] ?? "") ||
108
+ "(unnamed target)";
109
+ if (declared === "" || declared === "null") {
110
+ absent++;
111
+ continue;
112
+ }
113
+ if (!isPathShaped(declared)) {
114
+ nonPath++;
115
+ findings.add("convention", `contract_path: ${who} → ${target} declares contract_path="${declared}", which is not a path — it cannot be resolved, and the dependency has no verifiable contract`);
116
+ continue;
117
+ }
118
+ const estate = splitEstateRelative(declared, aliases);
119
+ if (estate !== null) {
120
+ const abs = `${aliases.get(estate.sddId)}/${estate.relPath}`;
121
+ if (await existsCached(abs)) {
122
+ resolved++;
123
+ }
124
+ else {
125
+ missing++;
126
+ findings.add("orphan", `contract_path: ${who} → ${target} declares contract_path="${declared}", naming SDD "${estate.sddId}", but no file exists there`);
127
+ }
128
+ continue;
129
+ }
130
+ const hits = [];
131
+ for (const [sddId, root] of roots) {
132
+ if (await existsCached(`${root}/${declared}`))
133
+ hits.push(sddId);
134
+ }
135
+ if (hits.length === 1) {
136
+ resolved++;
137
+ }
138
+ else if (hits.length === 0) {
139
+ missing++;
140
+ findings.add("orphan", `contract_path: ${who} → ${target} declares contract_path="${declared}" but it resolves under none of the ${roots.size} SDD root(s) in this aggregation`);
141
+ }
142
+ else {
143
+ ambiguous++;
144
+ findings.add("divergence", `contract_path: ${who} → ${target} declares contract_path="${declared}", which resolves under ${hits.length} SDD roots (${hits.join(", ")}) — not guessed; qualify the path or name the owning SDD`);
145
+ }
146
+ }
147
+ return { resolved, missing, ambiguous, nonPath, absent };
148
+ }
149
+ //# sourceMappingURL=contract-path-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-path-resolution.js","sourceRoot":"","sources":["../../../src/lib/catalogue/contract-path-resolution.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,oDAAoD;AACpD,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,kFAAkF;AAClF,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,iDAAiD;AACjD,EAAE;AACF,uEAAuE;AACvE,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,4EAA4E;AAC5E,kFAAkF;AAClF,qBAAqB;AACrB,EAAE;AACF,sBAAsB;AACtB,+EAA+E;AAC/E,gFAAgF;AAChF,+EAA+E;AAC/E,iCAAiC;AAqBjC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,qEAAqE;IACrE,yEAAyE;IACzE,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,mFAAmF;IACnF,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAa,EACb,KAAe;IAEf,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,mBAA4C,EAC5C,KAAe,EACf,OAAiB,EACjB,MAA6C,EAC7C,QAAqB;IAErB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,4EAA4E;IAC5E,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;QAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACvF,MAAM,MAAM,GACV,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;YACzC,kBAAkB,CAAC;QAErB,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,kBAAkB,GAAG,MAAM,MAAM,4BAA4B,QAAQ,+FAA+F,CACrK,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7D,IAAI,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;gBACV,QAAQ,CAAC,GAAG,CACV,QAAQ,EACR,kBAAkB,GAAG,MAAM,MAAM,4BAA4B,QAAQ,kBAAkB,MAAM,CAAC,KAAK,6BAA6B,CACjI,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;YAClC,IAAI,MAAM,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,QAAQ,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,GAAG,CACV,QAAQ,EACR,kBAAkB,GAAG,MAAM,MAAM,4BAA4B,QAAQ,uCAAuC,KAAK,CAAC,IAAI,kCAAkC,CACzJ,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;YACZ,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,kBAAkB,GAAG,MAAM,MAAM,4BAA4B,QAAQ,2BAA2B,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D,CACpM,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Coverage predicates as SQL — M-ADR 0205 §4.4 (engine-evolution Phase A3).
3
+ *
4
+ * Declarative re-expressions of the participation-constraint predicates —
5
+ * the four catalogue-classics:
6
+ *
7
+ * - repo_capability (M-ADR 0188): every catalogued repository resolves
8
+ * to a capability or declares an exemption; orphans classified by
9
+ * whether the capability_service ⋈ services.primary_repo_id derivation
10
+ * COULD have fired (shape a / claimed-but-unresolved / shape b).
11
+ * - service_capability (M-ADR 0133 §4.2b): every catalogued service is
12
+ * claimed or exempt; tier is explicit and asymmetric per M-ADR 0196
13
+ * §4.3 (`orphaned` is aggregate-only; member tier reports
14
+ * `unresolved-locally`, cause-agnostic); the Path-X leverage axis is
15
+ * reported separately and only when repo_capability.csv exists.
16
+ * - event_coverage (WS3): every catalogued event is attributed to a
17
+ * runtime — service_event edge or resolving publisher column — with
18
+ * the contract-twin alternative route, the column-vs-edge disagreement
19
+ * controls, and the chain-readout/consumer-enumerability metric lines
20
+ * that are never verdicts.
21
+ * - contract_coverage (WS2): every catalogued contract is reachable —
22
+ * capability_contract or service_contract — with the three computed
23
+ * exclusions (deprecated / provider-surface / not-an-interface, the
24
+ * last a positive READ of the spec file), the covered-as-event
25
+ * alternative route, and the M-ADR 0202 availability-manifest info
26
+ * surface. File and YAML ingestion stay host-side; set logic is SQL.
27
+ *
28
+ * The shell scripts in sdd-method's orchestration/scripts/ remain the
29
+ * REFERENCE implementations until A4 cutover: any semantic change lands
30
+ * there first and here second, and the dual-run driver compares the two
31
+ * as structured findings — (kind, subject, classification, leverage) plus
32
+ * every metric integer — never as prose.
33
+ *
34
+ * The relations live in SQL; the classification branching mirrors the
35
+ * reference implementations statement-for-statement, including their
36
+ * duplicate-row semantics (a duplicated id is counted and reported per
37
+ * ROW, never deduplicated away).
38
+ */
39
+ import type { EngineSession } from "./engine-validator.js";
40
+ export type CoverageTier = "member" | "aggregate";
41
+ export interface CoverageFinding {
42
+ readonly predicate: "repo_capability" | "service_capability" | "event_coverage" | "contract_coverage";
43
+ /**
44
+ * M-ADR 0132 §4.3 vocabulary member — plus `report`, which mirrors the
45
+ * event predicate's member-tier `[report]` lines (deliberately NOT a
46
+ * finding in the reference implementation, per M-ADR 0199 §4.3).
47
+ */
48
+ readonly kind: "orphan" | "divergence" | "coverage" | "report";
49
+ readonly subjectId: string;
50
+ /**
51
+ * repo_capability: conflict | shape_a | claimed_unresolved | shape_b.
52
+ * service_capability: conflict | orphaned | unresolved-locally.
53
+ */
54
+ readonly classification: string;
55
+ /** service_capability unresolved rows only, when the axis is computable. */
56
+ readonly leverage?: "yes" | "no" | "na";
57
+ /** Rendering ingredients (A4): the prose the reference lines carry. */
58
+ readonly exemptionReason?: string;
59
+ /** shape_a only: sorted unclaimed service ids (first three) + the full count. */
60
+ readonly unclaimedServices?: readonly string[];
61
+ readonly unclaimedCount?: number;
62
+ /** service_capability unresolved rows: the row's primary_repo_id. */
63
+ readonly primaryRepo?: string;
64
+ }
65
+ export interface RepoCapabilityMetrics {
66
+ readonly total: number;
67
+ readonly byCapability: number;
68
+ readonly byExemption: number;
69
+ readonly conflicting: number;
70
+ readonly unresolved: number;
71
+ readonly shapeA: number;
72
+ readonly shapeB: number;
73
+ readonly other: number;
74
+ }
75
+ export interface ServiceCapabilityMetrics {
76
+ readonly total: number;
77
+ readonly claimed: number;
78
+ readonly exempt: number;
79
+ readonly conflicting: number;
80
+ readonly unresolved: number;
81
+ readonly leverage?: {
82
+ readonly yes: number;
83
+ readonly no: number;
84
+ readonly na: number;
85
+ };
86
+ }
87
+ export declare function runRepoCapabilityCoverage(session: EngineSession): Promise<{
88
+ findings: readonly CoverageFinding[];
89
+ metrics: RepoCapabilityMetrics;
90
+ }>;
91
+ export interface ServiceCoverageOptions {
92
+ readonly tier: CoverageTier;
93
+ /**
94
+ * True when repo_capability.csv EXISTS for this catalogue set (even
95
+ * empty) — file-level presence, exactly as the reference implementation
96
+ * keys the leverage axis. An empty present file means every unresolved
97
+ * service with a primary repo reads leverage=yes; an absent file means
98
+ * the axis is omitted entirely, metric included.
99
+ */
100
+ readonly repoCapabilityAvailable: boolean;
101
+ }
102
+ export declare function runServiceCapabilityCoverage(session: EngineSession, options: ServiceCoverageOptions): Promise<{
103
+ findings: readonly CoverageFinding[];
104
+ metrics: ServiceCapabilityMetrics;
105
+ }>;
106
+ export interface EventCoverageOptions {
107
+ readonly tier: CoverageTier;
108
+ }
109
+ export interface EventCoverageControls {
110
+ /** publisher column set but unresolving against services. */
111
+ readonly colUnresolving: readonly {
112
+ eventId: string;
113
+ publisher: string;
114
+ }[];
115
+ /** publisher resolves but no publishes/produces edge exists. */
116
+ readonly colNoEdge: readonly string[];
117
+ /** publishes edge exists but the row's publisher column is empty. */
118
+ readonly edgeNoCol: readonly string[];
119
+ }
120
+ export interface EventCoverageMetrics {
121
+ readonly total: number;
122
+ readonly covered: number;
123
+ readonly viaContract: number;
124
+ readonly unresolved: number;
125
+ /** Chain readout, never a verdict (M-ADR 0199 §4.1). */
126
+ readonly capReach: number;
127
+ /** M-ADR 0057 analogue, never a verdict. */
128
+ readonly consumerEnum: number;
129
+ }
130
+ export interface EventCoverageResult {
131
+ /** True when the unit holds no event rows — a recorded state, not a rate. */
132
+ readonly na: boolean;
133
+ readonly findings: readonly CoverageFinding[];
134
+ readonly metrics?: EventCoverageMetrics;
135
+ readonly controls?: EventCoverageControls;
136
+ }
137
+ export declare function runEventCoverage(session: EngineSession, options: EventCoverageOptions): Promise<EventCoverageResult>;
138
+ export interface ContractCoverageOptions {
139
+ readonly tier: CoverageTier;
140
+ /**
141
+ * The SDD root spec_path values are relative to. At aggregate tier a
142
+ * member's spec_path is relative to ITS OWN root, so the file is
143
+ * legitimately absent under the aggregate's root — the not-an-interface
144
+ * scope-out then simply does not fire, exactly as in the reference.
145
+ */
146
+ readonly sddRoot: string;
147
+ }
148
+ export interface ContractCoverageMetrics {
149
+ readonly total: number;
150
+ readonly covered: number;
151
+ readonly viaEvent: number;
152
+ readonly excluded: number;
153
+ readonly conflicting: number;
154
+ readonly unresolved: number;
155
+ readonly byExclusion: Readonly<Record<string, number>>;
156
+ /** M-ADR 0057 property — reported, never verdicted. May exceed the ids in contracts.csv. */
157
+ readonly consumersNamed: number;
158
+ readonly ownedOnly: number;
159
+ readonly attrOnly: number;
160
+ readonly both: number;
161
+ }
162
+ export interface ContractAvailabilityInfo {
163
+ readonly attested: number;
164
+ /** Manifest order, duplicates preserved — mirror of the reference list. */
165
+ readonly unmodelled: readonly string[];
166
+ }
167
+ export interface ContractCoverageResult {
168
+ readonly na: boolean;
169
+ readonly findings: readonly CoverageFinding[];
170
+ readonly metrics?: ContractCoverageMetrics;
171
+ /** Informational, never verdict-changing (M-ADR 0202). */
172
+ readonly availability?: ContractAvailabilityInfo;
173
+ readonly availabilityWarning?: string;
174
+ }
175
+ export declare function runContractCoverage(session: EngineSession, options: ContractCoverageOptions): Promise<ContractCoverageResult>;
176
+ //# sourceMappingURL=coverage-predicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-predicates.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/coverage-predicates.ts"],"names":[],"mappings":"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"}