rrskill 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/bin/rrskill.js +8 -0
- package/dist/index.js +1264 -0
- package/dist/install.sh +580 -0
- package/dist/rrskill.md +157 -0
- package/package.json +18 -0
- package/src/builtins/plugins/openclaw/index.ts +63 -0
- package/src/builtins/plugins/openclaw/openclaw.plugin.json +34 -0
- package/src/builtins/skills/find-skills.md +63 -0
- package/src/builtins/skills/rrskill-preference.md +15 -0
package/README.md
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# rrskill-cli
|
|
2
|
+
|
|
3
|
+
`rrskill-cli/` 是当前官方 `rrskill` Node/TypeScript CLI 源码目录。
|
|
4
|
+
|
|
5
|
+
这里的文档现在按职责拆开:
|
|
6
|
+
|
|
7
|
+
- [README.md](./README.md)
|
|
8
|
+
- 面向使用、安装、开发
|
|
9
|
+
- [ARCHITECTURE.md](./ARCHITECTURE.md)
|
|
10
|
+
- 面向架构、目录结构、文件目的、边界
|
|
11
|
+
- [PUBLISHING.md](./PUBLISHING.md)
|
|
12
|
+
- 面向版本管理、打包、npm 发布、发布后 smoke
|
|
13
|
+
|
|
14
|
+
## 1. 包定位
|
|
15
|
+
|
|
16
|
+
这个目录里的 CLI 当前具备:
|
|
17
|
+
|
|
18
|
+
- Node runtime
|
|
19
|
+
- TypeScript 主实现
|
|
20
|
+
- npm-only 分发
|
|
21
|
+
- npm-only CLI 升级
|
|
22
|
+
- `bootstrap` 作为宿主接入与修复入口
|
|
23
|
+
|
|
24
|
+
官方同时维护两个 npm 包名:
|
|
25
|
+
|
|
26
|
+
- `rrskill`
|
|
27
|
+
- `@rrskill/cli`
|
|
28
|
+
|
|
29
|
+
两个包都暴露同一个终端命令:
|
|
30
|
+
|
|
31
|
+
- `rrskill`
|
|
32
|
+
|
|
33
|
+
## 2. 安装方式
|
|
34
|
+
|
|
35
|
+
### 2.1 直接 npm 安装
|
|
36
|
+
|
|
37
|
+
全局安装:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm install -g rrskill
|
|
41
|
+
rrskill bootstrap --host openclaw
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
或:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install -g @rrskill/cli
|
|
48
|
+
rrskill bootstrap --host openclaw
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
一次性运行:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx rrskill@latest version
|
|
55
|
+
npx @rrskill/cli@latest version
|
|
56
|
+
bunx rrskill@latest version
|
|
57
|
+
bunx @rrskill/cli@latest version
|
|
58
|
+
pnpm dlx rrskill@latest version
|
|
59
|
+
pnpm dlx @rrskill/cli@latest version
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2.2 官网在线安装脚本
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
curl -fsSL https://rrskill.ai/install/install.sh | bash
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
指定宿主:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
curl -fsSL https://rrskill.ai/install/install.sh | bash -s -- --openclaw
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
说明:
|
|
75
|
+
|
|
76
|
+
- `install.sh` 默认走完整初始化流程:检查环境、安装 CLI、执行 bootstrap
|
|
77
|
+
- `openclaw` 支持完整初始化
|
|
78
|
+
- `codex` / `claude-code` 可以通过 `--skip-bootstrap` 完成 CLI 安装,但当前不支持完整宿主修复
|
|
79
|
+
- `install.sh` 现在支持 `--check`、`--dry-run`、`--skip-bootstrap`、`--output json|text`
|
|
80
|
+
|
|
81
|
+
`install.sh` 的职责只有:
|
|
82
|
+
|
|
83
|
+
1. 检测系统和 Node/npm
|
|
84
|
+
2. 必要时安装受管 Node
|
|
85
|
+
3. 用 npm 安装 `rrskill`
|
|
86
|
+
4. 调用 `rrskill bootstrap --host <name>`
|
|
87
|
+
|
|
88
|
+
示例:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
curl -fsSL https://rrskill.ai/install/install.sh | bash -s -- --check --output json
|
|
92
|
+
curl -fsSL https://rrskill.ai/install/install.sh | bash -s -- --dry-run
|
|
93
|
+
curl -fsSL https://rrskill.ai/install/install.sh | bash -s -- --host codex --skip-bootstrap --output json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
另外有一个实现约束:
|
|
97
|
+
|
|
98
|
+
- `install.sh` 顶部常量需要和 `src/installer/constants.ts` 保持一致
|
|
99
|
+
- 我们现在用“显式顶部配置 + 测试校验”来避免 shell / TS 漂移
|
|
100
|
+
|
|
101
|
+
## 3. 命令说明
|
|
102
|
+
|
|
103
|
+
当前已接通的核心命令:
|
|
104
|
+
|
|
105
|
+
| 命令 | 作用 |
|
|
106
|
+
| --- | --- |
|
|
107
|
+
| `rrskill <slug>` | `install` 简写 |
|
|
108
|
+
| `rrskill install <slug>` | 安装指定 marketplace skill |
|
|
109
|
+
| `rrskill search <query>` | 搜索 registry 中的 skill |
|
|
110
|
+
| `rrskill list` | 查看当前宿主已安装 skill |
|
|
111
|
+
| `rrskill upgrade` | 升级当前宿主已安装的 marketplace skill |
|
|
112
|
+
| `rrskill bootstrap --host <name>` | 安装内置 skill、安装宿主 plugin、修复宿主配置、执行校验 |
|
|
113
|
+
| `rrskill doctor --host <name>` | 检查当前 host 的初始化状态,并返回修复建议或直接执行修复 |
|
|
114
|
+
| `rrskill version` | 输出 CLI 版本信息与升级提示 |
|
|
115
|
+
|
|
116
|
+
host 参数:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
--host <openclaw|codex|claude-code>
|
|
120
|
+
--openclaw
|
|
121
|
+
--codex
|
|
122
|
+
--claude-code
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
规则:
|
|
126
|
+
|
|
127
|
+
- `--host` 是 canonical 参数
|
|
128
|
+
- `--openclaw` / `--codex` / `--claude-code` 是 sugar alias
|
|
129
|
+
- 未传 host 时默认 `openclaw`
|
|
130
|
+
- 非法 host 会直接报错,不再静默回退
|
|
131
|
+
|
|
132
|
+
示例:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
rrskill web-search
|
|
136
|
+
rrskill web-search --codex
|
|
137
|
+
rrskill install web-search --host claude-code
|
|
138
|
+
rrskill bootstrap --openclaw
|
|
139
|
+
rrskill doctor --host openclaw
|
|
140
|
+
rrskill doctor --host openclaw --fix
|
|
141
|
+
rrskill search browser automation
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
输出相关:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
rrskill search react --output json
|
|
148
|
+
rrskill doctor --host openclaw --output json
|
|
149
|
+
rrskill search react --json
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## 4. 配置说明
|
|
153
|
+
|
|
154
|
+
默认配置文件:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
~/.rrskill/config.json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
也可以通过环境变量覆盖:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
RRSKILL_CONFIG_PATH=/path/to/config.json
|
|
164
|
+
RRSKILL_HOST=codex
|
|
165
|
+
RRSKILL_SKILLS_SEARCH_URL=https://api.rrskill.ai/skills?page=1&size={limit}&search={query}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
当前支持的配置字段:
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"host": "codex",
|
|
173
|
+
"state_dir": "/Users/demo/.rrskill",
|
|
174
|
+
"skills_search_url": "https://api.rrskill.ai/skills?page=1&size={limit}&search={query}&orderBy=downloadCount&order=desc"
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
兼容 key:
|
|
179
|
+
|
|
180
|
+
- `state_dir` / `stateDir`
|
|
181
|
+
- `skills_search_url` / `skillsSearchUrl`
|
|
182
|
+
|
|
183
|
+
## 5. 当前宿主支持情况
|
|
184
|
+
|
|
185
|
+
| 能力 | openclaw | codex | claude-code |
|
|
186
|
+
| --- | --- | --- | --- |
|
|
187
|
+
| `search/install/list/upgrade` | 支持 | 支持 | 支持 |
|
|
188
|
+
| 默认路径推导 | 支持 | 支持 | 支持 |
|
|
189
|
+
| `doctor` 检查 | 支持 | 支持 | 支持 |
|
|
190
|
+
| `doctor --fix` 实际修复 | 支持 | 暂未支持 | 暂未支持 |
|
|
191
|
+
| `bootstrap` 完整成功 | 支持 | 暂未支持 | 暂未支持 |
|
|
192
|
+
| `bootstrap` 内置 skill 落点 | 支持 | 支持 | 支持 |
|
|
193
|
+
| `bootstrap` 宿主 plugin 安装 | 支持 | 暂未实现 | 暂未实现 |
|
|
194
|
+
| `bootstrap` 宿主配置修复 | 支持 | 暂未实现 | 暂未实现 |
|
|
195
|
+
| `install.sh` 完整初始化 | 支持 | 需配合 `--skip-bootstrap` | 需配合 `--skip-bootstrap` |
|
|
196
|
+
|
|
197
|
+
也就是说:
|
|
198
|
+
|
|
199
|
+
- `openclaw` 是当前唯一做完整 bootstrap repair 的宿主
|
|
200
|
+
- `codex` / `claude-code` 已经有统一路径模型和 skill 落点
|
|
201
|
+
- 这两个宿主当前推荐用 `doctor` 做检查,用 `search/install/list/upgrade` 完成 CLI 侧操作
|
|
202
|
+
- 它们的 `bootstrap` 目前会明确返回未支持,而不是假成功
|
|
203
|
+
- 后续只需要补它们自己的宿主 plugin/config integration
|
|
204
|
+
|
|
205
|
+
## 6. 开发
|
|
206
|
+
|
|
207
|
+
当前 `rrskill-cli/` 是仓库内独立包,不在根 `pnpm-workspace.yaml` 里。
|
|
208
|
+
|
|
209
|
+
开发时建议直接在目录内执行:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
cd rrskill-cli
|
|
213
|
+
pnpm install --ignore-workspace
|
|
214
|
+
pnpm run test
|
|
215
|
+
pnpm run build
|
|
216
|
+
pnpm run build:packages
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## 7. 发布
|
|
220
|
+
|
|
221
|
+
发布教程现在独立放在:
|
|
222
|
+
|
|
223
|
+
- [PUBLISHING.md](./PUBLISHING.md)
|
|
224
|
+
|
|
225
|
+
这里单独拎出去的原因是:
|
|
226
|
+
|
|
227
|
+
- 使用者不需要看维护者发布细节
|
|
228
|
+
- 发布链路比“安装/使用”更强调步骤顺序和校验
|
|
229
|
+
- 现在 `build:packages` 对默认开发版 `0.0.0-dev` 有保护,发布前必须先改版本号
|
|
230
|
+
|
|
231
|
+
## 8. 进一步阅读
|
|
232
|
+
|
|
233
|
+
如果你现在关心的是:
|
|
234
|
+
|
|
235
|
+
- 怎么安装和使用:看这份 `README.md`
|
|
236
|
+
- 为什么架构这么设计、每个目录和文件是干什么的:看 [ARCHITECTURE.md](./ARCHITECTURE.md)
|
|
237
|
+
- 怎么发版、具体每一步怎么验证:看 [PUBLISHING.md](./PUBLISHING.md)
|
package/bin/rrskill.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/** 文件作用:正式的 rrskill 可执行入口,负责加载 dist/index.js 中的 CLI 构建产物。 */
|
|
4
|
+
import("../dist/index.js").catch((error) => {
|
|
5
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
6
|
+
process.stderr.write(`Failed to start rrskill CLI: ${message}\n`);
|
|
7
|
+
process.exit(1);
|
|
8
|
+
});
|