@ngocsangairvds/vsaf 5.1.6 → 5.1.7
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/package.json +1 -1
- package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
- package/packages/cli/dist/adapters/antigravity.js +9 -30
- package/packages/cli/dist/adapters/antigravity.js.map +1 -1
- package/packages/cli/dist/adapters/claude.d.ts.map +1 -1
- package/packages/cli/dist/adapters/claude.js +8 -10
- package/packages/cli/dist/adapters/claude.js.map +1 -1
- package/packages/cli/dist/adapters/codex.d.ts.map +1 -1
- package/packages/cli/dist/adapters/codex.js +6 -9
- package/packages/cli/dist/adapters/codex.js.map +1 -1
- package/packages/cli/dist/adapters/cursor.d.ts.map +1 -1
- package/packages/cli/dist/adapters/cursor.js +22 -24
- package/packages/cli/dist/adapters/cursor.js.map +1 -1
- package/packages/cli/dist/commands/init.d.ts.map +1 -1
- package/packages/cli/dist/commands/init.js +7 -19
- package/packages/cli/dist/commands/init.js.map +1 -1
- package/packages/cli/dist/commands/install.d.ts +3 -6
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js +6 -9
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/packages/cli/dist/commands/skill.d.ts.map +1 -1
- package/packages/cli/dist/commands/skill.js +35 -14
- package/packages/cli/dist/commands/skill.js.map +1 -1
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/dist/index.js.map +1 -1
- package/packages/cli/dist/install/orchestrator.d.ts +0 -8
- package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
- package/packages/cli/dist/install/orchestrator.js +3 -54
- package/packages/cli/dist/install/orchestrator.js.map +1 -1
- package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
- package/packages/cli/dist/server/routes/runs.js +81 -3
- package/packages/cli/dist/server/routes/runs.js.map +1 -1
- package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -1
- package/packages/cli/dist/server/routes/workflows.js +76 -17
- package/packages/cli/dist/server/routes/workflows.js.map +1 -1
- package/packages/cli/dist/server/services/execution-manager.d.ts +11 -1
- package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -1
- package/packages/cli/dist/server/services/execution-manager.js +88 -17
- package/packages/cli/dist/server/services/execution-manager.js.map +1 -1
- package/packages/cli/dist/server/static.d.ts.map +1 -1
- package/packages/cli/dist/server/static.js +4 -1
- package/packages/cli/dist/server/static.js.map +1 -1
- package/packages/cli/dist/server/workflow-path.d.ts +3 -0
- package/packages/cli/dist/server/workflow-path.d.ts.map +1 -0
- package/packages/cli/dist/server/workflow-path.js +25 -0
- package/packages/cli/dist/server/workflow-path.js.map +1 -0
- package/packages/core/dist/store/recovery.d.ts.map +1 -1
- package/packages/core/dist/store/recovery.js +12 -1
- package/packages/core/dist/store/recovery.js.map +1 -1
- package/packages/core/dist/store/run-store.d.ts +3 -0
- package/packages/core/dist/store/run-store.d.ts.map +1 -1
- package/packages/core/dist/store/run-store.js +33 -0
- package/packages/core/dist/store/run-store.js.map +1 -1
- package/packages/core/dist/store/types.d.ts +2 -2
- package/packages/core/dist/store/types.d.ts.map +1 -1
- package/packages/core/dist/store/types.js.map +1 -1
- package/packages/core/dist/store/wal.js +1 -1
- package/packages/core/dist/store/wal.js.map +1 -1
- package/packages/web/dist/web/3rdpartylicenses.txt +26 -26
- package/packages/web/dist/web/browser/chunk-4YPNNQ2T.js +4 -0
- package/packages/web/dist/web/browser/chunk-E227ZHPJ.js +1 -0
- package/packages/web/dist/web/browser/chunk-JFBK3MNW.js +1 -0
- package/packages/web/dist/web/browser/chunk-L2VOQBBI.js +1 -0
- package/packages/web/dist/web/browser/chunk-OJJM5VOH.js +1 -0
- package/packages/web/dist/web/browser/chunk-U2H3QYAG.js +5 -0
- package/packages/web/dist/web/browser/chunk-VA7KFQOR.js +1 -0
- package/packages/web/dist/web/browser/chunk-WV3C6DNH.js +1 -0
- package/packages/web/dist/web/browser/index.html +2 -2
- package/packages/web/dist/web/browser/main-THGFWXYL.js +1 -0
- package/packages/web/dist/web/browser/{styles-JBPZVY54.css → styles-PWTTI45T.css} +1 -1
- package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +0 -1
- package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +0 -1
- package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +0 -1
- package/packages/web/dist/web/browser/chunk-RGFLNLPM.js +0 -1
- package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +0 -5
- package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +0 -1
- package/packages/web/dist/web/browser/main-IIUZVPMI.js +0 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/adapters/antigravity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/adapters/antigravity.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAG1G,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,eAAO,MAAM,kBAAkB,EAAE,eA0FhC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// packages/cli/src/adapters/antigravity.ts
|
|
3
|
-
// Antigravity (Google `agy`) adapter.
|
|
4
|
-
//
|
|
5
|
-
// written to the GLOBAL file ~/.gemini/antigravity/mcp_config.json.
|
|
3
|
+
// Antigravity (Google `agy`) adapter. Writes slash-command proxies and MCP only;
|
|
4
|
+
// VSAF skill content stays canonical under .vsaf/skills.
|
|
6
5
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
6
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
7
|
};
|
|
@@ -32,31 +31,11 @@ exports.antigravityAdapter = {
|
|
|
32
31
|
install(ctx) {
|
|
33
32
|
const result = (0, adapter_js_1.emptyResult)('antigravity');
|
|
34
33
|
const agentsDir = (0, path_1.join)(ctx.projectPath, '.agents');
|
|
35
|
-
const skillsDir = (0, path_1.join)(agentsDir, 'skills');
|
|
36
34
|
const workflowsDir = (0, path_1.join)(agentsDir, 'workflows');
|
|
37
35
|
const rulesDir = (0, path_1.join)(agentsDir, 'rules');
|
|
38
36
|
(0, fs_1.mkdirSync)(workflowsDir, { recursive: true });
|
|
39
37
|
(0, fs_1.mkdirSync)(rulesDir, { recursive: true });
|
|
40
|
-
// 1.
|
|
41
|
-
const deploy = (0, shared_js_1.deploySkills)(ctx.packDir, ctx.packName, ctx.deployedSkillNames, skillsDir, { force: ctx.options.force });
|
|
42
|
-
if (ctx.packInfo.bundledNames.length > 0) {
|
|
43
|
-
const bundled = (0, shared_js_1.deploySkills)(ctx.packDir, ctx.packName, ctx.packInfo.bundledNames, skillsDir, { force: ctx.options.force, noPrefix: true });
|
|
44
|
-
deploy.deployed.push(...bundled.deployed);
|
|
45
|
-
deploy.skipped.push(...bundled.skipped);
|
|
46
|
-
}
|
|
47
|
-
// Deploy _shared/ helper folder if pack has it
|
|
48
|
-
const sharedSrc = (0, path_1.join)(ctx.packDir, '_shared');
|
|
49
|
-
if ((0, fs_1.existsSync)(sharedSrc)) {
|
|
50
|
-
const sharedTarget = (0, path_1.join)(skillsDir, '_shared', ctx.packName);
|
|
51
|
-
if ((0, fs_1.existsSync)(sharedTarget)) {
|
|
52
|
-
(0, fs_1.rmSync)(sharedTarget, { recursive: true, force: true });
|
|
53
|
-
}
|
|
54
|
-
(0, fs_1.mkdirSync)((0, path_1.join)(skillsDir, '_shared'), { recursive: true });
|
|
55
|
-
(0, fs_1.cpSync)(sharedSrc, sharedTarget, { recursive: true });
|
|
56
|
-
deploy.deployed.push(`_shared/${ctx.packName}`);
|
|
57
|
-
}
|
|
58
|
-
result.skills = deploy;
|
|
59
|
-
// 2. Workflows (Slash Commands) → .agents/workflows/<name>.md
|
|
38
|
+
// 1. Workflows (Slash Commands) → .agents/workflows/<name>.md
|
|
60
39
|
const workflowNames = [];
|
|
61
40
|
if (ctx.packInfo.workflows && Object.keys(ctx.packInfo.workflows).length > 0) {
|
|
62
41
|
for (const [filename, yamlContent] of Object.entries(ctx.packInfo.workflows)) {
|
|
@@ -95,23 +74,23 @@ exports.antigravityAdapter = {
|
|
|
95
74
|
}
|
|
96
75
|
}
|
|
97
76
|
result.commands = workflowNames;
|
|
98
|
-
//
|
|
77
|
+
// 2. Rules summary listing the workflows and canonical skill location.
|
|
99
78
|
const ruleBody = `---\nname: vsaf-${ctx.packName}\ndescription: VSAF ${ctx.packName} workflows and skills for Antigravity\n---\n\n`
|
|
100
79
|
+ `# VSAF ${ctx.packName}\n\n`
|
|
101
80
|
+ (workflowNames.length > 0 ? `Workflows (invoke with \`/name\`):\n` + workflowNames.map(w => `- \`/${w}\``).join('\n') + '\n\n' : '')
|
|
102
|
-
+ `Skills:
|
|
81
|
+
+ `Skills: Read from canonical \`.vsaf/skills/\`; do not copy them into \`.agents/skills/\`.\n\n`
|
|
103
82
|
+ `## Artifact Write Boundary\n\n`
|
|
104
83
|
+ `- All generated knowledge, documentation, SDLC artifacts, reports, and agent-readable markdown MUST be created only at the project root beside \`.vsaf\` (for example \`CONTEXT.md\`, \`AGENTS.md\`) or inside the root \`.vsaf/\` directory.\n`
|
|
105
84
|
+ `- Do NOT automatically create or update \`docs/\`, \`.vsaf/\`, \`CONTEXT.md\`, \`AGENTS.md\`, knowledge files, reports, or generated artifacts inside service/subproject folders.\n`
|
|
106
85
|
+ `- For service-specific notes, write under root \`.vsaf/docs/\` using the service name in the path or filename.\n`
|
|
107
86
|
+ `- Write inside a service/subproject folder only when the user explicitly authorizes that path, or when the task is a source-code/test change for that service.\n`;
|
|
108
87
|
(0, fs_1.writeFileSync)((0, path_1.join)(rulesDir, `vsaf-${ctx.packName}.md`), ruleBody, 'utf-8');
|
|
109
|
-
//
|
|
88
|
+
// 3. MCP → GLOBAL ~/.gemini/antigravity/mcp_config.json (absolute bin via getGitnexusMcpEntry).
|
|
110
89
|
const home = ctx.options._homeDir ?? (0, os_1.homedir)();
|
|
111
90
|
result.mcp = (0, shared_js_1.writeJsonMcp)(antigravityMcpPath(home), { vsaf: (0, shared_js_1.getVsafMcpEntry)(), gitnexus: (0, shared_js_1.getGitnexusMcpEntry)() });
|
|
112
|
-
//
|
|
113
|
-
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=antigravity`, `## VSAF \`${ctx.packName}\` (Antigravity)\n\nWorkflows: \`.agents/workflows/\` (\`/name\`) ·
|
|
114
|
-
//
|
|
91
|
+
// 4. Instruction marker block in AGENTS.md.
|
|
92
|
+
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=antigravity`, `## VSAF \`${ctx.packName}\` (Antigravity)\n\nWorkflows: \`.agents/workflows/\` (\`/name\`) · Canonical skills: \`.vsaf/skills/\` · Commands: \`.vsaf/commands/\` · Rules: \`.agents/rules/\` · MCP: \`~/.gemini/antigravity/mcp_config.json\` (vsaf + gitnexus, global).\n\nWhen a workflow/node references a skill, read \`.vsaf/commands/<name>.md\` first, then \`.vsaf/skills/<name>/SKILL.md\` and any files it includes. Do not install or copy skill directories into \`.agents/skills/\`.\n\nArtifact boundary: generated knowledge/docs/artifacts stay at project root beside \`.vsaf\` or inside root \`.vsaf/\`; never auto-write them inside service/subproject folders unless explicitly authorized.`);
|
|
93
|
+
// 5. Binaries.
|
|
115
94
|
if (!ctx.options._skipGraphify && !(0, shared_js_1.installGraphifyPlatform)('antigravity')) {
|
|
116
95
|
result.warnings.push('graphify antigravity install failed — run: graphify install --platform antigravity');
|
|
117
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/adapters/antigravity.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C
|
|
1
|
+
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/adapters/antigravity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAI1G,eAAO,MAAM,aAAa,EAAE,eA0B3B,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// packages/cli/src/adapters/claude.ts
|
|
3
|
-
// Claude Code adapter.
|
|
4
|
-
// stays
|
|
5
|
-
// (cursor/codex/antigravity) compose shared helpers instead.
|
|
3
|
+
// Claude Code adapter. Writes only MCP/instruction references; skill content
|
|
4
|
+
// stays canonical under .vsaf/skills.
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.claudeAdapter = void 0;
|
|
8
7
|
const fs_1 = require("fs");
|
|
9
8
|
const path_1 = require("path");
|
|
10
|
-
const install_js_1 = require("../commands/install.js");
|
|
11
9
|
const adapter_js_1 = require("./adapter.js");
|
|
10
|
+
const install_js_1 = require("../commands/install.js");
|
|
11
|
+
const shared_js_1 = require("./shared.js");
|
|
12
12
|
exports.claudeAdapter = {
|
|
13
13
|
id: 'claude',
|
|
14
14
|
graphifyPlatform: 'claude',
|
|
@@ -20,13 +20,11 @@ exports.claudeAdapter = {
|
|
|
20
20
|
},
|
|
21
21
|
install(ctx) {
|
|
22
22
|
const result = (0, adapter_js_1.emptyResult)('claude');
|
|
23
|
-
|
|
24
|
-
result.skills = r.deploy;
|
|
25
|
-
result.commands = r.init.commandsCreated;
|
|
23
|
+
(0, install_js_1.ensureMcpConfig)(ctx.projectPath);
|
|
26
24
|
result.mcp = { path: (0, path_1.join)(ctx.projectPath, '.mcp.json'), servers: ['vsaf', 'gitnexus'] };
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
result.warnings.push(
|
|
25
|
+
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'CLAUDE.md'), `pack=${ctx.packName} ide=claude`, `## VSAF \`${ctx.packName}\` (Claude)\n\nCanonical skills live in \`.vsaf/skills/\`; do not copy them into \`.claude/skills/\`. Commands live in \`.vsaf/commands/\` and workflows in \`.vsaf/workflows/\`. When executing a VSAF command, read the referenced \`.vsaf/commands/<name>.md\` and \`.vsaf/skills/<name>/SKILL.md\` files.\n\nArtifact boundary: generated knowledge/docs/artifacts stay at project root beside \`.vsaf\` or inside root \`.vsaf/\`; never auto-write them inside service/subproject folders unless explicitly authorized.`);
|
|
26
|
+
if (!ctx.options._skipGraphify && !(0, shared_js_1.installGraphifyPlatform)('claude')) {
|
|
27
|
+
result.warnings.push('graphify claude install failed — run: graphify install');
|
|
30
28
|
}
|
|
31
29
|
return result;
|
|
32
30
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,6EAA6E;AAC7E,sCAAsC;;;AAEtC,2BAAgC;AAChC,+BAA4B;AAC5B,6CAA0G;AAC1G,uDAAyD;AACzD,2CAAuE;AAE1D,QAAA,aAAa,GAAoB;IAC5C,EAAE,EAAE,QAAQ;IACZ,gBAAgB,EAAE,QAAQ;IAE1B,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,CAAC,GAAmB;QACzB,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,QAAQ,CAAC,CAAC;QACrC,IAAA,4BAAe,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,IAAA,WAAI,EAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACzF,IAAA,2BAAe,EACb,IAAA,WAAI,EAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAClC,QAAQ,GAAG,CAAC,QAAQ,aAAa,EACjC,aAAa,GAAG,CAAC,QAAQ,+fAA+f,CACzhB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAA,mCAAuB,EAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAW1G,eAAO,MAAM,YAAY,EAAE,eAyC1B,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// packages/cli/src/adapters/codex.ts
|
|
3
|
-
// Codex adapter.
|
|
4
|
-
//
|
|
5
|
-
// separate command files — the skill itself is the invocable unit.
|
|
3
|
+
// Codex adapter. Writes MCP + AGENTS.md references only; VSAF skill content stays
|
|
4
|
+
// canonical under .vsaf/skills.
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.codexAdapter = void 0;
|
|
8
7
|
const fs_1 = require("fs");
|
|
@@ -28,9 +27,7 @@ exports.codexAdapter = {
|
|
|
28
27
|
},
|
|
29
28
|
install(ctx) {
|
|
30
29
|
const result = (0, adapter_js_1.emptyResult)('codex');
|
|
31
|
-
// 1.
|
|
32
|
-
result.skills = (0, shared_js_1.deploySkills)(ctx.packDir, ctx.packName, ctx.deployedSkillNames, (0, path_1.join)(ctx.projectPath, '.agents', 'skills'), { force: ctx.options.force });
|
|
33
|
-
// 2. MCP → project .codex/config.toml (surgical merge, preserves trust).
|
|
30
|
+
// 1. MCP → project .codex/config.toml (surgical merge, preserves trust).
|
|
34
31
|
const tomlPath = (0, path_1.join)(ctx.projectPath, '.codex', 'config.toml');
|
|
35
32
|
try {
|
|
36
33
|
result.mcp = (0, toml_mcp_js_1.writeTomlMcp)(tomlPath, {
|
|
@@ -42,9 +39,9 @@ exports.codexAdapter = {
|
|
|
42
39
|
catch (err) {
|
|
43
40
|
result.warnings.push(`Không cập nhật được .codex/config.toml: ${err.message}`);
|
|
44
41
|
}
|
|
45
|
-
//
|
|
46
|
-
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=codex`, `## VSAF \`${ctx.packName}\` (Codex)\n\
|
|
47
|
-
//
|
|
42
|
+
// 2. Instruction marker block in AGENTS.md.
|
|
43
|
+
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=codex`, `## VSAF \`${ctx.packName}\` (Codex)\n\nCanonical skills: \`.vsaf/skills/\` · Commands: \`.vsaf/commands/\` · Workflows: \`.vsaf/workflows/\` · MCP: \`.codex/config.toml\` [mcp_servers] (vsaf + gitnexus).\n\nWhen a workflow/node references a skill, read \`.vsaf/commands/<name>.md\` first, then \`.vsaf/skills/<name>/SKILL.md\` and any files it includes. Do not install or copy skill directories into \`.agents/skills/\`.\n\nArtifact boundary: generated knowledge/docs/artifacts stay at project root beside \`.vsaf\` or inside root \`.vsaf/\`; never auto-write them inside service/subproject folders unless explicitly authorized.`);
|
|
44
|
+
// 3. Binaries.
|
|
48
45
|
if (!ctx.options._skipGraphify && !(0, shared_js_1.installGraphifyPlatform)('codex')) {
|
|
49
46
|
result.warnings.push('graphify codex install failed — run: graphify install --platform codex');
|
|
50
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/adapters/codex.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,kFAAkF;AAClF,gCAAgC;;;AAEhC,2BAAgC;AAChC,+BAA4B;AAC5B,2BAA6B;AAC7B,6CAA0G;AAC1G,2CAA6G;AAC7G,+CAA6C;AAE7C,sFAAsF;AACtF,SAAS,WAAW,CAAC,KAA8B;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC;AAEY,QAAA,YAAY,GAAoB;IAC3C,EAAE,EAAE,OAAO;IACX,gBAAgB,EAAE,OAAO;IAEzB,MAAM,CAAC,WAAmB;QACxB,OAAO,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,CAAC,GAAmB;QACzB,MAAM,MAAM,GAAG,IAAA,wBAAW,EAAC,OAAO,CAAC,CAAC;QAEpC,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,GAAG,IAAA,0BAAY,EAAC,QAAQ,EAAE;gBAClC,IAAI,EAAE,WAAW,CAAC,IAAA,2BAAe,GAAE,CAAC;gBACpC,QAAQ,EAAE,WAAW,CAAC,IAAA,+BAAmB,GAAE,CAAC;aAC7C,CAAC,CAAC;YACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;QACzH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA4C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,4CAA4C;QAC5C,IAAA,2BAAe,EACb,IAAA,WAAI,EAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAClC,QAAQ,GAAG,CAAC,QAAQ,YAAY,EAChC,aAAa,GAAG,CAAC,QAAQ,6lBAA6lB,CACvnB,CAAC;QAEF,eAAe;QACf,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAA,mCAAuB,EAAC,OAAO,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAG1G,eAAO,MAAM,aAAa,EAAE,eAgD3B,CAAC"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// packages/cli/src/adapters/cursor.ts
|
|
3
|
-
// Cursor adapter. Cursor has no native
|
|
4
|
-
//
|
|
5
|
-
// command (full SKILL.md body), and wire MCP to .cursor/mcp.json.
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
3
|
+
// Cursor adapter. Cursor has no native VSAF skill object, so it writes rule and
|
|
4
|
+
// command proxies that point at canonical .vsaf/skills instead of copying skills.
|
|
9
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
6
|
exports.cursorAdapter = void 0;
|
|
11
7
|
const fs_1 = require("fs");
|
|
12
8
|
const path_1 = require("path");
|
|
13
|
-
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
14
9
|
const adapter_js_1 = require("./adapter.js");
|
|
15
10
|
const shared_js_1 = require("./shared.js");
|
|
16
11
|
exports.cursorAdapter = {
|
|
@@ -25,35 +20,38 @@ exports.cursorAdapter = {
|
|
|
25
20
|
install(ctx) {
|
|
26
21
|
const result = (0, adapter_js_1.emptyResult)('cursor');
|
|
27
22
|
const cursorDir = (0, path_1.join)(ctx.projectPath, '.cursor');
|
|
28
|
-
const skillsDir = (0, path_1.join)(cursorDir, 'skills');
|
|
29
23
|
const rulesDir = (0, path_1.join)(cursorDir, 'rules');
|
|
30
24
|
const commandsDir = (0, path_1.join)(cursorDir, 'commands');
|
|
31
|
-
// 1. Copy skill folders verbatim (prefixed), preserving supporting files.
|
|
32
|
-
result.skills = (0, shared_js_1.deploySkills)(ctx.packDir, ctx.packName, ctx.deployedSkillNames, skillsDir, { force: ctx.options.force });
|
|
33
25
|
(0, fs_1.mkdirSync)(rulesDir, { recursive: true });
|
|
34
26
|
(0, fs_1.mkdirSync)(commandsDir, { recursive: true });
|
|
35
|
-
//
|
|
36
|
-
for (const name of
|
|
37
|
-
const
|
|
38
|
-
if
|
|
39
|
-
|
|
40
|
-
const raw = (0, fs_1.readFileSync)(skillMd, 'utf-8');
|
|
41
|
-
const { data, content } = (0, gray_matter_1.default)(raw);
|
|
42
|
-
const description = typeof data.description === 'string' ? data.description : name;
|
|
43
|
-
const mdc = `---\ndescription: ${description}\nglobs: **/*\nalwaysApply: false\n---\n\n# ${name}\n\n> Skill source: \`.cursor/skills/${name}/SKILL.md\`\n\n${content}`;
|
|
27
|
+
// 1. Per skill → rule (.mdc) + command (.md) that references .vsaf.
|
|
28
|
+
for (const name of proxySkillNames(ctx)) {
|
|
29
|
+
const description = `Run VSAF skill ${name}`;
|
|
30
|
+
const body = `# ${name}\n\nRead \`.vsaf/commands/${name}.md\` if it exists, then read \`.vsaf/skills/${name}/SKILL.md\` and any referenced files before acting. Treat \`.vsaf/skills/${name}\` as the single source of truth; do not copy or edit IDE-local skill folders.\n`;
|
|
31
|
+
const mdc = `---\ndescription: ${description}\nglobs: **/*\nalwaysApply: false\n---\n\n${body}`;
|
|
44
32
|
(0, fs_1.writeFileSync)((0, path_1.join)(rulesDir, `${name}.mdc`), mdc, 'utf-8');
|
|
45
|
-
(0, fs_1.writeFileSync)((0, path_1.join)(commandsDir, `${name}.md`),
|
|
33
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(commandsDir, `${name}.md`), body, 'utf-8');
|
|
46
34
|
result.commands.push(name);
|
|
47
35
|
}
|
|
48
|
-
//
|
|
36
|
+
// 2. MCP (project-level JSON).
|
|
49
37
|
result.mcp = (0, shared_js_1.writeJsonMcp)((0, path_1.join)(cursorDir, 'mcp.json'), { vsaf: (0, shared_js_1.getVsafMcpEntry)(), gitnexus: (0, shared_js_1.getGitnexusMcpEntry)() });
|
|
50
|
-
//
|
|
51
|
-
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=cursor`, `## VSAF \`${ctx.packName}\` (Cursor)\n\nRules: \`.cursor/rules/\` · Commands: \`.cursor/commands/\` ·
|
|
52
|
-
//
|
|
38
|
+
// 3. Instruction marker block in AGENTS.md.
|
|
39
|
+
(0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=cursor`, `## VSAF \`${ctx.packName}\` (Cursor)\n\nRules: \`.cursor/rules/\` · Commands: \`.cursor/commands/\` · Canonical skills: \`.vsaf/skills/\` · MCP: \`.cursor/mcp.json\` (vsaf + gitnexus).\n\nCursor rules/commands are proxies only. When invoked, read \`.vsaf/commands/<name>.md\` and \`.vsaf/skills/<name>/SKILL.md\`; do not install or copy skill directories into \`.cursor/skills/\`.\n\nArtifact boundary: generated knowledge/docs/artifacts stay at project root beside \`.vsaf\` or inside root \`.vsaf/\`; never auto-write them inside service/subproject folders unless explicitly authorized.`);
|
|
40
|
+
// 4. Binaries (best-effort; skipped in tests / --skip-deps).
|
|
53
41
|
if (!ctx.options._skipGraphify && !(0, shared_js_1.installGraphifyPlatform)('cursor')) {
|
|
54
42
|
result.warnings.push('graphify cursor install failed — run: graphify cursor install');
|
|
55
43
|
}
|
|
56
44
|
return result;
|
|
57
45
|
},
|
|
58
46
|
};
|
|
47
|
+
function proxySkillNames(ctx) {
|
|
48
|
+
const packSkills = ctx.packInfo.skillNames
|
|
49
|
+
.filter(skill => !shared_js_1.SKIP_SKILLS.includes(skill))
|
|
50
|
+
.map(skill => `${ctx.packName}-${flattenSkillName(skill)}`);
|
|
51
|
+
const bundledSkills = ctx.packInfo.bundledNames.map(flattenSkillName);
|
|
52
|
+
return [...packSkills, ...bundledSkills];
|
|
53
|
+
}
|
|
54
|
+
function flattenSkillName(skill) {
|
|
55
|
+
return skill.split(/[\\/]/).filter(Boolean).join('-');
|
|
56
|
+
}
|
|
59
57
|
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/adapters/cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BjE"}
|
|
@@ -4,7 +4,6 @@ exports.execInit = execInit;
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const install_js_1 = require("./install.js");
|
|
7
|
-
const skill_js_1 = require("./skill.js");
|
|
8
7
|
const DEFAULT_CONFIG = `provider: claude
|
|
9
8
|
model: sonnet
|
|
10
9
|
isolation:
|
|
@@ -31,26 +30,15 @@ async function execInit(projectPath) {
|
|
|
31
30
|
(0, fs_1.writeFileSync)((0, path_1.join)(vsafDir, 'config.yaml'), DEFAULT_CONFIG, 'utf-8');
|
|
32
31
|
// Create/merge .mcp.json with vsaf + gitnexus MCP servers
|
|
33
32
|
(0, install_js_1.ensureMcpConfig)(projectPath);
|
|
34
|
-
// Deploy SDLC
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Deploy bundled skills (BMAD + mattpocock) without prefix (external dependencies)
|
|
40
|
-
if (packInfo.bundledNames.length > 0) {
|
|
41
|
-
const bundled = (0, install_js_1.deploySkills)(packDir, 'sdlc', packInfo.bundledNames, skillsDir, { force: false, noPrefix: true });
|
|
42
|
-
deploy.deployed.push(...bundled.deployed);
|
|
43
|
-
deploy.skipped.push(...bundled.skipped);
|
|
44
|
-
}
|
|
45
|
-
if (deploy.deployed.length > 0 || deploy.skipped.length > 0) {
|
|
46
|
-
console.log(`\n[vsaf] Skills deployed to ${skillsDir}`);
|
|
47
|
-
for (const name of deploy.deployed)
|
|
33
|
+
// Deploy SDLC substrate by default into .vsaf only.
|
|
34
|
+
const substrate = (0, install_js_1.deployEngineSubstrate)('sdlc', projectPath, { force: false });
|
|
35
|
+
if (substrate.skillsDeployed.length > 0) {
|
|
36
|
+
console.log(`\n[vsaf] Skills deployed to ${(0, path_1.join)(projectPath, '.vsaf', 'skills')}`);
|
|
37
|
+
for (const name of substrate.skillsDeployed)
|
|
48
38
|
console.log(` ✓ ${name}`);
|
|
49
|
-
|
|
50
|
-
console.log(` ⊘ ${name} (exists, use --force to overwrite)`);
|
|
51
|
-
console.log(` ${deploy.deployed.length} deployed, ${deploy.skipped.length} skipped\n`);
|
|
39
|
+
console.log(` ${substrate.skillsDeployed.length} deployed\n`);
|
|
52
40
|
}
|
|
53
41
|
console.log(`\n[vsaf] Initialized .vsaf/ at ${projectPath}`);
|
|
54
|
-
console.log('[vsaf] Next: vsaf install sdlc (
|
|
42
|
+
console.log('[vsaf] Next: vsaf install sdlc --ide-artifacts proxy (optional IDE references + deps)\n');
|
|
55
43
|
}
|
|
56
44
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;AAkBA,4BA2BC;AA7CD,2BAA0D;AAC1D,+BAA4B;AAC5B,6CAAsE;AAEtE,MAAM,cAAc,GAAG;;;;;;;;;;;;CAYtB,CAAC;AAEK,KAAK,UAAU,QAAQ,CAAC,WAAmB;IAChD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,OAAO,EAAE,aAAa,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAErE,0DAA0D;IAC1D,IAAA,4BAAe,EAAC,WAAW,CAAC,CAAC;IAE7B,oDAAoD;IACpD,MAAM,SAAS,GAAG,IAAA,kCAAqB,EAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnF,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,cAAc;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,cAAc,CAAC,MAAM,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;AAC1G,CAAC"}
|
|
@@ -75,13 +75,10 @@ export declare function ghInstallHint(): string;
|
|
|
75
75
|
* vsaf_start) so it works regardless of which IDE was installed.
|
|
76
76
|
*
|
|
77
77
|
* The engine resolves workflows at `.vsaf/workflows/<pack>/`, commands at
|
|
78
|
-
* `.vsaf/commands/`, and skills at `.
|
|
79
|
-
*
|
|
80
|
-
* + `.vsaf/{commands,workflows}`. For a NON-Claude install (antigravity/cursor/
|
|
81
|
-
* codex only) none of that exists, so the harness silently can't run — this
|
|
82
|
-
* deploys skills to `.vsaf/skills/` plus the commands/workflows substrate.
|
|
78
|
+
* `.vsaf/commands/`, and skills at `.vsaf/skills/`. IDE folders are reference
|
|
79
|
+
* surfaces only and must not receive copied SKILL.md directories.
|
|
83
80
|
*
|
|
84
|
-
* Idempotent;
|
|
81
|
+
* Idempotent; overwrites only when `force` is set.
|
|
85
82
|
*/
|
|
86
83
|
export declare function deployEngineSubstrate(pack: string, projectPath: string, options?: InternalInstallOptions): {
|
|
87
84
|
skillsDeployed: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -622,19 +622,16 @@ function checkNodeLTS() {
|
|
|
622
622
|
* vsaf_start) so it works regardless of which IDE was installed.
|
|
623
623
|
*
|
|
624
624
|
* The engine resolves workflows at `.vsaf/workflows/<pack>/`, commands at
|
|
625
|
-
* `.vsaf/commands/`, and skills at `.
|
|
626
|
-
*
|
|
627
|
-
* + `.vsaf/{commands,workflows}`. For a NON-Claude install (antigravity/cursor/
|
|
628
|
-
* codex only) none of that exists, so the harness silently can't run — this
|
|
629
|
-
* deploys skills to `.vsaf/skills/` plus the commands/workflows substrate.
|
|
625
|
+
* `.vsaf/commands/`, and skills at `.vsaf/skills/`. IDE folders are reference
|
|
626
|
+
* surfaces only and must not receive copied SKILL.md directories.
|
|
630
627
|
*
|
|
631
|
-
* Idempotent;
|
|
628
|
+
* Idempotent; overwrites only when `force` is set.
|
|
632
629
|
*/
|
|
633
630
|
function deployEngineSubstrate(pack, projectPath, options = {}) {
|
|
634
631
|
const packDir = (0, skill_js_1.resolveSource)(pack);
|
|
635
632
|
const packInfo = (0, skill_js_1.resolvePackInfo)(pack, projectPath);
|
|
636
633
|
const skillsDir = (0, path_1.join)(projectPath, '.vsaf', 'skills');
|
|
637
|
-
// Skills → .vsaf/skills (
|
|
634
|
+
// Skills → .vsaf/skills (canonical location). Pack skills keep the
|
|
638
635
|
// pack-name prefix (matching command `skill:` refs); bundled skills are bare.
|
|
639
636
|
const deploy = deploySkills(packDir, pack, packInfo.skillNames, skillsDir, { force: options.force });
|
|
640
637
|
if (packInfo.bundledNames.length > 0) {
|
|
@@ -642,7 +639,7 @@ function deployEngineSubstrate(pack, projectPath, options = {}) {
|
|
|
642
639
|
deploy.deployed.push(...bundled.deployed);
|
|
643
640
|
deploy.skipped.push(...bundled.skipped);
|
|
644
641
|
}
|
|
645
|
-
// _shared helpers, namespaced by pack
|
|
642
|
+
// _shared helpers, namespaced by pack.
|
|
646
643
|
const sharedSrc = (0, path_1.join)(packDir, '_shared');
|
|
647
644
|
if ((0, fs_1.existsSync)(sharedSrc)) {
|
|
648
645
|
const sharedTarget = (0, path_1.join)(skillsDir, '_shared', pack);
|
|
@@ -668,7 +665,7 @@ function execInstall(pack, projectPath, options = {}) {
|
|
|
668
665
|
if (pack.includes('/') || pack.includes('\\') || pack.startsWith('.') || pack.startsWith('http')) {
|
|
669
666
|
throw new Error(`"${pack}" is not a valid pack name. Use a built-in pack name (e.g. "sdlc").`);
|
|
670
667
|
}
|
|
671
|
-
const skillsDir = options._skillsDir ?? (0, path_1.join)(projectPath, '.
|
|
668
|
+
const skillsDir = options._skillsDir ?? (0, path_1.join)(projectPath, '.vsaf', 'skills');
|
|
672
669
|
// Step 1: Resolve pack and deploy skills (prefixed with pack name)
|
|
673
670
|
const packDir = (0, skill_js_1.resolveSource)(pack);
|
|
674
671
|
const packInfo = (0, skill_js_1.resolvePackInfo)(pack, projectPath);
|