openclaw-yunjia-cli 0.0.1
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/LICENSE +21 -0
- package/README.md +338 -0
- package/cli.mjs +1045 -0
- package/lib/compat.mjs +45 -0
- package/package.json +31 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Inspur CCS
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
# OpenClaw 浪潮云加 CLI 安装工具
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@inspur-ccs/openclaw-inspur-yunjia-installer)
|
|
4
|
+
[](https://nodejs.org)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
轻量级命令行工具,用于安装和配置 [OpenClaw 浪潮云加](https://github.com/openclaw/openclaw-inspur-yunjia) 通道插件。
|
|
8
|
+
|
|
9
|
+
## 功能特性
|
|
10
|
+
|
|
11
|
+
- 自动检测 OpenClaw 版本并安装兼容插件
|
|
12
|
+
- 二维码扫码绑定,无需手动输入凭据
|
|
13
|
+
- 支持 SSE (Server-Sent Events) 实时推送绑定状态
|
|
14
|
+
- 多账户管理
|
|
15
|
+
- 终端友好的交互界面
|
|
16
|
+
|
|
17
|
+
## 快速开始
|
|
18
|
+
|
|
19
|
+
### 首次安装(推荐)
|
|
20
|
+
|
|
21
|
+
自动安装插件并通过扫码绑定浪潮云加账户:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
安装完成后,插件会自动创建与用户的聊天频道并发送欢迎消息。
|
|
28
|
+
|
|
29
|
+
### 手动添加账户
|
|
30
|
+
|
|
31
|
+
如果已有 Bot 凭据,可以直接添加账户:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer add-account
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 环境检查
|
|
38
|
+
|
|
39
|
+
检查当前环境是否满足运行要求:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer check
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 命令详解
|
|
46
|
+
|
|
47
|
+
### `install`
|
|
48
|
+
|
|
49
|
+
完整安装流程:检测环境 → 安装插件 → 扫码绑定 → 重启 Gateway
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 使用默认绑定服务
|
|
53
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install
|
|
54
|
+
|
|
55
|
+
# 指定绑定服务地址(开发环境)
|
|
56
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --server http://localhost:3210
|
|
57
|
+
|
|
58
|
+
# 启用详细日志
|
|
59
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --verbose
|
|
60
|
+
|
|
61
|
+
# 使用本地开发包安装(插件开发时使用)
|
|
62
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --dev-package ../openclaw-inspur-yunjia
|
|
63
|
+
|
|
64
|
+
# 组合使用(开发包 + 本地服务)
|
|
65
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --dev-package ../openclaw-inspur-yunjia --server http://localhost:3210
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**命令行选项:**
|
|
69
|
+
|
|
70
|
+
| 选项 | 说明 |
|
|
71
|
+
|------|------|
|
|
72
|
+
| `--server <url>` 或 `--api-base <url>` | 指定绑定服务地址 |
|
|
73
|
+
| `--dev-package <path>` | 使用本地开发包路径安装插件 |
|
|
74
|
+
| `--verbose`, `-v` | 显示详细日志输出 |
|
|
75
|
+
|
|
76
|
+
### `add-account`
|
|
77
|
+
|
|
78
|
+
手动添加浪潮云加账户(需已安装插件)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer add-account
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
交互式输入:
|
|
85
|
+
- Bot ID
|
|
86
|
+
- Bot Secret
|
|
87
|
+
- 企业名称(可选)
|
|
88
|
+
- 账户 ID(可选,默认 "default")
|
|
89
|
+
|
|
90
|
+
### `check`
|
|
91
|
+
|
|
92
|
+
检查当前环境是否满足运行要求
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer check
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
检查项:
|
|
99
|
+
- Node.js 版本(>= 20)
|
|
100
|
+
- OpenClaw 是否已安装
|
|
101
|
+
- 浪潮云加插件是否已安装
|
|
102
|
+
|
|
103
|
+
### `help`
|
|
104
|
+
|
|
105
|
+
显示帮助信息
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer help
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 安装流程
|
|
112
|
+
|
|
113
|
+
### 二维码扫码绑定流程
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
117
|
+
│ CLI 工具 │ ───▶ │ 绑定服务端 │ ◀─── │ 浪潮云加 │
|
|
118
|
+
│ │ │ │ │ 客户端 │
|
|
119
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
120
|
+
│ │ │
|
|
121
|
+
│ 1. 请求二维码 │ │
|
|
122
|
+
│ ─────────────────▶ │ │
|
|
123
|
+
│ │ │
|
|
124
|
+
│ 2. 返回二维码URL │ │
|
|
125
|
+
│ ◀───────────────── │ │
|
|
126
|
+
│ │ │
|
|
127
|
+
│ 3. 显示二维码 │ │
|
|
128
|
+
│ │ │
|
|
129
|
+
│ │ 4. 用户扫码 │
|
|
130
|
+
│ │ ◀────────────────── │
|
|
131
|
+
│ │ │
|
|
132
|
+
│ 5. SSE: scanned │ │
|
|
133
|
+
│ ◀───────────────── │ │
|
|
134
|
+
│ │ │
|
|
135
|
+
│ │ 6. 用户确认绑定 │
|
|
136
|
+
│ │ ◀────────────────── │
|
|
137
|
+
│ │ │
|
|
138
|
+
│ │ 7. 创建机器人 │
|
|
139
|
+
│ │ ─────────────────▶ │
|
|
140
|
+
│ │ │
|
|
141
|
+
│ 8. SSE: bound │ │
|
|
142
|
+
│ ◀───────────────── │ │
|
|
143
|
+
│ │ │
|
|
144
|
+
│ 9. 写入配置 │ │
|
|
145
|
+
│ 10. 重启 Gateway │ │
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 详细步骤
|
|
149
|
+
|
|
150
|
+
1. **环境检查**
|
|
151
|
+
- 检测 OpenClaw 版本
|
|
152
|
+
- 根据兼容矩阵选择对应的插件版本
|
|
153
|
+
|
|
154
|
+
2. **安装插件**
|
|
155
|
+
- 自动安装 `openclaw-inspur-yunjia` 插件
|
|
156
|
+
- 创建必要的 symlink
|
|
157
|
+
|
|
158
|
+
3. **请求二维码**
|
|
159
|
+
- 向绑定服务请求二维码(含绑定ID)
|
|
160
|
+
- 二维码有效期 60 秒
|
|
161
|
+
|
|
162
|
+
4. **显示二维码**
|
|
163
|
+
- 在终端显示二维码
|
|
164
|
+
- 使用 `qrcode` 库或系统 CLI 工具
|
|
165
|
+
|
|
166
|
+
5. **等待用户扫码**
|
|
167
|
+
- 通过 SSE (Server-Sent Events) 等待绑定结果
|
|
168
|
+
- 支持最多 3 次重试
|
|
169
|
+
|
|
170
|
+
6. **用户扫码**
|
|
171
|
+
- 用户使用浪潮云加客户端扫描二维码
|
|
172
|
+
- 收到 `scanned` 事件,停止二维码刷新
|
|
173
|
+
|
|
174
|
+
7. **等待用户确认**
|
|
175
|
+
- 用户在云加客户端确认绑定
|
|
176
|
+
- 确认超时时间 60 秒
|
|
177
|
+
|
|
178
|
+
8. **绑定成功**
|
|
179
|
+
- 服务端创建机器人并返回凭据
|
|
180
|
+
- 通过 SSE 收到 `bound` 事件,包含:
|
|
181
|
+
- `bot_id`
|
|
182
|
+
- `bot_secret`
|
|
183
|
+
- `user_id`
|
|
184
|
+
- `user_name`
|
|
185
|
+
- `enterprise`
|
|
186
|
+
|
|
187
|
+
9. **写入配置**
|
|
188
|
+
- 将凭据写入 `~/.openclaw/openclaw.json`
|
|
189
|
+
|
|
190
|
+
10. **重启 Gateway**
|
|
191
|
+
- 自动重启 OpenClaw Gateway
|
|
192
|
+
- 插件首次启动会创建聊天频道并发送欢迎消息
|
|
193
|
+
|
|
194
|
+
## 前置要求
|
|
195
|
+
|
|
196
|
+
| 依赖 | 最低版本 | 说明 |
|
|
197
|
+
|------|----------|------|
|
|
198
|
+
| Node.js | 20.0.0 | 运行时环境 |
|
|
199
|
+
| OpenClaw | 2026.3.22 | 主程序 |
|
|
200
|
+
|
|
201
|
+
## 环境变量
|
|
202
|
+
|
|
203
|
+
| 变量 | 默认值 | 说明 |
|
|
204
|
+
|------|--------|------|
|
|
205
|
+
| `YUNJIA_BINDING_API_BASE` | `https://id.inspuronline.com` | 绑定服务地址 |
|
|
206
|
+
| `NODE_ENV` | - | 设为 `development` 时默认绑定服务为 `localhost:3210` |
|
|
207
|
+
|
|
208
|
+
## 时间配置
|
|
209
|
+
|
|
210
|
+
| 配置项 | 默认值 | 说明 |
|
|
211
|
+
|--------|--------|------|
|
|
212
|
+
| 二维码有效期 | 60 秒 | 用户扫码的时间窗口 |
|
|
213
|
+
| 扫码后确认超时 | 60 秒 | 扫码后等待用户确认的时间 |
|
|
214
|
+
| 最大重试次数 | 3 次 | 二维码过期后的重试次数 |
|
|
215
|
+
| 短轮询间隔 | 5000 ms | SSE 失败降级为轮询模式时的间隔 |
|
|
216
|
+
|
|
217
|
+
## 配置文件
|
|
218
|
+
|
|
219
|
+
配置文件位置:`~/.openclaw/openclaw.json`
|
|
220
|
+
|
|
221
|
+
```json
|
|
222
|
+
{
|
|
223
|
+
"channels": {
|
|
224
|
+
"openclaw-inspur-yunjia": {
|
|
225
|
+
"botId": "BOT-xxx",
|
|
226
|
+
"botSecret": "secret-xxx",
|
|
227
|
+
"enterprise": "企业名称",
|
|
228
|
+
"enabled": true,
|
|
229
|
+
"accounts": {
|
|
230
|
+
"account-1": {
|
|
231
|
+
"botId": "BOT-yyy",
|
|
232
|
+
"botSecret": "secret-yyy",
|
|
233
|
+
"enabled": true
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"defaultAccount": "default"
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## 兼容性矩阵
|
|
243
|
+
|
|
244
|
+
| 插件版本 | OpenClaw 版本范围 |
|
|
245
|
+
|----------|-------------------|
|
|
246
|
+
| 0.1.x (latest) | >= 2026.3.22 |
|
|
247
|
+
|
|
248
|
+
## 常见问题
|
|
249
|
+
|
|
250
|
+
### Q: 二维码过期后怎么办?
|
|
251
|
+
|
|
252
|
+
A: 工具会自动生成新的二维码,最多重试 3 次。如果 3 次都过期,请重新运行安装命令。
|
|
253
|
+
|
|
254
|
+
### Q: 用户扫码后确认超时?
|
|
255
|
+
|
|
256
|
+
A: 扫码后有 60 秒时间确认绑定。如果超时,需要重新运行安装命令。
|
|
257
|
+
|
|
258
|
+
### Q: 如何查看详细日志?
|
|
259
|
+
|
|
260
|
+
A: 使用 `--verbose` 或 `-v` 参数:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --verbose
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Q: 如何添加多个账户?
|
|
267
|
+
|
|
268
|
+
A: 首次安装使用 `install` 命令,后续账户使用 `add-account` 命令。
|
|
269
|
+
|
|
270
|
+
### Q: SSE 连接失败怎么办?
|
|
271
|
+
|
|
272
|
+
A: 如果 SSE 连接失败,工具会自动降级为短轮询模式(5 秒间隔),最多重试 3 次。
|
|
273
|
+
|
|
274
|
+
### Q: 如何在开发时使用本地插件包?
|
|
275
|
+
|
|
276
|
+
A: 使用 `--dev-package` 参数指定本地插件路径:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# 使用相对路径
|
|
280
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --dev-package ../openclaw-inspur-yunjia
|
|
281
|
+
|
|
282
|
+
# 使用绝对路径
|
|
283
|
+
npx -y @inspur-ccs/openclaw-inspur-yunjia-installer install --dev-package /home/user/projects/openclaw-inspur-yunjia
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
如果插件已安装,工具会询问是否重新安装开发包。
|
|
287
|
+
|
|
288
|
+
## 开发
|
|
289
|
+
|
|
290
|
+
### 插件开发工作流
|
|
291
|
+
|
|
292
|
+
在开发 `openclaw-inspur-yunjia` 插件时,可以使用本地开发包进行测试:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# 假设项目目录结构:
|
|
296
|
+
# /projects/
|
|
297
|
+
# ├── openclaw-inspur-yunjia/ # 插件源码
|
|
298
|
+
# ├── openclaw-inspur-yunjia-cli/ # CLI 工具
|
|
299
|
+
# └── openclaw-inspur-yunjia-binding-server/ # 绑定服务
|
|
300
|
+
|
|
301
|
+
# 1. 在插件目录进行开发
|
|
302
|
+
cd ../openclaw-inspur-yunjia
|
|
303
|
+
# ... 修改插件代码 ...
|
|
304
|
+
|
|
305
|
+
# 2. 使用 CLI 工具安装本地开发包
|
|
306
|
+
cd ../openclaw-inspur-yunjia-cli
|
|
307
|
+
npx -y . install --dev-package ../openclaw-inspur-yunjia --server http://localhost:3210
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**开发模式特性:**
|
|
311
|
+
|
|
312
|
+
- 自动将相对路径转换为绝对路径
|
|
313
|
+
- 验证路径是否存在且包含 `package.json`
|
|
314
|
+
- 如果插件已安装,会提示是否重新安装
|
|
315
|
+
- 支持与 `--server` 参数组合使用
|
|
316
|
+
|
|
317
|
+
### 本地测试 CLI 工具
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
# 克隆仓库
|
|
321
|
+
git clone https://github.com/openclaw/openclaw-inspur-yunjia-cli.git
|
|
322
|
+
cd openclaw-inspur-yunjia-cli
|
|
323
|
+
|
|
324
|
+
# 运行
|
|
325
|
+
node cli.mjs install --server http://localhost:3210
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### 绑定服务
|
|
329
|
+
|
|
330
|
+
绑定服务源码:[openclaw-inspur-yunjia-binding-server](https://github.com/openclaw/openclaw-inspur-yunjia-binding-server)
|
|
331
|
+
|
|
332
|
+
## License
|
|
333
|
+
|
|
334
|
+
[MIT](LICENSE)
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
**Inspur CCS** - 浪潮云加技术团队
|