@sdd-method/sdd-cli 3.0.0 → 4.0.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 (126) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  5. package/dist/lib/catalogue/aggregate.js +2 -0
  6. package/dist/lib/catalogue/aggregate.js.map +1 -1
  7. package/dist/lib/catalogue/build.d.ts +3 -1
  8. package/dist/lib/catalogue/build.d.ts.map +1 -1
  9. package/dist/lib/catalogue/build.js +33 -2
  10. package/dist/lib/catalogue/build.js.map +1 -1
  11. package/dist/lib/catalogue/builders/adr-governs.d.ts +4 -0
  12. package/dist/lib/catalogue/builders/adr-governs.d.ts.map +1 -0
  13. package/dist/lib/catalogue/builders/adr-governs.js +39 -0
  14. package/dist/lib/catalogue/builders/adr-governs.js.map +1 -0
  15. package/dist/lib/catalogue/builders/adrs.d.ts +2 -0
  16. package/dist/lib/catalogue/builders/adrs.d.ts.map +1 -1
  17. package/dist/lib/catalogue/builders/adrs.js +11 -0
  18. package/dist/lib/catalogue/builders/adrs.js.map +1 -1
  19. package/dist/lib/catalogue/builders/contract-revisions.d.ts +12 -0
  20. package/dist/lib/catalogue/builders/contract-revisions.d.ts.map +1 -0
  21. package/dist/lib/catalogue/builders/contract-revisions.js +126 -0
  22. package/dist/lib/catalogue/builders/contract-revisions.js.map +1 -0
  23. package/dist/lib/catalogue/builders/data-model.d.ts +73 -0
  24. package/dist/lib/catalogue/builders/data-model.d.ts.map +1 -0
  25. package/dist/lib/catalogue/builders/data-model.js +316 -0
  26. package/dist/lib/catalogue/builders/data-model.js.map +1 -0
  27. package/dist/lib/catalogue/builders/entities-mermaid.d.ts.map +1 -1
  28. package/dist/lib/catalogue/builders/entities-mermaid.js +18 -85
  29. package/dist/lib/catalogue/builders/entities-mermaid.js.map +1 -1
  30. package/dist/lib/catalogue/builders/integration-components.js +49 -5
  31. package/dist/lib/catalogue/builders/integration-components.js.map +1 -1
  32. package/dist/lib/catalogue/builders/quality-scores.d.ts.map +1 -1
  33. package/dist/lib/catalogue/builders/quality-scores.js +17 -0
  34. package/dist/lib/catalogue/builders/quality-scores.js.map +1 -1
  35. package/dist/lib/catalogue/builders/requirements.d.ts +7 -1
  36. package/dist/lib/catalogue/builders/requirements.d.ts.map +1 -1
  37. package/dist/lib/catalogue/builders/requirements.js +132 -23
  38. package/dist/lib/catalogue/builders/requirements.js.map +1 -1
  39. package/dist/lib/catalogue/canonical-schema.yaml +767 -17
  40. package/dist/lib/catalogue/retired-catalogues.d.ts +6 -0
  41. package/dist/lib/catalogue/retired-catalogues.d.ts.map +1 -0
  42. package/dist/lib/catalogue/retired-catalogues.js +25 -0
  43. package/dist/lib/catalogue/retired-catalogues.js.map +1 -0
  44. package/dist/lib/catalogue/rubric-coverage-map.yaml +90 -2
  45. package/dist/lib/catalogue/schema-compat.d.ts +1 -1
  46. package/dist/lib/catalogue/schema-compat.js +1 -1
  47. package/dist/lib/catalogue/schema-loader.d.ts +6 -0
  48. package/dist/lib/catalogue/schema-loader.d.ts.map +1 -1
  49. package/dist/lib/catalogue/schema-loader.js +3 -0
  50. package/dist/lib/catalogue/schema-loader.js.map +1 -1
  51. package/dist/lib/catalogue/staleness-verdicts.d.ts.map +1 -1
  52. package/dist/lib/catalogue/staleness-verdicts.js +75 -6
  53. package/dist/lib/catalogue/staleness-verdicts.js.map +1 -1
  54. package/dist/lib/metamodel/roundtrip-gate.d.ts.map +1 -1
  55. package/dist/lib/metamodel/roundtrip-gate.js +3 -0
  56. package/dist/lib/metamodel/roundtrip-gate.js.map +1 -1
  57. package/dist/lib/metamodel/schema-projection.d.ts +6 -0
  58. package/dist/lib/metamodel/schema-projection.d.ts.map +1 -1
  59. package/dist/lib/metamodel/schema-projection.js +27 -1
  60. package/dist/lib/metamodel/schema-projection.js.map +1 -1
  61. package/dist/lib/structure/apply.d.ts +8 -0
  62. package/dist/lib/structure/apply.d.ts.map +1 -0
  63. package/dist/lib/structure/apply.js +71 -0
  64. package/dist/lib/structure/apply.js.map +1 -0
  65. package/dist/lib/structure/archive.d.ts +21 -0
  66. package/dist/lib/structure/archive.d.ts.map +1 -0
  67. package/dist/lib/structure/archive.js +318 -0
  68. package/dist/lib/structure/archive.js.map +1 -0
  69. package/dist/lib/structure/catalogue.d.ts +33 -0
  70. package/dist/lib/structure/catalogue.d.ts.map +1 -0
  71. package/dist/lib/structure/catalogue.js +183 -0
  72. package/dist/lib/structure/catalogue.js.map +1 -0
  73. package/dist/lib/structure/compose.d.ts +30 -0
  74. package/dist/lib/structure/compose.d.ts.map +1 -0
  75. package/dist/lib/structure/compose.js +174 -0
  76. package/dist/lib/structure/compose.js.map +1 -0
  77. package/dist/lib/structure/effects.d.ts +16 -0
  78. package/dist/lib/structure/effects.d.ts.map +1 -0
  79. package/dist/lib/structure/effects.js +36 -0
  80. package/dist/lib/structure/effects.js.map +1 -0
  81. package/dist/lib/structure/extract.d.ts +19 -0
  82. package/dist/lib/structure/extract.d.ts.map +1 -0
  83. package/dist/lib/structure/extract.js +123 -0
  84. package/dist/lib/structure/extract.js.map +1 -0
  85. package/dist/lib/structure/model.d.ts +57 -0
  86. package/dist/lib/structure/model.d.ts.map +1 -0
  87. package/dist/lib/structure/model.js +212 -0
  88. package/dist/lib/structure/model.js.map +1 -0
  89. package/dist/lib/structure/render.d.ts +11 -0
  90. package/dist/lib/structure/render.d.ts.map +1 -0
  91. package/dist/lib/structure/render.js +242 -0
  92. package/dist/lib/structure/render.js.map +1 -0
  93. package/dist/lib/structure/view.d.ts +36 -0
  94. package/dist/lib/structure/view.d.ts.map +1 -0
  95. package/dist/lib/structure/view.js +301 -0
  96. package/dist/lib/structure/view.js.map +1 -0
  97. package/dist/lib/validate/agreement-evidence.d.ts +8 -2
  98. package/dist/lib/validate/agreement-evidence.d.ts.map +1 -1
  99. package/dist/lib/validate/agreement-evidence.js +20 -8
  100. package/dist/lib/validate/agreement-evidence.js.map +1 -1
  101. package/dist/lib/validate/behaviour-store.d.ts +5 -0
  102. package/dist/lib/validate/behaviour-store.d.ts.map +1 -1
  103. package/dist/lib/validate/behaviour-store.js +54 -13
  104. package/dist/lib/validate/behaviour-store.js.map +1 -1
  105. package/dist/lib/validate/dispatch.d.ts.map +1 -1
  106. package/dist/lib/validate/dispatch.js +7 -0
  107. package/dist/lib/validate/dispatch.js.map +1 -1
  108. package/dist/lib/validate/structural-model.d.ts +11 -0
  109. package/dist/lib/validate/structural-model.d.ts.map +1 -0
  110. package/dist/lib/validate/structural-model.js +265 -0
  111. package/dist/lib/validate/structural-model.js.map +1 -0
  112. package/dist/maintain-version.json +2 -2
  113. package/dist/verbs/change.d.ts +3 -0
  114. package/dist/verbs/change.d.ts.map +1 -0
  115. package/dist/verbs/change.js +15 -0
  116. package/dist/verbs/change.js.map +1 -0
  117. package/dist/verbs/structure.d.ts +10 -0
  118. package/dist/verbs/structure.d.ts.map +1 -0
  119. package/dist/verbs/structure.js +124 -0
  120. package/dist/verbs/structure.js.map +1 -0
  121. package/dist/verify-version.json +2 -2
  122. package/package.json +1 -1
  123. package/scripts/author-version.json +2 -2
  124. package/scripts/build-persona-package.mjs +5 -0
  125. package/scripts/maintain-version.json +2 -2
  126. package/scripts/verify-version.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema-projection.js","sourceRoot":"","sources":["../../../src/lib/metamodel/schema-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-projection.js","sourceRoot":"","sources":["../../../src/lib/metamodel/schema-projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Effect } from "./effects.js";
2
+ import { type ChangeStructure } from "./model.js";
3
+ export { APPLIED_FILE } from "./model.js";
4
+ export { effectsOf, parseAppliedRecord, type Effect } from "./effects.js";
5
+ export declare function appliedRecord(change: string, baseCommit: string, effects: readonly Effect[]): string;
6
+ /** Apply the change's deltas to the model files under `sddPath`, partition by partition. Returns the files written. */
7
+ export declare function applyToModel(sddPath: string, s: ChangeStructure): Promise<string[]>;
8
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/lib/structure/apply.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAA6C,KAAK,eAAe,EAAgB,MAAM,YAAY,CAAC;AAE3G,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEpG;AAqBD,uHAAuH;AACvH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkCzF"}
@@ -0,0 +1,71 @@
1
+ // Writing a change's structural deltas into the model files, and the record of what they did (M-ADR 0230 §4.6,
2
+ // Proposed). The files are edited as YAML documents, so their comments and element order survive: a modified element
3
+ // is replaced where it stands, a removed one is deleted, an added one is appended to its catalogue's list, and a
4
+ // partition the model does not have yet gets a file. Writes files; the archive operation calls it in a scratch copy.
5
+ import { readFile, writeFile } from "node:fs/promises";
6
+ import { join } from "node:path";
7
+ import { isMap, isSeq, parseDocument, stringify } from "yaml";
8
+ import { elementKey, FORMAT_VERSION, STRUCTURE_DIR } from "./model.js";
9
+ export { APPLIED_FILE } from "./model.js";
10
+ export { effectsOf, parseAppliedRecord } from "./effects.js";
11
+ export function appliedRecord(change, baseCommit, effects) {
12
+ return stringify({ schema_version: FORMAT_VERSION, change, base_commit: baseCommit, effects: effects.map((e) => ({ ...e })) });
13
+ }
14
+ function itemIndex(seq, id) {
15
+ return seq.items.findIndex((it) => isMap(it) && String(it.get("id")) === id);
16
+ }
17
+ function catalogueSeq(doc, catalogue) {
18
+ let elements = doc.get("elements");
19
+ if (!isMap(elements)) {
20
+ doc.set("elements", doc.createNode({}));
21
+ elements = doc.get("elements");
22
+ }
23
+ const map = elements;
24
+ let seq = map.get(catalogue);
25
+ if (!isSeq(seq)) {
26
+ map.set(catalogue, doc.createNode([]));
27
+ seq = map.get(catalogue);
28
+ }
29
+ return seq;
30
+ }
31
+ /** Apply the change's deltas to the model files under `sddPath`, partition by partition. Returns the files written. */
32
+ export async function applyToModel(sddPath, s) {
33
+ const written = [];
34
+ for (const d of s.deltas) {
35
+ const rel = join(STRUCTURE_DIR, `${d.partition}.yaml`);
36
+ const path = join(sddPath, rel);
37
+ let text;
38
+ try {
39
+ text = await readFile(path, "utf8");
40
+ }
41
+ catch {
42
+ text = stringify({ schema_version: FORMAT_VERSION, partition: d.partition, elements: {} });
43
+ }
44
+ const doc = parseDocument(text);
45
+ const node = (e) => doc.createNode({ id: e.id, ...e.columns });
46
+ for (const e of d.modified) {
47
+ const seq = catalogueSeq(doc, e.catalogue);
48
+ const i = itemIndex(seq, e.id);
49
+ if (i < 0)
50
+ throw new Error(`${rel}: MODIFIED ${elementKey(e.catalogue, e.id)} is not in this partition`);
51
+ seq.items[i] = node(e);
52
+ }
53
+ for (const r of d.removed) {
54
+ const seq = catalogueSeq(doc, r.catalogue);
55
+ const i = itemIndex(seq, r.id);
56
+ if (i < 0)
57
+ throw new Error(`${rel}: REMOVED ${elementKey(r.catalogue, r.id)} is not in this partition`);
58
+ seq.items.splice(i, 1);
59
+ }
60
+ for (const e of d.added) {
61
+ const seq = catalogueSeq(doc, e.catalogue);
62
+ if (itemIndex(seq, e.id) >= 0)
63
+ throw new Error(`${rel}: ADDED ${elementKey(e.catalogue, e.id)} is already in this partition`);
64
+ seq.add(node(e));
65
+ }
66
+ await writeFile(path, doc.toString(), "utf8");
67
+ written.push(rel);
68
+ }
69
+ return written;
70
+ }
71
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/lib/structure/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type CanonicalSchema } from "../catalogue/schema-loader.js";
2
+ export type Interrupt = "prepared" | "committed" | "published";
3
+ export interface ArchiveOptions {
4
+ readonly sddPath: string;
5
+ readonly change: string;
6
+ readonly write: (s: string) => void;
7
+ /** OpenSpec's archive of the change in `cwd` (the scratch SDD). Default: `openspec archive <change> --yes`. */
8
+ readonly openspecArchive?: (cwd: string, change: string) => Promise<{
9
+ code: number;
10
+ output: string;
11
+ }>;
12
+ /** Failures the behaviour-store check reports about the archived change. Default: checkBehaviourStore's [FAIL] lines naming it. */
13
+ readonly behaviourFindings?: (sddPath: string, archiveDir: string) => Promise<string[]>;
14
+ readonly schema?: CanonicalSchema;
15
+ /** Tests only: stop after this durable step, as an interrupted run would. */
16
+ readonly interrupt?: Interrupt;
17
+ }
18
+ /** Exit codes: 0 archived or already archived, 1 refused, 75 interrupted (tests). */
19
+ export declare const INTERRUPTED = 75;
20
+ export declare function archiveChange(o: ArchiveOptions): Promise<number>;
21
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/lib/structure/archive.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAS1F,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,+GAA+G;IAC/G,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,mIAAmI;IACnI,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxF,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,qFAAqF;AACrF,eAAO,MAAM,WAAW,KAAK,CAAC;AAoE9B,wBAAsB,aAAa,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAiEtE"}
@@ -0,0 +1,318 @@
1
+ // The method's archive operation (M-ADR 0230 §4.6, Proposed): behaviour and structure published as one unit.
2
+ // 1. prepare the full candidate in a scratch worktree at the store's current commit: OpenSpec archives the
3
+ // change there (behaviour), and its structural deltas are applied to the model with a record of
4
+ // their effect (structure/applied.yaml in the archived change)
5
+ // 2. validate the candidate as a whole: the change's deltas still apply (§4.5 again at archive), the model as it
6
+ // would stand fails nowhere the current model does not, and the behaviour-store check finds nothing
7
+ // wrong with the archived change (its agreed content, its verdict)
8
+ // 3. publish one commit, fast-forwarded onto the store only if the store has not moved since preparation
9
+ // Readers take a published commit, so they see the old state or the new. A retry is idempotent: an archived change
10
+ // whose effect record holds at the commit that wrote it is reported as already archived. Recovery works from what
11
+ // the store holds: an archived change with structural deltas and no effect record (a raw `openspec archive`) has its
12
+ // deltas applied only if each element it writes is still at the revision it was written against.
13
+ //
14
+ // The store is the SDD's own `openspec/` in a git repository. Writes; never part of the verify-only CLI.
15
+ import { execFile as execFileCb } from "node:child_process";
16
+ import { mkdtemp, readdir, readFile, rm, stat, writeFile } from "node:fs/promises";
17
+ import { tmpdir } from "node:os";
18
+ import { join, relative } from "node:path";
19
+ import { promisify } from "node:util";
20
+ import { parseRequirements, resolveImplements } from "../behaviour-store/archive.js";
21
+ import { buildRequirements } from "../catalogue/builders/requirements.js";
22
+ import { parseCatalogueCsv } from "../catalogue/csv-reader.js";
23
+ import { FindingsLog } from "../catalogue/findings.js";
24
+ import { loadCanonicalSchema } from "../catalogue/schema-loader.js";
25
+ import { checkBehaviourStore, parseAgreementRecord } from "../validate/behaviour-store.js";
26
+ import { appliedRecord, applyToModel, effectsOf, parseAppliedRecord } from "./apply.js";
27
+ import { APPLIED_FILE, loadChangeStructure, loadModel } from "./model.js";
28
+ import { revisionOf, validateDeltas, validateView, viewOf } from "./view.js";
29
+ const execFile = promisify(execFileCb);
30
+ const CHANGES = join("openspec", "changes");
31
+ /** Exit codes: 0 archived or already archived, 1 refused, 75 interrupted (tests). */
32
+ export const INTERRUPTED = 75;
33
+ async function git(cwd, ...args) {
34
+ return (await execFile("git", ["-C", cwd, ...args], { maxBuffer: 64 * 1024 * 1024 })).stdout.trim();
35
+ }
36
+ async function exists(p) {
37
+ return stat(p).then(() => true, () => false);
38
+ }
39
+ async function subdirs(p) {
40
+ try {
41
+ return (await readdir(p, { withFileTypes: true })).filter((e) => e.isDirectory()).map((e) => e.name).sort();
42
+ }
43
+ catch {
44
+ return [];
45
+ }
46
+ }
47
+ async function archivedDir(sddPath, change) {
48
+ const found = (await subdirs(join(sddPath, CHANGES, "archive"))).filter((d) => d.replace(/^\d{4}-\d{2}-\d{2}-/, "") === change);
49
+ return found.length > 0 ? found[found.length - 1] : null;
50
+ }
51
+ async function defaultOpenspecArchive(cwd, change) {
52
+ try {
53
+ const r = await execFile("openspec", ["archive", change, "--yes"], { cwd, env: { ...process.env, OPENSPEC_TELEMETRY: "0" }, maxBuffer: 16 * 1024 * 1024 });
54
+ return { code: 0, output: r.stdout + r.stderr };
55
+ }
56
+ catch (err) {
57
+ const e = err;
58
+ return { code: typeof e.code === "number" ? e.code : 127, output: `${e.stdout ?? ""}${e.stderr ?? ""}` };
59
+ }
60
+ }
61
+ async function defaultBehaviourFindings(sddPath, archiveDir) {
62
+ const r = await checkBehaviourStore(sddPath);
63
+ return r.stdout.split("\n").filter((l) => l.startsWith("[FAIL]") && l.includes(archiveDir));
64
+ }
65
+ function viewProblems(schema, view) {
66
+ const out = [];
67
+ validateView(schema, view, () => null, out, new Set());
68
+ return new Set(out);
69
+ }
70
+ /** Does the effect record hold at `commit`? Each added or modified element at its target, each removed one absent. */
71
+ async function verifyAt(root, relSdd, commit, effects) {
72
+ const scratch = await mkdtemp(join(tmpdir(), "sdd-archive-verify-"));
73
+ try {
74
+ await git(root, "worktree", "add", "--detach", "-q", scratch, commit);
75
+ const problems = [];
76
+ const files = (await loadModel(join(scratch, relSdd), problems)) ?? [];
77
+ const view = viewOf(files, problems);
78
+ const bad = [];
79
+ for (const e of effects) {
80
+ const [catalogue, ...rest] = e.element.split("/");
81
+ const el = view.get(catalogue)?.get(rest.join("/"));
82
+ if (e.operation === "REMOVED") {
83
+ if (el)
84
+ bad.push(`${e.element} is still present`);
85
+ }
86
+ else if (!el)
87
+ bad.push(`${e.element} is absent`);
88
+ else if (revisionOf(el) !== e.target)
89
+ bad.push(`${e.element} is at ${revisionOf(el).slice(0, 19)}…, not the recorded ${String(e.target).slice(0, 19)}…`);
90
+ }
91
+ return bad;
92
+ }
93
+ finally {
94
+ await git(root, "worktree", "remove", "--force", scratch).catch(() => undefined);
95
+ await rm(scratch, { recursive: true, force: true });
96
+ }
97
+ }
98
+ export async function archiveChange(o) {
99
+ const say = (s) => o.write(`${s}\n`);
100
+ const refuse = (s) => {
101
+ say(`[FAIL] change archive ${o.change}: ${s}`);
102
+ return 1;
103
+ };
104
+ let root;
105
+ try {
106
+ root = await git(o.sddPath, "rev-parse", "--show-toplevel");
107
+ }
108
+ catch {
109
+ return refuse(`${o.sddPath} is not in a git repository; the archive is published as a commit`);
110
+ }
111
+ const relSdd = relative(root, o.sddPath) || ".";
112
+ const schema = o.schema ?? (await loadCanonicalSchema());
113
+ const openDir = join(CHANGES, o.change);
114
+ const isOpen = await exists(join(o.sddPath, openDir));
115
+ const archived = await archivedDir(o.sddPath, o.change);
116
+ // Already archived: verify, or recover a raw archive.
117
+ if (!isOpen && archived !== null) {
118
+ const archRel = join(CHANGES, "archive", archived);
119
+ const problems = [];
120
+ const s = await loadChangeStructure(o.sddPath, join("archive", archived), problems);
121
+ if (problems.length > 0)
122
+ return refuse(`its archived structural artifact is malformed: ${problems.join("; ")}`);
123
+ if (s.deltas.length === 0) {
124
+ say(`[PASS] change archive ${o.change}: already archived (${archRel}); it carries no structural deltas`);
125
+ return 0;
126
+ }
127
+ const recordPath = join(o.sddPath, archRel, "structure", APPLIED_FILE);
128
+ const text = await readFile(recordPath, "utf8").catch(() => null);
129
+ if (text !== null) {
130
+ const rec = parseAppliedRecord(text);
131
+ if (rec === null)
132
+ return refuse(`${join(archRel, "structure", APPLIED_FILE)} is not a valid effect record`);
133
+ const at = await git(root, "log", "-1", "--format=%H", "--", relative(root, recordPath));
134
+ if (at === "")
135
+ return refuse(`${join(archRel, "structure", APPLIED_FILE)} is not committed; the archive was not published`);
136
+ const bad = await verifyAt(root, relSdd, at, rec.effects);
137
+ if (bad.length > 0)
138
+ return refuse(`its effect record does not hold at ${at.slice(0, 12)}, the commit that wrote it: ${bad.join("; ")}`);
139
+ say(`[PASS] change archive ${o.change}: already archived at ${at.slice(0, 12)}; its ${rec.effects.length} structural effect(s) verified there`);
140
+ return 0;
141
+ }
142
+ // A raw archive: the behaviour moved, the structure did not. Apply it, guarded by each written element's base.
143
+ return publish(o, root, relSdd, schema, s, archRel, "recover");
144
+ }
145
+ if (!isOpen)
146
+ return refuse(`no open change ${openDir}, and none archived`);
147
+ // An open change: preconditions.
148
+ const baseline = await exists(join(o.sddPath, openDir, "baseline-evidence.md"));
149
+ if (!baseline) {
150
+ const recFile = join("docs", "agreements", `${o.change}.yaml`);
151
+ const recText = await readFile(join(o.sddPath, recFile), "utf8").catch(() => null);
152
+ if (recText === null)
153
+ return refuse(`no agreement record (${recFile}); a change archives on its judge's PASS`);
154
+ const { record } = parseAgreementRecord(recFile, recText);
155
+ if (!record)
156
+ return refuse(`${recFile} does not parse as an agreement record`);
157
+ if (record.status !== "agreed")
158
+ return refuse(`${recFile} says status ${record.status}, not agreed`);
159
+ if (String(record.verdict?.result ?? "") !== "PASS")
160
+ return refuse(`${recFile} has no verdict.result PASS; a change archives on its judge's PASS`);
161
+ const left = await leftOut(o.sddPath, o.change, record.workOrders, record.noLongerImplements);
162
+ if (left.length > 0)
163
+ return refuse(left.join("\n "));
164
+ }
165
+ const problems = [];
166
+ const s = await loadChangeStructure(o.sddPath, o.change, problems);
167
+ if (problems.length > 0)
168
+ return refuse(`its structural artifact is malformed: ${problems.join("; ")}`);
169
+ for (const dep of new Set(s.deltas.flatMap((d) => [...d.dependsOn]))) {
170
+ if ((await archivedDir(o.sddPath, dep)) === null)
171
+ return refuse(`it depends on ${dep}, which has not archived; a change archives after its dependencies`);
172
+ }
173
+ return publish(o, root, relSdd, schema, s, openDir, "archive");
174
+ }
175
+ /**
176
+ * M-ADR 0230 §4.7: when a change moves a requirement to a new revision, each repository with evidence about the
177
+ * current one implements the new one too, through a work order, or the record says it no longer implements it
178
+ * (`no_longer_implements`). Otherwise the archive would leave that repository's evidence about a revision that is no
179
+ * longer live, and nothing about the one that is. Reads the store as the catalogue builder does.
180
+ */
181
+ async function leftOut(sddPath, change, workOrders, noLonger) {
182
+ // Only a change that modifies a requirement can leave a repository behind; any change can name a requirement
183
+ // ambiguously.
184
+ const delta = [];
185
+ let modifies = false;
186
+ for (const feature of await subdirs(join(sddPath, CHANGES, change, "specs"))) {
187
+ const text = await readFile(join(sddPath, CHANGES, change, "specs", feature, "spec.md"), "utf8").catch(() => "");
188
+ for (const x of parseRequirements(text)) {
189
+ if (x.operation === "MODIFIED")
190
+ modifies = true;
191
+ if (x.operation !== "REMOVED")
192
+ delta.push({ feature, name: x.name });
193
+ }
194
+ }
195
+ // A requirement named in a work order or under no_longer_implements: `<feature>::<name>`, or a bare name only one
196
+ // feature in the change has, as the record schema says. An ambiguous bare name names neither, and is refused.
197
+ const ambiguous = [];
198
+ const resolve = (entry, where) => {
199
+ const r = resolveImplements(delta, entry);
200
+ if (r.ambiguous.length > 0)
201
+ ambiguous.push(`${where} names "${entry}", a requirement ${r.ambiguous.length} features in the change share (${r.ambiguous.join(", ")}); qualify it as <feature>::<name>`);
202
+ return new Set(r.matches.map((d) => `${d.feature}::${d.name}`));
203
+ };
204
+ const implementsOf = workOrders.map((w) => ({ repo: w.repo, ids: new Set(w.implements.flatMap((i) => [...resolve(i, `the work order for ${w.repo}`)])) }));
205
+ const excusedOf = noLonger.map((n) => ({ repo: n.repo, ids: resolve(n.requirement, `no_longer_implements for ${n.repo}`) }));
206
+ if (ambiguous.length > 0)
207
+ return ambiguous;
208
+ if (!modifies)
209
+ return [];
210
+ const ids = async (catalogue) => {
211
+ const text = await readFile(join(sddPath, "catalogues", `${catalogue}.csv`), "utf8").catch(() => null);
212
+ return text === null ? null : new Set(parseCatalogueCsv(text).rows.map((r) => String(r["id"])));
213
+ };
214
+ const features = await ids("features");
215
+ const repos = await ids("repositories");
216
+ if (features === null || repos === null)
217
+ return ["the catalogue (catalogues/features.csv and repositories.csv) is needed to tell which repositories implement the requirements this change modifies; build it first"];
218
+ const r = await buildRequirements({ sddPath, findings: new FindingsLog(), knownFeatureIds: features, knownRepoIds: repos, sddId: "local" });
219
+ const state = new Map(r.revisions.map((x) => [String(x["id"]), String(x["state"])]));
220
+ const modified = r.effects
221
+ .filter((e) => e["change_id"] === `local::${change}` && e["element_kind"] === "requirement" && e["operation"] === "MODIFIED")
222
+ .map((e) => String(e["element_id"]));
223
+ const out = [];
224
+ for (const req of modified) {
225
+ const implementers = new Set(r.assertions.filter((a) => a["requirement_id"] === req && state.get(String(a["revision_id"])) === "current").map((a) => String(a["repo_id"])));
226
+ const covered = new Set(implementsOf.filter((w) => w.ids.has(req)).map((w) => w.repo));
227
+ const excused = new Set(excusedOf.filter((n) => n.ids.has(req)).map((n) => n.repo));
228
+ const missing = [...implementers].filter((repo) => !covered.has(repo) && !excused.has(repo)).sort();
229
+ if (missing.length > 0) {
230
+ out.push(`${req}: ${missing.join(", ")} ${missing.length === 1 ? "implements" : "implement"} its current revision, and no work order of this change implements the new one; add a work order for ${missing.length === 1 ? "it" : "each"}, or record it under no_longer_implements`);
231
+ }
232
+ }
233
+ return out;
234
+ }
235
+ async function publish(o, root, relSdd, schema, s, changeRel, mode) {
236
+ const say = (x) => o.write(`${x}\n`);
237
+ const refuse = (x) => {
238
+ say(`[FAIL] change archive ${o.change}: ${x}`);
239
+ return 1;
240
+ };
241
+ const storeRel = join(relSdd, "openspec");
242
+ const dirty = await git(root, "status", "--porcelain", "--", storeRel);
243
+ if (dirty !== "")
244
+ return refuse(`the store has uncommitted changes (${dirty.split("\n").length} path(s) under ${storeRel}); the archive is published as one commit onto a clean store`);
245
+ const base = await git(root, "rev-parse", "HEAD");
246
+ // §4.5 again, against the model as it now is.
247
+ const problems = [];
248
+ const current = viewOf((await loadModel(o.sddPath, problems)) ?? [], problems);
249
+ const before = viewProblems(schema, current);
250
+ const deltaProblems = [];
251
+ validateDeltas(schema, current, s.deltas, new Map(), deltaProblems);
252
+ if (deltaProblems.length > 0)
253
+ return refuse(`its structural deltas no longer apply to the model as it stands:\n ${deltaProblems.join("\n ")}`);
254
+ const effects = effectsOf(s, current);
255
+ const scratch = await mkdtemp(join(tmpdir(), "sdd-archive-"));
256
+ let added = false;
257
+ try {
258
+ await git(root, "worktree", "add", "--detach", "-q", scratch, base);
259
+ added = true;
260
+ const scratchSdd = join(scratch, relSdd);
261
+ // 1. Prepare.
262
+ let archiveRel = changeRel;
263
+ if (mode === "archive") {
264
+ const beforeDirs = new Set(await subdirs(join(scratchSdd, CHANGES, "archive")));
265
+ const r = await (o.openspecArchive ?? defaultOpenspecArchive)(scratchSdd, o.change);
266
+ if (r.code !== 0)
267
+ return refuse(`openspec archive failed (exit ${r.code}): ${r.output.trim().split("\n").slice(-3).join(" ")}`);
268
+ const fresh = (await subdirs(join(scratchSdd, CHANGES, "archive"))).filter((d) => !beforeDirs.has(d));
269
+ if (fresh.length !== 1)
270
+ return refuse(`openspec archive left ${fresh.length} new archive folder(s), not one`);
271
+ archiveRel = join(CHANGES, "archive", fresh[0]);
272
+ }
273
+ await applyToModel(scratchSdd, s);
274
+ if (s.deltas.length > 0)
275
+ await writeFile(join(scratchSdd, archiveRel, "structure", APPLIED_FILE), appliedRecord(o.change, base, effects), "utf8");
276
+ // 2. Validate the candidate as a whole.
277
+ const cp = [];
278
+ const candidate = viewOf((await loadModel(scratchSdd, cp)) ?? [], cp);
279
+ const after = viewProblems(schema, candidate);
280
+ const worse = [...cp, ...[...after].filter((p) => !before.has(p))];
281
+ if (worse.length > 0)
282
+ return refuse(`the model as it would stand fails where it did not:\n ${worse.join("\n ")}`);
283
+ if (mode === "archive") {
284
+ const bf = await (o.behaviourFindings ?? defaultBehaviourFindings)(scratchSdd, archiveRel.split("/").pop());
285
+ if (bf.length > 0)
286
+ return refuse(`the behaviour-store check refuses the archived change:\n ${bf.join("\n ")}`);
287
+ }
288
+ if (o.interrupt === "prepared")
289
+ return INTERRUPTED;
290
+ // 3. Publish: one commit, fast-forwarded only onto the commit it was prepared from.
291
+ await git(scratch, "add", "-A", "--", storeRel);
292
+ const message = mode === "archive"
293
+ ? `Archive ${o.change}: its behaviour and structure (M-ADR 0230 §4.6)`
294
+ : `Apply the structure of archived ${o.change}, which was archived without it (M-ADR 0230 §4.6)`;
295
+ await git(scratch, "commit", "-q", "-m", message);
296
+ const commit = await git(scratch, "rev-parse", "HEAD");
297
+ if (o.interrupt === "committed")
298
+ return INTERRUPTED;
299
+ if ((await git(root, "rev-parse", "HEAD")) !== base)
300
+ return refuse(`the store moved since the candidate was prepared (from ${base.slice(0, 12)}); run it again`);
301
+ try {
302
+ await git(root, "merge", "--ff-only", "-q", commit);
303
+ }
304
+ catch (err) {
305
+ return refuse(`the store moved since the candidate was prepared, so nothing was published: ${err.message.split("\n")[0]}`);
306
+ }
307
+ if (o.interrupt === "published")
308
+ return INTERRUPTED;
309
+ say(`[PASS] change archive ${o.change}: ${mode === "archive" ? "archived" : "its structure applied"} in ${commit.slice(0, 12)}, ${effects.length} structural effect(s)${s.deltas.length > 0 ? `, recorded in ${join(archiveRel, "structure", APPLIED_FILE)}` : ""}`);
310
+ return 0;
311
+ }
312
+ finally {
313
+ if (added)
314
+ await git(root, "worktree", "remove", "--force", scratch).catch(() => undefined);
315
+ await rm(scratch, { recursive: true, force: true });
316
+ }
317
+ }
318
+ //# sourceMappingURL=archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/lib/structure/archive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { CatalogueRow } from "../catalogue/csv-writer.js";
2
+ import type { FindingsLog } from "../catalogue/findings.js";
3
+ import type { CanonicalSchema } from "../catalogue/schema-loader.js";
4
+ import { type Value } from "./model.js";
5
+ import { type View } from "./view.js";
6
+ /** The view each generated file renders, for a derived path column of an element only the model holds. */
7
+ export declare const VIEW_PATHS: {
8
+ readonly c4Context: "docs/structure/c4-context.md";
9
+ readonly c4Containers: "docs/structure/c4-containers.md";
10
+ readonly services: "docs/structure/services.md";
11
+ readonly featureTree: "docs/structure/feature-tree.md";
12
+ readonly dataModel: "docs/structure/data-model.md";
13
+ };
14
+ /**
15
+ * Replace every structure catalogue's rows with the view's. Rows of other catalogues are returned as they are. Source
16
+ * rows sharing an id are merged first, later values filling earlier gaps, as the keyed-table dedupe would.
17
+ */
18
+ export declare function overlayModel(schema: CanonicalSchema, view: View, rows: ReadonlyMap<string, readonly CatalogueRow[]>, findings: FindingsLog): Map<string, readonly CatalogueRow[]>;
19
+ /** Partition naming, from the manifest: a platform's domains and `platform`, or the SDD's own id. */
20
+ export interface Partitioning {
21
+ readonly platform: boolean;
22
+ readonly sddId: string;
23
+ }
24
+ /**
25
+ * The model a built catalogue implies: each structure row as an element of its non-empty structure columns, typed by
26
+ * column. A platform's element goes to its domain's partition (its own `domain_id`, or the first element it references
27
+ * that has one; a domain is its own), else to `platform`; an application or integration SDD's to its sdd_id. A cell
28
+ * that does not parse as its column's type is reported and left out, which is the projection's only loss.
29
+ */
30
+ export declare function modelFromRows(schema: CanonicalSchema, rows: ReadonlyMap<string, readonly CatalogueRow[]>, partitioning: Partitioning, loss: string[]): Map<string, Record<string, Record<string, Value>[]>>;
31
+ /** One partition's model file, in the format loadModel reads. */
32
+ export declare function modelFileText(partition: string, elements: Record<string, Record<string, Value>[]>): string;
33
+ //# sourceMappingURL=catalogue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../../src/lib/structure/catalogue.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAgC,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjD,0GAA0G;AAC1G,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AA+BX;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAClD,QAAQ,EAAE,WAAW,GACpB,GAAG,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAkDtC;AAiBD,qGAAqG;AACrG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAClD,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,EAAE,GACb,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAgDtD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAE1G"}