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
package/README.md
CHANGED
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
# skill4agent CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@skill4agent/cli)
|
|
4
|
+
[](https://www.npmjs.com/package/@skill4agent/cli)
|
|
5
|
+
[](https://github.com/osulivan/skill4agent-cli)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
|
|
8
|
+
> ๐ **The easiest way to install and manage Agent Skills for AI coding assistants**
|
|
9
|
+
|
|
10
|
+
By [skill4agent.com](https://www.skill4agent.com) - A command-line tool for installing Agent Skills.
|
|
4
11
|
|
|
5
12
|
[](https://www.skill4agent.com)
|
|
6
13
|
|
|
7
|
-
[English](https://
|
|
14
|
+
[English](https://github.com/osulivan/skill4agent-cli/blob/main/README.md) | [ไธญๆ](https://github.com/osulivan/skill4agent-cli/blob/main/README_CN.md)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## ๐ Why skill4agent?
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
- **๐ฏ Curated Skills**: Access a vast collection of high-quality skills from [skill4agent.com](https://www.skill4agent.com)
|
|
21
|
+
- **๐ Bilingual Support**: Every skill includes both English and Chinese translations, breaking language barriers
|
|
22
|
+
- **โ
Quality Assurance**: Automated script detection ensures all skills are safe and reliable
|
|
23
|
+
- **๐ท๏ธ Smart Categorization**: Fine-grained categories and tags help you quickly find the right skill
|
|
24
|
+
- **๐ค AI-Optimized**: Tags are embedded in SKILL.md, enabling AI Agents to match your needs more accurately
|
|
25
|
+
- **โก One-Command Install**: Install any skill to multiple IDEs with a single command
|
|
26
|
+
- **๐ง Multi-IDE Support**: Works with Trae, Cursor, Claude, OpenCode, OpenClaw, and more
|
|
27
|
+
- **๐ Global & Project Installation**: Install globally or per-project
|
|
28
|
+
- **๐ฆ Smart Management**: List and uninstall skills easily
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Using npx (recommended - no installation required)
|
|
36
|
+
npx skill4agent <command>
|
|
10
37
|
|
|
11
|
-
|
|
38
|
+
# Or install globally
|
|
39
|
+
npm install -g @skill4agent/cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> ๐ก Find available skills at [skill4agent.com](https://www.skill4agent.com)
|
|
12
43
|
> - `<source>`: The source repository (e.g., `anthropics/skills`)
|
|
13
44
|
> - `<skill>`: The skill name (e.g., `frontend-design`)
|
|
14
45
|
|
|
@@ -131,3 +162,17 @@ npx skill4agent uninstall frontend-design --global
|
|
|
131
162
|
# Uninstall from all projects only
|
|
132
163
|
npx skill4agent uninstall frontend-design --project
|
|
133
164
|
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## ๐ Useful Links
|
|
169
|
+
|
|
170
|
+
- ๐ **Website**: [skill4agent.com](https://www.skill4agent.com) - Discover and browse all available skills
|
|
171
|
+
- ๐ฆ **npm Package**: [npmjs.com/package/@skill4agent/cli](https://www.npmjs.com/package/@skill4agent/cli)
|
|
172
|
+
- ๐ป **GitHub Repository**: [github.com/osulivan/skill4agent-cli](https://github.com/osulivan/skill4agent-cli)
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
<p align="center">
|
|
177
|
+
Made with โค๏ธ by <a href="https://www.skill4agent.com">skill4agent.com</a>
|
|
178
|
+
</p>
|
package/README_CN.md
CHANGED
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
# skill4agent CLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@skill4agent/cli)
|
|
4
|
+
[](https://www.npmjs.com/package/@skill4agent/cli)
|
|
5
|
+
[](https://github.com/osulivan/skill4agent-cli)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
|
|
8
|
+
> ๐ **ๅฎ่ฃ
ๅ็ฎก็ AI ็ผ็จๅฉๆ Agent Skills ็ๆ็ฎๅๆนๅผ**
|
|
9
|
+
|
|
10
|
+
็ฑ [skill4agent.com](https://www.skill4agent.com) ๆไพ - ไธไธช็จไบๅฎ่ฃ
Agent Skills ็ๅฝไปค่กๅทฅๅ
ทใ
|
|
4
11
|
|
|
5
12
|
[](https://www.skill4agent.com)
|
|
6
13
|
|
|
7
|
-
[English](https://github.com/osulivan/skill4agent-cli/blob/main/README.md) | [ไธญๆ](https://
|
|
14
|
+
[English](https://github.com/osulivan/skill4agent-cli/blob/main/README.md) | [ไธญๆ](https://github.com/osulivan/skill4agent-cli/blob/main/README_CN.md)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## ๐ ไธบไปไน้ๆฉ skill4agent๏ผ
|
|
8
19
|
|
|
9
|
-
|
|
20
|
+
- **๐ฏ ็ฒพ้ๆ่ฝ**: ไป [skill4agent.com](https://www.skill4agent.com) ๅฟซ้ๅฎ่ฃ
ๆตท้้ซ่ดจ้ skills
|
|
21
|
+
- **๏ฟฝ ๅ่ฏญๆฏๆ**: ๆฏไธช skill ้ฝๆไพไธญ่ฑๆ็ฟป่ฏ็ๆฌ๏ผๆ็ ด่ฏญ่จ้็ข
|
|
22
|
+
- **โ
่ดจ้ๆฃๆต**: ่ชๅจๆฃๆต skill ไธญ็่ๆฌ๏ผ็กฎไฟๅฎๅ
จๅฏ้
|
|
23
|
+
- **๐ท๏ธ ๆบ่ฝๅ็ฑป**: ็ฒพ็ป็ๅ็ฑปๅๆ ็ญพ็ณป็ป๏ผๅธฎไฝ ๅฟซ้ๆพๅฐๅ้็ skill
|
|
24
|
+
- **๐ค AI ๅๅฅฝ**: ๆ ็ญพไฟกๆฏๅๅ
ฅ SKILL.md๏ผ่ฎฉ AI Agent ๆด็ฒพๅๅน้
ไฝ ็้ๆฑ
|
|
25
|
+
- **โก ไธ้ฎๅฎ่ฃ
**: ็จๅไธชๅฝไปคๅฎ่ฃ
ไปปไฝ skill ๅฐๅคไธช IDE
|
|
26
|
+
- **๐ง ๅค IDE ๆฏๆ**: ๆฏๆ TraeใCursorใClaudeใOpenCodeใOpenClaw ็ญ
|
|
27
|
+
- **๐ ๅ
จๅฑไธ้กน็ฎๅฎ่ฃ
**: ๆฏๆๅ
จๅฑๅฎ่ฃ
ๆๆ้กน็ฎๅฎ่ฃ
|
|
28
|
+
- **๐ฆ ๆบ่ฝ็ฎก็**: ่ฝปๆพๅๅบๅๅธ่ฝฝๆ่ฝ
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ๅฎ่ฃ
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# ไฝฟ็จ npx๏ผๆจ่ - ๆ ้ๅฎ่ฃ
๏ผ
|
|
36
|
+
npx skill4agent <ๅฝไปค>
|
|
10
37
|
|
|
11
|
-
|
|
38
|
+
# ๆๅ
จๅฑๅฎ่ฃ
|
|
39
|
+
npm install -g @skill4agent/cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> ๐ก ๅจ [skill4agent.com](https://www.skill4agent.com) ๆฅๆพๅฏ็จๆ่ฝ
|
|
12
43
|
> - `<ๆบไปๅบ>`: ๆบไปๅบๅ็งฐ๏ผๅฆ `anthropics/skills`๏ผ
|
|
13
44
|
> - `<ๆ่ฝๅ>`: ๆ่ฝๅ็งฐ๏ผๅฆ `frontend-design`๏ผ
|
|
14
45
|
|
|
@@ -131,3 +162,17 @@ npx skill4agent uninstall frontend-design --global
|
|
|
131
162
|
# ไป
ไปๆๆ้กน็ฎๅธ่ฝฝ
|
|
132
163
|
npx skill4agent uninstall frontend-design --project
|
|
133
164
|
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## ๐ ๆ็จ้พๆฅ
|
|
169
|
+
|
|
170
|
+
- ๐ **็ฝ็ซ**: [skill4agent.com](https://www.skill4agent.com) - ๅ็ฐๅนถๆต่งๆๆๅฏ็จ skills
|
|
171
|
+
- ๐ฆ **npm ๅ
**: [npmjs.com/package/@skill4agent/cli](https://www.npmjs.com/package/@skill4agent/cli)
|
|
172
|
+
- ๐ป **GitHub ไปๅบ**: [github.com/osulivan/skill4agent-cli](https://github.com/osulivan/skill4agent-cli)
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
<p align="center">
|
|
177
|
+
็จ โค๏ธ ็ฑ <a href="https://www.skill4agent.com">skill4agent.com</a> ๅถไฝ
|
|
178
|
+
</p>
|
package/bin/forward.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Forward script for skill4agent -> @skill4agent/cli
|
|
5
|
+
* This package is now a wrapper around @skill4agent/cli
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const path = require('path');
|
|
9
|
+
const { spawn } = require('child_process');
|
|
10
|
+
|
|
11
|
+
// Get the path to @skill4agent/cli's bin
|
|
12
|
+
const cliPath = require.resolve('@skill4agent/cli/bin/skill4agent.js');
|
|
13
|
+
|
|
14
|
+
// Forward all arguments to the new CLI
|
|
15
|
+
const args = process.argv.slice(2);
|
|
16
|
+
const child = spawn('node', [cliPath, ...args], {
|
|
17
|
+
stdio: 'inherit',
|
|
18
|
+
cwd: process.cwd()
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
child.on('exit', (code) => {
|
|
22
|
+
process.exit(code);
|
|
23
|
+
});
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill4agent",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "CLI tool for installing agent skills",
|
|
3
|
+
"version": "1.0.11",
|
|
4
|
+
"description": "CLI tool for installing agent skills (forwarded to @skill4agent/cli)",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"skill4agent": "./bin/
|
|
7
|
+
"skill4agent": "./bin/forward.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/forward.js",
|
|
11
|
+
"README.md",
|
|
12
|
+
"README_CN.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@skill4agent/cli": "^1.0.10"
|
|
8
17
|
},
|
|
9
18
|
"scripts": {
|
|
10
19
|
"build": "tsc",
|
|
Binary file
|
|
Binary file
|
package/bin/skill4agent.js
DELETED
package/dist/api.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export interface SkillInfo {
|
|
2
|
-
skillName: string;
|
|
3
|
-
name: string;
|
|
4
|
-
nameCn: string;
|
|
5
|
-
description: string;
|
|
6
|
-
descriptionCn: string;
|
|
7
|
-
descriptionTranslated: string;
|
|
8
|
-
category: {
|
|
9
|
-
nameCn: string;
|
|
10
|
-
nameEn: string;
|
|
11
|
-
} | null;
|
|
12
|
-
tags: string;
|
|
13
|
-
tagsCn: string;
|
|
14
|
-
originalLanguage: string;
|
|
15
|
-
hasTranslation: boolean;
|
|
16
|
-
hasScript: boolean;
|
|
17
|
-
scriptCount: number;
|
|
18
|
-
scriptCheckResult: string;
|
|
19
|
-
hasDownloaded: boolean;
|
|
20
|
-
downloadStatus: string;
|
|
21
|
-
totalInstalls: number;
|
|
22
|
-
trending24h: number;
|
|
23
|
-
}
|
|
24
|
-
export declare function downloadSkill(topSource: string, skillName: string, type?: 'original' | 'translated'): Promise<string>;
|
|
25
|
-
export declare function getSkillInfo(topSource: string, skillName: string): Promise<{
|
|
26
|
-
skill: SkillInfo | null;
|
|
27
|
-
sourceExists: boolean;
|
|
28
|
-
}>;
|
|
29
|
-
export declare function getDownloadUrl(topSource: string, skillName: string, type?: 'original' | 'translated'): string;
|
|
30
|
-
export declare function incrementInstallCount(topSource: string, skillName: string): Promise<void>;
|
|
31
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,UAAU,GAAG,YAAyB,GAC3C,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CA2CpI;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,UAAU,GAAG,YAAyB,GAAG,MAAM,CAEzH;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/F"}
|
package/dist/api.js
DELETED
|
@@ -1,83 +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.downloadSkill = downloadSkill;
|
|
7
|
-
exports.getSkillInfo = getSkillInfo;
|
|
8
|
-
exports.getDownloadUrl = getDownloadUrl;
|
|
9
|
-
exports.incrementInstallCount = incrementInstallCount;
|
|
10
|
-
const axios_1 = __importDefault(require("axios"));
|
|
11
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
12
|
-
const os_1 = __importDefault(require("os"));
|
|
13
|
-
const path_1 = __importDefault(require("path"));
|
|
14
|
-
const API_BASE = 'https://skill4agent.com/api';
|
|
15
|
-
async function downloadSkill(topSource, skillName, type = 'original') {
|
|
16
|
-
const url = `${API_BASE}/download?top_source=${encodeURIComponent(topSource)}&skill_name=${encodeURIComponent(skillName)}&type=${type}`;
|
|
17
|
-
const response = await axios_1.default.get(url, {
|
|
18
|
-
responseType: 'arraybuffer',
|
|
19
|
-
});
|
|
20
|
-
const tempDir = fs_extra_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'skill4agent-'));
|
|
21
|
-
const fileName = `${skillName}.zip`;
|
|
22
|
-
const filePath = path_1.default.join(tempDir, fileName);
|
|
23
|
-
fs_extra_1.default.writeFileSync(filePath, Buffer.from(response.data));
|
|
24
|
-
return filePath;
|
|
25
|
-
}
|
|
26
|
-
async function getSkillInfo(topSource, skillName) {
|
|
27
|
-
try {
|
|
28
|
-
const url = `${API_BASE}/skills/info?top_source=${encodeURIComponent(topSource)}&skill_name=${encodeURIComponent(skillName)}`;
|
|
29
|
-
const response = await axios_1.default.get(url);
|
|
30
|
-
if (response.status === 404) {
|
|
31
|
-
return { skill: null, sourceExists: false };
|
|
32
|
-
}
|
|
33
|
-
const skill = response.data.data;
|
|
34
|
-
if (!skill) {
|
|
35
|
-
return { skill: null, sourceExists: true };
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
skill: {
|
|
39
|
-
skillName: skill.skillName,
|
|
40
|
-
name: skill.name,
|
|
41
|
-
nameCn: skill.nameCn,
|
|
42
|
-
description: skill.description,
|
|
43
|
-
descriptionCn: skill.descriptionCn,
|
|
44
|
-
descriptionTranslated: skill.descriptionTranslated,
|
|
45
|
-
category: skill.category,
|
|
46
|
-
tags: skill.tags,
|
|
47
|
-
tagsCn: skill.tagsCn,
|
|
48
|
-
originalLanguage: skill.originalLanguage,
|
|
49
|
-
hasTranslation: skill.hasTranslation,
|
|
50
|
-
hasScript: skill.hasScript,
|
|
51
|
-
scriptCount: skill.scriptCount,
|
|
52
|
-
scriptCheckResult: skill.scriptCheckResult,
|
|
53
|
-
hasDownloaded: skill.hasDownloaded,
|
|
54
|
-
downloadStatus: skill.downloadStatus,
|
|
55
|
-
totalInstalls: skill.totalInstalls,
|
|
56
|
-
trending24h: skill.trending24h,
|
|
57
|
-
},
|
|
58
|
-
sourceExists: true,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
if (error.response?.status === 404) {
|
|
63
|
-
return { skill: null, sourceExists: false };
|
|
64
|
-
}
|
|
65
|
-
return { skill: null, sourceExists: false };
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function getDownloadUrl(topSource, skillName, type = 'original') {
|
|
69
|
-
return `${API_BASE}/download?top_source=${encodeURIComponent(topSource)}&skill_name=${encodeURIComponent(skillName)}&type=${type}`;
|
|
70
|
-
}
|
|
71
|
-
async function incrementInstallCount(topSource, skillName) {
|
|
72
|
-
try {
|
|
73
|
-
const url = `${API_BASE}/skills/install`;
|
|
74
|
-
await axios_1.default.post(url, {
|
|
75
|
-
top_source: topSource,
|
|
76
|
-
skill_name: skillName,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
// ้้ปๅคฑ่ดฅ๏ผไธๅฝฑๅๅฎ่ฃ
ๆต็จ
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/add.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAgKA,wBAAsB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgM7E"}
|
package/dist/commands/add.js
DELETED
|
@@ -1,300 +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.add = add;
|
|
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 os_1 = __importDefault(require("os"));
|
|
11
|
-
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const utils_1 = require("../utils");
|
|
13
|
-
const tools_1 = require("../tools");
|
|
14
|
-
const api_1 = require("../api");
|
|
15
|
-
const index_manager_1 = require("../index-manager");
|
|
16
|
-
function getAgentName(id) {
|
|
17
|
-
const agent = [...tools_1.UNIVERSAL_AGENTS, ...tools_1.OTHER_AGENTS].find(a => a.id === id);
|
|
18
|
-
return agent?.name || id;
|
|
19
|
-
}
|
|
20
|
-
async function promptTypeSelection(skillInfo) {
|
|
21
|
-
const isOriginalEnglish = skillInfo.originalLanguage === 'en';
|
|
22
|
-
const originalName = isOriginalEnglish ? 'English' : 'Chinese';
|
|
23
|
-
const translatedName = isOriginalEnglish ? 'Chinese' : 'English';
|
|
24
|
-
if (!skillInfo.hasTranslation) {
|
|
25
|
-
console.log(chalk_1.default.yellow(`\nโน๏ธ This skill does not have a ${translatedName} translation yet.`));
|
|
26
|
-
console.log(chalk_1.default.gray(` Installing ${originalName} version...\n`));
|
|
27
|
-
return 'original';
|
|
28
|
-
}
|
|
29
|
-
const { type } = await inquirer_1.default.prompt({
|
|
30
|
-
type: 'list',
|
|
31
|
-
name: 'type',
|
|
32
|
-
message: `Select version for "${skillInfo.name}"`,
|
|
33
|
-
choices: [
|
|
34
|
-
{
|
|
35
|
-
name: `${originalName} (Original)`,
|
|
36
|
-
value: 'original',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: `${translatedName} (Translation)`,
|
|
40
|
-
value: 'translated',
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
default: 'original',
|
|
44
|
-
});
|
|
45
|
-
return type;
|
|
46
|
-
}
|
|
47
|
-
async function promptScopeSelection() {
|
|
48
|
-
const { scope } = await inquirer_1.default.prompt({
|
|
49
|
-
type: 'list',
|
|
50
|
-
name: 'scope',
|
|
51
|
-
message: 'Installation scope',
|
|
52
|
-
choices: [
|
|
53
|
-
{
|
|
54
|
-
name: 'Project (Install in current directory (committed with your project))',
|
|
55
|
-
value: 'project',
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: 'Global (Install in home directory (available across all projects))',
|
|
59
|
-
value: 'global',
|
|
60
|
-
},
|
|
61
|
-
],
|
|
62
|
-
default: 'project',
|
|
63
|
-
});
|
|
64
|
-
return scope;
|
|
65
|
-
}
|
|
66
|
-
async function promptAgentSelection(isGlobal) {
|
|
67
|
-
const universalNames = tools_1.UNIVERSAL_AGENTS.map(a => a.name).join(', ');
|
|
68
|
-
const universalDisplayPath = (0, tools_1.getAgentDisplayPath)(tools_1.UNIVERSAL_AGENTS[0].id, isGlobal);
|
|
69
|
-
const otherAgentChoices = tools_1.OTHER_AGENTS.map(agent => ({
|
|
70
|
-
name: `${agent.name} (${(0, tools_1.getAgentDisplayPath)(agent.id, isGlobal)})`,
|
|
71
|
-
value: agent.id,
|
|
72
|
-
}));
|
|
73
|
-
console.log(chalk_1.default.green(`โ Universal (${universalDisplayPath}): ${universalNames} is always included`));
|
|
74
|
-
const { selectedOtherAgents } = await inquirer_1.default.prompt({
|
|
75
|
-
type: 'checkbox',
|
|
76
|
-
name: 'selectedOtherAgents',
|
|
77
|
-
message: 'Select additional agents:',
|
|
78
|
-
pageSize: 12,
|
|
79
|
-
loop: false,
|
|
80
|
-
choices: otherAgentChoices,
|
|
81
|
-
});
|
|
82
|
-
const selectedNames = selectedOtherAgents.map(id => tools_1.OTHER_AGENTS.find(a => a.id === id)?.name || id);
|
|
83
|
-
const displayNames = selectedNames.length > 0
|
|
84
|
-
? ['Universal', ...selectedNames].join(', ')
|
|
85
|
-
: 'Universal';
|
|
86
|
-
console.log(chalk_1.default.green(`โ Selected: ${displayNames}\n`));
|
|
87
|
-
const universalAgentIds = tools_1.UNIVERSAL_AGENTS.map(a => a.id);
|
|
88
|
-
return [...universalAgentIds, ...selectedOtherAgents];
|
|
89
|
-
}
|
|
90
|
-
async function promptMethodSelection() {
|
|
91
|
-
const { method } = await inquirer_1.default.prompt({
|
|
92
|
-
type: 'list',
|
|
93
|
-
name: 'method',
|
|
94
|
-
message: 'Installation method',
|
|
95
|
-
choices: [
|
|
96
|
-
{
|
|
97
|
-
name: 'Symlink (Recommended) (Single source of truth, easy updates)',
|
|
98
|
-
value: 'symlink',
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
name: 'Copy to all agents (Independent copies for each agent)',
|
|
102
|
-
value: 'copy',
|
|
103
|
-
},
|
|
104
|
-
],
|
|
105
|
-
default: 'symlink',
|
|
106
|
-
});
|
|
107
|
-
return method;
|
|
108
|
-
}
|
|
109
|
-
function displaySummary(skillName, source, typeDisplay, scope, agents, method) {
|
|
110
|
-
const universalAgentIds = tools_1.UNIVERSAL_AGENTS.map(a => a.id);
|
|
111
|
-
const hasUniversal = agents.some(id => universalAgentIds.includes(id));
|
|
112
|
-
const otherAgents = agents.filter(id => !universalAgentIds.includes(id));
|
|
113
|
-
const otherAgentNames = otherAgents.map(id => getAgentName(id));
|
|
114
|
-
const agentDisplay = hasUniversal
|
|
115
|
-
? ['Universal', ...otherAgentNames].join(', ')
|
|
116
|
-
: otherAgentNames.join(', ');
|
|
117
|
-
const agentCount = (hasUniversal ? 1 : 0) + otherAgentNames.length;
|
|
118
|
-
console.log(chalk_1.default.blue('\n๐ Installation Summary'));
|
|
119
|
-
console.log(chalk_1.default.gray('โ'.repeat(50)));
|
|
120
|
-
console.log(`Skill: ${chalk_1.default.white(skillName)}`);
|
|
121
|
-
console.log(`Source: ${source}`);
|
|
122
|
-
console.log(`Type: ${typeDisplay}`);
|
|
123
|
-
console.log(`Scope: ${scope === 'global' ? 'Global' : 'Project'}`);
|
|
124
|
-
console.log(`Agents (${agentCount}): ${agentDisplay}`);
|
|
125
|
-
console.log(`Method: ${method === 'symlink' ? 'Symlink (Recommended)' : 'Copy'}`);
|
|
126
|
-
console.log(chalk_1.default.gray('โ'.repeat(50)));
|
|
127
|
-
}
|
|
128
|
-
async function promptConfirmation() {
|
|
129
|
-
const { confirm } = await inquirer_1.default.prompt({
|
|
130
|
-
type: 'confirm',
|
|
131
|
-
name: 'confirm',
|
|
132
|
-
message: 'Proceed with installation?',
|
|
133
|
-
default: true,
|
|
134
|
-
});
|
|
135
|
-
return confirm;
|
|
136
|
-
}
|
|
137
|
-
async function add(topSource, skillName) {
|
|
138
|
-
console.log(chalk_1.default.blue(`\n๐ฆ Installing skill: ${skillName}`));
|
|
139
|
-
console.log(chalk_1.default.gray(` Source: ${topSource}\n`));
|
|
140
|
-
let result;
|
|
141
|
-
try {
|
|
142
|
-
result = await (0, api_1.getSkillInfo)(topSource, skillName);
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
console.log(chalk_1.default.red(`\nโ Skill "${skillName}" not found in source "${topSource}".`));
|
|
146
|
-
console.log(chalk_1.default.gray(` Please check the source repository and skill name.\n`));
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
if (!result.skill) {
|
|
150
|
-
console.log(chalk_1.default.red(`\nโ Skill "${skillName}" not found in source "${topSource}".`));
|
|
151
|
-
console.log(chalk_1.default.gray(` Please check the source repository and skill name.\n`));
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
const skillInfo = result.skill;
|
|
155
|
-
console.log(chalk_1.default.blue(`\n๐ฆ Skill: ${chalk_1.default.white(skillInfo.name)}`));
|
|
156
|
-
console.log(chalk_1.default.gray(` Category: ${skillInfo.category?.nameEn || 'N/A'} | Installs: ${skillInfo.totalInstalls}`));
|
|
157
|
-
if (skillInfo.tags) {
|
|
158
|
-
console.log(chalk_1.default.gray(` Tags: ${skillInfo.tags}`));
|
|
159
|
-
}
|
|
160
|
-
if (!skillInfo.hasScript) {
|
|
161
|
-
console.log(chalk_1.default.gray(` ๐ Scripts: No scripts`));
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
const statusText = skillInfo.scriptCheckResult === 'safe' ? 'โ
Check passed' : 'โ ๏ธ Needs attention';
|
|
165
|
-
console.log(chalk_1.default.gray(` ๐ Scripts: ${skillInfo.scriptCount} script(s) - ${statusText}`));
|
|
166
|
-
}
|
|
167
|
-
console.log(chalk_1.default.gray(` ${skillInfo.hasTranslation ? 'โ
' : 'โ'} Translation available\n`));
|
|
168
|
-
const type = await promptTypeSelection(skillInfo);
|
|
169
|
-
const isOriginalEnglish = skillInfo.originalLanguage === 'en';
|
|
170
|
-
const typeDisplay = type === 'original'
|
|
171
|
-
? (isOriginalEnglish ? 'English' : 'Chinese')
|
|
172
|
-
: (isOriginalEnglish ? 'Chinese' : 'English');
|
|
173
|
-
console.log(chalk_1.default.gray(` Type: ${typeDisplay}\n`));
|
|
174
|
-
const scope = await promptScopeSelection();
|
|
175
|
-
const isGlobal = scope === 'global';
|
|
176
|
-
const selectedAgentIds = await promptAgentSelection(isGlobal);
|
|
177
|
-
if (selectedAgentIds.length === 0) {
|
|
178
|
-
console.log(chalk_1.default.yellow('\nโ ๏ธ No agents selected. Installation cancelled.'));
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
const installMethod = await promptMethodSelection();
|
|
182
|
-
displaySummary(skillName, topSource, typeDisplay, scope, selectedAgentIds, installMethod);
|
|
183
|
-
const confirmed = await promptConfirmation();
|
|
184
|
-
if (!confirmed) {
|
|
185
|
-
console.log(chalk_1.default.yellow('\nโ ๏ธ Installation cancelled.'));
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
const basePath = isGlobal ? os_1.default.homedir() : process.cwd();
|
|
189
|
-
let tempZip;
|
|
190
|
-
try {
|
|
191
|
-
tempZip = await (0, api_1.downloadSkill)(topSource, skillName, type);
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
if (error.response?.status === 404) {
|
|
195
|
-
console.log(chalk_1.default.red(`\nโ Failed to download skill "${skillName}".`));
|
|
196
|
-
console.log(chalk_1.default.gray(` The skill may not exist or the download link is invalid.\n`));
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
console.log(chalk_1.default.red(`\nโ Download failed: ${error.message}`));
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
if (installMethod === 'symlink') {
|
|
203
|
-
const universalFullPath = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH);
|
|
204
|
-
fs_extra_1.default.ensureDirSync(universalFullPath);
|
|
205
|
-
const skillDir = path_1.default.join(universalFullPath, skillName);
|
|
206
|
-
if (fs_extra_1.default.existsSync(skillDir)) {
|
|
207
|
-
console.log(chalk_1.default.yellow(`\nโ ๏ธ Skill "${skillName}" already exists. Overwriting...`));
|
|
208
|
-
fs_extra_1.default.removeSync(skillDir);
|
|
209
|
-
}
|
|
210
|
-
await (0, utils_1.extractZip)(tempZip, universalFullPath);
|
|
211
|
-
fs_extra_1.default.removeSync(tempZip);
|
|
212
|
-
console.log(chalk_1.default.green(`โ
Installed to: ${skillDir}`));
|
|
213
|
-
const otherAgentIds = selectedAgentIds.filter(id => !tools_1.UNIVERSAL_AGENTS.some(a => a.id === id));
|
|
214
|
-
for (const agentId of otherAgentIds) {
|
|
215
|
-
const agent = tools_1.OTHER_AGENTS.find(a => a.id === agentId);
|
|
216
|
-
if (!agent)
|
|
217
|
-
continue;
|
|
218
|
-
const effectivePath = isGlobal && agent.globalPath ? agent.globalPath : agent.path;
|
|
219
|
-
const agentPath = path_1.default.join(basePath, effectivePath);
|
|
220
|
-
fs_extra_1.default.ensureDirSync(agentPath);
|
|
221
|
-
const destDir = path_1.default.join(agentPath, skillName);
|
|
222
|
-
if (fs_extra_1.default.existsSync(destDir)) {
|
|
223
|
-
fs_extra_1.default.removeSync(destDir);
|
|
224
|
-
}
|
|
225
|
-
if (isGlobal) {
|
|
226
|
-
fs_extra_1.default.symlinkSync(skillDir, destDir);
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
const relativePath = path_1.default.relative(agentPath, skillDir);
|
|
230
|
-
fs_extra_1.default.symlinkSync(relativePath, destDir);
|
|
231
|
-
}
|
|
232
|
-
console.log(chalk_1.default.green(`โ
Linked to: ${destDir}`));
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
const universalFullPath = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH);
|
|
237
|
-
fs_extra_1.default.ensureDirSync(universalFullPath);
|
|
238
|
-
if (fs_extra_1.default.existsSync(path_1.default.join(universalFullPath, skillName))) {
|
|
239
|
-
fs_extra_1.default.removeSync(path_1.default.join(universalFullPath, skillName));
|
|
240
|
-
}
|
|
241
|
-
await (0, utils_1.extractZip)(tempZip, universalFullPath);
|
|
242
|
-
fs_extra_1.default.removeSync(tempZip);
|
|
243
|
-
console.log(chalk_1.default.green(`โ
Copied to: ${universalFullPath}`));
|
|
244
|
-
let copiedCount = 0;
|
|
245
|
-
const otherAgentIds = selectedAgentIds.filter(id => !tools_1.UNIVERSAL_AGENTS.some(a => a.id === id));
|
|
246
|
-
for (const agentId of otherAgentIds) {
|
|
247
|
-
const agent = tools_1.OTHER_AGENTS.find(a => a.id === agentId);
|
|
248
|
-
if (!agent)
|
|
249
|
-
continue;
|
|
250
|
-
const effectivePath = isGlobal && agent.globalPath ? agent.globalPath : agent.path;
|
|
251
|
-
const agentPath = path_1.default.join(basePath, effectivePath);
|
|
252
|
-
fs_extra_1.default.ensureDirSync(agentPath);
|
|
253
|
-
const destDir = path_1.default.join(agentPath, skillName);
|
|
254
|
-
if (fs_extra_1.default.existsSync(destDir)) {
|
|
255
|
-
fs_extra_1.default.removeSync(destDir);
|
|
256
|
-
}
|
|
257
|
-
fs_extra_1.default.copySync(path_1.default.join(universalFullPath, skillName), destDir);
|
|
258
|
-
console.log(chalk_1.default.green(`โ
Copied to: ${destDir}`));
|
|
259
|
-
copiedCount++;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
// Update installation count
|
|
263
|
-
await (0, api_1.incrementInstallCount)(topSource, skillName);
|
|
264
|
-
// Record installation info to index
|
|
265
|
-
const installScope = isGlobal ? 'global' : (0, index_manager_1.getCurrentScope)();
|
|
266
|
-
const skillDir = path_1.default.join(basePath, tools_1.UNIVERSAL_PATH, skillName);
|
|
267
|
-
// Collect symlink and copy directories
|
|
268
|
-
const symlinkDirs = [];
|
|
269
|
-
const copyDirs = [];
|
|
270
|
-
const otherAgentIds = selectedAgentIds.filter(id => !tools_1.UNIVERSAL_AGENTS.some(a => a.id === id));
|
|
271
|
-
for (const agentId of otherAgentIds) {
|
|
272
|
-
const agent = tools_1.OTHER_AGENTS.find(a => a.id === agentId);
|
|
273
|
-
if (!agent)
|
|
274
|
-
continue;
|
|
275
|
-
const effectivePath = isGlobal && agent.globalPath ? agent.globalPath : agent.path;
|
|
276
|
-
const agentPath = path_1.default.join(basePath, effectivePath);
|
|
277
|
-
const destDir = path_1.default.join(agentPath, skillName);
|
|
278
|
-
if (installMethod === 'symlink') {
|
|
279
|
-
symlinkDirs.push(destDir);
|
|
280
|
-
}
|
|
281
|
-
else {
|
|
282
|
-
copyDirs.push(destDir);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
const metadata = (0, index_manager_1.createSkillMetadata)(skillName, topSource, installScope);
|
|
286
|
-
(0, index_manager_1.writeSkillMetadata)(skillDir, metadata);
|
|
287
|
-
(0, index_manager_1.addOrUpdateSkill)({
|
|
288
|
-
name: skillName,
|
|
289
|
-
source: topSource,
|
|
290
|
-
installedAt: metadata.installedAt,
|
|
291
|
-
scope: installScope,
|
|
292
|
-
locations: {
|
|
293
|
-
universal: skillDir,
|
|
294
|
-
symlink: symlinkDirs,
|
|
295
|
-
copy: copyDirs,
|
|
296
|
-
},
|
|
297
|
-
});
|
|
298
|
-
console.log(chalk_1.default.green('\n๐ Installation completed!\n'));
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|