@cecwxf/wtt 0.1.19 → 0.1.21
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 +9 -0
- package/README_CN.md +9 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +81 -4
- package/dist/commands/update.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,6 +20,15 @@ openclaw plugins enable wtt
|
|
|
20
20
|
openclaw gateway restart
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
bash scripts/install-plugin.sh 0.1.19
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to
|
|
30
|
+
`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.
|
|
31
|
+
|
|
23
32
|
### Option B: local development link
|
|
24
33
|
|
|
25
34
|
```bash
|
package/README_CN.md
CHANGED
|
@@ -20,6 +20,15 @@ openclaw plugins enable wtt
|
|
|
20
20
|
openclaw gateway restart
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
### 方式 A-兼容:一键安装脚本(兼容部分 OpenClaw 版本的 scoped 安装问题)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
bash scripts/install-plugin.sh 0.1.19
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`,若遇到 scoped zip 路径问题,
|
|
30
|
+
会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。
|
|
31
|
+
|
|
23
32
|
### 方式 B:本地开发链接安装
|
|
24
33
|
|
|
25
34
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AA8F7D,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAmF3F"}
|
package/dist/commands/update.js
CHANGED
|
@@ -55,14 +55,91 @@ function scheduleGatewayRestart() {
|
|
|
55
55
|
});
|
|
56
56
|
child.unref();
|
|
57
57
|
}
|
|
58
|
+
function outputOf(result) {
|
|
59
|
+
return `${result.stdout || ""}\n${result.stderr || ""}`.trim();
|
|
60
|
+
}
|
|
61
|
+
function hasUnknownWttChannelError(result) {
|
|
62
|
+
const text = outputOf(result).toLowerCase();
|
|
63
|
+
return text.includes("unknown channel id: wtt")
|
|
64
|
+
|| (text.includes("channels.wtt") && text.includes("invalid config"));
|
|
65
|
+
}
|
|
66
|
+
function isPluginAlreadyExistsError(result) {
|
|
67
|
+
return outputOf(result).toLowerCase().includes("plugin already exists");
|
|
68
|
+
}
|
|
69
|
+
async function runUpdate(cmd) {
|
|
70
|
+
return runCommand(cmd, ["plugins", "update", "wtt"], 180_000);
|
|
71
|
+
}
|
|
72
|
+
async function runInstall(cmd) {
|
|
73
|
+
return runCommand(cmd, ["plugins", "install", "@cecwxf/wtt@latest"], 180_000);
|
|
74
|
+
}
|
|
75
|
+
async function runDoctorFix(cmd) {
|
|
76
|
+
return runCommand(cmd, ["doctor", "--fix", "--non-interactive", "--yes"], 180_000);
|
|
77
|
+
}
|
|
58
78
|
export async function handleUpdateCommand(_ctx) {
|
|
59
79
|
const cmd = process.env.OPENCLAW_BIN?.trim() || "openclaw";
|
|
60
|
-
|
|
80
|
+
// Path A: preferred and idempotent for existing installs
|
|
81
|
+
let update = await runUpdate(cmd);
|
|
82
|
+
if (update.code !== 0 && hasUnknownWttChannelError(update)) {
|
|
83
|
+
const repair = await runDoctorFix(cmd);
|
|
84
|
+
if (repair.code === 0) {
|
|
85
|
+
update = await runUpdate(cmd);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
const detail = compactOutput(outputOf(repair), 800);
|
|
89
|
+
return [
|
|
90
|
+
"WTT 插件升级失败:自动修复配置未成功。",
|
|
91
|
+
detail ? `doctor 详情: ${detail}` : "doctor 详情: 无",
|
|
92
|
+
"请手动执行:openclaw doctor --fix,然后重试 /wtt update",
|
|
93
|
+
].join("\n");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (update.code === 0) {
|
|
97
|
+
scheduleGatewayRestart();
|
|
98
|
+
const summary = compactOutput(outputOf(update), 260);
|
|
99
|
+
const lines = [
|
|
100
|
+
"WTT 插件已升级(update 模式)。",
|
|
101
|
+
"网关将在约 2 秒后自动重启。",
|
|
102
|
+
"重启期间短暂离线属正常,恢复后可用 /wtt help 验证。",
|
|
103
|
+
];
|
|
104
|
+
if (summary)
|
|
105
|
+
lines.push(`update: ${summary}`);
|
|
106
|
+
return lines.join("\n");
|
|
107
|
+
}
|
|
108
|
+
// Path B: fallback for old/non-tracked installs
|
|
109
|
+
let install = await runInstall(cmd);
|
|
110
|
+
if (install.code !== 0 && hasUnknownWttChannelError(install)) {
|
|
111
|
+
const repair = await runDoctorFix(cmd);
|
|
112
|
+
if (repair.code === 0) {
|
|
113
|
+
install = await runInstall(cmd);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const detail = compactOutput(outputOf(repair), 800);
|
|
117
|
+
return [
|
|
118
|
+
"WTT 插件升级失败:自动修复配置未成功。",
|
|
119
|
+
detail ? `doctor 详情: ${detail}` : "doctor 详情: 无",
|
|
120
|
+
"请手动执行:openclaw doctor --fix,然后重试 /wtt update",
|
|
121
|
+
].join("\n");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (install.code !== 0 && isPluginAlreadyExistsError(install)) {
|
|
125
|
+
const uninstall = await runCommand(cmd, ["plugins", "uninstall", "wtt"], 120_000);
|
|
126
|
+
if (uninstall.code === 0) {
|
|
127
|
+
install = await runInstall(cmd);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const detail = compactOutput(outputOf(uninstall), 800);
|
|
131
|
+
return [
|
|
132
|
+
"WTT 插件升级失败:检测到已安装旧目录,且自动卸载失败。",
|
|
133
|
+
detail ? `uninstall 详情: ${detail}` : "uninstall 详情: 无",
|
|
134
|
+
"请手动执行:openclaw plugins uninstall wtt,再重试 /wtt update",
|
|
135
|
+
].join("\n");
|
|
136
|
+
}
|
|
137
|
+
}
|
|
61
138
|
if (install.code !== 0) {
|
|
62
139
|
const reason = install.timedOut
|
|
63
140
|
? "超时(180s)"
|
|
64
141
|
: `退出码 ${install.code}`;
|
|
65
|
-
const detail = compactOutput(install
|
|
142
|
+
const detail = compactOutput(outputOf(install), 800);
|
|
66
143
|
return [
|
|
67
144
|
`WTT 插件升级失败:${reason}`,
|
|
68
145
|
detail ? `详情: ${detail}` : "详情: 无",
|
|
@@ -70,9 +147,9 @@ export async function handleUpdateCommand(_ctx) {
|
|
|
70
147
|
].join("\n");
|
|
71
148
|
}
|
|
72
149
|
scheduleGatewayRestart();
|
|
73
|
-
const installSummary = compactOutput(install
|
|
150
|
+
const installSummary = compactOutput(outputOf(install), 260);
|
|
74
151
|
const lines = [
|
|
75
|
-
"WTT 插件已升级到 latest
|
|
152
|
+
"WTT 插件已升级到 latest(install 模式)。",
|
|
76
153
|
"网关将在约 2 秒后自动重启。",
|
|
77
154
|
"重启期间短暂离线属正常,恢复后可用 /wtt help 验证。",
|
|
78
155
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|