@skill4agent/cli 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -0
- package/README_CN.md +178 -0
- package/bin/skill4agent.js +3 -0
- package/dist/api.d.ts +31 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +83 -0
- package/dist/api.js.map +1 -0
- package/dist/commands/add.d.ts +2 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +300 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/install.d.ts +11 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +188 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +79 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/uninstall.d.ts +7 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +122 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/index-manager.d.ts +35 -0
- package/dist/index-manager.d.ts.map +1 -0
- package/dist/index-manager.js +192 -0
- package/dist/index-manager.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +79 -0
- package/dist/main.js.map +1 -0
- package/dist/tools.d.ts +16 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +106 -0
- package/dist/tools.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +30 -0
- package/dist/utils.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAwCD,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFhG"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.uninstall = uninstall;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
10
|
+
const index_manager_1 = require("../index-manager");
|
|
11
|
+
function removeDirectory(dirPath) {
|
|
12
|
+
try {
|
|
13
|
+
if (fs_extra_1.default.existsSync(dirPath)) {
|
|
14
|
+
fs_extra_1.default.removeSync(dirPath);
|
|
15
|
+
console.log(chalk_1.default.green(`✅ Removed: ${dirPath}`));
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.log(chalk_1.default.red(`❌ Failed to remove: ${dirPath}`));
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
function uninstallScope(skill) {
|
|
25
|
+
let removedCount = 0;
|
|
26
|
+
// Remove symlink directories
|
|
27
|
+
for (const linkPath of skill.locations.symlink) {
|
|
28
|
+
if (removeDirectory(linkPath)) {
|
|
29
|
+
removedCount++;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Remove copy directories
|
|
33
|
+
for (const copyPath of skill.locations.copy) {
|
|
34
|
+
if (removeDirectory(copyPath)) {
|
|
35
|
+
removedCount++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Remove main directory
|
|
39
|
+
if (removeDirectory(skill.locations.universal)) {
|
|
40
|
+
removedCount++;
|
|
41
|
+
}
|
|
42
|
+
return removedCount;
|
|
43
|
+
}
|
|
44
|
+
async function uninstall(skillName, options = {}) {
|
|
45
|
+
const scopes = (0, index_manager_1.getSkillScopes)(skillName);
|
|
46
|
+
if (scopes.length === 0) {
|
|
47
|
+
console.log(chalk_1.default.red(`\n❌ Skill "${skillName}" not found in installed skills.`));
|
|
48
|
+
console.log(chalk_1.default.gray(' Use "skill4agent list" to see installed skills.\n'));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Determine the scope to uninstall
|
|
52
|
+
let targetScopes = [];
|
|
53
|
+
if (options.global && options.project) {
|
|
54
|
+
console.log(chalk_1.default.red('\n❌ Cannot use both --global and --project at the same time.\n'));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (options.global) {
|
|
58
|
+
// Only uninstall global
|
|
59
|
+
targetScopes = scopes.filter(s => (0, index_manager_1.isGlobalScope)(s.scope));
|
|
60
|
+
if (targetScopes.length === 0) {
|
|
61
|
+
console.log(chalk_1.default.yellow(`\n⚠️ "${skillName}" is not installed globally.`));
|
|
62
|
+
console.log(chalk_1.default.gray(` It's only installed in projects.\n`));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (options.project) {
|
|
67
|
+
// Uninstall all projects (non-global)
|
|
68
|
+
targetScopes = scopes.filter(s => !(0, index_manager_1.isGlobalScope)(s.scope));
|
|
69
|
+
if (targetScopes.length === 0) {
|
|
70
|
+
console.log(chalk_1.default.yellow(`\n⚠️ "${skillName}" is not installed in any project.`));
|
|
71
|
+
console.log(chalk_1.default.gray(` It's only installed globally.\n`));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// Default: uninstall all
|
|
77
|
+
targetScopes = scopes;
|
|
78
|
+
}
|
|
79
|
+
console.log(chalk_1.default.blue(`\n📦 Uninstalling skill: ${skillName}`));
|
|
80
|
+
// Show scopes to be uninstalled
|
|
81
|
+
console.log(chalk_1.default.yellow('\n⚠️ This will remove the following installations:'));
|
|
82
|
+
for (const scope of targetScopes) {
|
|
83
|
+
const scopeType = (0, index_manager_1.isGlobalScope)(scope.scope) ? 'Global' : `Project (${scope.scope})`;
|
|
84
|
+
console.log(chalk_1.default.gray(` [${scopeType}]`));
|
|
85
|
+
console.log(chalk_1.default.gray(` ${scope.locations.universal}`));
|
|
86
|
+
for (const link of scope.locations.symlink) {
|
|
87
|
+
console.log(chalk_1.default.gray(` ${link} (symlink)`));
|
|
88
|
+
}
|
|
89
|
+
for (const copy of scope.locations.copy) {
|
|
90
|
+
console.log(chalk_1.default.gray(` ${copy} (copy)`));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
console.log();
|
|
94
|
+
const { confirm } = await inquirer_1.default.prompt({
|
|
95
|
+
type: 'confirm',
|
|
96
|
+
name: 'confirm',
|
|
97
|
+
message: `Are you sure you want to uninstall ${targetScopes.length} installation${targetScopes.length > 1 ? 's' : ''}?`,
|
|
98
|
+
default: false,
|
|
99
|
+
});
|
|
100
|
+
if (!confirm) {
|
|
101
|
+
console.log(chalk_1.default.yellow('\n⚠️ Uninstallation cancelled.\n'));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Execute uninstall operation
|
|
105
|
+
let totalRemoved = 0;
|
|
106
|
+
for (const scope of targetScopes) {
|
|
107
|
+
const removed = uninstallScope(scope);
|
|
108
|
+
totalRemoved += removed;
|
|
109
|
+
(0, index_manager_1.removeSkillByScope)(skillName, scope.scope);
|
|
110
|
+
}
|
|
111
|
+
// Check if there are remaining scopes
|
|
112
|
+
const remainingScopes = (0, index_manager_1.getSkillScopes)(skillName);
|
|
113
|
+
if (remainingScopes.length === 0) {
|
|
114
|
+
console.log(chalk_1.default.green(`\n🎉 Successfully uninstalled "${skillName}" completely (${totalRemoved} item${totalRemoved > 1 ? 's' : ''} removed).\n`));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const remainingTypes = remainingScopes.map(s => (0, index_manager_1.isGlobalScope)(s.scope) ? 'Global' : 'Project').join(', ');
|
|
118
|
+
console.log(chalk_1.default.green(`\n🎉 Uninstalled ${targetScopes.length} scope(s) (${totalRemoved} item${totalRemoved > 1 ? 's' : ''} removed).`));
|
|
119
|
+
console.log(chalk_1.default.gray(` Remaining: ${remainingScopes.length} scope(s) (${remainingTypes})\n`));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface SkillLocation {
|
|
2
|
+
universal: string;
|
|
3
|
+
symlink: string[];
|
|
4
|
+
copy: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface InstalledSkill {
|
|
7
|
+
name: string;
|
|
8
|
+
source: string;
|
|
9
|
+
installedAt: string;
|
|
10
|
+
scope: string;
|
|
11
|
+
locations: SkillLocation;
|
|
12
|
+
}
|
|
13
|
+
export interface SkillMetadata {
|
|
14
|
+
name: string;
|
|
15
|
+
source: string;
|
|
16
|
+
installedAt: string;
|
|
17
|
+
scope: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function readIndex(): Record<string, InstalledSkill[]>;
|
|
20
|
+
export declare function writeIndex(index: Record<string, InstalledSkill[]>): void;
|
|
21
|
+
export declare function getSkillScopes(skillName: string): InstalledSkill[];
|
|
22
|
+
export declare function getSkillByScope(skillName: string, scope: string): InstalledSkill | null;
|
|
23
|
+
export declare function addOrUpdateSkill(skill: InstalledSkill): void;
|
|
24
|
+
export declare function removeSkillByScope(skillName: string, scope: string): void;
|
|
25
|
+
export declare function removeSkill(skillName: string): void;
|
|
26
|
+
export declare function getAllSkills(): Array<{
|
|
27
|
+
name: string;
|
|
28
|
+
scopes: InstalledSkill[];
|
|
29
|
+
}>;
|
|
30
|
+
export declare function isGlobalScope(scope: string): boolean;
|
|
31
|
+
export declare function getCurrentScope(): string;
|
|
32
|
+
export declare function createSkillMetadata(skillName: string, source: string, scope: string): SkillMetadata;
|
|
33
|
+
export declare function writeSkillMetadata(skillDir: string, metadata: SkillMetadata): void;
|
|
34
|
+
export declare function readSkillMetadata(skillDir: string): SkillMetadata | null;
|
|
35
|
+
//# sourceMappingURL=index-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAyB5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAGxE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAGlE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGvF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CA8D5D;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAezE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,YAAY,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAGhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,aAAa,CAOf;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGlF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUxE"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.readIndex = readIndex;
|
|
7
|
+
exports.writeIndex = writeIndex;
|
|
8
|
+
exports.getSkillScopes = getSkillScopes;
|
|
9
|
+
exports.getSkillByScope = getSkillByScope;
|
|
10
|
+
exports.addOrUpdateSkill = addOrUpdateSkill;
|
|
11
|
+
exports.removeSkillByScope = removeSkillByScope;
|
|
12
|
+
exports.removeSkill = removeSkill;
|
|
13
|
+
exports.getAllSkills = getAllSkills;
|
|
14
|
+
exports.isGlobalScope = isGlobalScope;
|
|
15
|
+
exports.getCurrentScope = getCurrentScope;
|
|
16
|
+
exports.createSkillMetadata = createSkillMetadata;
|
|
17
|
+
exports.writeSkillMetadata = writeSkillMetadata;
|
|
18
|
+
exports.readSkillMetadata = readSkillMetadata;
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
20
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
21
|
+
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const os_1 = __importDefault(require("os"));
|
|
23
|
+
const SKILL4AGENT_DIR = path_1.default.join(os_1.default.homedir(), '.skill4agent');
|
|
24
|
+
const INDEX_FILE = path_1.default.join(SKILL4AGENT_DIR, 'installed-skills.json');
|
|
25
|
+
function ensureSkill4AgentDir() {
|
|
26
|
+
if (!fs_extra_1.default.existsSync(SKILL4AGENT_DIR)) {
|
|
27
|
+
fs_extra_1.default.mkdirSync(SKILL4AGENT_DIR, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function migrateOldData(oldData) {
|
|
31
|
+
const newData = {};
|
|
32
|
+
for (const [skillName, skill] of Object.entries(oldData)) {
|
|
33
|
+
// Determine if it's global or project
|
|
34
|
+
const isGlobal = skill.locations.universal.startsWith(path_1.default.join(os_1.default.homedir(), '.agents'));
|
|
35
|
+
const scope = isGlobal ? 'global' : process.cwd();
|
|
36
|
+
// Convert old data to new format
|
|
37
|
+
newData[skillName] = [{
|
|
38
|
+
name: skill.name,
|
|
39
|
+
source: skill.source,
|
|
40
|
+
installedAt: skill.installedAt,
|
|
41
|
+
scope: scope,
|
|
42
|
+
locations: {
|
|
43
|
+
universal: skill.locations.universal,
|
|
44
|
+
symlink: skill.method === 'symlink' ? skill.locations.links : [],
|
|
45
|
+
copy: skill.method === 'copy' ? skill.locations.links : [],
|
|
46
|
+
},
|
|
47
|
+
}];
|
|
48
|
+
}
|
|
49
|
+
return newData;
|
|
50
|
+
}
|
|
51
|
+
function readIndex() {
|
|
52
|
+
ensureSkill4AgentDir();
|
|
53
|
+
if (!fs_extra_1.default.existsSync(INDEX_FILE)) {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const content = fs_extra_1.default.readFileSync(INDEX_FILE, 'utf-8');
|
|
58
|
+
const data = JSON.parse(content);
|
|
59
|
+
// Check if it's old format (object values are not arrays)
|
|
60
|
+
const isOldFormat = Object.values(data).some(val => !Array.isArray(val));
|
|
61
|
+
if (isOldFormat) {
|
|
62
|
+
console.log(chalk_1.default.yellow('⚠️ Migrating old index format to new format...'));
|
|
63
|
+
const migrated = migrateOldData(data);
|
|
64
|
+
writeIndex(migrated);
|
|
65
|
+
return migrated;
|
|
66
|
+
}
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function writeIndex(index) {
|
|
74
|
+
ensureSkill4AgentDir();
|
|
75
|
+
fs_extra_1.default.writeFileSync(INDEX_FILE, JSON.stringify(index, null, 2));
|
|
76
|
+
}
|
|
77
|
+
function getSkillScopes(skillName) {
|
|
78
|
+
const index = readIndex();
|
|
79
|
+
return index[skillName] || [];
|
|
80
|
+
}
|
|
81
|
+
function getSkillByScope(skillName, scope) {
|
|
82
|
+
const scopes = getSkillScopes(skillName);
|
|
83
|
+
return scopes.find(s => s.scope === scope) || null;
|
|
84
|
+
}
|
|
85
|
+
function addOrUpdateSkill(skill) {
|
|
86
|
+
const index = readIndex();
|
|
87
|
+
if (!index[skill.name]) {
|
|
88
|
+
index[skill.name] = [];
|
|
89
|
+
}
|
|
90
|
+
const existingIndex = index[skill.name].findIndex(s => s.scope === skill.scope);
|
|
91
|
+
if (existingIndex >= 0) {
|
|
92
|
+
// Merge locations instead of overwriting
|
|
93
|
+
const existing = index[skill.name][existingIndex];
|
|
94
|
+
// Merge universal path (if different)
|
|
95
|
+
if (existing.locations.universal !== skill.locations.universal) {
|
|
96
|
+
// If universal paths are different, handle specially
|
|
97
|
+
// This shouldn't normally happen, but just in case, keep the new one
|
|
98
|
+
existing.locations.universal = skill.locations.universal;
|
|
99
|
+
}
|
|
100
|
+
// Merge symlink directories (deduplicate and remove from copy)
|
|
101
|
+
for (const link of skill.locations.symlink) {
|
|
102
|
+
// Skip if already in symlink
|
|
103
|
+
if (existing.locations.symlink.includes(link)) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
// If previously in copy, remove from copy and add to symlink
|
|
107
|
+
const copyIndex = existing.locations.copy.indexOf(link);
|
|
108
|
+
if (copyIndex >= 0) {
|
|
109
|
+
existing.locations.copy.splice(copyIndex, 1);
|
|
110
|
+
}
|
|
111
|
+
existing.locations.symlink.push(link);
|
|
112
|
+
}
|
|
113
|
+
// Merge copy directories (deduplicate and remove from symlink)
|
|
114
|
+
for (const copy of skill.locations.copy) {
|
|
115
|
+
// Skip if already in copy
|
|
116
|
+
if (existing.locations.copy.includes(copy)) {
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// If previously in symlink, remove from symlink and add to copy
|
|
120
|
+
const symlinkIndex = existing.locations.symlink.indexOf(copy);
|
|
121
|
+
if (symlinkIndex >= 0) {
|
|
122
|
+
existing.locations.symlink.splice(symlinkIndex, 1);
|
|
123
|
+
}
|
|
124
|
+
existing.locations.copy.push(copy);
|
|
125
|
+
}
|
|
126
|
+
// Update installation time (take the latest)
|
|
127
|
+
if (new Date(skill.installedAt) > new Date(existing.installedAt)) {
|
|
128
|
+
existing.installedAt = skill.installedAt;
|
|
129
|
+
}
|
|
130
|
+
// Update source (if changed)
|
|
131
|
+
if (skill.source !== existing.source) {
|
|
132
|
+
existing.source = skill.source;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
// Add new scope
|
|
137
|
+
index[skill.name].push(skill);
|
|
138
|
+
}
|
|
139
|
+
writeIndex(index);
|
|
140
|
+
}
|
|
141
|
+
function removeSkillByScope(skillName, scope) {
|
|
142
|
+
const index = readIndex();
|
|
143
|
+
if (!index[skillName]) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
index[skillName] = index[skillName].filter(s => s.scope !== scope);
|
|
147
|
+
// If no scopes left, delete the entire skill
|
|
148
|
+
if (index[skillName].length === 0) {
|
|
149
|
+
delete index[skillName];
|
|
150
|
+
}
|
|
151
|
+
writeIndex(index);
|
|
152
|
+
}
|
|
153
|
+
function removeSkill(skillName) {
|
|
154
|
+
const index = readIndex();
|
|
155
|
+
delete index[skillName];
|
|
156
|
+
writeIndex(index);
|
|
157
|
+
}
|
|
158
|
+
function getAllSkills() {
|
|
159
|
+
const index = readIndex();
|
|
160
|
+
return Object.entries(index).map(([name, scopes]) => ({ name, scopes }));
|
|
161
|
+
}
|
|
162
|
+
function isGlobalScope(scope) {
|
|
163
|
+
return scope === 'global';
|
|
164
|
+
}
|
|
165
|
+
function getCurrentScope() {
|
|
166
|
+
return process.cwd();
|
|
167
|
+
}
|
|
168
|
+
function createSkillMetadata(skillName, source, scope) {
|
|
169
|
+
return {
|
|
170
|
+
name: skillName,
|
|
171
|
+
source,
|
|
172
|
+
installedAt: new Date().toISOString(),
|
|
173
|
+
scope,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function writeSkillMetadata(skillDir, metadata) {
|
|
177
|
+
const metaPath = path_1.default.join(skillDir, '.skill4agent.json');
|
|
178
|
+
fs_extra_1.default.writeFileSync(metaPath, JSON.stringify(metadata, null, 2));
|
|
179
|
+
}
|
|
180
|
+
function readSkillMetadata(skillDir) {
|
|
181
|
+
const metaPath = path_1.default.join(skillDir, '.skill4agent.json');
|
|
182
|
+
if (!fs_extra_1.default.existsSync(metaPath)) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
return JSON.parse(fs_extra_1.default.readFileSync(metaPath, 'utf-8'));
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=index-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const install_1 = require("./commands/install");
|
|
9
|
+
const add_1 = require("./commands/add");
|
|
10
|
+
const list_1 = require("./commands/list");
|
|
11
|
+
const uninstall_1 = require("./commands/uninstall");
|
|
12
|
+
const program = new commander_1.Command();
|
|
13
|
+
program
|
|
14
|
+
.name('skill4agent')
|
|
15
|
+
.description('CLI tool for installing and managing agent skills')
|
|
16
|
+
.version('1.0.0');
|
|
17
|
+
program
|
|
18
|
+
.command('add <top_source> <skill_name>')
|
|
19
|
+
.description('Interactive installation with guided prompts')
|
|
20
|
+
.action(async (topSource, skillName) => {
|
|
21
|
+
await (0, add_1.add)(topSource, skillName);
|
|
22
|
+
});
|
|
23
|
+
program
|
|
24
|
+
.command('install <top_source> <skill_name>')
|
|
25
|
+
.description('Non-interactive installation with command-line options')
|
|
26
|
+
.option('--type <type>', 'Package type: original or translated', 'original')
|
|
27
|
+
.option('--global', 'Install to global storage')
|
|
28
|
+
.option('--dirs <dirs>', 'Additional directories (comma-separated): .trae,.cursor,.qwen')
|
|
29
|
+
.option('--method <method>', 'Installation method: symlink or copy', 'symlink')
|
|
30
|
+
.action(async (topSource, skillName, options) => {
|
|
31
|
+
if (options.type && !['original', 'translated'].includes(options.type)) {
|
|
32
|
+
console.log(chalk_1.default.red('\n❌ Invalid --type value. Must be "original" or "translated".\n'));
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
if (options.method && !['symlink', 'copy'].includes(options.method)) {
|
|
36
|
+
console.log(chalk_1.default.red('\n❌ Invalid --method value. Must be "symlink" or "copy".\n'));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
const dirsArray = options.dirs
|
|
40
|
+
? options.dirs.split(',').map((a) => a.trim()).filter((a) => a.length > 0)
|
|
41
|
+
: [];
|
|
42
|
+
await (0, install_1.install)({
|
|
43
|
+
topSource,
|
|
44
|
+
skillName,
|
|
45
|
+
type: options.type || 'original',
|
|
46
|
+
global: !!options.global,
|
|
47
|
+
dirs: dirsArray,
|
|
48
|
+
method: options.method || 'symlink',
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
program
|
|
52
|
+
.command('list')
|
|
53
|
+
.description('List installed skills')
|
|
54
|
+
.action(list_1.list);
|
|
55
|
+
program
|
|
56
|
+
.command('search <query>')
|
|
57
|
+
.description('Search for skills')
|
|
58
|
+
.action(list_1.search);
|
|
59
|
+
program
|
|
60
|
+
.command('update [skill_name]')
|
|
61
|
+
.description('Update installed skills')
|
|
62
|
+
.action(list_1.update);
|
|
63
|
+
program
|
|
64
|
+
.command('uninstall <skill_name>')
|
|
65
|
+
.description('Uninstall a skill')
|
|
66
|
+
.option('--global', 'Uninstall from global storage only')
|
|
67
|
+
.option('--project', 'Uninstall from all projects (non-global installations)')
|
|
68
|
+
.action(async (skillName, options) => {
|
|
69
|
+
await (0, uninstall_1.uninstall)(skillName, {
|
|
70
|
+
global: !!options.global,
|
|
71
|
+
project: !!options.project,
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
program.parse();
|
|
75
|
+
process.on('unhandledRejection', (reason) => {
|
|
76
|
+
console.error(chalk_1.default.red('Error:'), reason);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface Agent {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
path: string;
|
|
5
|
+
universal: boolean;
|
|
6
|
+
globalPath?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const UNIVERSAL_AGENTS: Agent[];
|
|
9
|
+
export declare const UNIVERSAL_PATH = ".agents/skills";
|
|
10
|
+
export declare const OTHER_AGENTS: Agent[];
|
|
11
|
+
export declare function getGlobalStoragePath(): string;
|
|
12
|
+
export declare function getAgentPath(agentId: string, isGlobal: boolean): string | null;
|
|
13
|
+
export declare function checkAgentExists(agentPath: string): boolean;
|
|
14
|
+
export declare function getAllAgents(): Agent[];
|
|
15
|
+
export declare function getAgentDisplayPath(agentId: string, isGlobal: boolean): string;
|
|
16
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,EAOnC,CAAC;AAEF,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,eAAO,MAAM,YAAY,EAAE,KAAK,EAiC/B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,MAAM,CAa7C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY9E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,wBAAgB,YAAY,IAAI,KAAK,EAAE,CAEtC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAc9E"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OTHER_AGENTS = exports.UNIVERSAL_PATH = exports.UNIVERSAL_AGENTS = void 0;
|
|
7
|
+
exports.getGlobalStoragePath = getGlobalStoragePath;
|
|
8
|
+
exports.getAgentPath = getAgentPath;
|
|
9
|
+
exports.checkAgentExists = checkAgentExists;
|
|
10
|
+
exports.getAllAgents = getAllAgents;
|
|
11
|
+
exports.getAgentDisplayPath = getAgentDisplayPath;
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const os_1 = __importDefault(require("os"));
|
|
14
|
+
const path_1 = __importDefault(require("path"));
|
|
15
|
+
exports.UNIVERSAL_AGENTS = [
|
|
16
|
+
{ id: 'amp', name: 'Amp', path: '.agents/skills', universal: true },
|
|
17
|
+
{ id: 'codex', name: 'Codex', path: '.agents/skills', universal: true },
|
|
18
|
+
{ id: 'gemini-cli', name: 'Gemini CLI', path: '.agents/skills', universal: true },
|
|
19
|
+
{ id: 'github-copilot', name: 'GitHub Copilot', path: '.agents/skills', universal: true },
|
|
20
|
+
{ id: 'kimi-code-cli', name: 'Kimi Code CLI', path: '.agents/skills', universal: true },
|
|
21
|
+
{ id: 'opencode', name: 'OpenCode', path: '.agents/skills', universal: true },
|
|
22
|
+
];
|
|
23
|
+
exports.UNIVERSAL_PATH = '.agents/skills';
|
|
24
|
+
exports.OTHER_AGENTS = [
|
|
25
|
+
{ id: 'antigravity', name: 'Antigravity', path: '.agent/skills', universal: false },
|
|
26
|
+
{ id: 'augment', name: 'Augment', path: '.augment/rules', universal: false },
|
|
27
|
+
{ id: 'claude-code', name: 'Claude Code', path: '.claude/skills', universal: false },
|
|
28
|
+
{ id: 'openclaw', name: 'OpenClaw', path: 'skills', universal: false },
|
|
29
|
+
{ id: 'cline', name: 'Cline', path: '.cline/skills', universal: false },
|
|
30
|
+
{ id: 'codebuddy', name: 'CodeBuddy', path: '.codebuddy/skills', universal: false },
|
|
31
|
+
{ id: 'command-code', name: 'Command Code', path: '.commandcode/skills', universal: false },
|
|
32
|
+
{ id: 'continue', name: 'Continue', path: '.continue/skills', universal: false },
|
|
33
|
+
{ id: 'crush', name: 'Crush', path: '.crush/skills', universal: false },
|
|
34
|
+
{ id: 'cursor', name: 'Cursor', path: '.cursor/skills', universal: false },
|
|
35
|
+
{ id: 'droid', name: 'Droid', path: '.factory/skills', universal: false },
|
|
36
|
+
{ id: 'goose', name: 'Goose', path: '.goose/skills', universal: false },
|
|
37
|
+
{ id: 'junie', name: 'Junie', path: '.junie/skills', universal: false },
|
|
38
|
+
{ id: 'iflow-cli', name: 'iFlow CLI', path: '.iflow/skills', universal: false },
|
|
39
|
+
{ id: 'kilo-code', name: 'Kilo Code', path: '.kilocode/skills', universal: false },
|
|
40
|
+
{ id: 'kiro-cli', name: 'Kiro CLI', path: '.kiro/skills', universal: false },
|
|
41
|
+
{ id: 'kode', name: 'Kode', path: '.kode/skills', universal: false },
|
|
42
|
+
{ id: 'mcpjam', name: 'MCPJam', path: '.mcpjam/skills', universal: false },
|
|
43
|
+
{ id: 'mistral-vibe', name: 'Mistral Vibe', path: '.vibe/skills', universal: false },
|
|
44
|
+
{ id: 'mux', name: 'Mux', path: '.mux/skills', universal: false },
|
|
45
|
+
{ id: 'openhands', name: 'OpenHands', path: '.openhands/skills', universal: false },
|
|
46
|
+
{ id: 'pi', name: 'Pi', path: '.pi/skills', universal: false },
|
|
47
|
+
{ id: 'qoder', name: 'Qoder', path: '.qoder/skills', universal: false },
|
|
48
|
+
{ id: 'qwen-code', name: 'Qwen Code', path: '.qwen/skills', universal: false },
|
|
49
|
+
{ id: 'roo-code', name: 'Roo Code', path: '.roo/skills', universal: false },
|
|
50
|
+
{ id: 'trae', name: 'Trae', path: '.trae/skills', universal: false },
|
|
51
|
+
{ id: 'trae-cn', name: 'Trae CN', path: '.trae/skills', globalPath: '.trae-cn/skills', universal: false },
|
|
52
|
+
{ id: 'windsurf', name: 'Windsurf', path: '.windsurf/skills', universal: false },
|
|
53
|
+
{ id: 'zencoder', name: 'Zencoder', path: '.zencoder/skills', universal: false },
|
|
54
|
+
{ id: 'neovate', name: 'Neovate', path: '.neovate/skills', universal: false },
|
|
55
|
+
{ id: 'pochi', name: 'Pochi', path: '.pochi/skills', universal: false },
|
|
56
|
+
{ id: 'adal', name: 'AdaL', path: '.adal/skills', universal: false },
|
|
57
|
+
];
|
|
58
|
+
function getGlobalStoragePath() {
|
|
59
|
+
const platform = os_1.default.platform();
|
|
60
|
+
const homeDir = os_1.default.homedir();
|
|
61
|
+
switch (platform) {
|
|
62
|
+
case 'win32':
|
|
63
|
+
return path_1.default.join(process.env.LOCALAPPDATA || path_1.default.join(homeDir, 'AppData', 'Local'), 'skill4agent', 'skills');
|
|
64
|
+
case 'linux':
|
|
65
|
+
return path_1.default.join(process.env.XDG_DATA_HOME || path_1.default.join(homeDir, '.local', 'share'), 'skill4agent', 'skills');
|
|
66
|
+
case 'darwin':
|
|
67
|
+
default:
|
|
68
|
+
return path_1.default.join(homeDir, '.skill4agent', 'skills');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function getAgentPath(agentId, isGlobal) {
|
|
72
|
+
const allAgents = [...exports.UNIVERSAL_AGENTS, ...exports.OTHER_AGENTS];
|
|
73
|
+
const agent = allAgents.find(a => a.id === agentId);
|
|
74
|
+
if (!agent)
|
|
75
|
+
return null;
|
|
76
|
+
const effectivePath = isGlobal && agent.globalPath ? agent.globalPath : agent.path;
|
|
77
|
+
if (isGlobal) {
|
|
78
|
+
return path_1.default.join(os_1.default.homedir(), effectivePath);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return path_1.default.resolve(process.cwd(), effectivePath);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function checkAgentExists(agentPath) {
|
|
85
|
+
const parentDir = path_1.default.dirname(agentPath);
|
|
86
|
+
return fs_1.default.existsSync(parentDir);
|
|
87
|
+
}
|
|
88
|
+
function getAllAgents() {
|
|
89
|
+
return [...exports.UNIVERSAL_AGENTS, ...exports.OTHER_AGENTS];
|
|
90
|
+
}
|
|
91
|
+
function getAgentDisplayPath(agentId, isGlobal) {
|
|
92
|
+
const allAgents = [...exports.UNIVERSAL_AGENTS, ...exports.OTHER_AGENTS];
|
|
93
|
+
const agent = allAgents.find(a => a.id === agentId);
|
|
94
|
+
if (!agent)
|
|
95
|
+
return 'unknown';
|
|
96
|
+
const effectivePath = isGlobal && agent.globalPath ? agent.globalPath : agent.path;
|
|
97
|
+
if (isGlobal) {
|
|
98
|
+
const homeDir = os_1.default.homedir();
|
|
99
|
+
const fullPath = path_1.default.join(homeDir, effectivePath);
|
|
100
|
+
return fullPath.replace(os_1.default.homedir(), '~');
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return effectivePath;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYjE"}
|