ribo-cli-setup 2.3.0 → 2.4.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/bin/cli.js +38 -0
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* npx ribo-cli-setup --force # 忽略本地已存在版本,强制重新下载
|
|
11
11
|
* npx ribo-cli-setup --upgrade # 升级:强制重下二进制 + 重新安装技能(不碰 mcp.json)
|
|
12
12
|
* npx ribo-cli-setup --uninstall # 解除注册
|
|
13
|
+
* npx ribo-cli-setup --auth # 独立执行实名授权(需已安装 ribo-cli)
|
|
14
|
+
* npx ribo-cli-setup --doctor # 健康状态诊断(需已安装 ribo-cli)
|
|
13
15
|
*
|
|
14
16
|
* 环境变量:RIBO_GATEWAY_URL 可替代 --gateway
|
|
15
17
|
* 流程:检测 os/arch → 拉 /download/manifest → 匹配平台二进制 → 下载校验 sha256
|
|
@@ -37,6 +39,8 @@ function parseArgs(argv) {
|
|
|
37
39
|
force: false,
|
|
38
40
|
upgrade: false,
|
|
39
41
|
uninstall: false,
|
|
42
|
+
auth: false,
|
|
43
|
+
doctor: false,
|
|
40
44
|
skipAuth: false,
|
|
41
45
|
yes: true,
|
|
42
46
|
help: false,
|
|
@@ -52,6 +56,8 @@ function parseArgs(argv) {
|
|
|
52
56
|
case '--force': case '-f': opts.force = true; break;
|
|
53
57
|
case '--upgrade': opts.upgrade = true; break;
|
|
54
58
|
case '--uninstall': opts.uninstall = true; break;
|
|
59
|
+
case '--auth': opts.auth = true; break;
|
|
60
|
+
case '--doctor': opts.doctor = true; break;
|
|
55
61
|
case '--skip-auth': opts.skipAuth = true; break;
|
|
56
62
|
case '--yes': case '-y': opts.yes = true; break;
|
|
57
63
|
case '--help': case '-h': opts.help = true; break;
|
|
@@ -69,6 +75,12 @@ function parseArgs(argv) {
|
|
|
69
75
|
console.error(`--upgrade 与 --uninstall 不能同时使用`);
|
|
70
76
|
process.exit(2);
|
|
71
77
|
}
|
|
78
|
+
const exclusive = ['upgrade', 'uninstall', 'auth', 'doctor'];
|
|
79
|
+
const active = exclusive.filter((k) => opts[k]);
|
|
80
|
+
if (active.length > 1) {
|
|
81
|
+
console.error(`--${active.join('/--')} 不能同时使用`);
|
|
82
|
+
process.exit(2);
|
|
83
|
+
}
|
|
72
84
|
return opts;
|
|
73
85
|
}
|
|
74
86
|
|
|
@@ -87,6 +99,8 @@ function printHelp() {
|
|
|
87
99
|
--bin-dir <dir> 二进制安装目录(默认 ~/.local/bin)
|
|
88
100
|
-f, --force 忽略本地已有版本,强制重新下载
|
|
89
101
|
--upgrade 升级:强制重下二进制 + 重新安装技能(不碰 mcp.json)
|
|
102
|
+
--auth 独立执行实名授权(需已安装 ribo-cli)
|
|
103
|
+
--doctor 健康状态诊断(需已安装 ribo-cli)
|
|
90
104
|
--skip-auth 安装后不自动执行 auth init
|
|
91
105
|
--uninstall 解除注册(移除 mcp.json 条目与 Skill 包)
|
|
92
106
|
-y, --yes 跳过所有确认
|
|
@@ -225,6 +239,30 @@ async function main() {
|
|
|
225
239
|
console.log(` 安装目录: ${binDir}`);
|
|
226
240
|
console.log();
|
|
227
241
|
|
|
242
|
+
// 独立授权分支:仅执行 auth init,不拉清单、不下载
|
|
243
|
+
if (opts.auth) {
|
|
244
|
+
if (!fs.existsSync(binPath)) {
|
|
245
|
+
console.error(`✗ 未找到 ${binPath}`);
|
|
246
|
+
console.error(` 请先执行 npx ribo-cli-setup 安装 ribo-cli`);
|
|
247
|
+
process.exit(1);
|
|
248
|
+
}
|
|
249
|
+
console.log('→ 发起实名授权(将打开浏览器/企微扫码,完成后回到终端)…');
|
|
250
|
+
runInteractive(binPath, ['auth', 'init']);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// 健康诊断分支:仅执行 doctor,不拉清单、不下载
|
|
255
|
+
if (opts.doctor) {
|
|
256
|
+
if (!fs.existsSync(binPath)) {
|
|
257
|
+
console.error(`✗ 未找到 ${binPath}`);
|
|
258
|
+
console.error(` 请先执行 npx ribo-cli-setup 安装 ribo-cli`);
|
|
259
|
+
process.exit(1);
|
|
260
|
+
}
|
|
261
|
+
console.log('→ 执行健康状态诊断…');
|
|
262
|
+
runInteractive(binPath, ['doctor']);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
|
|
228
266
|
// 拉取清单
|
|
229
267
|
let manifest;
|
|
230
268
|
try {
|