@sdd-method/sdd-cli 1.41.0 → 1.42.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 (116) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/api-surface/index.js +2 -2
  5. package/dist/lib/api-surface/index.js.map +1 -1
  6. package/dist/lib/catalogue/cli-version.d.ts +1 -1
  7. package/dist/lib/catalogue/cli-version.d.ts.map +1 -1
  8. package/dist/lib/catalogue/cli-version.js +3 -3
  9. package/dist/lib/catalogue/cli-version.js.map +1 -1
  10. package/dist/lib/catalogue/freshness.d.ts +26 -0
  11. package/dist/lib/catalogue/freshness.d.ts.map +1 -0
  12. package/dist/lib/catalogue/freshness.js +69 -0
  13. package/dist/lib/catalogue/freshness.js.map +1 -0
  14. package/dist/lib/catalogue/graph-run.js +1 -1
  15. package/dist/lib/catalogue/graph-run.js.map +1 -1
  16. package/dist/lib/ci-binding/index.d.ts +63 -0
  17. package/dist/lib/ci-binding/index.d.ts.map +1 -0
  18. package/dist/lib/ci-binding/index.js +220 -0
  19. package/dist/lib/ci-binding/index.js.map +1 -0
  20. package/dist/lib/ci-binding/module.d.ts +36 -0
  21. package/dist/lib/ci-binding/module.d.ts.map +1 -0
  22. package/dist/lib/ci-binding/module.js +204 -0
  23. package/dist/lib/ci-binding/module.js.map +1 -0
  24. package/dist/lib/context-pull/index.d.ts +39 -0
  25. package/dist/lib/context-pull/index.d.ts.map +1 -0
  26. package/dist/lib/context-pull/index.js +151 -0
  27. package/dist/lib/context-pull/index.js.map +1 -0
  28. package/dist/lib/context-pull/resolve.d.ts +46 -0
  29. package/dist/lib/context-pull/resolve.d.ts.map +1 -0
  30. package/dist/lib/context-pull/resolve.js +70 -0
  31. package/dist/lib/context-pull/resolve.js.map +1 -0
  32. package/dist/lib/init/app.d.ts.map +1 -1
  33. package/dist/lib/init/app.js +3 -0
  34. package/dist/lib/init/app.js.map +1 -1
  35. package/dist/lib/init/ci-workflow.d.ts +6 -8
  36. package/dist/lib/init/ci-workflow.d.ts.map +1 -1
  37. package/dist/lib/init/ci-workflow.js +57 -120
  38. package/dist/lib/init/ci-workflow.js.map +1 -1
  39. package/dist/lib/init/integration.d.ts.map +1 -1
  40. package/dist/lib/init/integration.js +3 -0
  41. package/dist/lib/init/integration.js.map +1 -1
  42. package/dist/lib/init/platform.d.ts.map +1 -1
  43. package/dist/lib/init/platform.js +6 -2
  44. package/dist/lib/init/platform.js.map +1 -1
  45. package/dist/lib/lock-file.d.ts +20 -0
  46. package/dist/lib/lock-file.d.ts.map +1 -1
  47. package/dist/lib/lock-file.js +25 -1
  48. package/dist/lib/lock-file.js.map +1 -1
  49. package/dist/lib/mcp/build-info.d.ts.map +1 -1
  50. package/dist/lib/mcp/build-info.js +3 -3
  51. package/dist/lib/mcp/build-info.js.map +1 -1
  52. package/dist/lib/pack/index.js +2 -2
  53. package/dist/lib/pack/index.js.map +1 -1
  54. package/dist/lib/pack/validate.js +2 -2
  55. package/dist/lib/pack/validate.js.map +1 -1
  56. package/dist/lib/package-version.d.ts +23 -0
  57. package/dist/lib/package-version.d.ts.map +1 -1
  58. package/dist/lib/package-version.js +47 -10
  59. package/dist/lib/package-version.js.map +1 -1
  60. package/dist/lib/sync/index.d.ts +13 -0
  61. package/dist/lib/sync/index.d.ts.map +1 -1
  62. package/dist/lib/sync/index.js +69 -46
  63. package/dist/lib/sync/index.js.map +1 -1
  64. package/dist/lib/validate/bundle-coherence.js +2 -2
  65. package/dist/lib/validate/bundle-coherence.js.map +1 -1
  66. package/dist/lib/validate/plan.d.ts +25 -0
  67. package/dist/lib/validate/plan.d.ts.map +1 -0
  68. package/dist/lib/validate/plan.js +54 -0
  69. package/dist/lib/validate/plan.js.map +1 -0
  70. package/dist/maintain-bin.d.ts +3 -0
  71. package/dist/maintain-bin.d.ts.map +1 -0
  72. package/dist/maintain-bin.js +8 -0
  73. package/dist/maintain-bin.js.map +1 -0
  74. package/dist/maintain-program.d.ts +8 -0
  75. package/dist/maintain-program.d.ts.map +1 -0
  76. package/dist/maintain-program.js +91 -0
  77. package/dist/maintain-program.js.map +1 -0
  78. package/dist/maintain-version.json +4 -0
  79. package/dist/verbs/catalogue-maintain.d.ts +6 -0
  80. package/dist/verbs/catalogue-maintain.d.ts.map +1 -0
  81. package/dist/verbs/catalogue-maintain.js +110 -0
  82. package/dist/verbs/catalogue-maintain.js.map +1 -0
  83. package/dist/verbs/catalogue.d.ts +5 -0
  84. package/dist/verbs/catalogue.d.ts.map +1 -1
  85. package/dist/verbs/catalogue.js +14 -80
  86. package/dist/verbs/catalogue.js.map +1 -1
  87. package/dist/verbs/context.d.ts +3 -0
  88. package/dist/verbs/context.d.ts.map +1 -0
  89. package/dist/verbs/context.js +39 -0
  90. package/dist/verbs/context.js.map +1 -0
  91. package/dist/verbs/pack-build.d.ts +3 -0
  92. package/dist/verbs/pack-build.d.ts.map +1 -0
  93. package/dist/verbs/pack-build.js +31 -0
  94. package/dist/verbs/pack-build.js.map +1 -0
  95. package/dist/verbs/pack.d.ts.map +1 -1
  96. package/dist/verbs/pack.js +2 -25
  97. package/dist/verbs/pack.js.map +1 -1
  98. package/dist/verbs/sync.d.ts.map +1 -1
  99. package/dist/verbs/sync.js +21 -0
  100. package/dist/verbs/sync.js.map +1 -1
  101. package/dist/verbs/validate.d.ts.map +1 -1
  102. package/dist/verbs/validate.js +26 -0
  103. package/dist/verbs/validate.js.map +1 -1
  104. package/dist/verify-program.d.ts +6 -1
  105. package/dist/verify-program.d.ts.map +1 -1
  106. package/dist/verify-program.js +11 -4
  107. package/dist/verify-program.js.map +1 -1
  108. package/dist/verify-version.json +2 -2
  109. package/package.json +5 -4
  110. package/scripts/{build-verify-package.mjs → build-persona-package.mjs} +112 -46
  111. package/scripts/copy-yaml-assets.mjs +4 -2
  112. package/scripts/dagger-parity.sh +74 -0
  113. package/scripts/maintain-acceptance.mjs +240 -0
  114. package/scripts/maintain-version.json +4 -0
  115. package/scripts/release-gate.mjs +9 -0
  116. package/scripts/verify-version.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAwBpD,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAahE;AAED,wBAAgB,YAAY,IAAI,OAAO,CAqCtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAyBpD,wBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAahE;AAED,wBAAgB,YAAY,IAAI,OAAO,CAsCtC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { getPackageVersion } from "./lib/package-version.js";
3
3
  import { registerApiSurface } from "./verbs/api-surface.js";
4
4
  import { registerCatalogue } from "./verbs/catalogue.js";
5
5
  import { registerConformance } from "./verbs/conformance.js";
6
+ import { registerContext } from "./verbs/context.js";
6
7
  import { registerContracts } from "./verbs/contracts.js";
7
8
  import { registerGenerateBriefing } from "./verbs/generate-briefing.js";
8
9
  import { registerInit } from "./verbs/init.js";
@@ -51,6 +52,7 @@ export function buildProgram() {
51
52
  registerList(program);
52
53
  registerPlan(program);
53
54
  registerGenerateBriefing(program);
55
+ registerContext(program);
54
56
  registerMcp(program);
55
57
  registerCatalogue(program);
56
58
  registerConformance(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { readdir } from "node:fs/promises";
2
2
  import { basename, join, relative } from "node:path";
3
- import { getPackageVersion } from "../package-version.js";
3
+ import { getSddCliVersion } from "../package-version.js";
4
4
  import { analyzeLibrary } from "./analyzers/library.js";
5
5
  import { analyzeServerless } from "./analyzers/serverless.js";
6
6
  import { analyzeSpring } from "./analyzers/spring.js";
@@ -33,7 +33,7 @@ export async function analyzeRepo(opts) {
33
33
  domain: opts.domain ?? "",
34
34
  stack: analyzed.stack,
35
35
  ...(snapshot ? { source_snapshot: snapshot } : {}),
36
- generated_by: `sdd-cli api-surface v${getPackageVersion()}`,
36
+ generated_by: `sdd-cli api-surface v${getSddCliVersion()}`,
37
37
  endpoints: analyzed.endpoints,
38
38
  dependencies: analyzed.dependencies,
39
39
  external_contracts: analyzed.external_contracts,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/api-surface/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/api-surface/index.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * sdd-cli version constant, used in error messages from the catalogue
3
3
  * builder + aggregator + validate subcommands.
4
4
  *
5
- * Read from package.json via getPackageVersion() to guarantee the
5
+ * Read from package.json via getSddCliVersion() (the ENGINE version, also in a persona package) to guarantee the
6
6
  * constant cannot drift from the published version.
7
7
  */
8
8
  export declare const CLI_VERSION: string;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-version.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/cli-version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,WAAW,QAAsB,CAAC"}
1
+ {"version":3,"file":"cli-version.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/cli-version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,WAAW,QAAqB,CAAC"}
@@ -2,9 +2,9 @@
2
2
  * sdd-cli version constant, used in error messages from the catalogue
3
3
  * builder + aggregator + validate subcommands.
4
4
  *
5
- * Read from package.json via getPackageVersion() to guarantee the
5
+ * Read from package.json via getSddCliVersion() (the ENGINE version, also in a persona package) to guarantee the
6
6
  * constant cannot drift from the published version.
7
7
  */
8
- import { getPackageVersion } from "../package-version.js";
9
- export const CLI_VERSION = getPackageVersion();
8
+ import { getSddCliVersion } from "../package-version.js";
9
+ export const CLI_VERSION = getSddCliVersion();
10
10
  //# sourceMappingURL=cli-version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-version.js","sourceRoot":"","sources":["../../../src/lib/catalogue/cli-version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"cli-version.js","sourceRoot":"","sources":["../../../src/lib/catalogue/cli-version.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * `catalogue build --check`: are the committed catalogues what the committed specs build to?
3
+ * (M-ADR 0218 §5, bead sdm-jts.6.)
4
+ *
5
+ * Builds into a temporary directory and compares, so it writes nothing into the SDD. Only what
6
+ * the build PRODUCES is compared: a hand-written file that happens to sit in catalogues/ (a
7
+ * README, say) is not a build output and is ignored. Stale means either a produced file whose
8
+ * bytes differ from the committed one, or a produced file the SDD has not committed, or a
9
+ * committed catalogue the build no longer produces.
10
+ *
11
+ * Measured before building it: an isolated clone (no siblings) of an application, an
12
+ * integration, a platform root and a packaged SDD rebuilt byte-identically to what each had
13
+ * committed, so a fresh SDD passes and the check flags only real drift. Catalogue content is a
14
+ * function of committed content, not of the commit: nothing stamps HEAD's sha.
15
+ */
16
+ export interface FreshnessResult {
17
+ readonly exitCode: number;
18
+ readonly stale: readonly string[];
19
+ }
20
+ /** Stale files: produced but differing or uncommitted, and committed .csv the build no longer produces. Pure over two directories. */
21
+ export declare function compareCatalogueDirs(producedDir: string, committedDir: string): Promise<string[]>;
22
+ export declare function checkCataloguesFresh(sddPath: string, opts: {
23
+ strict?: boolean;
24
+ snapshotStore?: string;
25
+ }, out: (line: string) => void): Promise<FreshnessResult>;
26
+ //# sourceMappingURL=freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,sIAAsI;AACtI,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBvG;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAClD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1B,OAAO,CAAC,eAAe,CAAC,CA4B1B"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * `catalogue build --check`: are the committed catalogues what the committed specs build to?
3
+ * (M-ADR 0218 §5, bead sdm-jts.6.)
4
+ *
5
+ * Builds into a temporary directory and compares, so it writes nothing into the SDD. Only what
6
+ * the build PRODUCES is compared: a hand-written file that happens to sit in catalogues/ (a
7
+ * README, say) is not a build output and is ignored. Stale means either a produced file whose
8
+ * bytes differ from the committed one, or a produced file the SDD has not committed, or a
9
+ * committed catalogue the build no longer produces.
10
+ *
11
+ * Measured before building it: an isolated clone (no siblings) of an application, an
12
+ * integration, a platform root and a packaged SDD rebuilt byte-identically to what each had
13
+ * committed, so a fresh SDD passes and the check flags only real drift. Catalogue content is a
14
+ * function of committed content, not of the commit: nothing stamps HEAD's sha.
15
+ */
16
+ import { mkdtemp, readdir, readFile, rm } from "node:fs/promises";
17
+ import { existsSync } from "node:fs";
18
+ import { tmpdir } from "node:os";
19
+ import { join } from "node:path";
20
+ import { runCatalogueBuild } from "./build.js";
21
+ /** Stale files: produced but differing or uncommitted, and committed .csv the build no longer produces. Pure over two directories. */
22
+ export async function compareCatalogueDirs(producedDir, committedDir) {
23
+ const produced = (await readdir(producedDir)).sort();
24
+ const committed = existsSync(committedDir) ? (await readdir(committedDir)).sort() : [];
25
+ const stale = [];
26
+ for (const f of produced) {
27
+ if (!committed.includes(f)) {
28
+ stale.push(`${f} (produced, not committed)`);
29
+ continue;
30
+ }
31
+ const [a, b] = await Promise.all([readFile(join(producedDir, f)), readFile(join(committedDir, f))]);
32
+ if (!a.equals(b))
33
+ stale.push(`${f} (differs)`);
34
+ }
35
+ for (const f of committed) {
36
+ if (f.endsWith(".csv") && !produced.includes(f))
37
+ stale.push(`${f} (committed, no longer produced)`);
38
+ }
39
+ return stale;
40
+ }
41
+ export async function checkCataloguesFresh(sddPath, opts, out) {
42
+ const tmp = await mkdtemp(join(tmpdir(), "sdd-catalogue-check-"));
43
+ try {
44
+ const built = await runCatalogueBuild({
45
+ sddPath,
46
+ outDir: tmp,
47
+ ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
48
+ ...(opts.snapshotStore !== undefined ? { snapshotStore: opts.snapshotStore } : {}),
49
+ }, () => { });
50
+ if (built.exitCode !== 0) {
51
+ out(`[FAIL] catalogue build --check: the build itself failed (exit ${built.exitCode}); run catalogue build to see why.\n`);
52
+ return { exitCode: built.exitCode, stale: [] };
53
+ }
54
+ const produced = (await readdir(tmp)).sort();
55
+ const stale = await compareCatalogueDirs(tmp, join(sddPath, "catalogues"));
56
+ if (stale.length === 0) {
57
+ out(`[PASS] catalogue build --check: ${produced.length} catalogue file(s) reproduce byte-identically from the committed specs.\n`);
58
+ return { exitCode: 0, stale };
59
+ }
60
+ out(`[FAIL] catalogue build --check: ${stale.length} catalogue file(s) are stale against the committed specs — run sdd-cli catalogue build and commit the result:\n`);
61
+ for (const s of stale)
62
+ out(` ${s}\n`);
63
+ return { exitCode: 1, stale };
64
+ }
65
+ finally {
66
+ await rm(tmp, { recursive: true, force: true });
67
+ }
68
+ }
69
+ //# sourceMappingURL=freshness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../../src/lib/catalogue/freshness.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export * from "./relationship-semantics.js";
22
22
  // defaultCataloguesDir lives in graph-projection.ts (read-only), re-exported
23
23
  // here for existing importers. Read-only verbs must import it from there:
24
24
  // importing it from this module drags the graph WRITER into the verify-only
25
- // package's closure (build-verify-package's canary; the fdf9453 leak).
25
+ // package's closure (build-persona-package's canary; the fdf9453 leak).
26
26
  export { defaultCataloguesDir };
27
27
  export async function runCatalogueGraph(inputs, write) {
28
28
  const sddRoot = resolve(inputs.sddPath ?? process.cwd());
@@ -1 +1 @@
1
- {"version":3,"file":"graph-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-run.js","sourceRoot":"","sources":["../../../src/lib/catalogue/graph-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * CI host bindings (M-ADR 0219 §4.4): `sync --ci-binding github | gitlab | jenkins` renders ONE host
3
+ * wrapper, which installs the pinned Dagger CLI and calls the Method Validation module, and writes
4
+ * the module itself at MODULE_DIR (§4.3). The wrapper is a method-managed block inside the host's
5
+ * file, so adopter content outside the markers survives; the module is wholly method-managed.
6
+ *
7
+ * Both are digest-tracked in the lock (M-ADR 0218 §4.7): content that still hashes to what sync last
8
+ * wrote is pristine and re-renders with no override, and only an edited copy needs --allow-overwrite.
9
+ * The binding is remembered in the lock too (`ci_binding:`, absent meaning github), so an estate
10
+ * chooses it once.
11
+ */
12
+ import type { Profile } from "../repo-kind.js";
13
+ import type { LockFile } from "../lock-file.js";
14
+ import { type BlockMarkers } from "../sync/yaml-block-merge.js";
15
+ export declare const CI_BINDINGS: readonly ["github", "gitlab", "jenkins"];
16
+ export type CiBinding = (typeof CI_BINDINGS)[number];
17
+ /** M-ADR 0219 §8.2 (ruled 2026-10-16): what every SDD has before it chooses. */
18
+ export declare const DEFAULT_CI_BINDING: CiBinding;
19
+ /**
20
+ * Runner labels (sync --ci-runner): where the host runs the job. One label is a word of letters,
21
+ * digits, '.', '_' or '-', so a label can never inject YAML or Groovy into a wrapper.
22
+ */
23
+ export declare const CI_RUNNER_DEFAULT = "default";
24
+ export declare function parseCiRunner(s: string): string[] | null;
25
+ export declare function isCiBinding(s: string): s is CiBinding;
26
+ export interface HostWrapper {
27
+ /** Path of the host's file, relative to the SDD root. */
28
+ readonly relPath: string;
29
+ readonly markers: BlockMarkers;
30
+ /** The method-managed block alone (what sync merges into an existing file). */
31
+ block(profile: Profile, runner?: readonly string[]): string;
32
+ /** A whole new file: the block plus whatever the host file needs around it. */
33
+ file(profile: Profile, runner?: readonly string[]): string;
34
+ }
35
+ export declare const HOST_WRAPPERS: Record<CiBinding, HostWrapper>;
36
+ /** sha256 of a host file's method-managed block (begin marker through end marker), or null without one. */
37
+ export declare function blockSha256(text: string | null, markers: BlockMarkers): string | null;
38
+ export interface CiBindingSyncOptions {
39
+ targetRepo: string;
40
+ profile: Profile;
41
+ binding: CiBinding;
42
+ /** Runner labels, or undefined for the host's default runner. */
43
+ runner?: readonly string[];
44
+ prevLock: LockFile | null;
45
+ /** Re-render an edited block or module. */
46
+ allowDrift: boolean;
47
+ /** Replace a host file that has no method-managed markers. */
48
+ allowOverwrite: boolean;
49
+ /** Report what would refuse, write nothing (sync's preflight). */
50
+ checkOnly: boolean;
51
+ }
52
+ export interface CiBindingSyncResult {
53
+ failures: string[];
54
+ log: string[];
55
+ /** For the lock: the wrapper block's digest and the module's, as now on disk. */
56
+ wrapperSha: string | null;
57
+ moduleSha: string;
58
+ }
59
+ /** Bring the host wrapper and the module up to this sdd-cli's render, or say why not. */
60
+ export declare function syncCiBinding(o: CiBindingSyncOptions): Promise<CiBindingSyncResult>;
61
+ /** Write the module into a new SDD (init); returns the paths written, relative to the SDD root. */
62
+ export declare function writeMethodValidationModule(targetRepo: string): Promise<string[]>;
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/ci-binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAQhD,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGxG,eAAO,MAAM,WAAW,0CAA2C,CAAC;AACpE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,EAAE,SAAoB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAGxD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,SAAS,CAErD;AAED,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,+EAA+E;IAC/E,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5D,+EAA+E;IAC/E,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;CAC5D;AA2ED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAmBxD,CAAC;AAEF,2GAA2G;AAC3G,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAMrF;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,iFAAiF;IACjF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yFAAyF;AACzF,wBAAsB,aAAa,CAAC,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2EzF;AAWD,mGAAmG;AACnG,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASvF"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * CI host bindings (M-ADR 0219 §4.4): `sync --ci-binding github | gitlab | jenkins` renders ONE host
3
+ * wrapper, which installs the pinned Dagger CLI and calls the Method Validation module, and writes
4
+ * the module itself at MODULE_DIR (§4.3). The wrapper is a method-managed block inside the host's
5
+ * file, so adopter content outside the markers survives; the module is wholly method-managed.
6
+ *
7
+ * Both are digest-tracked in the lock (M-ADR 0218 §4.7): content that still hashes to what sync last
8
+ * wrote is pristine and re-renders with no override, and only an edited copy needs --allow-overwrite.
9
+ * The binding is remembered in the lock too (`ci_binding:`, absent meaning github), so an estate
10
+ * chooses it once.
11
+ */
12
+ import { access, mkdir, readFile, writeFile } from "node:fs/promises";
13
+ import { createHash } from "node:crypto";
14
+ import { dirname, join } from "node:path";
15
+ import { BLOCK_BEGIN, BLOCK_END, WORKFLOW_REL_PATH, renderMethodManagedWorkflowBlock, renderMethodValidationWorkflow, } from "../init/ci-workflow.js";
16
+ import { detectBlockDrift, writeMarkedBlockFile } from "../sync/yaml-block-merge.js";
17
+ import { DAGGER_VERSION, MODULE_CALL, MODULE_DIR, moduleSha256, renderModuleFiles } from "./module.js";
18
+ export const CI_BINDINGS = ["github", "gitlab", "jenkins"];
19
+ /** M-ADR 0219 §8.2 (ruled 2026-10-16): what every SDD has before it chooses. */
20
+ export const DEFAULT_CI_BINDING = "github";
21
+ /**
22
+ * Runner labels (sync --ci-runner): where the host runs the job. One label is a word of letters,
23
+ * digits, '.', '_' or '-', so a label can never inject YAML or Groovy into a wrapper.
24
+ */
25
+ export const CI_RUNNER_DEFAULT = "default";
26
+ const RUNNER_LABEL = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
27
+ export function parseCiRunner(s) {
28
+ const labels = s.split(",").map((l) => l.trim());
29
+ return labels.length > 0 && labels.every((l) => RUNNER_LABEL.test(l)) ? labels : null;
30
+ }
31
+ export function isCiBinding(s) {
32
+ return CI_BINDINGS.includes(s);
33
+ }
34
+ const HASH = { begin: BLOCK_BEGIN, end: BLOCK_END };
35
+ // Groovy has no '#' comments.
36
+ const SLASH = { begin: "// method-managed: begin", end: "// method-managed: end" };
37
+ function header(comment, profile) {
38
+ return [
39
+ `${comment} Method Validation per M-ADR 0129, run by the method's Dagger module (M-ADR 0219).`,
40
+ `${comment} Refreshed by \`sdd-cli sync\`; content inside the method-managed`,
41
+ `${comment} markers must not be hand-edited (sync refuses without --allow-overwrite).`,
42
+ `${comment} Profile: ${profile}`,
43
+ comment,
44
+ `${comment} The job is defined once, in ${MODULE_DIR}/, and this file only calls it,`,
45
+ `${comment} so CI on any host and a local run cannot disagree. The runner must`,
46
+ `${comment} provide a container engine Dagger can drive (M-ADR 0219 §4.5).`,
47
+ comment,
48
+ `${comment} Run it locally:`,
49
+ `${comment} ${MODULE_CALL}`,
50
+ ];
51
+ }
52
+ // GitLab: a Docker-in-Docker service, the shape GitLab documents for Dagger. The runner must allow
53
+ // privileged containers; that is the adopter's infrastructure (M-ADR 0219 §4.5). No `stage:`, so
54
+ // the job lands in the default `test` stage whatever stages the adopter declares around it.
55
+ function gitlabBlock(profile, runner) {
56
+ return [
57
+ HASH.begin,
58
+ ...header("#", profile),
59
+ "",
60
+ "method-validation:",
61
+ " image: docker:27.3.1",
62
+ ...(runner !== undefined && runner.length > 0 ? [` tags: [${runner.join(", ")}]`] : []),
63
+ " services:",
64
+ " - docker:27.3.1-dind",
65
+ " variables:",
66
+ " DOCKER_HOST: tcp://docker:2376",
67
+ ' DOCKER_TLS_CERTDIR: "/certs"',
68
+ ' DOCKER_TLS_VERIFY: "1"',
69
+ ' DOCKER_CERT_PATH: "/certs/client"',
70
+ " rules:",
71
+ ' - if: $CI_PIPELINE_SOURCE == "merge_request_event"',
72
+ " - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH",
73
+ " before_script:",
74
+ " - apk add --no-cache curl",
75
+ ` - curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR=/usr/local/bin DAGGER_VERSION=${DAGGER_VERSION} sh`,
76
+ " script:",
77
+ ` - ${MODULE_CALL}`,
78
+ HASH.end,
79
+ ].join("\n");
80
+ }
81
+ // Jenkins: a declarative pipeline at its own path, so it never collides with an adopter's
82
+ // Jenkinsfile; the job's Script Path points at it. The agent must reach a Docker daemon. Dagger is
83
+ // installed outside the workspace, so the binary is not uploaded with --source.
84
+ function jenkinsBlock(profile, runner) {
85
+ return [
86
+ SLASH.begin,
87
+ ...header("//", profile),
88
+ "",
89
+ "pipeline {",
90
+ runner !== undefined && runner.length > 0 ? ` agent { label '${runner.join(" && ")}' }` : " agent any",
91
+ " stages {",
92
+ " stage('Method Validation') {",
93
+ " steps {",
94
+ ` sh 'curl -fsSL https://dl.dagger.io/dagger/install.sh | BIN_DIR="$WORKSPACE@tmp/dagger" DAGGER_VERSION=${DAGGER_VERSION} sh'`,
95
+ ` sh 'PATH="$WORKSPACE@tmp/dagger:$PATH" ${MODULE_CALL}'`,
96
+ " }",
97
+ " }",
98
+ " }",
99
+ "}",
100
+ SLASH.end,
101
+ ].join("\n");
102
+ }
103
+ export const HOST_WRAPPERS = {
104
+ github: {
105
+ relPath: WORKFLOW_REL_PATH,
106
+ markers: HASH,
107
+ block: renderMethodManagedWorkflowBlock,
108
+ file: renderMethodValidationWorkflow,
109
+ },
110
+ gitlab: {
111
+ relPath: ".gitlab-ci.yml",
112
+ markers: HASH,
113
+ block: gitlabBlock,
114
+ file: (p, r) => gitlabBlock(p, r) + "\n\n# Adopter-specific jobs go below, outside the method-managed markers.\n",
115
+ },
116
+ jenkins: {
117
+ relPath: ".jenkins/method-validation.Jenkinsfile",
118
+ markers: SLASH,
119
+ block: jenkinsBlock,
120
+ file: (p, r) => jenkinsBlock(p, r) + "\n",
121
+ },
122
+ };
123
+ /** sha256 of a host file's method-managed block (begin marker through end marker), or null without one. */
124
+ export function blockSha256(text, markers) {
125
+ if (text === null)
126
+ return null;
127
+ const b = text.indexOf(markers.begin);
128
+ const e = b === -1 ? -1 : text.indexOf(markers.end, b);
129
+ if (b === -1 || e === -1)
130
+ return null;
131
+ return createHash("sha256").update(text.slice(b, e + markers.end.length)).digest("hex");
132
+ }
133
+ /** Bring the host wrapper and the module up to this sdd-cli's render, or say why not. */
134
+ export async function syncCiBinding(o) {
135
+ const failures = [];
136
+ const log = [];
137
+ const host = HOST_WRAPPERS[o.binding];
138
+ const sameBinding = (o.prevLock?.ciBinding ?? DEFAULT_CI_BINDING) === o.binding;
139
+ // 1. The host wrapper.
140
+ const wrapperAbs = join(o.targetRepo, host.relPath);
141
+ const existing = await tryRead(wrapperAbs);
142
+ const block = host.block(o.profile, o.runner);
143
+ const drifted = existing !== null && detectBlockDrift(existing, block, host.markers);
144
+ const recorded = sameBinding ? o.prevLock?.ciWorkflowBlockSha256 : undefined;
145
+ const pristine = existing !== null && recorded !== undefined && blockSha256(existing, host.markers) === recorded;
146
+ const markerless = existing !== null && existing !== "" && !(existing.includes(host.markers.begin) && existing.includes(host.markers.end));
147
+ if (drifted && pristine) {
148
+ log.push(`${host.relPath}: method-managed block unmodified since the last sync (digest matches the lock); re-rendering it for this sdd-cli.`);
149
+ }
150
+ if (drifted && !pristine && !o.allowDrift) {
151
+ failures.push(`${host.relPath}: the method-managed block differs from what this sdd-cli renders. Either the generator changed since the last sync (expected after a CLI upgrade) or the block was hand-edited. Re-run with --allow-overwrite to re-render it; adopter content outside the markers is preserved either way.`);
152
+ }
153
+ else if (markerless && !o.allowOverwrite) {
154
+ failures.push(`${host.relPath} exists without method-managed markers — refusing to overwrite adopter content. Re-run with --allow-overwrite to replace the file.`);
155
+ }
156
+ // 2. The module: every file it renders, compared as one set.
157
+ const rendered = renderModuleFiles();
158
+ const onDisk = [];
159
+ for (const [rel] of rendered)
160
+ onDisk.push([rel, await tryRead(join(o.targetRepo, MODULE_DIR, rel))]);
161
+ const present = onDisk.some(([, c]) => c !== null);
162
+ const matches = rendered.every(([rel, c], i) => onDisk[i][0] === rel && onDisk[i][1] === c);
163
+ const modulePristine = o.prevLock?.ciModuleSha256 !== undefined && moduleSha256(onDisk) === o.prevLock.ciModuleSha256;
164
+ if (present && !matches && modulePristine) {
165
+ log.push(`${MODULE_DIR}/: unmodified since the last sync (digest matches the lock); re-rendering it for this sdd-cli.`);
166
+ }
167
+ if (present && !matches && !modulePristine && !o.allowDrift) {
168
+ failures.push(`${MODULE_DIR}/: the method-managed module differs from what this sdd-cli renders. Either the generator changed since the last sync (expected after a CLI upgrade) or a file was hand-edited. Re-run with --allow-overwrite to re-render it.`);
169
+ }
170
+ if (o.checkOnly || failures.length > 0) {
171
+ return { failures, log, wrapperSha: null, moduleSha: moduleSha256(onDisk) };
172
+ }
173
+ const written = await writeMarkedBlockFile(wrapperAbs, existing === null ? host.file(o.profile, o.runner) : block, host.markers, o.allowOverwrite);
174
+ if (written.changed)
175
+ log.push(`${existing === null ? "Wrote" : "Refreshed"} ${host.relPath}.`);
176
+ if (!matches) {
177
+ for (const [rel, content] of rendered) {
178
+ const abs = join(o.targetRepo, MODULE_DIR, rel);
179
+ await mkdir(dirname(abs), { recursive: true });
180
+ await writeFile(abs, content, "utf8");
181
+ }
182
+ log.push(`${present ? "Refreshed" : "Wrote"} ${MODULE_DIR}/ (the Method Validation module, M-ADR 0219).`);
183
+ }
184
+ // A binding switch leaves the previous host's file alone: it is the adopter's to delete once the
185
+ // new host runs, and deleting it here would remove a job some branch protection may still require.
186
+ if (!sameBinding) {
187
+ const was = o.prevLock?.ciBinding;
188
+ const previous = HOST_WRAPPERS[was !== undefined && isCiBinding(was) ? was : DEFAULT_CI_BINDING];
189
+ if ((await tryRead(join(o.targetRepo, previous.relPath))) !== null) {
190
+ log.push(`CI binding is now ${o.binding}; ${previous.relPath} (the previous binding) is left in place. Delete it once ${host.relPath} runs.`);
191
+ }
192
+ }
193
+ return {
194
+ failures,
195
+ log,
196
+ wrapperSha: blockSha256(await tryRead(wrapperAbs), host.markers),
197
+ moduleSha: moduleSha256(rendered),
198
+ };
199
+ }
200
+ async function tryRead(path) {
201
+ try {
202
+ await access(path);
203
+ return await readFile(path, "utf8");
204
+ }
205
+ catch {
206
+ return null;
207
+ }
208
+ }
209
+ /** Write the module into a new SDD (init); returns the paths written, relative to the SDD root. */
210
+ export async function writeMethodValidationModule(targetRepo) {
211
+ const written = [];
212
+ for (const [rel, content] of renderModuleFiles()) {
213
+ const abs = join(targetRepo, MODULE_DIR, rel);
214
+ await mkdir(dirname(abs), { recursive: true });
215
+ await writeFile(abs, content, "utf8");
216
+ written.push(`${MODULE_DIR}/${rel}`);
217
+ }
218
+ return written;
219
+ }
220
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/ci-binding/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The Method Validation Dagger module (M-ADR 0219 §4.1–§4.3): the ONLY definition of the
3
+ * method-managed validation job. `sync` writes these files into every SDD at MODULE_DIR, with the
4
+ * exact verify-cli and maintain-cli versions released alongside this sdd-cli substituted in, and
5
+ * every CI host's wrapper (./index.ts) just calls the module.
6
+ *
7
+ * The module's source lives here, as text, rather than as files beside the package: sync runs from
8
+ * three packages (sdd-cli, maintain-cli, and the persona builds' import closure), and a string
9
+ * travels with whichever one imports it, where an asset directory would have to be copied into each.
10
+ * `scripts/dagger-parity.sh` renders it from the built package, so the parity harness runs exactly
11
+ * what sync writes.
12
+ */
13
+ /** Where the module lives in an SDD (M-ADR 0219 §4.3, ruled 2026-10-16). */
14
+ export declare const MODULE_DIR = ".dagger/method-validation";
15
+ /**
16
+ * The Dagger engine the module declares and every wrapper installs, pinned to one value so the CLI a
17
+ * wrapper installs and the engine the module asks for can never disagree (M-ADR 0219 §6). An engine
18
+ * upgrade is a release concern: change it here, run scripts/dagger-parity.sh, release.
19
+ */
20
+ export declare const DAGGER_VERSION = "0.21.10";
21
+ /** The command every host wrapper runs. */
22
+ export declare const MODULE_CALL = "dagger call -m .dagger/method-validation method-validation --source .";
23
+ /**
24
+ * The module's files, relative to MODULE_DIR, in a fixed order. Pins default to the versions released
25
+ * with this sdd-cli (M-ADR 0218 §4.6); the parity harness passes candidate versions.
26
+ */
27
+ export declare function renderModuleFiles(pins?: {
28
+ verify: string;
29
+ maintain: string;
30
+ }): Array<[string, string]>;
31
+ /**
32
+ * sha256 over the module's files as they stand (null content = absent), in the render's order, so
33
+ * sync can tell a module nobody touched from an edited one (M-ADR 0218 §4.7, as for the wrapper).
34
+ */
35
+ export declare function moduleSha256(files: Array<[string, string | null]>): string;
36
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/lib/ci-binding/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,4EAA4E;AAC5E,eAAO,MAAM,UAAU,8BAA8B,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,cAAc,YAAY,CAAC;AAExC,2CAA2C;AAC3C,eAAO,MAAM,WAAW,0EAA8D,CAAC;AAmKvF;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAyE,GAChH,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CASzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAM1E"}