@ngocsangairvds/vsaf 5.0.2 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/cli/dist/install/orchestrator.d.ts +8 -0
- package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
- package/packages/cli/dist/install/orchestrator.js +53 -6
- package/packages/cli/dist/install/orchestrator.js.map +1 -1
- package/packages/core/dist/skills/skill-loader.d.ts.map +1 -1
- package/packages/core/dist/skills/skill-loader.js +5 -3
- package/packages/core/dist/skills/skill-loader.js.map +1 -1
package/package.json
CHANGED
|
@@ -7,6 +7,14 @@ export interface MultiInstallResult {
|
|
|
7
7
|
results: AdapterResult[];
|
|
8
8
|
}
|
|
9
9
|
export declare function runMultiIdeInstall(pack: string, projectPath: string, options: MultiInstallOptions): MultiInstallResult;
|
|
10
|
+
/**
|
|
11
|
+
* Replace an IDE's verbatim skill-dir copies with symlinks into the canonical
|
|
12
|
+
* `.vsaf/skills/<name>` so there is a single source of truth on disk. Posix
|
|
13
|
+
* only — on Windows the copies are left in place (symlinks need privilege and
|
|
14
|
+
* the engine reads `.vsaf/skills` as primary regardless, so correctness holds).
|
|
15
|
+
* Best-effort: any failure leaves the existing copy untouched.
|
|
16
|
+
*/
|
|
17
|
+
export declare function linkIdeSkillsToCanonical(projectPath: string, ideSkillsRelDir: string): void;
|
|
10
18
|
/** True if any IDE hit a hard error — lets the CLI set a non-zero exit code. */
|
|
11
19
|
export declare function hasHardError(result: MultiInstallResult): boolean;
|
|
12
20
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,KAAK,KAAK,EAAuB,KAAK,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAI1G,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,IAAI,EAAE,KAAK,EAAE,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAwEpB;AAiBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAmB3F;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAEhE"}
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
// summary. The Claude path delegates to execInstall (unchanged) for 0-regression.
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.runMultiIdeInstall = runMultiIdeInstall;
|
|
8
|
+
exports.linkIdeSkillsToCanonical = linkIdeSkillsToCanonical;
|
|
8
9
|
exports.hasHardError = hasHardError;
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
9
12
|
const skill_js_1 = require("../commands/skill.js");
|
|
10
13
|
const install_js_1 = require("../commands/install.js");
|
|
11
14
|
const registry_js_1 = require("../adapters/registry.js");
|
|
@@ -52,15 +55,27 @@ function runMultiIdeInstall(pack, projectPath, options) {
|
|
|
52
55
|
const merged = (0, config_js_1.mergeConfig)(base, { ides: okIdes, packs: [pack], vsafVersion: (0, version_js_1.getVersion)() });
|
|
53
56
|
(0, config_js_1.writeConfig)(projectPath, merged);
|
|
54
57
|
}
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
// on antigravity/cursor/codex too.
|
|
60
|
-
if (okIdes.length > 0 && !okIdes.includes('claude')) {
|
|
58
|
+
// Canonical run-harness substrate: .vsaf/skills (the single source the engine
|
|
59
|
+
// reads, primary) + .vsaf/{commands,workflows}. Deployed for EVERY install so
|
|
60
|
+
// the harness (vsaf_start) is IDE-agnostic and never depends on an IDE dir.
|
|
61
|
+
if (okIdes.length > 0) {
|
|
61
62
|
try {
|
|
62
63
|
const sub = (0, install_js_1.deployEngineSubstrate)(pack, projectPath, options);
|
|
63
64
|
console.log(` ✓ vsaf run-harness substrate: ${sub.skillsDeployed.length} skills, ${sub.workflowsCreated.length} workflows -> .vsaf/`);
|
|
65
|
+
// Thin IDE views: replace verbatim skill-dir copies with symlinks into the
|
|
66
|
+
// canonical .vsaf/skills (posix only — Windows keeps copies; the engine
|
|
67
|
+
// reads .vsaf/skills primary either way). Antigravity renders workflows
|
|
68
|
+
// (different format) and is left untouched.
|
|
69
|
+
const VERBATIM_SKILL_DIRS = {
|
|
70
|
+
claude: '.claude/skills',
|
|
71
|
+
cursor: '.cursor/skills',
|
|
72
|
+
codex: '.agents/skills',
|
|
73
|
+
};
|
|
74
|
+
for (const ide of okIdes) {
|
|
75
|
+
const rel = VERBATIM_SKILL_DIRS[ide];
|
|
76
|
+
if (rel)
|
|
77
|
+
linkIdeSkillsToCanonical(projectPath, rel);
|
|
78
|
+
}
|
|
64
79
|
}
|
|
65
80
|
catch (err) {
|
|
66
81
|
console.warn(` ⚠ engine substrate deploy failed: ${err.message}`);
|
|
@@ -83,6 +98,38 @@ function printSummary(results) {
|
|
|
83
98
|
(r.errors.length ? ` — error: ${r.errors.join('; ')}` : ''));
|
|
84
99
|
}
|
|
85
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Replace an IDE's verbatim skill-dir copies with symlinks into the canonical
|
|
103
|
+
* `.vsaf/skills/<name>` so there is a single source of truth on disk. Posix
|
|
104
|
+
* only — on Windows the copies are left in place (symlinks need privilege and
|
|
105
|
+
* the engine reads `.vsaf/skills` as primary regardless, so correctness holds).
|
|
106
|
+
* Best-effort: any failure leaves the existing copy untouched.
|
|
107
|
+
*/
|
|
108
|
+
function linkIdeSkillsToCanonical(projectPath, ideSkillsRelDir) {
|
|
109
|
+
if (process.platform === 'win32')
|
|
110
|
+
return;
|
|
111
|
+
const canonicalBase = (0, path_1.join)(projectPath, '.vsaf', 'skills');
|
|
112
|
+
const ideBase = (0, path_1.join)(projectPath, ideSkillsRelDir);
|
|
113
|
+
if (!(0, fs_1.existsSync)(canonicalBase) || !(0, fs_1.existsSync)(ideBase))
|
|
114
|
+
return;
|
|
115
|
+
for (const name of (0, fs_1.readdirSync)(canonicalBase)) {
|
|
116
|
+
const canonical = (0, path_1.join)(canonicalBase, name);
|
|
117
|
+
const ideDir = (0, path_1.join)(ideBase, name);
|
|
118
|
+
if (!(0, fs_1.existsSync)((0, path_1.join)(canonical, 'SKILL.md')))
|
|
119
|
+
continue; // only real skills
|
|
120
|
+
if (!(0, fs_1.existsSync)(ideDir))
|
|
121
|
+
continue; // IDE didn't deploy this one
|
|
122
|
+
try {
|
|
123
|
+
if ((0, fs_1.lstatSync)(ideDir).isSymbolicLink())
|
|
124
|
+
continue; // already linked
|
|
125
|
+
(0, fs_1.rmSync)(ideDir, { recursive: true, force: true });
|
|
126
|
+
(0, fs_1.symlinkSync)(canonical, ideDir, 'dir');
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
/* leave the copy — engine still resolves via .vsaf/skills primary */
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
86
133
|
/** True if any IDE hit a hard error — lets the CLI set a non-zero exit code. */
|
|
87
134
|
function hasHardError(result) {
|
|
88
135
|
return result.results.some(r => r.errors.length > 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"skill-loader.d.ts","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,CA+BlE"}
|
|
@@ -12,9 +12,11 @@ function loadSkill(name, projectPath) {
|
|
|
12
12
|
if (name.includes('..')) {
|
|
13
13
|
throw new Error(`Invalid skill name: "${name}" — path traversal blocked`);
|
|
14
14
|
}
|
|
15
|
-
// Primary: .
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
// Primary: .vsaf/skills/ (canonical harness source, IDE-agnostic).
|
|
16
|
+
// Fallback: .claude/skills/ (back-compat with pre-5.1 installs that deployed
|
|
17
|
+
// skills only under the Claude dir).
|
|
18
|
+
const primaryDir = (0, path_1.join)(projectPath, '.vsaf', 'skills', name);
|
|
19
|
+
const fallbackDir = (0, path_1.join)(projectPath, '.claude', 'skills', name);
|
|
18
20
|
const skillDir = (0, fs_1.existsSync)((0, path_1.join)(primaryDir, 'SKILL.md')) ? primaryDir
|
|
19
21
|
: (0, fs_1.existsSync)((0, path_1.join)(fallbackDir, 'SKILL.md')) ? fallbackDir
|
|
20
22
|
: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":";;;;;AAaA,
|
|
1
|
+
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../src/skills/skill-loader.ts"],"names":[],"mappings":";;;;;AAaA,8BA+BC;AA5CD,2CAA2C;AAC3C,2BAA8C;AAC9C,+BAA0C;AAC1C,8DAAiC;AAUjC,SAAgB,SAAS,CAAC,IAAY,EAAE,WAAmB;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,4BAA4B,CAAC,CAAC;IAC5E,CAAC;IACD,mEAAmE;IACnE,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QACpE,CAAC,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YACzD,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,qBAAM,EAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,QAAgB;IACxD,OAAO,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,YAAoB,EAAE,EAAE;QAC9E,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,GAAG,UAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,2BAA2B,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
|