@cannbot-ai/install-helper 0.0.2-beta.28 → 0.0.2-beta.29
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 +47 -35
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,11 +16,13 @@ install-helper
|
|
|
16
16
|
npx @cannbot-ai/install-helper
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
> 全局安装后也可使用短命令 `ihelper`,如 `ihelper list`、`ihelper install --all --tool opencode --yes`。
|
|
20
|
+
|
|
21
|
+
交互式向导会自动检测已安装的 AI 编程工具(OpenCode / Claude Code / Trae / Cursor / GitHub Copilot),通过箭头键选择场景即可完成安装。
|
|
20
22
|
|
|
21
23
|
## 一键安装所有 Skills
|
|
22
24
|
|
|
23
|
-
如果 opencode
|
|
25
|
+
如果 AI 编程工具已安装,可直接一键安装全部 Skills(无需逐个点选)。支持所有工具(opencode / claude / trae / cursor / copilot):
|
|
24
26
|
|
|
25
27
|
```bash
|
|
26
28
|
# 一键安装全部 Skills 到当前项目(跳过确认)
|
|
@@ -28,6 +30,13 @@ install-helper install --all --tool opencode --yes
|
|
|
28
30
|
|
|
29
31
|
# 一键安装全部 Skills 到全局
|
|
30
32
|
install-helper install --all --tool opencode --level global --yes
|
|
33
|
+
|
|
34
|
+
# 指定其他 AI 工具
|
|
35
|
+
install-helper install --all --tool claude --yes
|
|
36
|
+
install-helper install --all --tool trae --yes
|
|
37
|
+
|
|
38
|
+
# 不指定 --tool,交互式选择工具
|
|
39
|
+
install-helper install --all --yes
|
|
31
40
|
```
|
|
32
41
|
|
|
33
42
|
> 交互式向导也支持「全选所有 Skills」和「全选当前类别」,详见下文。
|
|
@@ -43,8 +52,11 @@ install-helper install --all --tool opencode --level global --yes
|
|
|
43
52
|
|
|
44
53
|
### 安装管理
|
|
45
54
|
- **交互式向导**:箭头键选择,空格切换,回车确认
|
|
55
|
+
- **列表排序**:插件和 Skills 列表按名称升序排列
|
|
56
|
+
- **描述聚焦**:光标聚焦某项时,下方以青色 + 💡 前缀显示详细描述,支持中文自适应换行
|
|
57
|
+
- **批量选择**:支持全选所有 Skills、全选当前类别、跨类别累积选择
|
|
46
58
|
- **插件安装**:支持 10 个官方插件,自动处理依赖
|
|
47
|
-
- **Skill 安装**:支持
|
|
59
|
+
- **Skill 安装**:支持 91 个 Skills,按 11 个类别组织
|
|
48
60
|
- **智能卸载**:根据安装记录精确删除,自动清理空目录
|
|
49
61
|
- **健康检查**:检测安装状态,自动修复常见问题
|
|
50
62
|
|
|
@@ -56,7 +68,7 @@ install-helper install --all --tool opencode --level global --yes
|
|
|
56
68
|
| `install-helper list` | 列出可用场景及安装状态 |
|
|
57
69
|
| `install-helper install <name>` | 安装指定插件或 Skill(自动识别) |
|
|
58
70
|
| `install-helper install --list` | 按类别列出所有可用 Skills |
|
|
59
|
-
| `install-helper install --all --tool
|
|
71
|
+
| `install-helper install --all --tool <tool> --yes` | 一键安装全部 Skills |
|
|
60
72
|
| `install-helper update [plugin]` | 更新已安装的 Skills |
|
|
61
73
|
| `install-helper uninstall <plugin>` | 卸载指定场景 |
|
|
62
74
|
| `install-helper status` | 查看已安装插件详情 |
|
|
@@ -77,10 +89,13 @@ install-helper init
|
|
|
77
89
|
```
|
|
78
90
|
|
|
79
91
|
向导会引导你完成:
|
|
80
|
-
1.
|
|
81
|
-
2.
|
|
82
|
-
3.
|
|
83
|
-
4.
|
|
92
|
+
1. 选择安装类型(Plugin 完整工作流 / Skill 轻量知识)
|
|
93
|
+
2. 自动检测已安装的 AI 编程工具
|
|
94
|
+
3. 选择安装级别(project / global)
|
|
95
|
+
4. 多选要安装的插件或 Skills(空格切换,回车确认)
|
|
96
|
+
5. 确认并执行安装
|
|
97
|
+
|
|
98
|
+
**列表展示**:插件和 Skill 列表均按名称升序排列。光标聚焦某项时,下方会以青色 + 💡 前缀显示该项的详细描述,支持中文自适应换行。
|
|
84
99
|
|
|
85
100
|
**智能记忆**:向导会记住你上次选择的工具和级别,下次运行无需重新选择。已安装的插件会自动标记并默认不勾选。
|
|
86
101
|
|
|
@@ -95,11 +110,7 @@ install-helper install ops-direct-invoke --level global # 全局安装
|
|
|
95
110
|
|
|
96
111
|
**重要说明**:
|
|
97
112
|
|
|
98
|
-
每个插件都有独立的 `AGENTS.md`
|
|
99
|
-
|
|
100
|
-
**推荐做法**:
|
|
101
|
-
- 每个项目只安装一个插件
|
|
102
|
-
- 如需使用多个插件,在不同目录下分别安装
|
|
113
|
+
每个插件都有独立的 `AGENTS.md` 配置文件。如果在同一目录下安装多个插件,后安装的会覆盖前一个的配置文件。建议每个项目只安装一个插件,如需使用多个插件,在不同目录下分别安装。
|
|
103
114
|
|
|
104
115
|
**示例**:
|
|
105
116
|
```bash
|
|
@@ -112,8 +123,6 @@ cd project-b
|
|
|
112
123
|
install-helper install triton --tool opencode
|
|
113
124
|
```
|
|
114
125
|
|
|
115
|
-
> **注意**:每个插件有独立的 `AGENTS.md` 配置文件。同一项目目录下安装多个插件时,后安装的会覆盖前一个的 `AGENTS.md`。如需同时使用多个插件,建议分别在不同项目目录中安装。
|
|
116
|
-
|
|
117
126
|
### 安装单个 Skill(轻量模式)
|
|
118
127
|
|
|
119
128
|
如果只需要让 AI agent 掌握特定领域知识,不需要完整工作流,可以直接安装单个 Skill:
|
|
@@ -125,14 +134,16 @@ install-helper install model-infer-kvcache # 安装 KVCache 优化
|
|
|
125
134
|
install-helper install --list # 查看所有可用 Skills
|
|
126
135
|
```
|
|
127
136
|
|
|
128
|
-
Skills 按 11
|
|
137
|
+
Skills 按 11 个大类组织(另有「其他」兜底类别):知识与参考、环境与工具、调试与诊断、测试与质量、AscendC 开发、PyPTO 开发、TileLang 开发、Triton 开发、模型推理优化、图模式、平台工具。
|
|
129
138
|
|
|
130
139
|
`install` 命令自动识别输入是插件还是 Skill,无需区分。
|
|
131
140
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
141
|
+
**交互式批量选择**:运行 `install-helper install`(不带参数)进入交互式选择时,支持以下批量操作:
|
|
142
|
+
|
|
143
|
+
- **全选所有 Skills**:类别列表顶部有「全选所有 Skills(共 N 个)」,选中即一键安装全部。
|
|
144
|
+
- **全选当前类别**:进入某类别后,顶部有「全选当前类别」,勾选后回车即选中该类别全部 Skills。
|
|
145
|
+
- **跨类别累积选择**:选完一个类别后,可选择「继续选择其他类别」,已选 Skills 会保留累积,不丢失。类别列表中实时显示「确认安装(已选 N 个 Skills)」快捷入口,随时可确认安装。
|
|
146
|
+
- **单选/多选**:在类别内用空格勾选任意多个 Skills,回车确认。
|
|
136
147
|
|
|
137
148
|
**选项:**
|
|
138
149
|
|
|
@@ -204,26 +215,26 @@ install-helper uninstall ops-direct-invoke --tool opencode
|
|
|
204
215
|
|
|
205
216
|
## 可用场景
|
|
206
217
|
|
|
207
|
-
install-helper 支持 **10 个官方插件** 和 **
|
|
218
|
+
install-helper 支持 **10 个官方插件** 和 **91 个 Skills**(动态发现,数量可能随仓库更新而变化)。
|
|
208
219
|
|
|
209
220
|
#### 官方插件
|
|
210
221
|
|
|
211
222
|
| # | 场景 | ID | 别名 |
|
|
212
223
|
|---|------|----|------|
|
|
213
|
-
| 1 | AscendC Kernel 直调 | ops-direct-invoke | ops-direct, direct, kernel |
|
|
214
|
-
| 2 | AscendC Kernel
|
|
215
|
-
| 3 | AscendC 算子注册调用 | ops-registry-invoke | ops-registry, registry |
|
|
216
|
-
| 4 |
|
|
217
|
-
| 5 |
|
|
218
|
-
| 6 |
|
|
219
|
-
| 7 |
|
|
220
|
-
| 8 |
|
|
221
|
-
| 9 |
|
|
222
|
-
| 10 |
|
|
224
|
+
| 1 | AscendC Kernel 直调 | ops-direct-invoke | ops-direct, ascendc-direct, direct, kernel |
|
|
225
|
+
| 2 | AscendC Kernel 直调(快速版) | ops-direct-invoke-flash | flash, kernel-flash |
|
|
226
|
+
| 3 | AscendC 算子注册调用 | ops-registry-invoke | ops-registry, ascendc-registry, registry |
|
|
227
|
+
| 4 | Catlass 算子直调 | catlass-op-generator | catlass |
|
|
228
|
+
| 5 | NPU 推理优化 | model-infer-optimize | model-infer, infer, inference |
|
|
229
|
+
| 6 | PyPTO 算子开发 | pypto-op-orchestrator | pypto, pytorch |
|
|
230
|
+
| 7 | TileLang 算子开发 | tilelang-op-orchestrator | tilelang |
|
|
231
|
+
| 8 | Triton 算子开发 | triton-op-generator | triton |
|
|
232
|
+
| 9 | torch.compile 图模式 | torch-compile | torch, compile, graph |
|
|
233
|
+
| 10 | 代码检视 | ops-code-reviewer | code-review, reviewer, review |
|
|
223
234
|
|
|
224
235
|
#### Skills 类别
|
|
225
236
|
|
|
226
|
-
Skills 按 11
|
|
237
|
+
Skills 按 11 个类别组织(另有「其他」兜底类别,动态发现,数量可能随仓库更新而变化):
|
|
227
238
|
- 知识与参考
|
|
228
239
|
- 环境与工具
|
|
229
240
|
- 调试与诊断
|
|
@@ -235,13 +246,14 @@ Skills 按 11 个类别组织(动态发现,数量可能随仓库更新而变
|
|
|
235
246
|
- 模型推理优化
|
|
236
247
|
- 图模式
|
|
237
248
|
- 平台工具
|
|
249
|
+
- 其他 Skills
|
|
238
250
|
|
|
239
251
|
使用 `install-helper install --list` 查看完整的 Skills 列表。
|
|
240
252
|
|
|
241
253
|
## 前置条件
|
|
242
254
|
|
|
243
255
|
- Node.js >= 18
|
|
244
|
-
- 已安装至少一个 AI 编程工具(OpenCode / Claude Code / Trae / Cursor)
|
|
256
|
+
- 已安装至少一个 AI 编程工具(OpenCode / Claude Code / Trae / Cursor / GitHub Copilot)
|
|
245
257
|
- Git(用于克隆 Skills 仓库)
|
|
246
258
|
|
|
247
259
|
## 工作原理
|
|
@@ -276,8 +288,8 @@ installedPlugins: # 已安装的插件列表
|
|
|
276
288
|
// scan-cache.json - 扫描缓存(自动生成,24 小时有效)
|
|
277
289
|
{
|
|
278
290
|
"skills": [...],
|
|
279
|
-
"
|
|
280
|
-
"
|
|
291
|
+
"repoCommit": "a1b2c3d4e5f6...",
|
|
292
|
+
"timestamp": 1234567890
|
|
281
293
|
}
|
|
282
294
|
```
|
|
283
295
|
|
package/dist/index.js
CHANGED
|
@@ -878,7 +878,7 @@ import { parse as parseYaml3 } from "yaml";
|
|
|
878
878
|
|
|
879
879
|
// src/core/scanner.ts
|
|
880
880
|
import { existsSync as existsSync5, readdirSync as readdirSync2, readFileSync as readFileSync5, statSync, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "fs";
|
|
881
|
-
import { join as join7, dirname as dirname3 } from "path";
|
|
881
|
+
import { join as join7, dirname as dirname3, relative } from "path";
|
|
882
882
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
883
883
|
import { parse as parseYaml2 } from "yaml";
|
|
884
884
|
var __filename3 = fileURLToPath3(import.meta.url);
|
|
@@ -1037,7 +1037,7 @@ function scanDirectory(dirPath, repoPath, sourcePrefix, skills, seen) {
|
|
|
1037
1037
|
skills.push({
|
|
1038
1038
|
id: frontmatter.name,
|
|
1039
1039
|
description: frontmatter.description,
|
|
1040
|
-
source:
|
|
1040
|
+
source: dirname3(relative(repoPath, dirPath)),
|
|
1041
1041
|
filePath: selfSkillMd
|
|
1042
1042
|
});
|
|
1043
1043
|
}
|
|
@@ -1061,7 +1061,7 @@ function scanDirectory(dirPath, repoPath, sourcePrefix, skills, seen) {
|
|
|
1061
1061
|
}
|
|
1062
1062
|
continue;
|
|
1063
1063
|
}
|
|
1064
|
-
scanDirectory(fullPath, repoPath, sourcePrefix, skills, seen);
|
|
1064
|
+
scanDirectory(fullPath, repoPath, sourcePrefix + "/" + entry, skills, seen);
|
|
1065
1065
|
}
|
|
1066
1066
|
}
|
|
1067
1067
|
function safeReaddir(dir) {
|
|
@@ -3228,7 +3228,7 @@ function createCLI() {
|
|
|
3228
3228
|
setLanguage(config.language);
|
|
3229
3229
|
}
|
|
3230
3230
|
const program2 = new Command();
|
|
3231
|
-
program2.name("install-helper").description("CANNBot Install Helper - Interactive installer for CANN operator development skills").version("0.0.2-beta.
|
|
3231
|
+
program2.name("install-helper").description("CANNBot Install Helper - Interactive installer for CANN operator development skills").version("0.0.2-beta.29");
|
|
3232
3232
|
program2.command("init", { isDefault: false }).description("Run interactive installation wizard").action(async () => {
|
|
3233
3233
|
await initCommand();
|
|
3234
3234
|
});
|