@sdd-method/sdd-cli 0.19.0 → 0.22.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 (115) hide show
  1. package/README.md +30 -10
  2. package/dist/index.js +3 -3
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/agent-harness.d.ts +20 -0
  5. package/dist/lib/agent-harness.d.ts.map +1 -0
  6. package/dist/lib/agent-harness.js +28 -0
  7. package/dist/lib/agent-harness.js.map +1 -0
  8. package/dist/lib/briefing/index.d.ts +15 -0
  9. package/dist/lib/briefing/index.d.ts.map +1 -0
  10. package/dist/lib/briefing/index.js +13 -0
  11. package/dist/lib/briefing/index.js.map +1 -0
  12. package/dist/lib/briefing/render.d.ts +57 -0
  13. package/dist/lib/briefing/render.d.ts.map +1 -0
  14. package/dist/lib/briefing/render.js +112 -0
  15. package/dist/lib/briefing/render.js.map +1 -0
  16. package/dist/lib/briefing/variables.d.ts +49 -0
  17. package/dist/lib/briefing/variables.d.ts.map +1 -0
  18. package/dist/lib/briefing/variables.js +92 -0
  19. package/dist/lib/briefing/variables.js.map +1 -0
  20. package/dist/lib/catalogue/aggregate.d.ts +19 -0
  21. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  22. package/dist/lib/catalogue/aggregate.js +88 -0
  23. package/dist/lib/catalogue/aggregate.js.map +1 -1
  24. package/dist/lib/catalogue/build.d.ts.map +1 -1
  25. package/dist/lib/catalogue/build.js +78 -4
  26. package/dist/lib/catalogue/build.js.map +1 -1
  27. package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
  28. package/dist/lib/catalogue/builders/c4-containers.js +15 -0
  29. package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
  30. package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -1
  31. package/dist/lib/catalogue/builders/capabilities.js +18 -4
  32. package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
  33. package/dist/lib/catalogue/builders/capability-spec-walker.d.ts +55 -0
  34. package/dist/lib/catalogue/builders/capability-spec-walker.d.ts.map +1 -0
  35. package/dist/lib/catalogue/builders/capability-spec-walker.js +99 -0
  36. package/dist/lib/catalogue/builders/capability-spec-walker.js.map +1 -0
  37. package/dist/lib/catalogue/builders/capability-spec.d.ts +51 -0
  38. package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -0
  39. package/dist/lib/catalogue/builders/capability-spec.js +276 -0
  40. package/dist/lib/catalogue/builders/capability-spec.js.map +1 -0
  41. package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -1
  42. package/dist/lib/catalogue/builders/contracts.js +88 -41
  43. package/dist/lib/catalogue/builders/contracts.js.map +1 -1
  44. package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts +12 -0
  45. package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts.map +1 -0
  46. package/dist/lib/catalogue/builders/feature-subscription-channels.js +197 -0
  47. package/dist/lib/catalogue/builders/feature-subscription-channels.js.map +1 -0
  48. package/dist/lib/catalogue/builders/index.d.ts +8 -0
  49. package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
  50. package/dist/lib/catalogue/builders/index.js +4 -0
  51. package/dist/lib/catalogue/builders/index.js.map +1 -1
  52. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +10 -0
  53. package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -0
  54. package/dist/lib/catalogue/builders/product-platform-dependencies.js +155 -0
  55. package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -0
  56. package/dist/lib/catalogue/builders/service-contract-consumes.d.ts +24 -0
  57. package/dist/lib/catalogue/builders/service-contract-consumes.d.ts.map +1 -0
  58. package/dist/lib/catalogue/builders/service-contract-consumes.js +173 -0
  59. package/dist/lib/catalogue/builders/service-contract-consumes.js.map +1 -0
  60. package/dist/lib/catalogue/canonical-schema.yaml +100 -5
  61. package/dist/lib/catalogue/service-contract-aliases-loader.d.ts +60 -0
  62. package/dist/lib/catalogue/service-contract-aliases-loader.d.ts.map +1 -0
  63. package/dist/lib/catalogue/service-contract-aliases-loader.js +109 -0
  64. package/dist/lib/catalogue/service-contract-aliases-loader.js.map +1 -0
  65. package/dist/lib/catalogue/traceability-loader.d.ts +17 -0
  66. package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
  67. package/dist/lib/catalogue/traceability-loader.js +6 -0
  68. package/dist/lib/catalogue/traceability-loader.js.map +1 -1
  69. package/dist/lib/generate-briefing/index.d.ts +22 -0
  70. package/dist/lib/generate-briefing/index.d.ts.map +1 -0
  71. package/dist/lib/generate-briefing/index.js +77 -0
  72. package/dist/lib/generate-briefing/index.js.map +1 -0
  73. package/dist/lib/hooks-seed/copilot.d.ts +93 -0
  74. package/dist/lib/hooks-seed/copilot.d.ts.map +1 -0
  75. package/dist/lib/hooks-seed/copilot.js +167 -0
  76. package/dist/lib/hooks-seed/copilot.js.map +1 -0
  77. package/dist/lib/hooks-seed/index.d.ts +4 -0
  78. package/dist/lib/hooks-seed/index.d.ts.map +1 -1
  79. package/dist/lib/hooks-seed/index.js +2 -0
  80. package/dist/lib/hooks-seed/index.js.map +1 -1
  81. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts +12 -0
  82. package/dist/lib/hooks-seed/lifecycle-mapping.d.ts.map +1 -0
  83. package/dist/lib/hooks-seed/lifecycle-mapping.js +28 -0
  84. package/dist/lib/hooks-seed/lifecycle-mapping.js.map +1 -0
  85. package/dist/lib/init/index.d.ts +6 -4
  86. package/dist/lib/init/index.d.ts.map +1 -1
  87. package/dist/lib/init/index.js +5 -26
  88. package/dist/lib/init/index.js.map +1 -1
  89. package/dist/lib/init/platform.d.ts +9 -0
  90. package/dist/lib/init/platform.d.ts.map +1 -1
  91. package/dist/lib/init/platform.js +8 -2
  92. package/dist/lib/init/platform.js.map +1 -1
  93. package/dist/lib/sync/briefing-merge.d.ts +34 -0
  94. package/dist/lib/sync/briefing-merge.d.ts.map +1 -0
  95. package/dist/lib/sync/briefing-merge.js +82 -0
  96. package/dist/lib/sync/briefing-merge.js.map +1 -0
  97. package/dist/lib/sync/copilot-hooks-merge.d.ts +30 -0
  98. package/dist/lib/sync/copilot-hooks-merge.d.ts.map +1 -0
  99. package/dist/lib/sync/copilot-hooks-merge.js +96 -0
  100. package/dist/lib/sync/copilot-hooks-merge.js.map +1 -0
  101. package/dist/lib/sync/index.d.ts +8 -3
  102. package/dist/lib/sync/index.d.ts.map +1 -1
  103. package/dist/lib/sync/index.js +63 -23
  104. package/dist/lib/sync/index.js.map +1 -1
  105. package/dist/verbs/generate-briefing.d.ts +3 -0
  106. package/dist/verbs/generate-briefing.d.ts.map +1 -0
  107. package/dist/verbs/generate-briefing.js +28 -0
  108. package/dist/verbs/generate-briefing.js.map +1 -0
  109. package/dist/verbs/init.d.ts.map +1 -1
  110. package/dist/verbs/init.js +11 -8
  111. package/dist/verbs/init.js.map +1 -1
  112. package/dist/verbs/sync.d.ts.map +1 -1
  113. package/dist/verbs/sync.js +11 -4
  114. package/dist/verbs/sync.js.map +1 -1
  115. package/package.json +2 -2
@@ -0,0 +1,12 @@
1
+ import type { CatalogueRow } from "../csv-writer.js";
2
+ import type { FindingsLog } from "../findings.js";
3
+ export interface FeatureSubscriptionChannelsBuildInputs {
4
+ readonly sddPath: string;
5
+ readonly findings: FindingsLog;
6
+ /** Catalogue-built feature ids; row only emitted when feature_slug resolves to one of these. */
7
+ readonly existingFeatureIds: ReadonlySet<string>;
8
+ /** SDD-level product id used to construct candidate `{productId}-{slug}` resolutions. */
9
+ readonly productId: string;
10
+ }
11
+ export declare function buildFeatureSubscriptionChannels(inputs: FeatureSubscriptionChannelsBuildInputs): Promise<CatalogueRow[]>;
12
+ //# sourceMappingURL=feature-subscription-channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-subscription-channels.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/feature-subscription-channels.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,gGAAgG;IAChG,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,yFAAyF;IACzF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAaD,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC,CAqGzB"}
@@ -0,0 +1,197 @@
1
+ // feature_subscription_channels builder — emits one row per
2
+ // `subscription_channels:` entry in any `reverse-evidence/feature-grounding-evidence.yaml`
3
+ // file in the SDD. Added in schema 2.9.0.
4
+ //
5
+ // Per resolved decision §1 of `content/plans/v0-9-0-cohort-sweep-derived-bundle.md`
6
+ // (see also `docs/method/methods/reverse/rubrics/reverse-application-evidence-quality.md`
7
+ // per-feature slot vocabulary): `subscription_channels:` is a peer of
8
+ // `graphql_operations:` in the per-feature evidence shape — `graphql_operations:`
9
+ // carries the operation names declared in the GraphQL schema; this builder
10
+ // captures the channel/topic layer (AppSync WebSocket, Pekko WS, MQTT, SSE,
11
+ // etc.) that physically delivers push events.
12
+ //
13
+ // Input shape (per the rubric):
14
+ //
15
+ // features:
16
+ // - feature_slug: <slug>
17
+ // subscription_channels:
18
+ // - name: <channel-identifier>
19
+ // transport: appsync-websocket | pekko-ws | mqtt | sse | webhook-push | other
20
+ // evidence: <sub-repo>/<path>:<line>
21
+ // payload_ref: <event-name> # optional
22
+ //
23
+ // Feature-id resolution: the canonical builder emits feature rows with ids
24
+ // shaped `{product_id|capability_id}-{feature_slug}`. Adopters' evidence
25
+ // yamls carry only the bare `feature_slug:`. This builder accepts a set of
26
+ // known feature ids (`existingFeatureIds`) and probes each candidate
27
+ // resolution (`{productId}-{slug}` and `{slug}` and `<capability>-{slug}`
28
+ // for any capability id ending in `-{slug}`). When no candidate resolves,
29
+ // the row is dropped and an `orphan` finding is emitted so reviewers can
30
+ // reconcile.
31
+ import { readFile, readdir, stat } from "node:fs/promises";
32
+ import { join, relative, sep } from "node:path";
33
+ import { parse as parseYaml } from "yaml";
34
+ const EVIDENCE_FILE_REL = join("reverse-evidence", "feature-grounding-evidence.yaml");
35
+ const VALID_TRANSPORTS = new Set([
36
+ "appsync-websocket",
37
+ "pekko-ws",
38
+ "mqtt",
39
+ "sse",
40
+ "webhook-push",
41
+ "other",
42
+ ]);
43
+ export async function buildFeatureSubscriptionChannels(inputs) {
44
+ const rows = [];
45
+ const seenIds = new Set();
46
+ const evidenceFiles = await collectEvidenceFiles(inputs.sddPath);
47
+ for (const file of evidenceFiles) {
48
+ const relPath = relative(inputs.sddPath, file);
49
+ let text;
50
+ try {
51
+ text = await readFile(file, "utf-8");
52
+ }
53
+ catch {
54
+ inputs.findings.add("convention", `${relPath}: cannot read evidence file`);
55
+ continue;
56
+ }
57
+ let parsed;
58
+ try {
59
+ parsed = parseYaml(text);
60
+ }
61
+ catch (err) {
62
+ const msg = err instanceof Error ? err.message : String(err);
63
+ inputs.findings.add("convention", `${relPath}: invalid YAML — ${msg}`);
64
+ continue;
65
+ }
66
+ if (!parsed || typeof parsed !== "object")
67
+ continue;
68
+ const features = parsed["features"];
69
+ if (!Array.isArray(features))
70
+ continue;
71
+ for (const f of features) {
72
+ if (!f || typeof f !== "object")
73
+ continue;
74
+ const feat = f;
75
+ const slug = String(feat["feature_slug"] ?? "").trim();
76
+ if (slug === "")
77
+ continue;
78
+ const channels = feat["subscription_channels"];
79
+ if (!Array.isArray(channels) || channels.length === 0)
80
+ continue;
81
+ const featureId = resolveFeatureId(slug, inputs.productId, inputs.existingFeatureIds);
82
+ if (featureId === "") {
83
+ inputs.findings.add("orphan", `${relPath}: feature_slug="${slug}" carries subscription_channels but does not resolve to any catalogue feature id`);
84
+ continue;
85
+ }
86
+ for (const ch of channels) {
87
+ if (!ch || typeof ch !== "object")
88
+ continue;
89
+ const channelObj = ch;
90
+ const channelName = String(channelObj["name"] ?? "").trim();
91
+ if (channelName === "") {
92
+ inputs.findings.add("convention", `${relPath}: subscription_channels entry under feature_slug="${slug}" missing required "name" field`);
93
+ continue;
94
+ }
95
+ const transport = String(channelObj["transport"] ?? "").trim();
96
+ if (transport === "") {
97
+ inputs.findings.add("convention", `${relPath}: subscription_channels entry "${channelName}" under feature_slug="${slug}" missing required "transport" field`);
98
+ continue;
99
+ }
100
+ if (!VALID_TRANSPORTS.has(transport)) {
101
+ inputs.findings.add("convention", `${relPath}: subscription_channels entry "${channelName}" under feature_slug="${slug}" has unknown transport="${transport}" (expected one of ${[...VALID_TRANSPORTS].join(", ")})`);
102
+ // Don't drop — emit the row with the literal transport. The
103
+ // schema accepts any string; this finding lets reviewers
104
+ // notice the deviation.
105
+ }
106
+ const evidence = typeof channelObj["evidence"] === "string"
107
+ ? channelObj["evidence"].trim()
108
+ : "";
109
+ const payloadRef = typeof channelObj["payload_ref"] === "string"
110
+ ? channelObj["payload_ref"].trim()
111
+ : "";
112
+ const rowId = `${featureId}__${channelName}`;
113
+ if (seenIds.has(rowId)) {
114
+ inputs.findings.add("divergence", `${relPath}: duplicate subscription_channels row id="${rowId}" — same (feature_id, channel_name) already emitted`);
115
+ continue;
116
+ }
117
+ seenIds.add(rowId);
118
+ rows.push({
119
+ id: rowId,
120
+ feature_id: featureId,
121
+ channel_name: channelName,
122
+ transport,
123
+ evidence,
124
+ payload_ref: payloadRef,
125
+ source_sdd_id: "",
126
+ });
127
+ }
128
+ }
129
+ }
130
+ return rows;
131
+ }
132
+ /**
133
+ * Resolve a bare `feature_slug` from evidence yaml to a canonical feature id
134
+ * present in `existingFeatureIds`. Candidates probed in order:
135
+ * 1. `{productId}-{slug}` — typical for application-product / integration-product features.
136
+ * 2. The slug as-is — when the feature id is just the slug (legacy / capability-spec source).
137
+ * 3. Any existing id ending in `-{slug}` — covers `{capability-id}-{slug}` for capability-spec sourced features.
138
+ *
139
+ * Returns `""` when no candidate resolves.
140
+ */
141
+ function resolveFeatureId(slug, productId, existing) {
142
+ if (productId !== "") {
143
+ const candidate = `${productId}-${slug}`;
144
+ if (existing.has(candidate))
145
+ return candidate;
146
+ }
147
+ if (existing.has(slug))
148
+ return slug;
149
+ for (const id of existing) {
150
+ if (id.endsWith(`-${slug}`))
151
+ return id;
152
+ }
153
+ return "";
154
+ }
155
+ async function collectEvidenceFiles(sddPath) {
156
+ const out = [];
157
+ await walk(sddPath, sddPath, out);
158
+ return out;
159
+ }
160
+ async function walk(root, current, out) {
161
+ let entries;
162
+ try {
163
+ entries = await readdir(current, { withFileTypes: true });
164
+ }
165
+ catch {
166
+ return;
167
+ }
168
+ for (const e of entries) {
169
+ if (e.name === "node_modules" || e.name === ".git" || e.name === "source" || e.name === "catalogues" || e.name === "dist") {
170
+ continue;
171
+ }
172
+ const abs = join(current, e.name);
173
+ if (e.isDirectory()) {
174
+ // Check whether this is the reverse-evidence dir; if so, look for the file directly.
175
+ if (e.name === "reverse-evidence") {
176
+ const candidate = join(abs, "feature-grounding-evidence.yaml");
177
+ try {
178
+ const s = await stat(candidate);
179
+ if (s.isFile())
180
+ out.push(candidate);
181
+ }
182
+ catch {
183
+ // No file in this reverse-evidence dir — skip silently.
184
+ }
185
+ continue;
186
+ }
187
+ // Bound recursion depth via a heuristic on path component count from root
188
+ // to avoid pathological deep trees; reverse-evidence lives at most a few
189
+ // levels deep in adopters we've seen.
190
+ const rel = relative(root, abs);
191
+ if (rel.split(sep).length > 8)
192
+ continue;
193
+ await walk(root, abs, out);
194
+ }
195
+ }
196
+ }
197
+ //# sourceMappingURL=feature-subscription-channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-subscription-channels.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/feature-subscription-channels.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,2FAA2F;AAC3F,0CAA0C;AAC1C,EAAE;AACF,oFAAoF;AACpF,0FAA0F;AAC1F,sEAAsE;AACtE,kFAAkF;AAClF,2EAA2E;AAC3E,4EAA4E;AAC5E,8CAA8C;AAC9C,EAAE;AACF,gCAAgC;AAChC,EAAE;AACF,cAAc;AACd,6BAA6B;AAC7B,+BAA+B;AAC/B,uCAAuC;AACvC,wFAAwF;AACxF,+CAA+C;AAC/C,0DAA0D;AAC1D,EAAE;AACF,2EAA2E;AAC3E,yEAAyE;AACzE,2EAA2E;AAC3E,qEAAqE;AACrE,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,aAAa;AAEb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAa1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;AAEtF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,mBAAmB;IACnB,UAAU;IACV,MAAM;IACN,KAAK;IACL,cAAc;IACd,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAA8C;IAE9C,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,OAAO,6BAA6B,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,OAAO,oBAAoB,GAAG,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QACpD,MAAM,QAAQ,GAAI,MAAkC,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEvC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,SAAS;YAC1C,MAAM,IAAI,GAAG,CAA4B,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,IAAI,KAAK,EAAE;gBAAE,SAAS;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEhE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACtF,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,CACjB,QAAQ,EACR,GAAG,OAAO,mBAAmB,IAAI,kFAAkF,CACpH,CAAC;gBACF,SAAS;YACX,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,SAAS;gBAC5C,MAAM,UAAU,GAAG,EAA6B,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5D,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;oBACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,CACjB,YAAY,EACZ,GAAG,OAAO,qDAAqD,IAAI,iCAAiC,CACrG,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/D,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,CACjB,YAAY,EACZ,GAAG,OAAO,kCAAkC,WAAW,yBAAyB,IAAI,sCAAsC,CAC3H,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,MAAM,CAAC,QAAQ,CAAC,GAAG,CACjB,YAAY,EACZ,GAAG,OAAO,kCAAkC,WAAW,yBAAyB,IAAI,4BAA4B,SAAS,sBAAsB,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnL,CAAC;oBACF,4DAA4D;oBAC5D,yDAAyD;oBACzD,wBAAwB;gBAC1B,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACzD,CAAC,CAAE,UAAU,CAAC,UAAU,CAAY,CAAC,IAAI,EAAE;oBAC3C,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,QAAQ;oBAC9D,CAAC,CAAE,UAAU,CAAC,aAAa,CAAY,CAAC,IAAI,EAAE;oBAC9C,CAAC,CAAC,EAAE,CAAC;gBAEP,MAAM,KAAK,GAAG,GAAG,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,QAAQ,CAAC,GAAG,CACjB,YAAY,EACZ,GAAG,OAAO,6CAA6C,KAAK,qDAAqD,CAClH,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC;oBACR,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,WAAW;oBACzB,SAAS;oBACT,QAAQ;oBACR,WAAW,EAAE,UAAU;oBACvB,aAAa,EAAE,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,SAAiB,EACjB,QAA6B;IAE7B,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,IAAY,EACZ,OAAe,EACf,GAAa;IAEb,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1H,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpB,qFAAqF;YACrF,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,IAAI,CAAC,CAAC,MAAM,EAAE;wBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,wDAAwD;gBAC1D,CAAC;gBACD,SAAS;YACX,CAAC;YACD,0EAA0E;YAC1E,yEAAyE;YACzE,sCAAsC;YACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YACxC,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -24,6 +24,8 @@ export { buildFeatureGroups } from "./feature-groups.js";
24
24
  export type { FeatureGroupsBuildInputs } from "./feature-groups.js";
25
25
  export { buildFeatureGrounding } from "./feature-grounding.js";
26
26
  export type { FeatureGroundingInputs, FeatureGroundingResult, } from "./feature-grounding.js";
27
+ export { buildCapabilitySpec } from "./capability-spec.js";
28
+ export type { CapabilitySpecInputs, CapabilitySpecResult, } from "./capability-spec.js";
27
29
  export { buildContracts } from "./contracts.js";
28
30
  export type { ContractsBuildInputs, ContractsBuildResult, } from "./contracts.js";
29
31
  export { buildRepoEdges } from "./repo-edges.js";
@@ -34,6 +36,8 @@ export { buildServiceEvent, buildCapabilityEvent } from "./event-edges.js";
34
36
  export type { ServiceEventInputs, CapabilityEventInputs, } from "./event-edges.js";
35
37
  export { buildServiceContract } from "./service-contract.js";
36
38
  export type { ServiceContractInputs } from "./service-contract.js";
39
+ export { buildServiceContractConsumes } from "./service-contract-consumes.js";
40
+ export type { ServiceContractConsumesInputs } from "./service-contract-consumes.js";
37
41
  export { buildGlossaryItems } from "./glossary.js";
38
42
  export type { GlossaryItemsBuildInputs, GlossaryItemsResult, } from "./glossary.js";
39
43
  export { buildGlossaryXref } from "./glossary-xref.js";
@@ -64,4 +68,8 @@ export { buildCapabilityDomainModel } from "./capability-domain-model.js";
64
68
  export type { CapabilityDomainModelInputs } from "./capability-domain-model.js";
65
69
  export { buildFeatureDomainModel } from "./feature-domain-model.js";
66
70
  export type { FeatureDomainModelInputs } from "./feature-domain-model.js";
71
+ export { buildFeatureSubscriptionChannels } from "./feature-subscription-channels.js";
72
+ export type { FeatureSubscriptionChannelsBuildInputs } from "./feature-subscription-channels.js";
73
+ export { buildProductPlatformDependencies } from "./product-platform-dependencies.js";
74
+ export type { ProductPlatformDependenciesBuildInputs } from "./product-platform-dependencies.js";
67
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EACV,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EACV,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,YAAY,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,YAAY,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC"}
@@ -15,11 +15,13 @@ export { buildAdrSupersedes } from "./adr-supersedes.js";
15
15
  export { buildFeatures } from "./features.js";
16
16
  export { buildFeatureGroups } from "./feature-groups.js";
17
17
  export { buildFeatureGrounding } from "./feature-grounding.js";
18
+ export { buildCapabilitySpec } from "./capability-spec.js";
18
19
  export { buildContracts } from "./contracts.js";
19
20
  export { buildRepoEdges } from "./repo-edges.js";
20
21
  export { buildEvents } from "./events.js";
21
22
  export { buildServiceEvent, buildCapabilityEvent } from "./event-edges.js";
22
23
  export { buildServiceContract } from "./service-contract.js";
24
+ export { buildServiceContractConsumes } from "./service-contract-consumes.js";
23
25
  export { buildGlossaryItems } from "./glossary.js";
24
26
  export { buildGlossaryXref } from "./glossary-xref.js";
25
27
  export { buildCapabilities } from "./capabilities.js";
@@ -35,4 +37,6 @@ export { buildFeatureContract } from "./feature-contract.js";
35
37
  export { buildDomainModels } from "./domain-models.js";
36
38
  export { buildCapabilityDomainModel } from "./capability-domain-model.js";
37
39
  export { buildFeatureDomainModel } from "./feature-domain-model.js";
40
+ export { buildFeatureSubscriptionChannels } from "./feature-subscription-channels.js";
41
+ export { buildProductPlatformDependencies } from "./product-platform-dependencies.js";
38
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CatalogueRow } from "../csv-writer.js";
2
+ import type { FindingsLog } from "../findings.js";
3
+ export interface ProductPlatformDependenciesBuildInputs {
4
+ readonly sddPath: string;
5
+ readonly findings: FindingsLog;
6
+ /** SDD's product id (the consuming product). */
7
+ readonly productId: string;
8
+ }
9
+ export declare function buildProductPlatformDependencies(inputs: ProductPlatformDependenciesBuildInputs): Promise<CatalogueRow[]>;
10
+ //# sourceMappingURL=product-platform-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-platform-dependencies.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC,CAkFzB"}
@@ -0,0 +1,155 @@
1
+ // product_platform_dependencies builder — emits per-SDD rows recording
2
+ // platform consumption declared in `reverse-evidence/feature-grounding-evidence.yaml`
3
+ // under the product-scoped `platform_dependencies:` block. Added in
4
+ // schema 2.9.0.
5
+ //
6
+ // The source shape (per the cohort source files):
7
+ //
8
+ // platform_dependencies:
9
+ // - capability_id: <target-capability-slug> # platform-side capability
10
+ // service_id: <target-service-slug> # platform-side service
11
+ // domain: <domain-hint> # optional, free-text
12
+ // contract_type: rest | graphql | openapi | grpc | event | other
13
+ // required_stability: locked | provisional | unknown
14
+ // contract_path: <relative-path-in-platform-sdd>
15
+ // consumed_by:
16
+ // - <service-name-within-this-product>
17
+ //
18
+ // Each entry emits one row keyed by `(product_id, target_capability_id,
19
+ // target_service_id)`. The aggregator subsequently joins these rows
20
+ // against platform-side `capability_service` to derive
21
+ // `cross_sdd_platform_capability` edges (per ADR 0134, federation).
22
+ //
23
+ // Cross-SDD references (target_capability_id, target_service_id) are
24
+ // declared `external: true` in the schema — per-SDD FK validation
25
+ // doesn't run them.
26
+ //
27
+ // Defensive shape:
28
+ // - Missing capability_id OR service_id → skip the entry, log `convention`.
29
+ // - Multiple platform_dependencies blocks across multiple evidence files in
30
+ // the SDD are merged. Duplicate (product_id, target_capability_id,
31
+ // target_service_id) emit `divergence` and keep the first.
32
+ import { readFile, readdir, stat } from "node:fs/promises";
33
+ import { join, relative, sep } from "node:path";
34
+ import { parse as parseYaml } from "yaml";
35
+ export async function buildProductPlatformDependencies(inputs) {
36
+ const rows = [];
37
+ const seenIds = new Set();
38
+ if (inputs.productId === "") {
39
+ // No product id means no rows can be emitted — product_platform_dependencies
40
+ // is product-scoped. Return empty silently (the orchestrator decides
41
+ // whether to log this as a finding).
42
+ return rows;
43
+ }
44
+ const evidenceFiles = await collectEvidenceFiles(inputs.sddPath);
45
+ for (const file of evidenceFiles) {
46
+ const relPath = relative(inputs.sddPath, file);
47
+ let text;
48
+ try {
49
+ text = await readFile(file, "utf-8");
50
+ }
51
+ catch {
52
+ inputs.findings.add("convention", `${relPath}: cannot read evidence file`);
53
+ continue;
54
+ }
55
+ let parsed;
56
+ try {
57
+ parsed = parseYaml(text);
58
+ }
59
+ catch (err) {
60
+ const msg = err instanceof Error ? err.message : String(err);
61
+ inputs.findings.add("convention", `${relPath}: invalid YAML — ${msg}`);
62
+ continue;
63
+ }
64
+ if (!parsed || typeof parsed !== "object")
65
+ continue;
66
+ const deps = parsed["platform_dependencies"];
67
+ if (!Array.isArray(deps))
68
+ continue;
69
+ for (const d of deps) {
70
+ if (!d || typeof d !== "object")
71
+ continue;
72
+ const dep = d;
73
+ const capabilityId = String(dep["capability_id"] ?? "").trim();
74
+ const serviceId = String(dep["service_id"] ?? "").trim();
75
+ if (capabilityId === "" || serviceId === "") {
76
+ inputs.findings.add("convention", `${relPath}: platform_dependencies entry missing required capability_id or service_id (capability_id="${capabilityId}", service_id="${serviceId}")`);
77
+ continue;
78
+ }
79
+ const rowId = `${inputs.productId}__${capabilityId}__${serviceId}`;
80
+ if (seenIds.has(rowId)) {
81
+ inputs.findings.add("divergence", `${relPath}: duplicate platform_dependencies row id="${rowId}" — same (product_id, target_capability_id, target_service_id) already emitted`);
82
+ continue;
83
+ }
84
+ seenIds.add(rowId);
85
+ const consumedBy = dep["consumed_by"];
86
+ const consumedByJoined = Array.isArray(consumedBy)
87
+ ? consumedBy
88
+ .map((v) => String(v).trim())
89
+ .filter((v) => v !== "")
90
+ .join(",")
91
+ : typeof consumedBy === "string"
92
+ ? consumedBy.trim()
93
+ : "";
94
+ rows.push({
95
+ id: rowId,
96
+ product_id: inputs.productId,
97
+ target_capability_id: capabilityId,
98
+ target_service_id: serviceId,
99
+ target_domain: optString(dep["domain"]),
100
+ contract_type: optString(dep["contract_type"]),
101
+ required_stability: optString(dep["required_stability"]),
102
+ contract_path: optString(dep["contract_path"]),
103
+ consumed_by_services: consumedByJoined,
104
+ source_sdd_id: "",
105
+ });
106
+ }
107
+ }
108
+ return rows;
109
+ }
110
+ function optString(value) {
111
+ return typeof value === "string" ? value.trim() : "";
112
+ }
113
+ async function collectEvidenceFiles(sddPath) {
114
+ const out = [];
115
+ await walk(sddPath, sddPath, out);
116
+ return out;
117
+ }
118
+ async function walk(root, current, out) {
119
+ let entries;
120
+ try {
121
+ entries = await readdir(current, { withFileTypes: true });
122
+ }
123
+ catch {
124
+ return;
125
+ }
126
+ for (const e of entries) {
127
+ if (e.name === "node_modules" ||
128
+ e.name === ".git" ||
129
+ e.name === "source" ||
130
+ e.name === "catalogues" ||
131
+ e.name === "dist") {
132
+ continue;
133
+ }
134
+ const abs = join(current, e.name);
135
+ if (e.isDirectory()) {
136
+ if (e.name === "reverse-evidence") {
137
+ const candidate = join(abs, "feature-grounding-evidence.yaml");
138
+ try {
139
+ const s = await stat(candidate);
140
+ if (s.isFile())
141
+ out.push(candidate);
142
+ }
143
+ catch {
144
+ // No file in this reverse-evidence dir — skip silently.
145
+ }
146
+ continue;
147
+ }
148
+ const rel = relative(root, abs);
149
+ if (rel.split(sep).length > 8)
150
+ continue;
151
+ await walk(root, abs, out);
152
+ }
153
+ }
154
+ }
155
+ //# sourceMappingURL=product-platform-dependencies.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,24 @@
1
+ import type { CatalogueRow } from "../csv-writer.js";
2
+ import type { FindingsLog } from "../findings.js";
3
+ import type { LoadedServiceContractAliases } from "../service-contract-aliases-loader.js";
4
+ export interface ServiceContractConsumesInputs {
5
+ readonly sddPath: string;
6
+ readonly findings: FindingsLog;
7
+ /**
8
+ * Optional set of locally-known service ids. When non-empty (e.g.
9
+ * connect-mono with a populated services.csv), only those repos are
10
+ * walked. When empty (federated SDDs that don't emit services), the
11
+ * builder walks every repos/<dir> with a service-architecture.md and
12
+ * relies on the aggregator's external-FK resolution against the
13
+ * platform-root services.csv.
14
+ */
15
+ readonly knownServiceIds: ReadonlySet<string>;
16
+ readonly aliases: LoadedServiceContractAliases | null;
17
+ }
18
+ export declare function buildServiceContractConsumes(inputs: ServiceContractConsumesInputs): Promise<CatalogueRow[]>;
19
+ interface OutboundInterface {
20
+ readonly interfaceText: string;
21
+ }
22
+ export declare function parseOutboundInterfaces(markdown: string): OutboundInterface[];
23
+ export {};
24
+ //# sourceMappingURL=service-contract-consumes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-contract-consumes.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/service-contract-consumes.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAM1F,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI,CAAC;CACvD;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,6BAA6B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CA0CzB;AAqCD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,EAAE,CA+C7E"}