skill4agent 1.0.9 → 1.0.11
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 +49 -4
- package/README_CN.md +49 -4
- package/bin/forward.js +23 -0
- package/package.json +12 -3
- package/assets/skill4agent_en.png +0 -0
- package/assets/skill4agent_zh.png +0 -0
- package/bin/skill4agent.js +0 -3
- package/dist/api.d.ts +0 -31
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js +0 -83
- package/dist/api.js.map +0 -1
- package/dist/commands/add.d.ts +0 -2
- package/dist/commands/add.d.ts.map +0 -1
- package/dist/commands/add.js +0 -300
- package/dist/commands/add.js.map +0 -1
- package/dist/commands/install.d.ts +0 -11
- package/dist/commands/install.d.ts.map +0 -1
- package/dist/commands/install.js +0 -188
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/list.d.ts +0 -5
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -79
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/uninstall.d.ts +0 -7
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js +0 -122
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/index-manager.d.ts +0 -35
- package/dist/index-manager.d.ts.map +0 -1
- package/dist/index-manager.js +0 -192
- package/dist/index-manager.js.map +0 -1
- package/dist/main.d.ts +0 -2
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/tools.d.ts +0 -16
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -106
- package/dist/tools.js.map +0 -1
- package/dist/utils.d.ts +0 -4
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -30
- package/dist/utils.js.map +0 -1
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface InstallOptions {
|
|
2
|
-
topSource: string;
|
|
3
|
-
skillName: string;
|
|
4
|
-
type: 'original' | 'translated';
|
|
5
|
-
global: boolean;
|
|
6
|
-
dirs: string[];
|
|
7
|
-
method: 'symlink' | 'copy';
|
|
8
|
-
}
|
|
9
|
-
export declare function install(options: InstallOptions): Promise<void>;
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=install.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AA4BD,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoLpE"}
|
package/dist/commands/install.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
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.install = install;
|
|
7
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
-
const os_1 = __importDefault(require("os"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const utils_1 = require("../utils");
|
|
12
|
-
const tools_1 = require("../tools");
|
|
13
|
-
const api_1 = require("../api");
|
|
14
|
-
const index_manager_1 = require("../index-manager");
|
|
15
|
-
function getAgentNameFromPath(dirPath) {
|
|
16
|
-
const name = path_1.default.basename(dirPath);
|
|
17
|
-
return name.charAt(0).toUpperCase() + name.slice(1);
|
|
18
|
-
}
|
|
19
|
-
function getAgentDisplayName(dirPath) {
|
|
20
|
-
const dirname = path_1.default.basename(path_1.default.dirname(dirPath));
|
|
21
|
-
if (dirname === '.agents')
|
|
22
|
-
return 'Universal';
|
|
23
|
-
return dirname.charAt(0).toUpperCase() + dirname.slice(1);
|
|
24
|
-
}
|
|
25
|
-
function displaySummary(options, skillInfo, typeDisplay, allDirs) {
|
|
26
|
-
const dirNames = allDirs.map(d => getAgentDisplayName(d));
|
|
27
|
-
const dirCount = allDirs.length;
|
|
28
|
-
console.log(chalk_1.default.blue('\n📊 Installation Summary'));
|
|
29
|
-
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
30
|
-
console.log(`Skill: ${chalk_1.default.white(skillInfo.name)}`);
|
|
31
|
-
console.log(`Source: ${options.topSource}`);
|
|
32
|
-
console.log(`Type: ${typeDisplay}`);
|
|
33
|
-
console.log(`Scope: ${options.global ? 'Global' : 'Project'}`);
|
|
34
|
-
console.log(`Dirs (${dirCount}): ${dirNames.join(', ')}`);
|
|
35
|
-
console.log(`Method: ${options.method === 'symlink' ? 'Symlink (Recommended)' : 'Copy'}`);
|
|
36
|
-
console.log(chalk_1.default.gray('─'.repeat(50)));
|
|
37
|
-
}
|
|
38
|
-
async function install(options) {
|
|
39
|
-
const { topSource, skillName, type, global, dirs, method } = options;
|
|
40
|
-
console.log(chalk_1.default.blue(`\n📦 Installing skill: ${skillName}`));
|
|
41
|
-
console.log(chalk_1.default.gray(` Source: ${topSource}\n`));
|
|
42
|
-
let result;
|
|
43
|
-
try {
|
|
44
|
-
result = await (0, api_1.getSkillInfo)(topSource, skillName);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.log(chalk_1.default.red(`\n❌ Skill "${skillName}" not found in source "${topSource}".`));
|
|
48
|
-
console.log(chalk_1.default.gray(` Please check the source repository and skill name.\n`));
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
if (!result.skill) {
|
|
52
|
-
console.log(chalk_1.default.red(`\n❌ Skill "${skillName}" not found in source "${topSource}".`));
|
|
53
|
-
console.log(chalk_1.default.gray(` Please check the source repository and skill name.\n`));
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const skillInfo = result.skill;
|
|
57
|
-
console.log(chalk_1.default.blue(`\n📦 Skill: ${chalk_1.default.white(skillInfo.name)}`));
|
|
58
|
-
console.log(chalk_1.default.gray(` Category: ${skillInfo.category?.nameEn || 'N/A'} | Installs: ${skillInfo.totalInstalls}`));
|
|
59
|
-
if (skillInfo.tags) {
|
|
60
|
-
console.log(chalk_1.default.gray(` Tags: ${skillInfo.tags}`));
|
|
61
|
-
}
|
|
62
|
-
if (!skillInfo.hasScript) {
|
|
63
|
-
console.log(chalk_1.default.gray(` 📜 Scripts: No scripts`));
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
const statusText = skillInfo.scriptCheckResult === 'safe' ? '✅ Check passed' : '⚠️ Needs attention';
|
|
67
|
-
console.log(chalk_1.default.gray(` 📜 Scripts: ${skillInfo.scriptCount} script(s) - ${statusText}`));
|
|
68
|
-
}
|
|
69
|
-
console.log(chalk_1.default.gray(` ${skillInfo.hasTranslation ? '✅' : '❌'} Translation available\n`));
|
|
70
|
-
let finalType = type;
|
|
71
|
-
const isOriginalEnglish = skillInfo.originalLanguage === 'en';
|
|
72
|
-
if (type === 'translated' && !skillInfo.hasTranslation) {
|
|
73
|
-
console.log(chalk_1.default.yellow(`⚠️ Translation not available. Using original (${isOriginalEnglish ? 'English' : 'Chinese'}) version.\n`));
|
|
74
|
-
finalType = 'original';
|
|
75
|
-
}
|
|
76
|
-
const typeDisplay = finalType === 'original'
|
|
77
|
-
? (isOriginalEnglish ? 'English' : 'Chinese')
|
|
78
|
-
: (isOriginalEnglish ? 'Chinese' : 'English');
|
|
79
|
-
console.log(chalk_1.default.gray(` Type: ${typeDisplay}\n`));
|
|
80
|
-
const isGlobal = global;
|
|
81
|
-
const basePath = isGlobal ? os_1.default.homedir() : process.cwd();
|
|
82
|
-
const allDirs = [tools_1.UNIVERSAL_PATH, ...dirs.map((d) => d.endsWith('/skills') ? d : `${d}/skills`)];
|
|
83
|
-
const dirNames = allDirs.map(d => getAgentDisplayName(d));
|
|
84
|
-
console.log(chalk_1.default.green(`✓ Directories: ${dirNames.join(', ')}`));
|
|
85
|
-
if (allDirs.length === 0) {
|
|
86
|
-
console.log(chalk_1.default.yellow('\n⚠️ No directories selected. Installation cancelled.'));
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
displaySummary({ topSource, skillName, type: finalType, global, dirs, method }, skillInfo, typeDisplay, allDirs);
|
|
90
|
-
let tempZip;
|
|
91
|
-
try {
|
|
92
|
-
tempZip = await (0, api_1.downloadSkill)(topSource, skillName, finalType);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
if (error.response?.status === 404) {
|
|
96
|
-
console.log(chalk_1.default.red(`\n❌ Failed to download skill "${skillName}".`));
|
|
97
|
-
console.log(chalk_1.default.gray(` The skill may not exist or the download link is invalid.\n`));
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
console.log(chalk_1.default.red(`\n❌ Download failed: ${error.message}`));
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (method === 'symlink') {
|
|
104
|
-
const universalFullPath = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH);
|
|
105
|
-
fs_extra_1.default.ensureDirSync(universalFullPath);
|
|
106
|
-
const skillDir = path_1.default.join(universalFullPath, skillName);
|
|
107
|
-
if (fs_extra_1.default.existsSync(skillDir)) {
|
|
108
|
-
console.log(chalk_1.default.yellow(`\n⚠️ Skill "${skillName}" already exists. Overwriting...`));
|
|
109
|
-
fs_extra_1.default.removeSync(skillDir);
|
|
110
|
-
}
|
|
111
|
-
await (0, utils_1.extractZip)(tempZip, universalFullPath);
|
|
112
|
-
fs_extra_1.default.removeSync(tempZip);
|
|
113
|
-
console.log(chalk_1.default.green(`✅ Installed to: ${skillDir}`));
|
|
114
|
-
for (const dir of dirs) {
|
|
115
|
-
const fullDir = dir.endsWith('/skills') ? dir : `${dir}/skills`;
|
|
116
|
-
const dirPath = path_1.default.join(basePath, fullDir);
|
|
117
|
-
fs_extra_1.default.ensureDirSync(dirPath);
|
|
118
|
-
const destDir = path_1.default.join(dirPath, skillName);
|
|
119
|
-
if (fs_extra_1.default.existsSync(destDir)) {
|
|
120
|
-
fs_extra_1.default.removeSync(destDir);
|
|
121
|
-
}
|
|
122
|
-
if (isGlobal) {
|
|
123
|
-
fs_extra_1.default.symlinkSync(skillDir, destDir);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
const relativePath = path_1.default.relative(dirPath, skillDir);
|
|
127
|
-
fs_extra_1.default.symlinkSync(relativePath, destDir);
|
|
128
|
-
}
|
|
129
|
-
console.log(chalk_1.default.green(`✅ Linked to: ${destDir}`));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
const universalFullPath = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH);
|
|
134
|
-
const skillDir = path_1.default.join(universalFullPath, skillName);
|
|
135
|
-
fs_extra_1.default.ensureDirSync(universalFullPath);
|
|
136
|
-
if (fs_extra_1.default.existsSync(skillDir)) {
|
|
137
|
-
fs_extra_1.default.removeSync(skillDir);
|
|
138
|
-
}
|
|
139
|
-
await (0, utils_1.extractZip)(tempZip, universalFullPath);
|
|
140
|
-
fs_extra_1.default.removeSync(tempZip);
|
|
141
|
-
console.log(chalk_1.default.green(`✅ Copied to: ${skillDir}`));
|
|
142
|
-
for (const dir of dirs) {
|
|
143
|
-
const fullDir = dir.endsWith('/skills') ? dir : `${dir}/skills`;
|
|
144
|
-
const dirPath = path_1.default.join(basePath, fullDir);
|
|
145
|
-
fs_extra_1.default.ensureDirSync(dirPath);
|
|
146
|
-
const destDir = path_1.default.join(dirPath, skillName);
|
|
147
|
-
if (fs_extra_1.default.existsSync(destDir)) {
|
|
148
|
-
fs_extra_1.default.removeSync(destDir);
|
|
149
|
-
}
|
|
150
|
-
fs_extra_1.default.copySync(skillDir, destDir);
|
|
151
|
-
console.log(chalk_1.default.green(`✅ Copied to: ${destDir}`));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Update installation count
|
|
155
|
-
await (0, api_1.incrementInstallCount)(topSource, skillName);
|
|
156
|
-
// Record installation info to index
|
|
157
|
-
const installScope = isGlobal ? 'global' : (0, index_manager_1.getCurrentScope)();
|
|
158
|
-
const skillDir = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH, skillName);
|
|
159
|
-
// Collect symlink and copy directories
|
|
160
|
-
const symlinkDirs = [];
|
|
161
|
-
const copyDirs = [];
|
|
162
|
-
for (const dir of dirs) {
|
|
163
|
-
const fullDir = dir.endsWith('/skills') ? dir : `${dir}/skills`;
|
|
164
|
-
const dirPath = path_1.default.join(basePath, fullDir);
|
|
165
|
-
const destDir = path_1.default.join(dirPath, skillName);
|
|
166
|
-
if (method === 'symlink') {
|
|
167
|
-
symlinkDirs.push(destDir);
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
copyDirs.push(destDir);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
const metadata = (0, index_manager_1.createSkillMetadata)(skillName, topSource, installScope);
|
|
174
|
-
(0, index_manager_1.writeSkillMetadata)(skillDir, metadata);
|
|
175
|
-
(0, index_manager_1.addOrUpdateSkill)({
|
|
176
|
-
name: skillName,
|
|
177
|
-
source: topSource,
|
|
178
|
-
installedAt: metadata.installedAt,
|
|
179
|
-
scope: installScope,
|
|
180
|
-
locations: {
|
|
181
|
-
universal: skillDir,
|
|
182
|
-
symlink: symlinkDirs,
|
|
183
|
-
copy: copyDirs,
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
console.log(chalk_1.default.green('\n🎉 Installation completed!\n'));
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/list.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function list(): Promise<void>;
|
|
2
|
-
export declare function search(query: string): Promise<void>;
|
|
3
|
-
export declare function update(skillName?: string): Promise<void>;
|
|
4
|
-
export declare function uninstall(skillName: string): Promise<void>;
|
|
5
|
-
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AA8BA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA+C1C;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED,wBAAsB,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE"}
|
package/dist/commands/list.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
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.list = list;
|
|
7
|
-
exports.search = search;
|
|
8
|
-
exports.update = update;
|
|
9
|
-
exports.uninstall = uninstall;
|
|
10
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
-
const index_manager_1 = require("../index-manager");
|
|
12
|
-
function formatDate(dateStr) {
|
|
13
|
-
const date = new Date(dateStr);
|
|
14
|
-
return date.toLocaleDateString('zh-CN', {
|
|
15
|
-
year: 'numeric',
|
|
16
|
-
month: '2-digit',
|
|
17
|
-
day: '2-digit',
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
function truncate(str, maxLength) {
|
|
21
|
-
if (str.length <= maxLength)
|
|
22
|
-
return str;
|
|
23
|
-
return str.slice(0, maxLength - 3) + '...';
|
|
24
|
-
}
|
|
25
|
-
function getScopeDisplay(scopes) {
|
|
26
|
-
const hasGlobal = scopes.some(s => (0, index_manager_1.isGlobalScope)(s.scope));
|
|
27
|
-
const hasProject = scopes.some(s => !(0, index_manager_1.isGlobalScope)(s.scope));
|
|
28
|
-
if (hasGlobal && hasProject) {
|
|
29
|
-
return 'Global,Project';
|
|
30
|
-
}
|
|
31
|
-
else if (hasGlobal) {
|
|
32
|
-
return 'Global';
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return 'Project';
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async function list() {
|
|
39
|
-
const allSkills = (0, index_manager_1.getAllSkills)();
|
|
40
|
-
if (allSkills.length === 0) {
|
|
41
|
-
console.log(chalk_1.default.gray('\nNo installed skills found.\n'));
|
|
42
|
-
console.log(chalk_1.default.gray('Use "npx skill4agent add <source> <skill>" to install.\n'));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
// Sort by name
|
|
46
|
-
allSkills.sort((a, b) => a.name.localeCompare(b.name));
|
|
47
|
-
// Calculate total installations
|
|
48
|
-
const totalInstalls = allSkills.reduce((sum, skill) => sum + skill.scopes.length, 0);
|
|
49
|
-
console.log(chalk_1.default.blue(`\n📦 Installed Skills (${allSkills.length} skills, ${totalInstalls} installs)`));
|
|
50
|
-
console.log(chalk_1.default.gray('─'.repeat(80)));
|
|
51
|
-
// Table header
|
|
52
|
-
const nameWidth = 25;
|
|
53
|
-
const sourceWidth = 25;
|
|
54
|
-
const scopeWidth = 15;
|
|
55
|
-
console.log(chalk_1.default.bold(`${'Name'.padEnd(nameWidth)} ${'Source'.padEnd(sourceWidth)} ${'Scope'.padEnd(scopeWidth)} Installed`));
|
|
56
|
-
console.log(chalk_1.default.gray('─'.repeat(80)));
|
|
57
|
-
// Data rows
|
|
58
|
-
for (const { name, scopes } of allSkills) {
|
|
59
|
-
// Sort by time descending, get the latest installation
|
|
60
|
-
const latestScope = [...scopes].sort((a, b) => new Date(b.installedAt).getTime() - new Date(a.installedAt).getTime())[0];
|
|
61
|
-
const nameStr = truncate(name, nameWidth).padEnd(nameWidth);
|
|
62
|
-
const sourceStr = truncate(latestScope.source, sourceWidth).padEnd(sourceWidth);
|
|
63
|
-
const scopeStr = getScopeDisplay(scopes).padEnd(scopeWidth);
|
|
64
|
-
const dateStr = formatDate(latestScope.installedAt);
|
|
65
|
-
console.log(`${nameStr} ${sourceStr} ${scopeStr} ${dateStr}`);
|
|
66
|
-
}
|
|
67
|
-
console.log(chalk_1.default.gray('─'.repeat(80)));
|
|
68
|
-
console.log(chalk_1.default.gray(`\nTotal: ${allSkills.length} skill${allSkills.length > 1 ? 's' : ''} (${totalInstalls} install${totalInstalls > 1 ? 's' : ''})\n`));
|
|
69
|
-
}
|
|
70
|
-
async function search(query) {
|
|
71
|
-
console.log('search command', query);
|
|
72
|
-
}
|
|
73
|
-
async function update(skillName) {
|
|
74
|
-
console.log('update command', skillName);
|
|
75
|
-
}
|
|
76
|
-
async function uninstall(skillName) {
|
|
77
|
-
console.log('uninstall command', skillName);
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,122 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
package/dist/index-manager.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|