@openclaw-cloud/agent-controller 2.4.0-beta.4 → 2.4.0
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,13 +1,12 @@
|
|
|
1
1
|
import { installPlugin } from '../utils/openclaw-ops.js';
|
|
2
|
-
import { restartGateway } from '../utils/gateway-restart.js';
|
|
3
2
|
import { logCollector } from '../connection.js';
|
|
4
3
|
import { toErrorMessage } from '../utils/response.js';
|
|
5
4
|
// ---------------------------------------------------------------------------
|
|
6
5
|
// CLI entrypoint for `agent-controller plugin-update <id> <version>`
|
|
7
6
|
// (also accepts `<id>@<version>` shorthand). Mirrors the behaviour of the WS
|
|
8
|
-
// handler at src/handlers/plugin-update.ts: install
|
|
9
|
-
// the
|
|
10
|
-
//
|
|
7
|
+
// handler at src/handlers/plugin-update.ts: install only. Openclaw watches
|
|
8
|
+
// the plugin section of its config and self-restarts the gateway when the
|
|
9
|
+
// install lands; calling restartGateway() here would just race that.
|
|
11
10
|
// ---------------------------------------------------------------------------
|
|
12
11
|
const USAGE = 'Usage: agent-controller plugin-update <id> <version>\n' +
|
|
13
12
|
' agent-controller plugin-update <id>@<version>';
|
|
@@ -51,16 +50,8 @@ export async function runPluginUpdateCli(args) {
|
|
|
51
50
|
console.log('[plugin-update] done');
|
|
52
51
|
return;
|
|
53
52
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
await restartGateway();
|
|
57
|
-
console.log('[plugin-update] gateway restarted');
|
|
58
|
-
}
|
|
59
|
-
catch (err) {
|
|
60
|
-
const msg = toErrorMessage(err);
|
|
61
|
-
console.error(`[plugin-update] gateway restart failed (treating as warning): ${msg}`);
|
|
62
|
-
logCollector?.push('plugin_update_cli_restart_failed', 'warn', 'Gateway restart failed after CLI plugin install', { id, version, error: msg });
|
|
63
|
-
}
|
|
53
|
+
// No restartGateway() — openclaw self-reloads on plugin config changes.
|
|
54
|
+
console.log('[plugin-update] install complete; openclaw will reload its gateway');
|
|
64
55
|
console.log('[plugin-update] done');
|
|
65
56
|
}
|
|
66
57
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-update-cli.js","sourceRoot":"","sources":["../../src/commands/plugin-update-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin-update-cli.js","sourceRoot":"","sources":["../../src/commands/plugin-update-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,12 @@ import type { AgentCommand, AgentResponse } from '../types.js';
|
|
|
7
7
|
* 1. Validate payload (return success:false on bad input — never throw).
|
|
8
8
|
* 2. installPlugin(id, version). The helper skip-fast when the requested
|
|
9
9
|
* version is already installed.
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
*
|
|
11
|
+
* NOTE — no explicit gateway restart. Plugin install writes the new
|
|
12
|
+
* `plugins.installs.<id>.{spec,version,resolvedVersion,...}` keys into
|
|
13
|
+
* the openclaw config; openclaw watches the config file and reloads
|
|
14
|
+
* itself when those keys change (deferring until in-flight task runs
|
|
15
|
+
* complete). Calling restartGateway() here would be redundant and, in
|
|
16
|
+
* the worst case, race openclaw's own reload.
|
|
13
17
|
*/
|
|
14
18
|
export declare function handlePluginUpdate(cmd: AgentCommand): Promise<AgentResponse>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { logCollector } from '../connection.js';
|
|
2
2
|
import { toErrorMessage } from '../utils/response.js';
|
|
3
3
|
import { installPlugin } from '../utils/openclaw-ops.js';
|
|
4
|
-
import { restartGateway } from '../utils/gateway-restart.js';
|
|
5
4
|
/**
|
|
6
5
|
* Single-plugin update handler.
|
|
7
6
|
* payload: { id: string, version: string }
|
|
@@ -10,9 +9,13 @@ import { restartGateway } from '../utils/gateway-restart.js';
|
|
|
10
9
|
* 1. Validate payload (return success:false on bad input — never throw).
|
|
11
10
|
* 2. installPlugin(id, version). The helper skip-fast when the requested
|
|
12
11
|
* version is already installed.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
12
|
+
*
|
|
13
|
+
* NOTE — no explicit gateway restart. Plugin install writes the new
|
|
14
|
+
* `plugins.installs.<id>.{spec,version,resolvedVersion,...}` keys into
|
|
15
|
+
* the openclaw config; openclaw watches the config file and reloads
|
|
16
|
+
* itself when those keys change (deferring until in-flight task runs
|
|
17
|
+
* complete). Calling restartGateway() here would be redundant and, in
|
|
18
|
+
* the worst case, race openclaw's own reload.
|
|
16
19
|
*/
|
|
17
20
|
export async function handlePluginUpdate(cmd) {
|
|
18
21
|
const startMs = Date.now();
|
|
@@ -45,7 +48,7 @@ export async function handlePluginUpdate(cmd) {
|
|
|
45
48
|
id: cmd.id,
|
|
46
49
|
type: cmd.type,
|
|
47
50
|
success: true,
|
|
48
|
-
data: { id, version, installed: false
|
|
51
|
+
data: { id, version, installed: false },
|
|
49
52
|
};
|
|
50
53
|
}
|
|
51
54
|
logCollector?.push('plugin_update_installed', 'info', `Plugin installed`, {
|
|
@@ -53,19 +56,6 @@ export async function handlePluginUpdate(cmd) {
|
|
|
53
56
|
id,
|
|
54
57
|
version,
|
|
55
58
|
});
|
|
56
|
-
let restarted = false;
|
|
57
|
-
try {
|
|
58
|
-
await restartGateway();
|
|
59
|
-
restarted = true;
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
logCollector?.push('plugin_update_restart_failed', 'warn', `Gateway restart failed after plugin install`, {
|
|
63
|
-
commandId: cmd.id,
|
|
64
|
-
id,
|
|
65
|
-
version,
|
|
66
|
-
error: toErrorMessage(err),
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
59
|
return {
|
|
70
60
|
id: cmd.id,
|
|
71
61
|
type: cmd.type,
|
|
@@ -74,7 +64,6 @@ export async function handlePluginUpdate(cmd) {
|
|
|
74
64
|
id,
|
|
75
65
|
version,
|
|
76
66
|
installed: true,
|
|
77
|
-
restarted,
|
|
78
67
|
durationMs: Date.now() - startMs,
|
|
79
68
|
},
|
|
80
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-update.js","sourceRoot":"","sources":["../../src/handlers/plugin-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-update.js","sourceRoot":"","sources":["../../src/handlers/plugin-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAiB;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAwC,CAAC;IAC3E,MAAM,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,YAAY,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,EAAE,yBAAyB,EAAE;QAC9E,SAAS,EAAE,GAAG,CAAC,EAAE;QACjB,EAAE;QACF,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,6DAA6D;SACrE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,EAAE,qCAAqC,EAAE;gBACzF,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,EAAE;gBACF,OAAO;gBACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;aACjC,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;aACxC,CAAC;QACJ,CAAC;QAED,YAAY,EAAE,IAAI,CAAC,yBAAyB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACxE,SAAS,EAAE,GAAG,CAAC,EAAE;YACjB,EAAE;YACF,OAAO;SACR,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,EAAE;gBACF,OAAO;gBACP,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;aACjC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
|