openclaw-channel-dmwork 0.5.20-dev.c2f67f45 → 0.5.20-dev.e09dddd5

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.
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * update command:
3
- * - Without --dev: always target latest (stable) version
4
- * - With --dev: always target @dev tag version
5
- * - Skip if the target version is already installed
3
+ * - Detects scenario and routes accordingly
4
+ * - For healthy installs: compare versions, update if different
5
+ * - For legacy/broken/deadlock: delegate to install's safe paths
6
6
  */
7
- import { gatewayRestart, pluginsInspect, pluginsInstall, } from "./openclaw-cli.js";
7
+ import { cleanupBrokenInstall, detectScenario, gatewayRestart, pluginsInspect, pluginsUpdateCompat, } from "./openclaw-cli.js";
8
+ import { runLegacyMigrationForUpdate, runDeadlockRepairForUpdate, } from "./install.js";
8
9
  import { PLUGIN_ID, ensureOpenClawCompat } from "./utils.js";
9
10
  import { execFileSync } from "node:child_process";
10
- /**
11
- * Query npm registry for the latest version under a given tag.
12
- */
13
11
  function getLatestNpmVersion(tag) {
14
12
  try {
15
13
  return execFileSync("npm", ["view", `${PLUGIN_ID}@${tag}`, "version"], {
@@ -23,18 +21,70 @@ function getLatestNpmVersion(tag) {
23
21
  }
24
22
  export async function runUpdate(opts) {
25
23
  ensureOpenClawCompat();
26
- const inspect = pluginsInspect(PLUGIN_ID);
27
- if (!inspect?.plugin) {
24
+ const scenario = detectScenario();
25
+ const tag = opts.dev ? "dev" : "latest";
26
+ const spec = `${PLUGIN_ID}@${tag}`;
27
+ const quiet = Boolean(opts.json);
28
+ // Non-healthy scenarios: delegate to install's safe paths
29
+ if (scenario === "legacy") {
30
+ if (!quiet)
31
+ console.log("Detected legacy DMWork plugin. Running migration...");
32
+ runLegacyMigrationForUpdate(spec, quiet);
33
+ if (!quiet)
34
+ console.log("Restarting gateway...");
35
+ gatewayRestart(quiet);
28
36
  if (opts.json) {
29
- console.log(JSON.stringify({ success: false, error: "not_installed" }));
37
+ const after = pluginsInspect(PLUGIN_ID);
38
+ console.log(JSON.stringify({ success: true, previousVersion: null, currentVersion: after?.plugin?.version ?? "unknown" }));
30
39
  }
31
- else {
32
- console.error("DMWork plugin is not installed. Use 'install' first.");
40
+ return;
41
+ }
42
+ if (scenario === "broken") {
43
+ if (!quiet)
44
+ console.log("Detected broken plugin install. Cleaning up and reinstalling...");
45
+ cleanupBrokenInstall();
46
+ // After cleanup, fall through to fresh install via pluginsInstall
47
+ const { pluginsInstall } = await import("./openclaw-cli.js");
48
+ pluginsInstall(spec, quiet);
49
+ if (!quiet)
50
+ console.log("Restarting gateway...");
51
+ gatewayRestart(quiet);
52
+ if (opts.json) {
53
+ const after = pluginsInspect(PLUGIN_ID);
54
+ console.log(JSON.stringify({ success: true, previousVersion: null, currentVersion: after?.plugin?.version ?? "unknown" }));
33
55
  }
34
- process.exit(1);
56
+ return;
35
57
  }
36
- const currentVersion = inspect.plugin.version;
37
- const tag = opts.dev ? "dev" : "latest";
58
+ if (scenario === "deadlock") {
59
+ if (!quiet)
60
+ console.log("Detected config deadlock. Repairing...");
61
+ runDeadlockRepairForUpdate(spec, quiet);
62
+ if (!quiet)
63
+ console.log("Restarting gateway...");
64
+ gatewayRestart(quiet);
65
+ if (opts.json) {
66
+ const after = pluginsInspect(PLUGIN_ID);
67
+ console.log(JSON.stringify({ success: true, previousVersion: null, currentVersion: after?.plugin?.version ?? "unknown" }));
68
+ }
69
+ return;
70
+ }
71
+ if (scenario === "fresh") {
72
+ if (!quiet)
73
+ console.log("DMWork plugin not found. Installing...");
74
+ const { pluginsInstall } = await import("./openclaw-cli.js");
75
+ pluginsInstall(spec, quiet);
76
+ if (!quiet)
77
+ console.log("Restarting gateway...");
78
+ gatewayRestart(quiet);
79
+ if (opts.json) {
80
+ const after = pluginsInspect(PLUGIN_ID);
81
+ console.log(JSON.stringify({ success: true, previousVersion: null, currentVersion: after?.plugin?.version ?? "unknown" }));
82
+ }
83
+ return;
84
+ }
85
+ // Scenario: update (healthy install)
86
+ const inspect = pluginsInspect(PLUGIN_ID);
87
+ const currentVersion = inspect?.plugin?.version ?? "unknown";
38
88
  const targetVersion = getLatestNpmVersion(tag);
39
89
  if (!targetVersion) {
40
90
  if (opts.json) {
@@ -45,7 +95,6 @@ export async function runUpdate(opts) {
45
95
  }
46
96
  process.exit(1);
47
97
  }
48
- // Skip if already on the target version
49
98
  if (currentVersion === targetVersion) {
50
99
  if (opts.json) {
51
100
  console.log(JSON.stringify({ success: true, previousVersion: currentVersion, currentVersion: targetVersion }));
@@ -55,19 +104,15 @@ export async function runUpdate(opts) {
55
104
  }
56
105
  return;
57
106
  }
58
- const quiet = Boolean(opts.json);
59
107
  if (!quiet) {
60
108
  console.log(`Updating DMWork plugin: v${currentVersion} -> v${targetVersion}${opts.dev ? " (dev)" : ""}...`);
61
109
  }
62
- // Use --force to replace existing installation when switching versions
63
- pluginsInstall(`${PLUGIN_ID}@${tag}`, quiet, true);
64
- if (!quiet) {
110
+ pluginsUpdateCompat(PLUGIN_ID, tag, quiet);
111
+ if (!quiet)
65
112
  console.log("Restarting gateway...");
66
- }
67
113
  if (!gatewayRestart(quiet)) {
68
- if (!quiet) {
114
+ if (!quiet)
69
115
  console.log("Warning: Gateway restart failed. Run 'openclaw gateway restart' manually.");
70
- }
71
116
  }
72
117
  if (opts.json) {
73
118
  console.log(JSON.stringify({ success: true, previousVersion: currentVersion, currentVersion: targetVersion }));
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../cli/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../cli/update.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-channel-dmwork",
3
- "version": "0.5.20",
3
+ "version": "0.5.20-dev.e09dddd5",
4
4
  "description": "DMWork channel plugin for OpenClaw via WuKongIM WebSocket",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-channel-dmwork",
3
- "version": "0.5.20-dev.c2f67f45",
3
+ "version": "0.5.20-dev.e09dddd5",
4
4
  "description": "DMWork channel plugin for OpenClaw via WuKongIM WebSocket",
5
5
  "main": "dist/index.js",
6
6
  "bin": {