@sdd-method/sdd-cli 1.41.0 → 1.43.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 (189) hide show
  1. package/README.md +4 -57
  2. package/dist/author-bin.d.ts +3 -0
  3. package/dist/author-bin.d.ts.map +1 -0
  4. package/dist/author-bin.js +8 -0
  5. package/dist/author-bin.js.map +1 -0
  6. package/dist/author-program.d.ts +8 -0
  7. package/dist/author-program.d.ts.map +1 -0
  8. package/dist/author-program.js +99 -0
  9. package/dist/author-program.js.map +1 -0
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/agent-harness.d.ts +11 -8
  13. package/dist/lib/agent-harness.d.ts.map +1 -1
  14. package/dist/lib/agent-harness.js +17 -8
  15. package/dist/lib/agent-harness.js.map +1 -1
  16. package/dist/lib/api-surface/index.js +2 -2
  17. package/dist/lib/api-surface/index.js.map +1 -1
  18. package/dist/lib/briefing/index.d.ts +1 -1
  19. package/dist/lib/briefing/index.d.ts.map +1 -1
  20. package/dist/lib/briefing/index.js +1 -1
  21. package/dist/lib/briefing/index.js.map +1 -1
  22. package/dist/lib/briefing/render.d.ts +18 -1
  23. package/dist/lib/briefing/render.d.ts.map +1 -1
  24. package/dist/lib/briefing/render.js +17 -8
  25. package/dist/lib/briefing/render.js.map +1 -1
  26. package/dist/lib/catalogue/aggregation-manifest-loader.js +4 -4
  27. package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -1
  28. package/dist/lib/catalogue/cli-version.d.ts +1 -1
  29. package/dist/lib/catalogue/cli-version.d.ts.map +1 -1
  30. package/dist/lib/catalogue/cli-version.js +3 -3
  31. package/dist/lib/catalogue/cli-version.js.map +1 -1
  32. package/dist/lib/catalogue/freshness.d.ts +27 -0
  33. package/dist/lib/catalogue/freshness.d.ts.map +1 -0
  34. package/dist/lib/catalogue/freshness.js +70 -0
  35. package/dist/lib/catalogue/freshness.js.map +1 -0
  36. package/dist/lib/catalogue/graph-run.js +1 -1
  37. package/dist/lib/catalogue/graph-run.js.map +1 -1
  38. package/dist/lib/ci-binding/index.d.ts +63 -0
  39. package/dist/lib/ci-binding/index.d.ts.map +1 -0
  40. package/dist/lib/ci-binding/index.js +220 -0
  41. package/dist/lib/ci-binding/index.js.map +1 -0
  42. package/dist/lib/ci-binding/module.d.ts +36 -0
  43. package/dist/lib/ci-binding/module.d.ts.map +1 -0
  44. package/dist/lib/ci-binding/module.js +204 -0
  45. package/dist/lib/ci-binding/module.js.map +1 -0
  46. package/dist/lib/context-pull/index.d.ts +45 -0
  47. package/dist/lib/context-pull/index.d.ts.map +1 -0
  48. package/dist/lib/context-pull/index.js +191 -0
  49. package/dist/lib/context-pull/index.js.map +1 -0
  50. package/dist/lib/context-pull/resolve.d.ts +46 -0
  51. package/dist/lib/context-pull/resolve.d.ts.map +1 -0
  52. package/dist/lib/context-pull/resolve.js +70 -0
  53. package/dist/lib/context-pull/resolve.js.map +1 -0
  54. package/dist/lib/context-pull/retired-mcp-setup.d.ts +7 -0
  55. package/dist/lib/context-pull/retired-mcp-setup.d.ts.map +1 -0
  56. package/dist/lib/context-pull/retired-mcp-setup.js +7 -0
  57. package/dist/lib/context-pull/retired-mcp-setup.js.map +1 -0
  58. package/dist/lib/hooks-seed/entries.d.ts +15 -0
  59. package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
  60. package/dist/lib/hooks-seed/entries.js +30 -1
  61. package/dist/lib/hooks-seed/entries.js.map +1 -1
  62. package/dist/lib/hooks-seed/index.d.ts +4 -9
  63. package/dist/lib/hooks-seed/index.d.ts.map +1 -1
  64. package/dist/lib/hooks-seed/index.js +4 -7
  65. package/dist/lib/hooks-seed/index.js.map +1 -1
  66. package/dist/lib/hooks-seed/merge.d.ts +7 -0
  67. package/dist/lib/hooks-seed/merge.d.ts.map +1 -1
  68. package/dist/lib/hooks-seed/merge.js +31 -0
  69. package/dist/lib/hooks-seed/merge.js.map +1 -1
  70. package/dist/lib/init/app.d.ts +0 -1
  71. package/dist/lib/init/app.d.ts.map +1 -1
  72. package/dist/lib/init/app.js +3 -7
  73. package/dist/lib/init/app.js.map +1 -1
  74. package/dist/lib/init/ci-workflow.d.ts +6 -8
  75. package/dist/lib/init/ci-workflow.d.ts.map +1 -1
  76. package/dist/lib/init/ci-workflow.js +57 -120
  77. package/dist/lib/init/ci-workflow.js.map +1 -1
  78. package/dist/lib/init/integration.d.ts +0 -1
  79. package/dist/lib/init/integration.d.ts.map +1 -1
  80. package/dist/lib/init/integration.js +3 -7
  81. package/dist/lib/init/integration.js.map +1 -1
  82. package/dist/lib/init/platform.d.ts +2 -10
  83. package/dist/lib/init/platform.d.ts.map +1 -1
  84. package/dist/lib/init/platform.js +12 -15
  85. package/dist/lib/init/platform.js.map +1 -1
  86. package/dist/lib/lock-file.d.ts +20 -0
  87. package/dist/lib/lock-file.d.ts.map +1 -1
  88. package/dist/lib/lock-file.js +25 -1
  89. package/dist/lib/lock-file.js.map +1 -1
  90. package/dist/lib/mcp/build-info.d.ts.map +1 -1
  91. package/dist/lib/mcp/build-info.js +3 -3
  92. package/dist/lib/mcp/build-info.js.map +1 -1
  93. package/dist/lib/pack/index.js +2 -2
  94. package/dist/lib/pack/index.js.map +1 -1
  95. package/dist/lib/pack/validate.js +2 -2
  96. package/dist/lib/pack/validate.js.map +1 -1
  97. package/dist/lib/package-version.d.ts +23 -0
  98. package/dist/lib/package-version.d.ts.map +1 -1
  99. package/dist/lib/package-version.js +47 -10
  100. package/dist/lib/package-version.js.map +1 -1
  101. package/dist/lib/plan/index.d.ts.map +1 -1
  102. package/dist/lib/plan/index.js +4 -4
  103. package/dist/lib/plan/index.js.map +1 -1
  104. package/dist/lib/plan/read-sdd.js +1 -1
  105. package/dist/lib/plan/render-template.d.ts +8 -0
  106. package/dist/lib/plan/render-template.d.ts.map +1 -1
  107. package/dist/lib/plan/render-template.js +27 -3
  108. package/dist/lib/plan/render-template.js.map +1 -1
  109. package/dist/lib/sdd-index/repo-config.d.ts +1 -1
  110. package/dist/lib/sdd-index/repo-config.js +1 -1
  111. package/dist/lib/sdd-reader.d.ts +35 -0
  112. package/dist/lib/sdd-reader.d.ts.map +1 -0
  113. package/dist/lib/sdd-reader.js +91 -0
  114. package/dist/lib/sdd-reader.js.map +1 -0
  115. package/dist/lib/sync/briefing-merge.d.ts +1 -1
  116. package/dist/lib/sync/briefing-merge.d.ts.map +1 -1
  117. package/dist/lib/sync/briefing-merge.js +50 -34
  118. package/dist/lib/sync/briefing-merge.js.map +1 -1
  119. package/dist/lib/sync/diff.js +1 -1
  120. package/dist/lib/sync/diff.js.map +1 -1
  121. package/dist/lib/sync/index.d.ts +16 -6
  122. package/dist/lib/sync/index.d.ts.map +1 -1
  123. package/dist/lib/sync/index.js +89 -116
  124. package/dist/lib/sync/index.js.map +1 -1
  125. package/dist/lib/sync/settings-merge.d.ts +26 -48
  126. package/dist/lib/sync/settings-merge.d.ts.map +1 -1
  127. package/dist/lib/sync/settings-merge.js +70 -162
  128. package/dist/lib/sync/settings-merge.js.map +1 -1
  129. package/dist/lib/validate/bundle-coherence.js +2 -2
  130. package/dist/lib/validate/bundle-coherence.js.map +1 -1
  131. package/dist/lib/validate/plan.d.ts +25 -0
  132. package/dist/lib/validate/plan.d.ts.map +1 -0
  133. package/dist/lib/validate/plan.js +54 -0
  134. package/dist/lib/validate/plan.js.map +1 -0
  135. package/dist/maintain-bin.d.ts +3 -0
  136. package/dist/maintain-bin.d.ts.map +1 -0
  137. package/dist/maintain-bin.js +8 -0
  138. package/dist/maintain-bin.js.map +1 -0
  139. package/dist/maintain-program.d.ts +8 -0
  140. package/dist/maintain-program.d.ts.map +1 -0
  141. package/dist/maintain-program.js +94 -0
  142. package/dist/maintain-program.js.map +1 -0
  143. package/dist/maintain-version.json +4 -0
  144. package/dist/verbs/catalogue-check.d.ts +10 -0
  145. package/dist/verbs/catalogue-check.d.ts.map +1 -0
  146. package/dist/verbs/catalogue-check.js +28 -0
  147. package/dist/verbs/catalogue-check.js.map +1 -0
  148. package/dist/verbs/catalogue-maintain.d.ts +6 -0
  149. package/dist/verbs/catalogue-maintain.d.ts.map +1 -0
  150. package/dist/verbs/catalogue-maintain.js +110 -0
  151. package/dist/verbs/catalogue-maintain.js.map +1 -0
  152. package/dist/verbs/catalogue.d.ts +5 -0
  153. package/dist/verbs/catalogue.d.ts.map +1 -1
  154. package/dist/verbs/catalogue.js +16 -80
  155. package/dist/verbs/catalogue.js.map +1 -1
  156. package/dist/verbs/context.d.ts +3 -0
  157. package/dist/verbs/context.d.ts.map +1 -0
  158. package/dist/verbs/context.js +39 -0
  159. package/dist/verbs/context.js.map +1 -0
  160. package/dist/verbs/pack-build.d.ts +3 -0
  161. package/dist/verbs/pack-build.d.ts.map +1 -0
  162. package/dist/verbs/pack-build.js +31 -0
  163. package/dist/verbs/pack-build.js.map +1 -0
  164. package/dist/verbs/pack.d.ts.map +1 -1
  165. package/dist/verbs/pack.js +2 -25
  166. package/dist/verbs/pack.js.map +1 -1
  167. package/dist/verbs/sync.d.ts.map +1 -1
  168. package/dist/verbs/sync.js +21 -0
  169. package/dist/verbs/sync.js.map +1 -1
  170. package/dist/verbs/validate.d.ts.map +1 -1
  171. package/dist/verbs/validate.js +26 -0
  172. package/dist/verbs/validate.js.map +1 -1
  173. package/dist/verify-program.d.ts +6 -1
  174. package/dist/verify-program.d.ts.map +1 -1
  175. package/dist/verify-program.js +12 -5
  176. package/dist/verify-program.js.map +1 -1
  177. package/dist/verify-version.json +2 -2
  178. package/package.json +6 -5
  179. package/scripts/author-acceptance.mjs +170 -0
  180. package/scripts/author-version.json +4 -0
  181. package/scripts/build-persona-package.mjs +309 -0
  182. package/scripts/copy-yaml-assets.mjs +4 -2
  183. package/scripts/dagger-parity.sh +74 -0
  184. package/scripts/maintain-acceptance.mjs +240 -0
  185. package/scripts/maintain-version.json +4 -0
  186. package/scripts/release-gate.mjs +9 -0
  187. package/scripts/verify-version.json +2 -2
  188. package/scripts/vitest-tmpdir.mjs +26 -0
  189. package/scripts/build-verify-package.mjs +0 -210
@@ -1,4 +1,12 @@
1
1
  import type { SddSnapshot } from "./read-sdd.js";
2
+ /**
3
+ * Where a synced baseline carries the pilot-kickoff template: methods/templates/ since the method's
4
+ * methods/ subdivision, then the flat methods/ path older baselines still hold. Reading only the old
5
+ * path left `plan --pilot` failing in every SDD synced after the move.
6
+ */
7
+ export declare const PILOT_TEMPLATE_REL_PATHS: ReadonlyArray<string>;
8
+ /** The first pilot-kickoff template present under the SDD root, or undefined. */
9
+ export declare function resolvePilotTemplate(sddRoot: string): Promise<string | undefined>;
2
10
  export interface RenderInputs {
3
11
  snapshot: SddSnapshot;
4
12
  platformCliVersionHint: string;
@@ -1 +1 @@
1
- {"version":3,"file":"render-template.d.ts","sourceRoot":"","sources":["../../../src/lib/plan/render-template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAa9E"}
1
+ {"version":3,"file":"render-template.d.ts","sourceRoot":"","sources":["../../../src/lib/plan/render-template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,MAAM,CAG1D,CAAC;AAEF,iFAAiF;AACjF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWvF;AAGD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAc9E"}
@@ -1,10 +1,34 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { access, readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
- const TEMPLATE_REL_PATH = "docs/method/methods/pilot-kickoff-template.md";
3
+ /**
4
+ * Where a synced baseline carries the pilot-kickoff template: methods/templates/ since the method's
5
+ * methods/ subdivision, then the flat methods/ path older baselines still hold. Reading only the old
6
+ * path left `plan --pilot` failing in every SDD synced after the move.
7
+ */
8
+ export const PILOT_TEMPLATE_REL_PATHS = [
9
+ "docs/method/methods/templates/pilot-kickoff-template.md",
10
+ "docs/method/methods/pilot-kickoff-template.md",
11
+ ];
12
+ /** The first pilot-kickoff template present under the SDD root, or undefined. */
13
+ export async function resolvePilotTemplate(sddRoot) {
14
+ for (const rel of PILOT_TEMPLATE_REL_PATHS) {
15
+ const p = join(sddRoot, rel);
16
+ try {
17
+ await access(p);
18
+ return p;
19
+ }
20
+ catch {
21
+ // try the next location
22
+ }
23
+ }
24
+ return undefined;
25
+ }
4
26
  const VAR_PATTERN = /\{\{\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/g;
5
27
  export async function renderPilotKickoff(inputs) {
6
28
  const { snapshot } = inputs;
7
- const templatePath = join(snapshot.sddRoot, TEMPLATE_REL_PATH);
29
+ const templatePath = await resolvePilotTemplate(snapshot.sddRoot);
30
+ if (templatePath === undefined)
31
+ throw new Error(`no pilot-kickoff template under ${snapshot.sddRoot}`);
8
32
  const template = await readFile(templatePath, "utf8");
9
33
  const vars = buildVars(inputs);
10
34
  return template.replace(VAR_PATTERN, (match, name) => {
@@ -1 +1 @@
1
- {"version":3,"file":"render-template.js","sourceRoot":"","sources":["../../../src/lib/plan/render-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-template.js","sourceRoot":"","sources":["../../../src/lib/plan/render-template.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * Unknown top-level fields are preserved in `ServiceNode.extra` so that
7
7
  * adopter-specific schema additions don't get lost.
8
8
  */
9
- import type { SddReader } from "../mcp/reader.js";
9
+ import type { SddReader } from "../sdd-reader.js";
10
10
  import type { ServiceNode } from "./types.js";
11
11
  export declare const REPO_CONFIG_DIR = "orchestration/repo-config";
12
12
  export interface RepoConfigReadResult {
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { join } from "node:path";
10
10
  import { parse as parseYaml } from "yaml";
11
- import { walkFiles } from "../mcp/reader.js";
11
+ import { walkFiles } from "../sdd-reader.js";
12
12
  export const REPO_CONFIG_DIR = "orchestration/repo-config";
13
13
  const CONTRACT_KINDS = [
14
14
  "openapi",
@@ -0,0 +1,35 @@
1
+ /**
2
+ * SDD content access abstraction: callers read an SDD through an `SddReader`
3
+ * rooted at the repo, so the reading code does not care where the bytes live.
4
+ *
5
+ * Live reads: wrap node:fs.
6
+ *
7
+ * Relative paths are rooted at the SDD repo root; absolute paths are
8
+ * rejected so that callers cannot accidentally escape the SDD.
9
+ */
10
+ export interface SddReader {
11
+ /** Absolute path to the SDD root. Stable for the reader's lifetime. */
12
+ readonly sddRoot: string;
13
+ /**
14
+ * Commit SHA echoed in tool responses. "HEAD" for a live reader; the
15
+ * resolved SHA for a pinned reader.
16
+ */
17
+ readonly pin: string;
18
+ /** Returns file contents as utf8, or null if the file does not exist. */
19
+ readFile(relPath: string): string | null;
20
+ /** Returns directory entry names (non-recursive), or [] if missing. */
21
+ listDir(relPath: string): string[];
22
+ /** True if the path exists and is a regular file. */
23
+ isFile(relPath: string): boolean;
24
+ /** True if the path exists and is a directory. */
25
+ isDir(relPath: string): boolean;
26
+ }
27
+ export declare function liveReader(sddRoot: string, pin?: string): SddReader;
28
+ /**
29
+ * Recursive directory walk. Returns relative paths (from SDD root) of
30
+ * every regular file under `relRoot` that matches the optional filter.
31
+ * Depth-first, lexicographically sorted at each level for deterministic
32
+ * index contents.
33
+ */
34
+ export declare function walkFiles(reader: SddReader, relRoot: string, filter?: (relPath: string) => boolean): string[];
35
+ //# sourceMappingURL=sdd-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdd-reader.d.ts","sourceRoot":"","sources":["../../src/lib/sdd-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,uEAAuE;IACvE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,qDAAqD;IACrD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,kDAAkD;IAClD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,CA8CnE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACpC,MAAM,EAAE,CAmBV"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * SDD content access abstraction: callers read an SDD through an `SddReader`
3
+ * rooted at the repo, so the reading code does not care where the bytes live.
4
+ *
5
+ * Live reads: wrap node:fs.
6
+ *
7
+ * Relative paths are rooted at the SDD repo root; absolute paths are
8
+ * rejected so that callers cannot accidentally escape the SDD.
9
+ */
10
+ import { readdirSync, readFileSync, statSync } from "node:fs";
11
+ import { isAbsolute, join } from "node:path";
12
+ export function liveReader(sddRoot, pin = "HEAD") {
13
+ const root = sddRoot;
14
+ const check = (relPath) => {
15
+ if (isAbsolute(relPath)) {
16
+ throw new Error(`SddReader paths must be relative to the SDD root; got ${relPath}`);
17
+ }
18
+ return join(root, relPath);
19
+ };
20
+ return {
21
+ sddRoot: root,
22
+ pin,
23
+ readFile(relPath) {
24
+ const full = check(relPath);
25
+ try {
26
+ return readFileSync(full, "utf8");
27
+ }
28
+ catch {
29
+ return null;
30
+ }
31
+ },
32
+ listDir(relPath) {
33
+ const full = check(relPath);
34
+ try {
35
+ return readdirSync(full);
36
+ }
37
+ catch {
38
+ return [];
39
+ }
40
+ },
41
+ isFile(relPath) {
42
+ const full = check(relPath);
43
+ try {
44
+ return statSync(full).isFile();
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ },
50
+ isDir(relPath) {
51
+ const full = check(relPath);
52
+ try {
53
+ return statSync(full).isDirectory();
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ },
59
+ };
60
+ }
61
+ /**
62
+ * Recursive directory walk. Returns relative paths (from SDD root) of
63
+ * every regular file under `relRoot` that matches the optional filter.
64
+ * Depth-first, lexicographically sorted at each level for deterministic
65
+ * index contents.
66
+ */
67
+ export function walkFiles(reader, relRoot, filter) {
68
+ const out = [];
69
+ if (!reader.isDir(relRoot))
70
+ return out;
71
+ const stack = [relRoot];
72
+ while (stack.length > 0) {
73
+ const dir = stack.pop();
74
+ if (dir === undefined)
75
+ break;
76
+ const entries = reader.listDir(dir).sort();
77
+ for (const entry of entries) {
78
+ const child = dir === "" ? entry : `${dir}/${entry}`;
79
+ if (reader.isDir(child)) {
80
+ stack.push(child);
81
+ }
82
+ else if (reader.isFile(child)) {
83
+ if (!filter || filter(child))
84
+ out.push(child);
85
+ }
86
+ }
87
+ }
88
+ out.sort();
89
+ return out;
90
+ }
91
+ //# sourceMappingURL=sdd-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdd-reader.js","sourceRoot":"","sources":["../../src/lib/sdd-reader.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * - `agent-instructions.md` — fully method-managed; unconditional
7
7
  * overwrite on every sync. No marker-aware merge.
8
- * - Harness wrapper (`CLAUDE.md` / `AGENTS.md` / …) — partially
8
+ * - The wrappers, `CLAUDE.md` and the `AGENTS.md` pointer (M-ADR 0220 §4.6) — partially
9
9
  * method-managed. The `<!-- method-managed: begin/end -->` block
10
10
  * is overwritten; adopter content around it survives via the
11
11
  * existing `writeMarkedBlockFile` machinery (same pattern as
@@ -1 +1 @@
1
- {"version":3,"file":"briefing-merge.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/briefing-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA0E7B"}
1
+ {"version":3,"file":"briefing-merge.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/briefing-merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA4E7B"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * - `agent-instructions.md` — fully method-managed; unconditional
7
7
  * overwrite on every sync. No marker-aware merge.
8
- * - Harness wrapper (`CLAUDE.md` / `AGENTS.md` / …) — partially
8
+ * - The wrappers, `CLAUDE.md` and the `AGENTS.md` pointer (M-ADR 0220 §4.6) — partially
9
9
  * method-managed. The `<!-- method-managed: begin/end -->` block
10
10
  * is overwritten; adopter content around it survives via the
11
11
  * existing `writeMarkedBlockFile` machinery (same pattern as
@@ -20,9 +20,9 @@
20
20
  * pre-dating ADR 0148 won't carry the templates; this module skips
21
21
  * gracefully with a log line in that case.
22
22
  */
23
- import { access, mkdir, writeFile } from "node:fs/promises";
23
+ import { access, mkdir, readFile, writeFile } from "node:fs/promises";
24
24
  import { dirname, join } from "node:path";
25
- import { AGENT_INSTRUCTIONS_REL_PATH, WRAPPER_BLOCK_BEGIN, WRAPPER_BLOCK_END, harnessWrapperOutputPath, renderAgentInstructions, renderHarnessWrapper, resolveBriefingVariables, splitWrapperTemplate, } from "../briefing/index.js";
25
+ import { AGENT_INSTRUCTIONS_REL_PATH, WRAPPER_BLOCK_BEGIN, WRAPPER_BLOCK_END, briefingWrappers, renderAgentInstructions, renderWrapper, resolveBriefingVariables, splitWrapperTemplate, } from "../briefing/index.js";
26
26
  import { writeMarkedBlockFile } from "./yaml-block-merge.js";
27
27
  export async function syncBriefingFiles(opts) {
28
28
  const log = [];
@@ -31,14 +31,36 @@ export async function syncBriefingFiles(opts) {
31
31
  repoKindOverride: opts.repoKind,
32
32
  baselineVersionOverride: opts.baselineVersion,
33
33
  });
34
- // 1. agent-instructions.md — unconditional overwrite.
34
+ // 1. agent-instructions.md — unconditional overwrite, once no wrapper will refuse.
35
35
  const aiRender = await renderAgentInstructions(opts.targetRepo, vars);
36
36
  if (aiRender === null) {
37
37
  log.push(`Skipped ${AGENT_INSTRUCTIONS_REL_PATH}: bundle does not ship a briefing template (pre-ADR-0148 baseline).`);
38
- // If the agent-instructions template is missing the wrapper one almost
39
- // certainly is too — skip the rest as well.
38
+ // If the agent-instructions template is missing the wrapper ones almost
39
+ // certainly are too — skip the rest as well.
40
40
  return { log, refused: null };
41
41
  }
42
+ // 2. The wrappers, rendered first so a refusal leaves nothing written. A baseline that does not
43
+ // ship a wrapper's template (the AGENTS.md pointer arrived with M-ADR 0220) skips that wrapper.
44
+ const wrappers = [];
45
+ for (const w of briefingWrappers(opts.agentHarness)) {
46
+ const render = await renderWrapper(opts.targetRepo, w.templateRel, vars);
47
+ if (render === null) {
48
+ log.push(`Skipped ${w.outputRel}: the baseline does not ship ${w.templateRel}.`);
49
+ continue;
50
+ }
51
+ if (render.unresolved.length > 0) {
52
+ log.push(`Warning: ${w.outputRel} has unresolved placeholders: ${render.unresolved.join(", ")}`);
53
+ }
54
+ wrappers.push({ rel: w.outputRel, content: render.content });
55
+ }
56
+ if (!opts.allowOverwrite) {
57
+ for (const w of wrappers) {
58
+ const existing = await readIfExists(join(opts.targetRepo, w.rel));
59
+ if (existing !== null && existing !== "" && !(existing.includes(WRAPPER_BLOCK_BEGIN) && existing.includes(WRAPPER_BLOCK_END))) {
60
+ return { log, refused: w.rel };
61
+ }
62
+ }
63
+ }
42
64
  if (aiRender.unresolved.length > 0) {
43
65
  log.push(`Warning: agent-instructions.md has unresolved placeholders: ${aiRender.unresolved.join(", ")}`);
44
66
  }
@@ -46,37 +68,31 @@ export async function syncBriefingFiles(opts) {
46
68
  await mkdir(dirname(aiPath), { recursive: true });
47
69
  await writeFile(aiPath, aiRender.content, "utf8");
48
70
  log.push(`Refreshed ${AGENT_INSTRUCTIONS_REL_PATH}.`);
49
- // 2. Harness wrapper — marker-aware merge.
50
- const wrapperRender = await renderHarnessWrapper(opts.targetRepo, opts.agentHarness, vars);
51
- if (wrapperRender === null) {
52
- log.push(`Skipped ${harnessWrapperOutputPath(opts.agentHarness)}: bundle does not ship a wrapper template for ${opts.agentHarness}.`);
53
- return { log, refused: null };
71
+ // 3. Each wrapper — marker-aware merge. Mirror the ci-workflow sync pattern: when the target
72
+ // file does not yet exist, write the full rendered template (block + adopter section template).
73
+ // When it exists, write the method-managed block and scaffold-fill blank regions around it from
74
+ // the template — writeMarkedBlockFile preserves non-blank adopter content verbatim.
75
+ for (const w of wrappers) {
76
+ const wrapperPath = join(opts.targetRepo, w.rel);
77
+ const wrapperExists = await fileExists(wrapperPath);
78
+ const templateParts = splitWrapperTemplate(w.content);
79
+ const mergeResult = await writeMarkedBlockFile(wrapperPath, wrapperExists ? templateParts.block : w.content, { begin: WRAPPER_BLOCK_BEGIN, end: WRAPPER_BLOCK_END }, opts.allowOverwrite, wrapperExists ? { pre: templateParts.pre, post: templateParts.post } : undefined);
80
+ if (mergeResult.refused) {
81
+ return { log, refused: w.rel };
82
+ }
83
+ if (mergeResult.changed) {
84
+ log.push(`Refreshed ${w.rel}.`);
85
+ }
54
86
  }
55
- if (wrapperRender.unresolved.length > 0) {
56
- log.push(`Warning: ${harnessWrapperOutputPath(opts.agentHarness)} has unresolved placeholders: ${wrapperRender.unresolved.join(", ")}`);
57
- }
58
- const wrapperRel = harnessWrapperOutputPath(opts.agentHarness);
59
- const wrapperPath = join(opts.targetRepo, wrapperRel);
60
- // Mirror the ci-workflow sync pattern: when the target file does not
61
- // yet exist, write the full rendered template (block + adopter
62
- // section template). When it exists, write the method-managed block
63
- // and scaffold-fill blank regions around it from the template —
64
- // writeMarkedBlockFile preserves non-blank adopter content verbatim.
65
- const wrapperExists = await fileExists(wrapperPath);
66
- const templateParts = splitWrapperTemplate(wrapperRender.content);
67
- const incoming = wrapperExists
68
- ? templateParts.block
69
- : wrapperRender.content;
70
- const mergeResult = await writeMarkedBlockFile(wrapperPath, incoming, { begin: WRAPPER_BLOCK_BEGIN, end: WRAPPER_BLOCK_END }, opts.allowOverwrite, wrapperExists
71
- ? { pre: templateParts.pre, post: templateParts.post }
72
- : undefined);
73
- if (mergeResult.refused) {
74
- return { log, refused: wrapperRel };
87
+ return { log, refused: null };
88
+ }
89
+ async function readIfExists(path) {
90
+ try {
91
+ return await readFile(path, "utf8");
75
92
  }
76
- if (mergeResult.changed) {
77
- log.push(`Refreshed ${wrapperRel}.`);
93
+ catch {
94
+ return null;
78
95
  }
79
- return { log, refused: null };
80
96
  }
81
97
  async function fileExists(path) {
82
98
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"briefing-merge.js","sourceRoot":"","sources":["../../../src/lib/sync/briefing-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"briefing-merge.js","sourceRoot":"","sources":["../../../src/lib/sync/briefing-merge.ts"],"names":[],"mappings":"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"}
@@ -139,7 +139,7 @@ export const GENERATED_NEVER_REMOVE = [
139
139
  "AGENTS.md",
140
140
  "agent-instructions.md",
141
141
  ];
142
- /** `.github/hooks/<event>.json` — rendered per-event by hooks-seed/copilot.ts. */
142
+ /** `.github/hooks/` — written by the retired Copilot harness (M-ADR 0220 §4.6); an adopter keeps those files, unmanaged, so sync never removes them. */
143
143
  const GENERATED_PREFIXES = [".github/hooks/"];
144
144
  /** True when this path's existence is owned by a generator, not by a payload. */
145
145
  export function isGeneratedPath(p) {
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/lib/sync/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/lib/sync/diff.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type BundleManifest } from "../bundle.js";
2
2
  import { type LockFile } from "../lock-file.js";
3
3
  import { type AgentHarness } from "../agent-harness.js";
4
+ import { type CiBinding } from "../ci-binding/index.js";
4
5
  export interface SyncOptions {
5
6
  bundle: string;
6
7
  targetRepo: string;
@@ -8,12 +9,9 @@ export interface SyncOptions {
8
9
  allowOverwrite: boolean;
9
10
  delete: boolean;
10
11
  /**
11
- * Target agent harness per ADR 0141 §4.6. Drives which hook
12
- * configuration sync emits: `claude-code` → `.claude/settings.json`;
13
- * `github-copilot-cli` → `.github/hooks/*.json`. Direct callers MAY
14
- * pass `undefined` for the legacy "MCP-only, no hooks" behaviour
15
- * (preserved for backwards-compatible test paths); the CLI verbs
16
- * resolve the default (`claude-code`) before calling in.
12
+ * Target agent harness per ADR 0141 §4.6; `claude-code` seeds the method's hooks in
13
+ * `.claude/settings.json`. Direct callers MAY pass `undefined` for "no hooks" (test paths); the
14
+ * CLI verbs resolve the default (`claude-code`) before calling in.
17
15
  */
18
16
  agentHarness?: AgentHarness;
19
17
  /**
@@ -27,11 +25,23 @@ export interface SyncOptions {
27
25
  replaceBundle?: string;
28
26
  /** Confirmation for `replaceBundle` outside dry-run. */
29
27
  yes?: boolean;
28
+ /**
29
+ * The CI host binding (M-ADR 0219 §4.4). Omitted: the binding the lock records, else github. A
30
+ * value that differs from the lock's is recorded, so the choice is made once.
31
+ */
32
+ ciBinding?: CiBinding;
33
+ /**
34
+ * Runner labels for the CI wrapper (sync --ci-runner). Omitted: what the lock records, else the
35
+ * host's default runner; `[]` clears a recorded choice.
36
+ */
37
+ ciRunner?: string[];
30
38
  }
31
39
  export interface SyncResult {
32
40
  exitCode: number;
33
41
  }
34
42
  export declare function runSync(opts: SyncOptions, stdout?: (line: string) => void): Promise<SyncResult>;
43
+ /** sha256 of the GitHub workflow's method-managed block (begin marker through end marker), or null without one. */
44
+ export declare function workflowBlockSha256(text: string | null): string | null;
35
45
  /**
36
46
  * If the bundle manifest declares a minimum sdd-cli version, verify the
37
47
  * installed version satisfies it. Returns null on success or no
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAWL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAmCzB,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAmB/E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgDD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CA4wBrB;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,cAAc,EACxB,iBAAiB,CAAC,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAUf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EACpD,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAqBf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAef;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAkCtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/sync/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAWL,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AAkCzB,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAQhC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgDD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAA2C,GACpE,OAAO,CAAC,UAAU,CAAC,CAmsBrB;AAED,mHAAmH;AACnH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEtE;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,cAAc,EACxB,iBAAiB,CAAC,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAUf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EACpD,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAqBf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3C,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI,CAef;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAkCtE"}