@ngocsangairvds/vsaf 5.1.6 → 5.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/package.json +4 -1
  2. package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
  3. package/packages/cli/dist/adapters/antigravity.js +9 -30
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/claude.d.ts.map +1 -1
  6. package/packages/cli/dist/adapters/claude.js +8 -10
  7. package/packages/cli/dist/adapters/claude.js.map +1 -1
  8. package/packages/cli/dist/adapters/codex.d.ts.map +1 -1
  9. package/packages/cli/dist/adapters/codex.js +6 -9
  10. package/packages/cli/dist/adapters/codex.js.map +1 -1
  11. package/packages/cli/dist/adapters/cursor.d.ts.map +1 -1
  12. package/packages/cli/dist/adapters/cursor.js +22 -24
  13. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  14. package/packages/cli/dist/commands/init.d.ts.map +1 -1
  15. package/packages/cli/dist/commands/init.js +7 -19
  16. package/packages/cli/dist/commands/init.js.map +1 -1
  17. package/packages/cli/dist/commands/install.d.ts +3 -6
  18. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  19. package/packages/cli/dist/commands/install.js +6 -9
  20. package/packages/cli/dist/commands/install.js.map +1 -1
  21. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  22. package/packages/cli/dist/commands/skill.js +35 -14
  23. package/packages/cli/dist/commands/skill.js.map +1 -1
  24. package/packages/cli/dist/index.js +2 -2
  25. package/packages/cli/dist/index.js.map +1 -1
  26. package/packages/cli/dist/install/orchestrator.d.ts +0 -8
  27. package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
  28. package/packages/cli/dist/install/orchestrator.js +3 -54
  29. package/packages/cli/dist/install/orchestrator.js.map +1 -1
  30. package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
  31. package/packages/cli/dist/server/routes/runs.js +81 -3
  32. package/packages/cli/dist/server/routes/runs.js.map +1 -1
  33. package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -1
  34. package/packages/cli/dist/server/routes/workflows.js +76 -17
  35. package/packages/cli/dist/server/routes/workflows.js.map +1 -1
  36. package/packages/cli/dist/server/services/execution-manager.d.ts +11 -1
  37. package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -1
  38. package/packages/cli/dist/server/services/execution-manager.js +88 -17
  39. package/packages/cli/dist/server/services/execution-manager.js.map +1 -1
  40. package/packages/cli/dist/server/static.d.ts.map +1 -1
  41. package/packages/cli/dist/server/static.js +4 -1
  42. package/packages/cli/dist/server/static.js.map +1 -1
  43. package/packages/cli/dist/server/workflow-path.d.ts +3 -0
  44. package/packages/cli/dist/server/workflow-path.d.ts.map +1 -0
  45. package/packages/cli/dist/server/workflow-path.js +25 -0
  46. package/packages/cli/dist/server/workflow-path.js.map +1 -0
  47. package/packages/core/dist/isolation/workspace-manager.js +1 -1
  48. package/packages/core/dist/isolation/workspace-manager.js.map +1 -1
  49. package/packages/core/dist/store/recovery.d.ts.map +1 -1
  50. package/packages/core/dist/store/recovery.js +12 -1
  51. package/packages/core/dist/store/recovery.js.map +1 -1
  52. package/packages/core/dist/store/run-store.d.ts +3 -0
  53. package/packages/core/dist/store/run-store.d.ts.map +1 -1
  54. package/packages/core/dist/store/run-store.js +33 -0
  55. package/packages/core/dist/store/run-store.js.map +1 -1
  56. package/packages/core/dist/store/types.d.ts +2 -2
  57. package/packages/core/dist/store/types.d.ts.map +1 -1
  58. package/packages/core/dist/store/types.js.map +1 -1
  59. package/packages/core/dist/store/wal.js +1 -1
  60. package/packages/core/dist/store/wal.js.map +1 -1
  61. package/packages/web/dist/web/3rdpartylicenses.txt +26 -26
  62. package/packages/web/dist/web/browser/chunk-4YPNNQ2T.js +4 -0
  63. package/packages/web/dist/web/browser/chunk-E227ZHPJ.js +1 -0
  64. package/packages/web/dist/web/browser/chunk-JFBK3MNW.js +1 -0
  65. package/packages/web/dist/web/browser/chunk-L2VOQBBI.js +1 -0
  66. package/packages/web/dist/web/browser/chunk-OJJM5VOH.js +1 -0
  67. package/packages/web/dist/web/browser/chunk-U2H3QYAG.js +5 -0
  68. package/packages/web/dist/web/browser/chunk-VA7KFQOR.js +1 -0
  69. package/packages/web/dist/web/browser/chunk-WV3C6DNH.js +1 -0
  70. package/packages/web/dist/web/browser/index.html +2 -2
  71. package/packages/web/dist/web/browser/main-THGFWXYL.js +1 -0
  72. package/packages/web/dist/web/browser/{styles-JBPZVY54.css → styles-PWTTI45T.css} +1 -1
  73. package/scripts/win-vm-prereqs.ps1 +40 -0
  74. package/skills/vds-skill/runtime/.claude/phase7-CLOSURE.md +100 -0
  75. package/skills/vds-skill/runtime/AGENTS.md +250 -0
  76. package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +0 -1
  77. package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +0 -1
  78. package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +0 -1
  79. package/packages/web/dist/web/browser/chunk-RGFLNLPM.js +0 -1
  80. package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +0 -5
  81. package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +0 -1
  82. package/packages/web/dist/web/browser/main-IIUZVPMI.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "5.1.6",
3
+ "version": "5.1.8",
4
4
  "description": "logging step",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -14,6 +14,9 @@
14
14
  "default": "./packages/core/dist/index.js"
15
15
  }
16
16
  },
17
+ "workspaces": [
18
+ "packages/*"
19
+ ],
17
20
  "bin": {
18
21
  "vsaf": "packages/cli/dist/index.js"
19
22
  },
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/adapters/antigravity.ts"],"names":[],"mappings":"AASA,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,eAwHhC,CAAC"}
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. Antigravity natively discovers skills in
4
- // .agents/skills/ and slash commands (workflows) in .agents/workflows/. MCP is
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. Deploy Skills → .agents/skills/ (Antigravity natively discovers skills here).
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
- // 3. Rules summary listing the workflows and skills.
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: Loaded from \`.agents/skills/\`.\n\n`
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
- // 4. MCP → GLOBAL ~/.gemini/antigravity/mcp_config.json (absolute bin via getGitnexusMcpEntry).
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
- // 5. Instruction marker block in AGENTS.md.
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\`) · Skills: \`.agents/skills/\` · Rules: \`.agents/rules/\` · MCP: \`~/.gemini/antigravity/mcp_config.json\` (vsaf + gitnexus, global).\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.`);
114
- // 6. Binaries.
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":"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"}
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":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAE1G,eAAO,MAAM,aAAa,EAAE,eAwB3B,CAAC"}
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. Delegates to the proven execInstall so the Claude output
4
- // stays byte-identical to pre-refactor behaviour (NFR-001, golden gate). New IDEs
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
- const r = (0, install_js_1.execInstall)(ctx.packName, ctx.projectPath, ctx.options);
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
- result.binaries = r.binaries;
28
- if (r.graphify && r.graphify.installed === false && r.graphify.error) {
29
- result.warnings.push(`graphify: ${r.graphify.error}`);
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,gFAAgF;AAChF,kFAAkF;AAClF,6DAA6D;;;AAE7D,2BAAgC;AAChC,+BAA4B;AAC5B,uDAAqD;AACrD,6CAA0G;AAE7F,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,MAAM,CAAC,GAAG,IAAA,wBAAW,EAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;QACzC,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,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
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":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAW1G,eAAO,MAAM,YAAY,EAAE,eAgD1B,CAAC"}
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. Codex natively loads skills from .agents/skills/ (project), reads
4
- // AGENTS.md for instructions, and takes project MCP from .codex/config.toml. No
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. Skills → .agents/skills/ (native discovery), copied verbatim.
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. MCPproject .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
- // 3. Instruction marker block in AGENTS.md.
46
- (0, shared_js_1.writeMarkerFile)((0, path_1.join)(ctx.projectPath, 'AGENTS.md'), `pack=${ctx.packName} ide=codex`, `## VSAF \`${ctx.packName}\` (Codex)\n\nSkills: \`.agents/skills/\` (auto-loaded) · MCP: \`.codex/config.toml\` [mcp_servers] (vsaf + gitnexus).\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.`);
47
- // 4. Binaries.
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,mFAAmF;AACnF,gFAAgF;AAChF,mEAAmE;;;AAEnE,2BAAgC;AAChC,+BAA4B;AAC5B,2BAA6B;AAC7B,6CAA0G;AAC1G,2CAA2H;AAC3H,+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,mEAAmE;QACnE,MAAM,CAAC,MAAM,GAAG,IAAA,wBAAY,EAC1B,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EACjD,IAAA,WAAI,EAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC1C,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAC7B,CAAC;QAEF,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,wUAAwU,CAClW,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
+ {"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":"AAQA,OAAO,EAAE,KAAK,eAAe,EAAwD,MAAM,cAAc,CAAC;AAG1G,eAAO,MAAM,aAAa,EAAE,eAwD3B,CAAC"}
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 "skill" object: copy the skill folders to
4
- // .cursor/skills/, expose each as a .cursor/rules/*.mdc rule + a .cursor/commands/*.md
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
- // 2. Per deployed skill → rule (.mdc) + command (.md, full body).
36
- for (const name of result.skills.deployed) {
37
- const skillMd = (0, path_1.join)(skillsDir, name, 'SKILL.md');
38
- if (!(0, fs_1.existsSync)(skillMd))
39
- continue;
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`), raw, 'utf-8');
33
+ (0, fs_1.writeFileSync)((0, path_1.join)(commandsDir, `${name}.md`), body, 'utf-8');
46
34
  result.commands.push(name);
47
35
  }
48
- // 3. MCP (project-level JSON).
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
- // 4. Instruction marker block in AGENTS.md.
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/\` · Skills: \`.cursor/skills/\` · MCP: \`.cursor/mcp.json\` (vsaf + gitnexus).\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.`);
52
- // 5. Binaries (best-effort; skipped in tests / --skip-deps).
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":"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"}
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":"AAmBA,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCjE"}
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 skills by default (same as `vsaf install sdlc`)
35
- const skillsDir = (0, path_1.join)(projectPath, '.claude', 'skills');
36
- const packDir = (0, skill_js_1.resolveSource)('sdlc');
37
- const packInfo = (0, skill_js_1.resolvePackInfo)('sdlc', projectPath);
38
- const deploy = (0, install_js_1.deploySkills)(packDir, 'sdlc', packInfo.skillNames, skillsDir, { force: false });
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
- for (const name of deploy.skipped)
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 (install npm dependencies)\n');
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":";;AAmBA,4BAuCC;AA1DD,2BAA0D;AAC1D,+BAA4B;AAC5B,6CAA6D;AAC7D,yCAA4D;AAE5D,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,8DAA8D;IAC9D,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAA,0BAAe,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAA,yBAAY,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAE/F,mFAAmF;IACnF,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAA,yBAAY,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,qCAAqC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;AAC9E,CAAC"}
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 `.claude/skills/` (primary) or `.vsaf/skills/`
79
- * (fallback). The Claude path (execInstall) already provisions `.claude/skills`
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; skips skills the engine can already reach via `.claude/skills`.
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 `.claude/skills/` (primary) or `.vsaf/skills/`
626
- * (fallback). The Claude path (execInstall) already provisions `.claude/skills`
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; skips skills the engine can already reach via `.claude/skills`.
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 (engine fallback location). Pack skills keep the
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 (mirror the .claude/skills layout).
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, '.claude', 'skills');
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);