@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.
- package/README.md +30 -10
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-harness.d.ts +20 -0
- package/dist/lib/agent-harness.d.ts.map +1 -0
- package/dist/lib/agent-harness.js +28 -0
- package/dist/lib/agent-harness.js.map +1 -0
- package/dist/lib/briefing/index.d.ts +15 -0
- package/dist/lib/briefing/index.d.ts.map +1 -0
- package/dist/lib/briefing/index.js +13 -0
- package/dist/lib/briefing/index.js.map +1 -0
- package/dist/lib/briefing/render.d.ts +57 -0
- package/dist/lib/briefing/render.d.ts.map +1 -0
- package/dist/lib/briefing/render.js +112 -0
- package/dist/lib/briefing/render.js.map +1 -0
- package/dist/lib/briefing/variables.d.ts +49 -0
- package/dist/lib/briefing/variables.d.ts.map +1 -0
- package/dist/lib/briefing/variables.js +92 -0
- package/dist/lib/briefing/variables.js.map +1 -0
- package/dist/lib/catalogue/aggregate.d.ts +19 -0
- package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
- package/dist/lib/catalogue/aggregate.js +88 -0
- package/dist/lib/catalogue/aggregate.js.map +1 -1
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +78 -4
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.js +15 -0
- package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/capabilities.js +18 -4
- package/dist/lib/catalogue/builders/capabilities.js.map +1 -1
- package/dist/lib/catalogue/builders/capability-spec-walker.d.ts +55 -0
- package/dist/lib/catalogue/builders/capability-spec-walker.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/capability-spec-walker.js +99 -0
- package/dist/lib/catalogue/builders/capability-spec-walker.js.map +1 -0
- package/dist/lib/catalogue/builders/capability-spec.d.ts +51 -0
- package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/capability-spec.js +276 -0
- package/dist/lib/catalogue/builders/capability-spec.js.map +1 -0
- package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/contracts.js +88 -41
- package/dist/lib/catalogue/builders/contracts.js.map +1 -1
- package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts +12 -0
- package/dist/lib/catalogue/builders/feature-subscription-channels.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/feature-subscription-channels.js +197 -0
- package/dist/lib/catalogue/builders/feature-subscription-channels.js.map +1 -0
- package/dist/lib/catalogue/builders/index.d.ts +8 -0
- package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/index.js +4 -0
- package/dist/lib/catalogue/builders/index.js.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +10 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.js +155 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -0
- package/dist/lib/catalogue/builders/service-contract-consumes.d.ts +24 -0
- package/dist/lib/catalogue/builders/service-contract-consumes.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/service-contract-consumes.js +173 -0
- package/dist/lib/catalogue/builders/service-contract-consumes.js.map +1 -0
- package/dist/lib/catalogue/canonical-schema.yaml +100 -5
- package/dist/lib/catalogue/service-contract-aliases-loader.d.ts +60 -0
- package/dist/lib/catalogue/service-contract-aliases-loader.d.ts.map +1 -0
- package/dist/lib/catalogue/service-contract-aliases-loader.js +109 -0
- package/dist/lib/catalogue/service-contract-aliases-loader.js.map +1 -0
- package/dist/lib/catalogue/traceability-loader.d.ts +17 -0
- package/dist/lib/catalogue/traceability-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/traceability-loader.js +6 -0
- package/dist/lib/catalogue/traceability-loader.js.map +1 -1
- package/dist/lib/generate-briefing/index.d.ts +22 -0
- package/dist/lib/generate-briefing/index.d.ts.map +1 -0
- package/dist/lib/generate-briefing/index.js +77 -0
- package/dist/lib/generate-briefing/index.js.map +1 -0
- package/dist/lib/hooks-seed/copilot.d.ts +93 -0
- package/dist/lib/hooks-seed/copilot.d.ts.map +1 -0
- package/dist/lib/hooks-seed/copilot.js +167 -0
- package/dist/lib/hooks-seed/copilot.js.map +1 -0
- package/dist/lib/hooks-seed/index.d.ts +4 -0
- package/dist/lib/hooks-seed/index.d.ts.map +1 -1
- package/dist/lib/hooks-seed/index.js +2 -0
- package/dist/lib/hooks-seed/index.js.map +1 -1
- package/dist/lib/hooks-seed/lifecycle-mapping.d.ts +12 -0
- package/dist/lib/hooks-seed/lifecycle-mapping.d.ts.map +1 -0
- package/dist/lib/hooks-seed/lifecycle-mapping.js +28 -0
- package/dist/lib/hooks-seed/lifecycle-mapping.js.map +1 -0
- package/dist/lib/init/index.d.ts +6 -4
- package/dist/lib/init/index.d.ts.map +1 -1
- package/dist/lib/init/index.js +5 -26
- package/dist/lib/init/index.js.map +1 -1
- package/dist/lib/init/platform.d.ts +9 -0
- package/dist/lib/init/platform.d.ts.map +1 -1
- package/dist/lib/init/platform.js +8 -2
- package/dist/lib/init/platform.js.map +1 -1
- package/dist/lib/sync/briefing-merge.d.ts +34 -0
- package/dist/lib/sync/briefing-merge.d.ts.map +1 -0
- package/dist/lib/sync/briefing-merge.js +82 -0
- package/dist/lib/sync/briefing-merge.js.map +1 -0
- package/dist/lib/sync/copilot-hooks-merge.d.ts +30 -0
- package/dist/lib/sync/copilot-hooks-merge.d.ts.map +1 -0
- package/dist/lib/sync/copilot-hooks-merge.js +96 -0
- package/dist/lib/sync/copilot-hooks-merge.js.map +1 -0
- package/dist/lib/sync/index.d.ts +8 -3
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +63 -23
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/verbs/generate-briefing.d.ts +3 -0
- package/dist/verbs/generate-briefing.d.ts.map +1 -0
- package/dist/verbs/generate-briefing.js +28 -0
- package/dist/verbs/generate-briefing.js.map +1 -0
- package/dist/verbs/init.d.ts.map +1 -1
- package/dist/verbs/init.js +11 -8
- package/dist/verbs/init.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +11 -4
- package/dist/verbs/sync.js.map +1 -1
- 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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|