@honor-claw/yoyo 1.5.1-beta.2 → 1.5.1-beta.3
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/dist/utils/version.mjs +2 -2
- package/package.json +1 -1
- package/skills/yoyo-update/SKILL.md +41 -15
package/dist/utils/version.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/utils/version.ts
|
|
2
2
|
var e = null, t = null;
|
|
3
3
|
function n() {
|
|
4
|
-
return e === null && (e = "1.5.1-beta.
|
|
4
|
+
return e === null && (e = "1.5.1-beta.3".includes("beta") || "1.5.1-beta.3".includes("alpha")), !!e;
|
|
5
5
|
}
|
|
6
6
|
function r(e) {
|
|
7
7
|
if (!e) return 0;
|
|
@@ -10,7 +10,7 @@ function r(e) {
|
|
|
10
10
|
}
|
|
11
11
|
function i() {
|
|
12
12
|
if (t !== null) return t;
|
|
13
|
-
let [e, n, i] = "1.5.1-beta.
|
|
13
|
+
let [e, n, i] = "1.5.1-beta.3".split("-", 1)[0].split("."), a = r(e), o = r(n), s = r(i);
|
|
14
14
|
return t = a * 1e6 + o * 1e3 + s, t;
|
|
15
15
|
}
|
|
16
16
|
//#endregion
|
package/package.json
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yoyo-update
|
|
3
3
|
description: >
|
|
4
|
-
更新 YOYO
|
|
4
|
+
更新 YOYO 插件到最新版本。当用户说“升级 YOYO Claw 插件到最新版本”,或要求更新、升级 yoyo 插件,或检查 yoyo 插件版本更新时触发。
|
|
5
5
|
metadata: { "openclaw": { "emoji": "🔄", "always": true } }
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# YOYO 插件更新
|
|
9
9
|
|
|
10
|
-
按照以下
|
|
10
|
+
按照以下 6 步工作流完成 YOYO 插件的版本更新。
|
|
11
11
|
|
|
12
12
|
## 全局规则
|
|
13
13
|
|
|
14
|
-
- [MANDATORY]
|
|
14
|
+
- [MANDATORY] **更新成功后的重启是内部 best-effort 动作** — 只有在 `openclaw plugins update yoyo` 成功完成并确认插件版本已更新后,尝试触发一次 `openclaw gateway restart`
|
|
15
|
+
- [MANDATORY] 除上述更新成功后的单次重启触发尝试外,不得执行 `openclaw gateway stop/start/restart` 或任何网关重启操作;更新失败、无需更新、精确版本停止、状态异常、无法确认版本等场景不得重启
|
|
16
|
+
- [MANDATORY] 更新后的重启触发只能在当前这一次 yoyo-update 对话轮次中处理;若 OpenClaw 已自行重启、正在重启、命令无法触达网关、命令执行中断、或已经进入下一轮对话,则不得补偿重启,除非用户再次明确要求重启
|
|
15
17
|
- [MANDATORY] **严禁卸载插件** — 不得执行 `openclaw plugins uninstall`,否则用户配置将丢失
|
|
16
18
|
- [MANDATORY] 出错时仅汇总错误并给出建议,不得尝试自动修复(尤其是不得通过卸载重装来解决问题)
|
|
17
19
|
- [MANDATORY] 所有面向用户的输出必须使用中文
|
|
18
|
-
- [MANDATORY]
|
|
19
|
-
- [MANDATORY] 执行 `openclaw plugins update yoyo`
|
|
20
|
+
- [MANDATORY] 不支持精确版本号安装的插件自动升级;只要 `Spec` 是 `@honor-claw/yoyo@<semver>` 这类精确版本(含预发布版本,例如 `@honor-claw/yoyo@1.3.0-beta.8`),必须立即停止整个流程,不得查询 npm、不得进入更新摘要、不得执行 `openclaw plugins update yoyo`
|
|
21
|
+
- [MANDATORY] 执行 `openclaw plugins update yoyo` 后不能假设网关一定会自动重启;检测到存在可更新版本后直接进入更新流程,不得向用户二次确认或输出重启风险说明
|
|
20
22
|
- [MANDATORY] 更新后的最终判断必须以实际更新版本为准,不得只依赖步骤 2 查询到的目标版本
|
|
21
|
-
- [MANDATORY] 本文件中的"步骤 1/2/3/4/5"、小节标题、处理规则、命令说明均为内部流程,不得原样输出给用户
|
|
23
|
+
- [MANDATORY] 本文件中的"步骤 1/2/3/4/5/6"、小节标题、处理规则、命令说明均为内部流程,不得原样输出给用户
|
|
22
24
|
- [MANDATORY] 正常更新流程下,面向用户的输出必须严格使用本文指定的可见文案;不得额外输出"步骤1"、"步骤2"、"正在检查版本"、"我将执行"、命令说明、内部判断过程或自由发挥的状态描述
|
|
23
25
|
- 所有命令在 Windows (bash) 和 Unix (bash) 环境下格式一致,无需区分平台
|
|
24
26
|
|
|
@@ -29,9 +31,17 @@ metadata: { "openclaw": { "emoji": "🔄", "always": true } }
|
|
|
29
31
|
1. 步骤 3 中的更新摘要文案
|
|
30
32
|
2. 步骤 4.1 的升级流程开头和阶段 1 进度
|
|
31
33
|
3. 步骤 4.3 的阶段 2 进度
|
|
32
|
-
4. 步骤 5
|
|
34
|
+
4. 步骤 5 的插件更新完成文案,以及实际版本高于预检查目标版本时的追加说明
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
除上述内容外,不得向用户展示内部步骤名称、命令执行计划、版本检查过程、字段解析过程、重启触发动作或监控输出。异常、无需更新、未更新、无法确认版本等停止流程场景,按对应规则输出简短结果即可,也不得展示内部步骤编号。
|
|
37
|
+
|
|
38
|
+
检测到精确版本号时,必须使用以下文案并停止流程:
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
当前 YOYO 插件使用精确版本号安装,自动升级流程已停止。
|
|
42
|
+
|
|
43
|
+
请修改 OpenClaw 配置文件,将 `plugins.installs.yoyo.spec` 从当前精确版本改为非精确版本规格(例如 `@honor-claw/yoyo@beta`、`@honor-claw/yoyo@alpha` 或 `@honor-claw/yoyo`),然后再重新发起升级。
|
|
44
|
+
```
|
|
35
45
|
|
|
36
46
|
## 步骤 1:预检查
|
|
37
47
|
|
|
@@ -55,7 +65,9 @@ openclaw plugins info yoyo
|
|
|
55
65
|
- 若插件未找到(输出为空或提示未安装)→ 告知用户"未检测到 YOYO 插件,请先安装"并停止
|
|
56
66
|
- 若状态非 `loaded`(如 `error`)→ 告知用户插件状态异常并展示具体信息,停止流程
|
|
57
67
|
- 若命令本身执行失败 → 告知用户"无法获取插件信息,请确认 OpenClaw 网关正在运行"并停止
|
|
58
|
-
- 成功获取信息 → 提取 `Version` 和 `Spec`
|
|
68
|
+
- 成功获取信息 → 提取 `Version` 和 `Spec` 字段值
|
|
69
|
+
- 若 `Spec` 是精确版本号(如 `@honor-claw/yoyo@1.3.0-beta.8`)→ 输出精确版本停止文案并停止流程;不得查询 npm、不得展示更新摘要、不得执行 `openclaw plugins update yoyo`
|
|
70
|
+
- 其他情况 → 进入步骤 2
|
|
59
71
|
|
|
60
72
|
## 步骤 2:检查最新版本
|
|
61
73
|
|
|
@@ -66,7 +78,7 @@ openclaw plugins info yoyo
|
|
|
66
78
|
- 安装目标为 `alpha` → 渠道为 `alpha`
|
|
67
79
|
- 安装目标为 `beta` → 渠道为 `beta`
|
|
68
80
|
- 安装目标为 `latest` 或没有安装目标 → 渠道为 `latest`
|
|
69
|
-
- `Spec` 包含精确版本号(如 `@honor-claw/yoyo@1.3.0-beta.8`)→
|
|
81
|
+
- `Spec` 包含精确版本号(如 `@honor-claw/yoyo@1.3.0-beta.8`)→ 输出精确版本停止文案并停止流程;不得查询 npm、不得展示更新摘要、不得执行 `openclaw plugins update yoyo`
|
|
70
82
|
- `Spec` 包含其他未知标签 → 告知用户"当前 YOYO 插件安装来源无法识别,请自行更新插件或联系开发团队确认升级渠道"并停止流程
|
|
71
83
|
|
|
72
84
|
### 2.2 查询最新版本
|
|
@@ -151,7 +163,7 @@ openclaw plugins update yoyo
|
|
|
151
163
|
| `Installing plugin dependencies` | 不输出 | 静默跟踪 |
|
|
152
164
|
| `Updated yoyo:` | 不输出 | 捕获实际更新版本 |
|
|
153
165
|
| `Config overwrite:` / `Config backup:` | 不输出 | 记录配置备份路径 |
|
|
154
|
-
| `Restart the gateway to load plugins` | 不输出 |
|
|
166
|
+
| `Restart the gateway to load plugins` | 不输出 | 更新命令成功的确认信号,进入步骤 5 |
|
|
155
167
|
|
|
156
168
|
阶段 2 的进度通知必须使用以下文案:
|
|
157
169
|
|
|
@@ -180,7 +192,7 @@ openclaw plugins update yoyo
|
|
|
180
192
|
openclaw plugins info yoyo
|
|
181
193
|
```
|
|
182
194
|
|
|
183
|
-
从 `Version`
|
|
195
|
+
从 `Version` 字段提取最终版本。若此时命令暂时失败,不要把它直接判定为更新失败;告知用户"插件更新命令已完成,但暂时无法确认最终版本,请稍后再次检查插件版本"。此时不得在后续对话中补偿重启,除非用户再次明确要求重启。
|
|
184
196
|
|
|
185
197
|
将实际更新版本与步骤 1 的当前版本、步骤 2 的目标版本进行 semver 比较:
|
|
186
198
|
|
|
@@ -192,12 +204,11 @@ openclaw plugins info yoyo
|
|
|
192
204
|
|
|
193
205
|
### 更新成功
|
|
194
206
|
|
|
195
|
-
|
|
207
|
+
向用户报告后进入步骤 6:
|
|
196
208
|
|
|
197
209
|
```markdown
|
|
198
210
|
3. 插件更新完成
|
|
199
211
|
Claw 插件更新已完成
|
|
200
|
-
网关即将自动重启,请稍候...
|
|
201
212
|
```
|
|
202
213
|
|
|
203
214
|
若实际版本高于步骤 2 获取的目标版本,在成功文案后追加:
|
|
@@ -206,7 +217,7 @@ Claw 插件更新已完成
|
|
|
206
217
|
说明:本次实际升级到 v{实际版本},高于预检查获取的目标版本 v{目标版本}。
|
|
207
218
|
```
|
|
208
219
|
|
|
209
|
-
**[MANDATORY] 不得在此步骤中询问用户是否重启。**
|
|
220
|
+
**[MANDATORY] 不得在此步骤中询问用户是否重启。** 插件版本确认更新后,必须在当前对话轮次内继续执行步骤 6。
|
|
210
221
|
|
|
211
222
|
### 更新失败
|
|
212
223
|
|
|
@@ -230,3 +241,18 @@ Claw 插件更新已完成
|
|
|
230
241
|
- 手动删除插件目录
|
|
231
242
|
- 修改插件配置文件来绕过错误
|
|
232
243
|
- 重启网关
|
|
244
|
+
|
|
245
|
+
## 步骤 6:触发网关重启
|
|
246
|
+
|
|
247
|
+
仅在步骤 5 已按更新成功处理时执行。本步骤是内部 best-effort 收尾动作,不得向用户输出任何重启相关文案。
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
openclaw gateway restart
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**处理规则**:
|
|
254
|
+
|
|
255
|
+
- 更新成功后尝试触发一次 `openclaw gateway restart`;这是为了覆盖少数未自动重启的情况,不改变用户可见成功文案
|
|
256
|
+
- 若触发成功,即使 OpenClaw 因自身机制又重启了一次,也不需要关心,不额外输出、不验证、不补救
|
|
257
|
+
- 若触发前或触发时发现 OpenClaw 已自行重启、正在重启、命令无法触达网关、连接中断或命令失败,视为 best-effort 已完成;不得重试、不得改用 `stop/start`、不得把更新成功改判为失败、不得输出重启失败提示
|
|
258
|
+
- 若当前对话轮次已经结束、用户发起了新的请求、或此前因为任何原因没有执行重启命令 → 不得为了本次更新补偿执行 `openclaw gateway restart`,除非用户明确提出需要重启
|