@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.
- package/README.md +4 -57
- package/dist/author-bin.d.ts +3 -0
- package/dist/author-bin.d.ts.map +1 -0
- package/dist/author-bin.js +8 -0
- package/dist/author-bin.js.map +1 -0
- package/dist/author-program.d.ts +8 -0
- package/dist/author-program.d.ts.map +1 -0
- package/dist/author-program.js +99 -0
- package/dist/author-program.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-harness.d.ts +11 -8
- package/dist/lib/agent-harness.d.ts.map +1 -1
- package/dist/lib/agent-harness.js +17 -8
- package/dist/lib/agent-harness.js.map +1 -1
- package/dist/lib/api-surface/index.js +2 -2
- package/dist/lib/api-surface/index.js.map +1 -1
- package/dist/lib/briefing/index.d.ts +1 -1
- package/dist/lib/briefing/index.d.ts.map +1 -1
- package/dist/lib/briefing/index.js +1 -1
- package/dist/lib/briefing/index.js.map +1 -1
- package/dist/lib/briefing/render.d.ts +18 -1
- package/dist/lib/briefing/render.d.ts.map +1 -1
- package/dist/lib/briefing/render.js +17 -8
- package/dist/lib/briefing/render.js.map +1 -1
- package/dist/lib/catalogue/aggregation-manifest-loader.js +4 -4
- package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -1
- package/dist/lib/catalogue/cli-version.d.ts +1 -1
- package/dist/lib/catalogue/cli-version.d.ts.map +1 -1
- package/dist/lib/catalogue/cli-version.js +3 -3
- package/dist/lib/catalogue/cli-version.js.map +1 -1
- package/dist/lib/catalogue/freshness.d.ts +27 -0
- package/dist/lib/catalogue/freshness.d.ts.map +1 -0
- package/dist/lib/catalogue/freshness.js +70 -0
- package/dist/lib/catalogue/freshness.js.map +1 -0
- package/dist/lib/catalogue/graph-run.js +1 -1
- package/dist/lib/catalogue/graph-run.js.map +1 -1
- package/dist/lib/ci-binding/index.d.ts +63 -0
- package/dist/lib/ci-binding/index.d.ts.map +1 -0
- package/dist/lib/ci-binding/index.js +220 -0
- package/dist/lib/ci-binding/index.js.map +1 -0
- package/dist/lib/ci-binding/module.d.ts +36 -0
- package/dist/lib/ci-binding/module.d.ts.map +1 -0
- package/dist/lib/ci-binding/module.js +204 -0
- package/dist/lib/ci-binding/module.js.map +1 -0
- package/dist/lib/context-pull/index.d.ts +45 -0
- package/dist/lib/context-pull/index.d.ts.map +1 -0
- package/dist/lib/context-pull/index.js +191 -0
- package/dist/lib/context-pull/index.js.map +1 -0
- package/dist/lib/context-pull/resolve.d.ts +46 -0
- package/dist/lib/context-pull/resolve.d.ts.map +1 -0
- package/dist/lib/context-pull/resolve.js +70 -0
- package/dist/lib/context-pull/resolve.js.map +1 -0
- package/dist/lib/context-pull/retired-mcp-setup.d.ts +7 -0
- package/dist/lib/context-pull/retired-mcp-setup.d.ts.map +1 -0
- package/dist/lib/context-pull/retired-mcp-setup.js +7 -0
- package/dist/lib/context-pull/retired-mcp-setup.js.map +1 -0
- package/dist/lib/hooks-seed/entries.d.ts +15 -0
- package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
- package/dist/lib/hooks-seed/entries.js +30 -1
- package/dist/lib/hooks-seed/entries.js.map +1 -1
- package/dist/lib/hooks-seed/index.d.ts +4 -9
- package/dist/lib/hooks-seed/index.d.ts.map +1 -1
- package/dist/lib/hooks-seed/index.js +4 -7
- package/dist/lib/hooks-seed/index.js.map +1 -1
- package/dist/lib/hooks-seed/merge.d.ts +7 -0
- package/dist/lib/hooks-seed/merge.d.ts.map +1 -1
- package/dist/lib/hooks-seed/merge.js +31 -0
- package/dist/lib/hooks-seed/merge.js.map +1 -1
- package/dist/lib/init/app.d.ts +0 -1
- package/dist/lib/init/app.d.ts.map +1 -1
- package/dist/lib/init/app.js +3 -7
- package/dist/lib/init/app.js.map +1 -1
- package/dist/lib/init/ci-workflow.d.ts +6 -8
- package/dist/lib/init/ci-workflow.d.ts.map +1 -1
- package/dist/lib/init/ci-workflow.js +57 -120
- package/dist/lib/init/ci-workflow.js.map +1 -1
- package/dist/lib/init/integration.d.ts +0 -1
- package/dist/lib/init/integration.d.ts.map +1 -1
- package/dist/lib/init/integration.js +3 -7
- package/dist/lib/init/integration.js.map +1 -1
- package/dist/lib/init/platform.d.ts +2 -10
- package/dist/lib/init/platform.d.ts.map +1 -1
- package/dist/lib/init/platform.js +12 -15
- package/dist/lib/init/platform.js.map +1 -1
- package/dist/lib/lock-file.d.ts +20 -0
- package/dist/lib/lock-file.d.ts.map +1 -1
- package/dist/lib/lock-file.js +25 -1
- package/dist/lib/lock-file.js.map +1 -1
- package/dist/lib/mcp/build-info.d.ts.map +1 -1
- package/dist/lib/mcp/build-info.js +3 -3
- package/dist/lib/mcp/build-info.js.map +1 -1
- package/dist/lib/pack/index.js +2 -2
- package/dist/lib/pack/index.js.map +1 -1
- package/dist/lib/pack/validate.js +2 -2
- package/dist/lib/pack/validate.js.map +1 -1
- package/dist/lib/package-version.d.ts +23 -0
- package/dist/lib/package-version.d.ts.map +1 -1
- package/dist/lib/package-version.js +47 -10
- package/dist/lib/package-version.js.map +1 -1
- package/dist/lib/plan/index.d.ts.map +1 -1
- package/dist/lib/plan/index.js +4 -4
- package/dist/lib/plan/index.js.map +1 -1
- package/dist/lib/plan/read-sdd.js +1 -1
- package/dist/lib/plan/render-template.d.ts +8 -0
- package/dist/lib/plan/render-template.d.ts.map +1 -1
- package/dist/lib/plan/render-template.js +27 -3
- package/dist/lib/plan/render-template.js.map +1 -1
- package/dist/lib/sdd-index/repo-config.d.ts +1 -1
- package/dist/lib/sdd-index/repo-config.js +1 -1
- package/dist/lib/sdd-reader.d.ts +35 -0
- package/dist/lib/sdd-reader.d.ts.map +1 -0
- package/dist/lib/sdd-reader.js +91 -0
- package/dist/lib/sdd-reader.js.map +1 -0
- package/dist/lib/sync/briefing-merge.d.ts +1 -1
- package/dist/lib/sync/briefing-merge.d.ts.map +1 -1
- package/dist/lib/sync/briefing-merge.js +50 -34
- package/dist/lib/sync/briefing-merge.js.map +1 -1
- package/dist/lib/sync/diff.js +1 -1
- package/dist/lib/sync/diff.js.map +1 -1
- package/dist/lib/sync/index.d.ts +16 -6
- package/dist/lib/sync/index.d.ts.map +1 -1
- package/dist/lib/sync/index.js +89 -116
- package/dist/lib/sync/index.js.map +1 -1
- package/dist/lib/sync/settings-merge.d.ts +26 -48
- package/dist/lib/sync/settings-merge.d.ts.map +1 -1
- package/dist/lib/sync/settings-merge.js +70 -162
- package/dist/lib/sync/settings-merge.js.map +1 -1
- package/dist/lib/validate/bundle-coherence.js +2 -2
- package/dist/lib/validate/bundle-coherence.js.map +1 -1
- package/dist/lib/validate/plan.d.ts +25 -0
- package/dist/lib/validate/plan.d.ts.map +1 -0
- package/dist/lib/validate/plan.js +54 -0
- package/dist/lib/validate/plan.js.map +1 -0
- package/dist/maintain-bin.d.ts +3 -0
- package/dist/maintain-bin.d.ts.map +1 -0
- package/dist/maintain-bin.js +8 -0
- package/dist/maintain-bin.js.map +1 -0
- package/dist/maintain-program.d.ts +8 -0
- package/dist/maintain-program.d.ts.map +1 -0
- package/dist/maintain-program.js +94 -0
- package/dist/maintain-program.js.map +1 -0
- package/dist/maintain-version.json +4 -0
- package/dist/verbs/catalogue-check.d.ts +10 -0
- package/dist/verbs/catalogue-check.d.ts.map +1 -0
- package/dist/verbs/catalogue-check.js +28 -0
- package/dist/verbs/catalogue-check.js.map +1 -0
- package/dist/verbs/catalogue-maintain.d.ts +6 -0
- package/dist/verbs/catalogue-maintain.d.ts.map +1 -0
- package/dist/verbs/catalogue-maintain.js +110 -0
- package/dist/verbs/catalogue-maintain.js.map +1 -0
- package/dist/verbs/catalogue.d.ts +5 -0
- package/dist/verbs/catalogue.d.ts.map +1 -1
- package/dist/verbs/catalogue.js +16 -80
- package/dist/verbs/catalogue.js.map +1 -1
- package/dist/verbs/context.d.ts +3 -0
- package/dist/verbs/context.d.ts.map +1 -0
- package/dist/verbs/context.js +39 -0
- package/dist/verbs/context.js.map +1 -0
- package/dist/verbs/pack-build.d.ts +3 -0
- package/dist/verbs/pack-build.d.ts.map +1 -0
- package/dist/verbs/pack-build.js +31 -0
- package/dist/verbs/pack-build.js.map +1 -0
- package/dist/verbs/pack.d.ts.map +1 -1
- package/dist/verbs/pack.js +2 -25
- package/dist/verbs/pack.js.map +1 -1
- package/dist/verbs/sync.d.ts.map +1 -1
- package/dist/verbs/sync.js +21 -0
- package/dist/verbs/sync.js.map +1 -1
- package/dist/verbs/validate.d.ts.map +1 -1
- package/dist/verbs/validate.js +26 -0
- package/dist/verbs/validate.js.map +1 -1
- package/dist/verify-program.d.ts +6 -1
- package/dist/verify-program.d.ts.map +1 -1
- package/dist/verify-program.js +12 -5
- package/dist/verify-program.js.map +1 -1
- package/dist/verify-version.json +2 -2
- package/package.json +6 -5
- package/scripts/author-acceptance.mjs +170 -0
- package/scripts/author-version.json +4 -0
- package/scripts/build-persona-package.mjs +309 -0
- package/scripts/copy-yaml-assets.mjs +4 -2
- package/scripts/dagger-parity.sh +74 -0
- package/scripts/maintain-acceptance.mjs +240 -0
- package/scripts/maintain-version.json +4 -0
- package/scripts/release-gate.mjs +9 -0
- package/scripts/verify-version.json +2 -2
- package/scripts/vitest-tmpdir.mjs +26 -0
- 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;
|
|
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
|
-
|
|
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 =
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
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 "../
|
|
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 "../
|
|
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
|
-
* -
|
|
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,
|
|
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
|
-
* -
|
|
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,
|
|
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
|
|
39
|
-
// certainly
|
|
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
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
77
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"briefing-merge.js","sourceRoot":"","sources":["../../../src/lib/sync/briefing-merge.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/sync/diff.js
CHANGED
|
@@ -139,7 +139,7 @@ export const GENERATED_NEVER_REMOVE = [
|
|
|
139
139
|
"AGENTS.md",
|
|
140
140
|
"agent-instructions.md",
|
|
141
141
|
];
|
|
142
|
-
/** `.github/hooks
|
|
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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"}
|
package/dist/lib/sync/index.d.ts
CHANGED
|
@@ -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
|
|
12
|
-
*
|
|
13
|
-
* `
|
|
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;
|
|
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"}
|