specky-sdd 3.7.2 → 3.7.3
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/CHANGELOG.md +47 -0
- package/README.md +4 -0
- package/apm-policy.yml +41 -0
- package/apm.lock.yaml +71 -0
- package/apm.yml +29 -2
- package/dist/cli/commands/apm.d.ts +2 -0
- package/dist/cli/commands/apm.d.ts.map +1 -0
- package/dist/cli/commands/apm.js +139 -0
- package/dist/cli/commands/apm.js.map +1 -0
- package/dist/cli/index.js +10 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/apm/lock.d.ts +23 -0
- package/dist/cli/lib/apm/lock.d.ts.map +1 -0
- package/dist/cli/lib/apm/lock.js +90 -0
- package/dist/cli/lib/apm/lock.js.map +1 -0
- package/dist/cli/lib/apm/manifest.d.ts +31 -0
- package/dist/cli/lib/apm/manifest.d.ts.map +1 -0
- package/dist/cli/lib/apm/manifest.js +65 -0
- package/dist/cli/lib/apm/manifest.js.map +1 -0
- package/dist/cli/lib/apm/policy.d.ts +23 -0
- package/dist/cli/lib/apm/policy.d.ts.map +1 -0
- package/dist/cli/lib/apm/policy.js +85 -0
- package/dist/cli/lib/apm/policy.js.map +1 -0
- package/dist/cli/lib/asset-copier.d.ts.map +1 -1
- package/dist/cli/lib/asset-copier.js +8 -126
- package/dist/cli/lib/asset-copier.js.map +1 -1
- package/dist/cli/lib/harness/compilers/claude.d.ts +10 -0
- package/dist/cli/lib/harness/compilers/claude.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/claude.js +29 -0
- package/dist/cli/lib/harness/compilers/claude.js.map +1 -0
- package/dist/cli/lib/harness/compilers/common.d.ts +14 -0
- package/dist/cli/lib/harness/compilers/common.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/common.js +43 -0
- package/dist/cli/lib/harness/compilers/common.js.map +1 -0
- package/dist/cli/lib/harness/compilers/copilot.d.ts +10 -0
- package/dist/cli/lib/harness/compilers/copilot.d.ts.map +1 -0
- package/dist/cli/lib/harness/compilers/copilot.js +32 -0
- package/dist/cli/lib/harness/compilers/copilot.js.map +1 -0
- package/dist/cli/lib/harness/index.d.ts +12 -0
- package/dist/cli/lib/harness/index.d.ts.map +1 -0
- package/dist/cli/lib/harness/index.js +18 -0
- package/dist/cli/lib/harness/index.js.map +1 -0
- package/dist/cli/lib/harness/tool-map.d.ts +15 -0
- package/dist/cli/lib/harness/tool-map.d.ts.map +1 -0
- package/dist/cli/lib/harness/tool-map.js +92 -0
- package/dist/cli/lib/harness/tool-map.js.map +1 -0
- package/dist/cli/lib/harness/types.d.ts +42 -0
- package/dist/cli/lib/harness/types.d.ts.map +1 -0
- package/dist/cli/lib/harness/types.js +12 -0
- package/dist/cli/lib/harness/types.js.map +1 -0
- package/dist/cli/lib/paths.d.ts +1 -0
- package/dist/cli/lib/paths.d.ts.map +1 -1
- package/dist/cli/lib/paths.js +1 -0
- package/dist/cli/lib/paths.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* apm/manifest.ts — load and validate the APM manifest (apm.yml).
|
|
3
|
+
*
|
|
4
|
+
* The manifest is the enterprise contract for the package: it declares the
|
|
5
|
+
* canonical primitive source, the harness targets the package compiles to, and
|
|
6
|
+
* the MCP servers that back the primitives' tool ids. `apm validate` checks the
|
|
7
|
+
* manifest against the on-disk primitives and the npm manifest (package.json).
|
|
8
|
+
*/
|
|
9
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
10
|
+
import { resolve } from "node:path";
|
|
11
|
+
import { parse } from "yaml";
|
|
12
|
+
import { sourcePaths } from "../paths.js";
|
|
13
|
+
export function loadManifest(pkgRoot) {
|
|
14
|
+
const { apmYml } = sourcePaths(pkgRoot);
|
|
15
|
+
if (!existsSync(apmYml)) {
|
|
16
|
+
throw new Error(`[specky] apm.yml not found at ${apmYml}`);
|
|
17
|
+
}
|
|
18
|
+
return parse(readFileSync(apmYml, "utf8"));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate the APM manifest: required fields, version parity with
|
|
22
|
+
* package.json, declared primitive paths exist, targets are non-empty, and at
|
|
23
|
+
* least one MCP server is declared.
|
|
24
|
+
*/
|
|
25
|
+
export function validateManifest(pkgRoot) {
|
|
26
|
+
const errors = [];
|
|
27
|
+
const warnings = [];
|
|
28
|
+
let manifest;
|
|
29
|
+
try {
|
|
30
|
+
manifest = loadManifest(pkgRoot);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
return { ok: false, errors: [err.message], warnings };
|
|
34
|
+
}
|
|
35
|
+
const pkg = JSON.parse(readFileSync(resolve(pkgRoot, "package.json"), "utf8"));
|
|
36
|
+
if (!manifest.name)
|
|
37
|
+
errors.push("apm.yml: missing 'name'");
|
|
38
|
+
else if (manifest.name !== pkg.name) {
|
|
39
|
+
errors.push(`apm.yml name "${manifest.name}" != package.json name "${pkg.name}"`);
|
|
40
|
+
}
|
|
41
|
+
if (!manifest.version)
|
|
42
|
+
errors.push("apm.yml: missing 'version'");
|
|
43
|
+
else if (manifest.version !== pkg.version) {
|
|
44
|
+
errors.push(`apm.yml version "${manifest.version}" != package.json version "${pkg.version}"`);
|
|
45
|
+
}
|
|
46
|
+
if (!Array.isArray(manifest.targets) || manifest.targets.length === 0) {
|
|
47
|
+
errors.push("apm.yml: 'targets' must list at least one harness target");
|
|
48
|
+
}
|
|
49
|
+
if (!manifest.primitives || typeof manifest.primitives !== "object") {
|
|
50
|
+
errors.push("apm.yml: missing 'primitives' map");
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
for (const [kind, relPath] of Object.entries(manifest.primitives)) {
|
|
54
|
+
if (!existsSync(resolve(pkgRoot, relPath))) {
|
|
55
|
+
errors.push(`apm.yml: primitive '${kind}' path does not exist: ${relPath}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const servers = manifest.mcp?.servers ?? [];
|
|
60
|
+
if (servers.length === 0) {
|
|
61
|
+
warnings.push("apm.yml: no MCP servers declared under 'mcp.servers'");
|
|
62
|
+
}
|
|
63
|
+
return { ok: errors.length === 0, errors, warnings };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/cli/lib/apm/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ApmPolicy {
|
|
2
|
+
schemaVersion?: number;
|
|
3
|
+
allowedSources?: string[];
|
|
4
|
+
mcp?: {
|
|
5
|
+
allowTransitive?: boolean;
|
|
6
|
+
allowedServers?: string[];
|
|
7
|
+
};
|
|
8
|
+
hooks?: {
|
|
9
|
+
allowedEvents?: string[];
|
|
10
|
+
};
|
|
11
|
+
targets?: Record<string, {
|
|
12
|
+
forbidToolTokens?: string[];
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function policyPath(pkgRoot: string): string;
|
|
16
|
+
export declare function loadPolicy(pkgRoot: string): ApmPolicy;
|
|
17
|
+
export interface PolicyResult {
|
|
18
|
+
ok: boolean;
|
|
19
|
+
errors: string[];
|
|
20
|
+
warnings: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function checkPolicy(pkgRoot: string): PolicyResult;
|
|
23
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/apm/policy.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,SAAS;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/D,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC7D;AASD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAIrD;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAgEzD"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* apm/policy.ts — enforce the enterprise governance policy (apm-policy.yml).
|
|
3
|
+
*
|
|
4
|
+
* Checks that: declared MCP servers are allow-listed, hook manifests only
|
|
5
|
+
* register allowed events, and each harness target's compiled tool tokens stay
|
|
6
|
+
* isolated (no foreign harness tokens leak across targets).
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync, existsSync, readdirSync } from "node:fs";
|
|
9
|
+
import { resolve } from "node:path";
|
|
10
|
+
import { parse } from "yaml";
|
|
11
|
+
import { sourcePaths } from "../paths.js";
|
|
12
|
+
import { loadManifest } from "./manifest.js";
|
|
13
|
+
import { getCompiler } from "../harness/index.js";
|
|
14
|
+
const TARGET_ALIASES = {
|
|
15
|
+
"github-copilot": "copilot",
|
|
16
|
+
copilot: "copilot",
|
|
17
|
+
"claude-code": "claude",
|
|
18
|
+
claude: "claude",
|
|
19
|
+
};
|
|
20
|
+
export function policyPath(pkgRoot) {
|
|
21
|
+
return resolve(pkgRoot, "apm-policy.yml");
|
|
22
|
+
}
|
|
23
|
+
export function loadPolicy(pkgRoot) {
|
|
24
|
+
const path = policyPath(pkgRoot);
|
|
25
|
+
if (!existsSync(path))
|
|
26
|
+
return {};
|
|
27
|
+
return parse(readFileSync(path, "utf8")) ?? {};
|
|
28
|
+
}
|
|
29
|
+
function toolsLine(content) {
|
|
30
|
+
return content.split("\n").find((line) => line.startsWith("tools:")) ?? "";
|
|
31
|
+
}
|
|
32
|
+
export function checkPolicy(pkgRoot) {
|
|
33
|
+
const errors = [];
|
|
34
|
+
const warnings = [];
|
|
35
|
+
const policy = loadPolicy(pkgRoot);
|
|
36
|
+
if (!existsSync(policyPath(pkgRoot))) {
|
|
37
|
+
warnings.push("apm-policy.yml not found — governance checks are skipped");
|
|
38
|
+
return { ok: true, errors, warnings };
|
|
39
|
+
}
|
|
40
|
+
const { agentsDir, hooksManifest } = sourcePaths(pkgRoot);
|
|
41
|
+
// 1. MCP allowlist.
|
|
42
|
+
const allowedServers = policy.mcp?.allowedServers ?? [];
|
|
43
|
+
const manifest = loadManifest(pkgRoot);
|
|
44
|
+
for (const server of manifest.mcp?.servers ?? []) {
|
|
45
|
+
if (!allowedServers.includes(server.name)) {
|
|
46
|
+
errors.push(`MCP server "${server.name}" is not in policy allowedServers`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// 2. Hook event allowlist.
|
|
50
|
+
const allowedEvents = policy.hooks?.allowedEvents;
|
|
51
|
+
if (allowedEvents && existsSync(hooksManifest)) {
|
|
52
|
+
const manifestJson = JSON.parse(readFileSync(hooksManifest, "utf8"));
|
|
53
|
+
for (const event of Object.keys(manifestJson)) {
|
|
54
|
+
if (!allowedEvents.includes(event)) {
|
|
55
|
+
errors.push(`Hook manifest registers disallowed event "${event}"`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// 3. Per-target tool-name isolation.
|
|
60
|
+
const agentFiles = existsSync(agentsDir)
|
|
61
|
+
? readdirSync(agentsDir).filter((f) => f.endsWith(".agent.md"))
|
|
62
|
+
: [];
|
|
63
|
+
for (const [targetName, rules] of Object.entries(policy.targets ?? {})) {
|
|
64
|
+
const target = TARGET_ALIASES[targetName];
|
|
65
|
+
if (!target) {
|
|
66
|
+
warnings.push(`policy targets: unknown target "${targetName}"`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
const forbidden = rules.forbidToolTokens ?? [];
|
|
70
|
+
if (forbidden.length === 0)
|
|
71
|
+
continue;
|
|
72
|
+
const compiler = getCompiler(target);
|
|
73
|
+
for (const file of agentFiles) {
|
|
74
|
+
const source = readFileSync(resolve(agentsDir, file), "utf8");
|
|
75
|
+
const line = toolsLine(compiler.compileAgent(source));
|
|
76
|
+
for (const token of forbidden) {
|
|
77
|
+
if (line.includes(token)) {
|
|
78
|
+
errors.push(`${targetName}: agent "${file}" compiles to a forbidden tool token "${token}"`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { ok: errors.length === 0, errors, warnings };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../../src/cli/lib/apm/policy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWlD,MAAM,cAAc,GAAkC;IAClD,gBAAgB,EAAE,SAAS;IAC3B,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,QAAQ;IACvB,MAAM,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,OAAO,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAQ,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAe,IAAI,EAAE,CAAC;AAClE,CAAC;AAQD,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1D,oBAAoB;IACpB,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,EAAE,cAAc,IAAI,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,IAAI,mCAAmC,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;IAClD,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAGlE,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,6CAA6C,KAAK,GAAG,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC,CAAC,EAAE,CAAC;IAET,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,mCAAmC,UAAU,GAAG,CAAC,CAAC;YAChE,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CACP,GAAG,UAAU,YAAY,IAAI,yCAAyC,KAAK,GAAG,CACjF,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-copier.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/asset-copier.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-copier.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/asset-copier.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAmFD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,GAChB,UAAU,CA2CZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,WAAW,GAChB,UAAU,CAoDZ;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,GAChB,MAAM,CAwBR;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAEjE;AAGD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { createHash } from "node:crypto";
|
|
|
9
9
|
import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, chmodSync, unlinkSync, } from "node:fs";
|
|
10
10
|
import { basename, resolve, relative } from "node:path";
|
|
11
11
|
import { sourcePaths } from "./paths.js";
|
|
12
|
+
import { getCompiler } from "./harness/index.js";
|
|
12
13
|
function ensureDir(dir) {
|
|
13
14
|
if (!existsSync(dir))
|
|
14
15
|
mkdirSync(dir, { recursive: true });
|
|
@@ -71,135 +72,15 @@ function copyDir(src, dest, opts, result, renamer, transformer) {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
function unique(values) {
|
|
75
|
-
return [...new Set(values.filter(Boolean))];
|
|
76
|
-
}
|
|
77
|
-
function parseToolArray(tools) {
|
|
78
|
-
const trimmed = tools.trim();
|
|
79
|
-
if (!trimmed)
|
|
80
|
-
return [];
|
|
81
|
-
if (trimmed.startsWith("[")) {
|
|
82
|
-
try {
|
|
83
|
-
const parsed = JSON.parse(trimmed);
|
|
84
|
-
if (Array.isArray(parsed))
|
|
85
|
-
return parsed.map(String);
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// Fall through to the comma parser below.
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return trimmed
|
|
92
|
-
.replace(/^\[/, "")
|
|
93
|
-
.replace(/\]$/, "")
|
|
94
|
-
.split(",")
|
|
95
|
-
.map((token) => token.trim().replace(/^"|"$/g, ""))
|
|
96
|
-
.filter(Boolean);
|
|
97
|
-
}
|
|
98
|
-
function transformToolsLine(content, mapper, format) {
|
|
99
|
-
return content.replace(/^tools:\s*(.+)$/m, (_line, rawTools) => {
|
|
100
|
-
const mapped = unique(parseToolArray(rawTools).flatMap(mapper));
|
|
101
|
-
if (format === "comma-list")
|
|
102
|
-
return `tools: ${mapped.join(", ")}`;
|
|
103
|
-
return `tools: ${JSON.stringify(mapped)}`;
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function toCopilotTool(tool) {
|
|
107
|
-
if (tool.startsWith("specky/"))
|
|
108
|
-
return [tool];
|
|
109
|
-
if (tool.startsWith("mcp__specky__")) {
|
|
110
|
-
return [`specky/${tool.slice("mcp__specky__".length)}`];
|
|
111
|
-
}
|
|
112
|
-
if (tool.startsWith("sdd_"))
|
|
113
|
-
return [`specky/${tool}`];
|
|
114
|
-
switch (tool) {
|
|
115
|
-
case "Read":
|
|
116
|
-
case "Glob":
|
|
117
|
-
case "Grep":
|
|
118
|
-
case "search":
|
|
119
|
-
return ["search"];
|
|
120
|
-
case "Edit":
|
|
121
|
-
case "Write":
|
|
122
|
-
case "MultiEdit":
|
|
123
|
-
case "edit":
|
|
124
|
-
return ["edit"];
|
|
125
|
-
case "Bash":
|
|
126
|
-
case "runCommands":
|
|
127
|
-
return ["runCommands"];
|
|
128
|
-
case "WebFetch":
|
|
129
|
-
case "WebSearch":
|
|
130
|
-
case "fetch":
|
|
131
|
-
return ["fetch"];
|
|
132
|
-
case "Task":
|
|
133
|
-
case "agent":
|
|
134
|
-
return ["agent"];
|
|
135
|
-
case "TodoWrite":
|
|
136
|
-
case "todos":
|
|
137
|
-
return ["todos"];
|
|
138
|
-
default:
|
|
139
|
-
return [tool];
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
function toClaudeTool(tool) {
|
|
143
|
-
if (tool.startsWith("mcp__specky__"))
|
|
144
|
-
return [tool];
|
|
145
|
-
if (tool.startsWith("specky/")) {
|
|
146
|
-
return [`mcp__specky__${tool.slice("specky/".length)}`];
|
|
147
|
-
}
|
|
148
|
-
if (tool.startsWith("sdd_"))
|
|
149
|
-
return [`mcp__specky__${tool}`];
|
|
150
|
-
switch (tool) {
|
|
151
|
-
case "search":
|
|
152
|
-
return ["Read", "Glob", "Grep"];
|
|
153
|
-
case "edit":
|
|
154
|
-
return ["Edit", "Write"];
|
|
155
|
-
case "runCommands":
|
|
156
|
-
return ["Bash"];
|
|
157
|
-
case "fetch":
|
|
158
|
-
return ["WebFetch", "WebSearch"];
|
|
159
|
-
case "agent":
|
|
160
|
-
return ["Task"];
|
|
161
|
-
case "todos":
|
|
162
|
-
return ["TodoWrite"];
|
|
163
|
-
default:
|
|
164
|
-
return [tool];
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
function toCopilotAgent(content) {
|
|
168
|
-
return transformToolsLine(content, toCopilotTool, "json-array");
|
|
169
|
-
}
|
|
170
|
-
function toClaudeAgent(content) {
|
|
171
|
-
return transformToolsLine(content, toClaudeTool, "comma-list");
|
|
172
|
-
}
|
|
173
|
-
function toCopilotPrompt(content) {
|
|
174
|
-
if (/^agent:/m.test(content))
|
|
175
|
-
return content.replace(/^mode:\s*agent\s*$/m, "");
|
|
176
|
-
return content.replace(/^mode:\s*agent\s*$/m, "agent: agent");
|
|
177
|
-
}
|
|
178
|
-
function toClaudePrompt(content) {
|
|
179
|
-
return content
|
|
180
|
-
.replace(/^agent:\s*agent\s*\n/m, "")
|
|
181
|
-
.replace(/^mode:\s*agent\s*\n/m, "");
|
|
182
|
-
}
|
|
183
|
-
function toClaudeInstruction(content) {
|
|
184
|
-
return content.replace(/^applyTo:\s*['"]?\*\*['"]?\s*$/m, "paths: ['**']");
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Transform `.agent.md` (Copilot format) to `.md` (Claude Code format).
|
|
188
|
-
*/
|
|
189
|
-
function claudeAgentRenamer(fileName) {
|
|
190
|
-
return fileName.replace(/\.agent\.md$/, ".md");
|
|
191
|
-
}
|
|
192
|
-
function claudePromptRenamer(fileName) {
|
|
193
|
-
return fileName.replace(/\.prompt\.md$/, ".md");
|
|
194
|
-
}
|
|
195
75
|
/**
|
|
196
76
|
* Copy assets to Claude Code `.claude/` layout.
|
|
197
77
|
*/
|
|
198
78
|
export function copyToClaude(pkgRoot, targets, opts) {
|
|
199
79
|
const src = sourcePaths(pkgRoot);
|
|
200
80
|
const result = { written: [], skipped: [] };
|
|
201
|
-
|
|
202
|
-
copyDir(src.
|
|
81
|
+
const claude = getCompiler("claude");
|
|
82
|
+
copyDir(src.agentsDir, targets.claude.agents, opts, result, claude.renameAgent, claude.compileAgent);
|
|
83
|
+
copyDir(src.promptsDir, targets.claude.commands, opts, result, claude.renamePrompt, claude.compilePrompt);
|
|
203
84
|
copyDir(src.skillsDir, targets.claude.skills, opts, result);
|
|
204
85
|
copyDir(src.hookScriptsDir, targets.claude.hooksScripts, opts, result);
|
|
205
86
|
// Make hook scripts executable (Unix only — Windows ignores mode)
|
|
@@ -220,7 +101,7 @@ export function copyToClaude(pkgRoot, targets, opts) {
|
|
|
220
101
|
// Copy copilot-instructions to .claude/rules/
|
|
221
102
|
const instructionSrc = resolve(src.instructionsDir, "copilot-instructions.instructions.md");
|
|
222
103
|
if (existsSync(instructionSrc)) {
|
|
223
|
-
copyFile(instructionSrc, resolve(targets.claude.rules, "copilot-instructions.md"), opts, result,
|
|
104
|
+
copyFile(instructionSrc, resolve(targets.claude.rules, "copilot-instructions.md"), opts, result, claude.compileInstruction);
|
|
224
105
|
}
|
|
225
106
|
return result;
|
|
226
107
|
}
|
|
@@ -230,8 +111,9 @@ export function copyToClaude(pkgRoot, targets, opts) {
|
|
|
230
111
|
export function copyToCopilot(pkgRoot, targets, opts) {
|
|
231
112
|
const src = sourcePaths(pkgRoot);
|
|
232
113
|
const result = { written: [], skipped: [] };
|
|
233
|
-
|
|
234
|
-
copyDir(src.
|
|
114
|
+
const copilot = getCompiler("copilot");
|
|
115
|
+
copyDir(src.agentsDir, targets.copilot.agents, opts, result, copilot.renameAgent, copilot.compileAgent);
|
|
116
|
+
copyDir(src.promptsDir, targets.copilot.prompts, opts, result, copilot.renamePrompt, copilot.compilePrompt);
|
|
235
117
|
copyDir(src.skillsDir, targets.copilot.skills, opts, result);
|
|
236
118
|
copyDir(src.hookScriptsDir, targets.copilot.hooksScripts, opts, result);
|
|
237
119
|
// rc.14: Remove stale pre-rc.12 hooks manifest at .github/hooks/specky-sdd-hooks.json.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-copier.js","sourceRoot":"","sources":["../../../src/cli/lib/asset-copier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"asset-copier.js","sourceRoot":"","sources":["../../../src/cli/lib/asset-copier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/claude.ts — renders canonical primitives into Claude Code
|
|
3
|
+
* native form: `.claude/agents/*.md`, `.claude/commands/*.md`, comma-list
|
|
4
|
+
* `tools:` with `Read`/`Glob`/`Grep`/`Task` and `mcp__specky__sdd_*` MCP
|
|
5
|
+
* tools, commands without Copilot-only `agent:` frontmatter, and rules that
|
|
6
|
+
* use `paths:` instead of Copilot's `applyTo:`.
|
|
7
|
+
*/
|
|
8
|
+
import type { HarnessCompiler } from "../types.js";
|
|
9
|
+
export declare const claudeCompiler: HarnessCompiler;
|
|
10
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/claude.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,eAAO,MAAM,cAAc,EAAE,eAwB5B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/claude.ts — renders canonical primitives into Claude Code
|
|
3
|
+
* native form: `.claude/agents/*.md`, `.claude/commands/*.md`, comma-list
|
|
4
|
+
* `tools:` with `Read`/`Glob`/`Grep`/`Task` and `mcp__specky__sdd_*` MCP
|
|
5
|
+
* tools, commands without Copilot-only `agent:` frontmatter, and rules that
|
|
6
|
+
* use `paths:` instead of Copilot's `applyTo:`.
|
|
7
|
+
*/
|
|
8
|
+
import { transformToolsLine } from "./common.js";
|
|
9
|
+
export const claudeCompiler = {
|
|
10
|
+
target: "claude",
|
|
11
|
+
compileAgent(content) {
|
|
12
|
+
return transformToolsLine(content, "claude", "comma-list");
|
|
13
|
+
},
|
|
14
|
+
compilePrompt(content) {
|
|
15
|
+
return content
|
|
16
|
+
.replace(/^agent:\s*agent\s*\n/m, "")
|
|
17
|
+
.replace(/^mode:\s*agent\s*\n/m, "");
|
|
18
|
+
},
|
|
19
|
+
compileInstruction(content) {
|
|
20
|
+
return content.replace(/^applyTo:\s*['"]?\*\*['"]?\s*$/m, "paths: ['**']");
|
|
21
|
+
},
|
|
22
|
+
renameAgent(fileName) {
|
|
23
|
+
return fileName.replace(/\.agent\.md$/, ".md");
|
|
24
|
+
},
|
|
25
|
+
renamePrompt(fileName) {
|
|
26
|
+
return fileName.replace(/\.prompt\.md$/, ".md");
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/claude.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC3C,MAAM,EAAE,QAAQ;IAEhB,YAAY,CAAC,OAAO;QAChB,OAAO,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED,aAAa,CAAC,OAAO;QACjB,OAAO,OAAO;aACT,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aACpC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,kBAAkB,CAAC,OAAO;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,iCAAiC,EAAE,eAAe,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,QAAQ;QAChB,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;CACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/common.ts — shared frontmatter/tool-line helpers used by
|
|
3
|
+
* every harness compiler.
|
|
4
|
+
*/
|
|
5
|
+
import type { HarnessTarget } from "../types.js";
|
|
6
|
+
export declare function unique(values: string[]): string[];
|
|
7
|
+
/** Parse a frontmatter `tools:` value that is a JSON array or a comma list. */
|
|
8
|
+
export declare function parseToolArray(tools: string): string[];
|
|
9
|
+
/**
|
|
10
|
+
* Rewrite the `tools:` frontmatter line for a target harness, mapping each
|
|
11
|
+
* source token to its native token(s) and serializing in the harness's format.
|
|
12
|
+
*/
|
|
13
|
+
export declare function transformToolsLine(content: string, target: HarnessTarget, format: "json-array" | "comma-list"): string;
|
|
14
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEjD;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,GAAG,YAAY,GACpC,MAAM,CAQR"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/common.ts — shared frontmatter/tool-line helpers used by
|
|
3
|
+
* every harness compiler.
|
|
4
|
+
*/
|
|
5
|
+
import { mapTool } from "../tool-map.js";
|
|
6
|
+
export function unique(values) {
|
|
7
|
+
return [...new Set(values.filter(Boolean))];
|
|
8
|
+
}
|
|
9
|
+
/** Parse a frontmatter `tools:` value that is a JSON array or a comma list. */
|
|
10
|
+
export function parseToolArray(tools) {
|
|
11
|
+
const trimmed = tools.trim();
|
|
12
|
+
if (!trimmed)
|
|
13
|
+
return [];
|
|
14
|
+
if (trimmed.startsWith("[")) {
|
|
15
|
+
try {
|
|
16
|
+
const parsed = JSON.parse(trimmed);
|
|
17
|
+
if (Array.isArray(parsed))
|
|
18
|
+
return parsed.map(String);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// Fall through to the comma parser below.
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return trimmed
|
|
25
|
+
.replace(/^\[/, "")
|
|
26
|
+
.replace(/\]$/, "")
|
|
27
|
+
.split(",")
|
|
28
|
+
.map((token) => token.trim().replace(/^"|"$/g, ""))
|
|
29
|
+
.filter(Boolean);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Rewrite the `tools:` frontmatter line for a target harness, mapping each
|
|
33
|
+
* source token to its native token(s) and serializing in the harness's format.
|
|
34
|
+
*/
|
|
35
|
+
export function transformToolsLine(content, target, format) {
|
|
36
|
+
return content.replace(/^tools:\s*(.+)$/m, (_line, rawTools) => {
|
|
37
|
+
const mapped = unique(parseToolArray(rawTools).flatMap((token) => mapTool(token, target)));
|
|
38
|
+
if (format === "comma-list")
|
|
39
|
+
return `tools: ${mapped.join(", ")}`;
|
|
40
|
+
return `tools: ${JSON.stringify(mapped)}`;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,MAAM,CAAC,MAAgB;IACnC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;YAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,0CAA0C;QAC9C,CAAC;IACL,CAAC;IACD,OAAO,OAAO;SACT,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;SAClD,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAC9B,OAAe,EACf,MAAqB,EACrB,MAAmC;IAEnC,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,CACjB,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CACtE,CAAC;QACF,IAAI,MAAM,KAAK,YAAY;YAAE,OAAO,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,OAAO,UAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/copilot.ts — renders canonical primitives into GitHub
|
|
3
|
+
* Copilot (VS Code) native form: `.github/agents/*.agent.md`,
|
|
4
|
+
* `.github/prompts/*.prompt.md`, JSON-array `tools:` with `search`/`agent`/
|
|
5
|
+
* `edit`/`fetch` and namespaced `specky/sdd_*` MCP tools, and `agent: agent`
|
|
6
|
+
* prompt frontmatter.
|
|
7
|
+
*/
|
|
8
|
+
import type { HarnessCompiler } from "../types.js";
|
|
9
|
+
export declare const copilotCompiler: HarnessCompiler;
|
|
10
|
+
//# sourceMappingURL=copilot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,eAAO,MAAM,eAAe,EAAE,eA2B7B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/compilers/copilot.ts — renders canonical primitives into GitHub
|
|
3
|
+
* Copilot (VS Code) native form: `.github/agents/*.agent.md`,
|
|
4
|
+
* `.github/prompts/*.prompt.md`, JSON-array `tools:` with `search`/`agent`/
|
|
5
|
+
* `edit`/`fetch` and namespaced `specky/sdd_*` MCP tools, and `agent: agent`
|
|
6
|
+
* prompt frontmatter.
|
|
7
|
+
*/
|
|
8
|
+
import { transformToolsLine } from "./common.js";
|
|
9
|
+
export const copilotCompiler = {
|
|
10
|
+
target: "copilot",
|
|
11
|
+
compileAgent(content) {
|
|
12
|
+
return transformToolsLine(content, "copilot", "json-array");
|
|
13
|
+
},
|
|
14
|
+
compilePrompt(content) {
|
|
15
|
+
// `.apm` prompts already use `agent: agent`; keep them and drop any stray
|
|
16
|
+
// legacy `mode: agent` line. If only a legacy line exists, upgrade it.
|
|
17
|
+
if (/^agent:/m.test(content)) {
|
|
18
|
+
return content.replace(/^mode:\s*agent\s*$/m, "");
|
|
19
|
+
}
|
|
20
|
+
return content.replace(/^mode:\s*agent\s*$/m, "agent: agent");
|
|
21
|
+
},
|
|
22
|
+
compileInstruction(content) {
|
|
23
|
+
return content;
|
|
24
|
+
},
|
|
25
|
+
renameAgent(fileName) {
|
|
26
|
+
return fileName;
|
|
27
|
+
},
|
|
28
|
+
renamePrompt(fileName) {
|
|
29
|
+
return fileName;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=copilot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../../../src/cli/lib/harness/compilers/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC5C,MAAM,EAAE,SAAS;IAEjB,YAAY,CAAC,OAAO;QAChB,OAAO,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,aAAa,CAAC,OAAO;QACjB,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB,CAAC,OAAO;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,QAAQ;QAChB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,QAAQ;QACjB,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/index.ts — the harness compiler registry.
|
|
3
|
+
*
|
|
4
|
+
* `getCompiler(target)` returns the compiler that renders Specky's canonical
|
|
5
|
+
* `.apm` primitives into a harness's native form. Register new harnesses here.
|
|
6
|
+
*/
|
|
7
|
+
import type { HarnessCompiler, HarnessTarget } from "./types.js";
|
|
8
|
+
export declare function getCompiler(target: HarnessTarget): HarnessCompiler;
|
|
9
|
+
export declare const SUPPORTED_TARGETS: HarnessTarget[];
|
|
10
|
+
export type { HarnessCompiler, HarnessTarget } from "./types.js";
|
|
11
|
+
export { mapTool, normalizeToLogical, logicalToNative } from "./tool-map.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AASjE,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,CAElE;AAED,eAAO,MAAM,iBAAiB,EAA6B,aAAa,EAAE,CAAC;AAE3E,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* harness/index.ts — the harness compiler registry.
|
|
3
|
+
*
|
|
4
|
+
* `getCompiler(target)` returns the compiler that renders Specky's canonical
|
|
5
|
+
* `.apm` primitives into a harness's native form. Register new harnesses here.
|
|
6
|
+
*/
|
|
7
|
+
import { copilotCompiler } from "./compilers/copilot.js";
|
|
8
|
+
import { claudeCompiler } from "./compilers/claude.js";
|
|
9
|
+
const COMPILERS = {
|
|
10
|
+
copilot: copilotCompiler,
|
|
11
|
+
claude: claudeCompiler,
|
|
12
|
+
};
|
|
13
|
+
export function getCompiler(target) {
|
|
14
|
+
return COMPILERS[target];
|
|
15
|
+
}
|
|
16
|
+
export const SUPPORTED_TARGETS = Object.keys(COMPILERS);
|
|
17
|
+
export { mapTool, normalizeToLogical, logicalToNative } from "./tool-map.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/lib/harness/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,SAAS,GAA2C;IACtD,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;CACzB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|