@openclaw-cloud/agent-controller 3.1.1 → 3.1.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/bin/agent-controller.js +5 -9
- package/dist/commands/agent-update-cli.js +23 -38
- package/dist/commands/agent-update-cli.js.map +1 -1
- package/dist/commands/backup-cli.js +6 -4
- package/dist/commands/backup-cli.js.map +1 -1
- package/dist/commands/bootstrap.js +4 -4
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/channel-server.js +4 -3
- package/dist/commands/channel-server.js.map +1 -1
- package/dist/commands/heartbeat-cli.js +2 -6
- package/dist/commands/heartbeat-cli.js.map +1 -1
- package/dist/commands/install-deps.d.ts +10 -0
- package/dist/commands/install-deps.js +33 -43
- package/dist/commands/install-deps.js.map +1 -1
- package/dist/commands/knowledge-sync-cli.js +6 -4
- package/dist/commands/knowledge-sync-cli.js.map +1 -1
- package/dist/commands/plugin-update-cli.js +2 -9
- package/dist/commands/plugin-update-cli.js.map +1 -1
- package/dist/commands/self-update.js +17 -34
- package/dist/commands/self-update.js.map +1 -1
- package/dist/commands/update-skills.js +4 -3
- package/dist/commands/update-skills.js.map +1 -1
- package/dist/config-file.d.ts +7 -0
- package/dist/config-file.js +21 -11
- package/dist/config-file.js.map +1 -1
- package/dist/handlers/agent-update.d.ts +4 -0
- package/dist/handlers/agent-update.js +16 -44
- package/dist/handlers/agent-update.js.map +1 -1
- package/dist/handlers/deploy.d.ts +1 -2
- package/dist/handlers/deploy.js +4 -20
- package/dist/handlers/deploy.js.map +1 -1
- package/dist/handlers/diagnostics.js +0 -12
- package/dist/handlers/diagnostics.js.map +1 -1
- package/dist/handlers/file-delete.js +4 -5
- package/dist/handlers/file-delete.js.map +1 -1
- package/dist/handlers/file-write.js +4 -4
- package/dist/handlers/file-write.js.map +1 -1
- package/dist/handlers/knowledge-sync.js +2 -14
- package/dist/handlers/knowledge-sync.js.map +1 -1
- package/dist/handlers/onboarding.d.ts +1 -2
- package/dist/handlers/onboarding.js +3 -20
- package/dist/handlers/onboarding.js.map +1 -1
- package/dist/handlers/package-install.js +1 -1
- package/dist/handlers/package-install.js.map +1 -1
- package/dist/handlers/pair.js +0 -12
- package/dist/handlers/pair.js.map +1 -1
- package/dist/handlers/restart.d.ts +1 -2
- package/dist/handlers/restart.js +3 -8
- package/dist/handlers/restart.js.map +1 -1
- package/dist/handlers/stop.js +0 -7
- package/dist/handlers/stop.js.map +1 -1
- package/dist/handlers/telegram-webhook.js +3 -22
- package/dist/handlers/telegram-webhook.js.map +1 -1
- package/dist/handlers/update-config.js +3 -11
- package/dist/handlers/update-config.js.map +1 -1
- package/dist/heartbeat.js +2 -1
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +37 -84
- package/dist/index.js.map +1 -1
- package/dist/lockfile.js +2 -1
- package/dist/lockfile.js.map +1 -1
- package/dist/platform/linux.js +6 -5
- package/dist/platform/linux.js.map +1 -1
- package/dist/platform/macos.js +3 -2
- package/dist/platform/macos.js.map +1 -1
- package/dist/platform/windows.js +3 -2
- package/dist/platform/windows.js.map +1 -1
- package/dist/providers/claude-code/channel-server.js +2 -1
- package/dist/providers/claude-code/channel-server.js.map +1 -1
- package/dist/providers/claude-code/settings-writer.d.ts +3 -2
- package/dist/providers/claude-code/settings-writer.js +6 -15
- package/dist/providers/claude-code/settings-writer.js.map +1 -1
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.js +25 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openclaw/index.js +11 -13
- package/dist/providers/openclaw/index.js.map +1 -1
- package/dist/utils/anthropic-auth.d.ts +14 -0
- package/dist/utils/anthropic-auth.js +24 -0
- package/dist/utils/anthropic-auth.js.map +1 -1
- package/dist/utils/apply-config.d.ts +16 -1
- package/dist/utils/apply-config.js +59 -81
- package/dist/utils/apply-config.js.map +1 -1
- package/dist/utils/claude-env.js +18 -28
- package/dist/utils/claude-env.js.map +1 -1
- package/dist/utils/config-merge-paths.d.ts +9 -1
- package/dist/utils/config-merge-paths.js +10 -2
- package/dist/utils/config-merge-paths.js.map +1 -1
- package/dist/utils/env.d.ts +0 -1
- package/dist/utils/env.js +0 -8
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/gateway-restart-handler.d.ts +6 -2
- package/dist/utils/gateway-restart-handler.js +11 -2
- package/dist/utils/gateway-restart-handler.js.map +1 -1
- package/dist/utils/gateway-restart.d.ts +7 -0
- package/dist/utils/gateway-restart.js +12 -4
- package/dist/utils/gateway-restart.js.map +1 -1
- package/dist/utils/legacy-mcp-servers.d.ts +12 -0
- package/dist/utils/legacy-mcp-servers.js +37 -0
- package/dist/utils/legacy-mcp-servers.js.map +1 -0
- package/dist/utils/log-collector.js +2 -1
- package/dist/utils/log-collector.js.map +1 -1
- package/dist/utils/openclaw-ops.js +8 -7
- package/dist/utils/openclaw-ops.js.map +1 -1
- package/dist/utils/openclaw-stack-update.d.ts +31 -0
- package/dist/utils/openclaw-stack-update.js +50 -0
- package/dist/utils/openclaw-stack-update.js.map +1 -0
- package/dist/utils/package-install.js +4 -12
- package/dist/utils/package-install.js.map +1 -1
- package/dist/utils/package-version.d.ts +10 -0
- package/dist/utils/package-version.js +18 -0
- package/dist/utils/package-version.js.map +1 -0
- package/dist/utils/parse-id-at-version.d.ts +15 -0
- package/dist/utils/parse-id-at-version.js +22 -0
- package/dist/utils/parse-id-at-version.js.map +1 -0
- package/dist/utils/response.js +1 -0
- package/dist/utils/response.js.map +1 -1
- package/dist/utils/write-workspace-files.js +8 -13
- package/dist/utils/write-workspace-files.js.map +1 -1
- package/dist/workspace.d.ts +11 -0
- package/dist/workspace.js +20 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,16 +3,8 @@ import { logCollector } from '../connection.js';
|
|
|
3
3
|
const WEBHOOK_PORT = 8787;
|
|
4
4
|
const TIMEOUT_MS = 10_000;
|
|
5
5
|
export async function handleTelegramWebhook(command) {
|
|
6
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
7
|
-
commandId: command.id,
|
|
8
|
-
});
|
|
9
|
-
const startMs = Date.now();
|
|
10
6
|
const { body, webhookSecret } = command.payload;
|
|
11
7
|
if (!body) {
|
|
12
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: missing body in payload`, {
|
|
13
|
-
commandId: command.id,
|
|
14
|
-
durationMs: Date.now() - startMs,
|
|
15
|
-
});
|
|
16
8
|
return {
|
|
17
9
|
id: command.id,
|
|
18
10
|
type: command.type,
|
|
@@ -33,12 +25,10 @@ export async function handleTelegramWebhook(command) {
|
|
|
33
25
|
body: JSON.stringify(body),
|
|
34
26
|
signal: AbortSignal.timeout(TIMEOUT_MS),
|
|
35
27
|
});
|
|
28
|
+
// Domain event: which status the local gateway gave us. The command
|
|
29
|
+
// lifecycle (received/completed/failed) is logged by connection.ts.
|
|
30
|
+
logCollector?.push('telegram_webhook_forwarded', response.ok ? 'info' : 'error', `Telegram update forwarded to gateway: HTTP ${response.status}`, { commandId: command.id, statusCode: response.status });
|
|
36
31
|
if (!response.ok) {
|
|
37
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: gateway ${response.status}`, {
|
|
38
|
-
commandId: command.id,
|
|
39
|
-
durationMs: Date.now() - startMs,
|
|
40
|
-
statusCode: response.status,
|
|
41
|
-
});
|
|
42
32
|
return {
|
|
43
33
|
id: command.id,
|
|
44
34
|
type: command.type,
|
|
@@ -46,11 +36,6 @@ export async function handleTelegramWebhook(command) {
|
|
|
46
36
|
error: `Gateway responded with ${response.status}: ${response.statusText}`,
|
|
47
37
|
};
|
|
48
38
|
}
|
|
49
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
50
|
-
commandId: command.id,
|
|
51
|
-
durationMs: Date.now() - startMs,
|
|
52
|
-
statusCode: response.status,
|
|
53
|
-
});
|
|
54
39
|
return {
|
|
55
40
|
id: command.id,
|
|
56
41
|
type: command.type,
|
|
@@ -59,10 +44,6 @@ export async function handleTelegramWebhook(command) {
|
|
|
59
44
|
};
|
|
60
45
|
}
|
|
61
46
|
catch (err) {
|
|
62
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: ${toErrorMessage(err)}`, {
|
|
63
|
-
commandId: command.id,
|
|
64
|
-
durationMs: Date.now() - startMs,
|
|
65
|
-
});
|
|
66
47
|
return {
|
|
67
48
|
id: command.id,
|
|
68
49
|
type: command.type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-webhook.js","sourceRoot":"","sources":["../../src/handlers/telegram-webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAqB;IAC/D,
|
|
1
|
+
{"version":3,"file":"telegram-webhook.js","sourceRoot":"","sources":["../../src/handlers/telegram-webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAqB;IAC/D,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,OAGvC,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,iCAAiC,CAAC,GAAG,aAAa,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,YAAY,mBAAmB,EAAE;YAChF,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC;QAEH,oEAAoE;QACpE,oEAAoE;QACpE,YAAY,EAAE,IAAI,CAChB,4BAA4B,EAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC9B,8CAA8C,QAAQ,CAAC,MAAM,EAAE,EAC/D,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CACvD,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE;aAC3E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,23 +3,15 @@ import { fetchAndApplyConfig } from '../utils/apply-config.js';
|
|
|
3
3
|
import { logCollector } from '../connection.js';
|
|
4
4
|
export function handleUpdateConfig(api, agentId) {
|
|
5
5
|
return async (cmd) => {
|
|
6
|
-
const startMs = Date.now();
|
|
7
|
-
logCollector?.push('command_received', 'info', `Command: ${cmd.type}`, { commandId: cmd.id });
|
|
8
6
|
try {
|
|
9
|
-
await fetchAndApplyConfig(api, agentId);
|
|
10
|
-
|
|
11
|
-
logCollector?.push('command_completed', 'info', `${cmd.type} completed`, {
|
|
7
|
+
const { managed } = await fetchAndApplyConfig(api, agentId);
|
|
8
|
+
logCollector?.push('config_applied', 'info', `Config applied (managed=${managed})`, {
|
|
12
9
|
commandId: cmd.id,
|
|
13
|
-
|
|
10
|
+
managed,
|
|
14
11
|
});
|
|
15
12
|
return { id: cmd.id, type: cmd.type, success: true, data: {} };
|
|
16
13
|
}
|
|
17
14
|
catch (err) {
|
|
18
|
-
const durationMs = Date.now() - startMs;
|
|
19
|
-
logCollector?.push('command_failed', 'error', `${cmd.type} failed: ${toErrorMessage(err)}`, {
|
|
20
|
-
commandId: cmd.id,
|
|
21
|
-
durationMs,
|
|
22
|
-
});
|
|
23
15
|
return { id: cmd.id, type: cmd.type, success: false, error: toErrorMessage(err) };
|
|
24
16
|
}
|
|
25
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-config.js","sourceRoot":"","sources":["../../src/handlers/update-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,GAAa,EAAE,OAAe;IAC/D,OAAO,KAAK,EAAE,GAAiB,EAA0B,EAAE;QACzD,
|
|
1
|
+
{"version":3,"file":"update-config.js","sourceRoot":"","sources":["../../src/handlers/update-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,GAAa,EAAE,OAAe;IAC/D,OAAO,KAAK,EAAE,GAAiB,EAA0B,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5D,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,2BAA2B,OAAO,GAAG,EAAE;gBAClF,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,OAAO;aACR,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACpF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/heartbeat.js
CHANGED
|
@@ -6,6 +6,7 @@ import { config } from './config.js';
|
|
|
6
6
|
import { getProvider } from './providers/index.js';
|
|
7
7
|
import { isLockFilePresent } from './lockfile.js';
|
|
8
8
|
import { getOpenclawVersion, listInstalledPlugins } from './utils/openclaw-ops.js';
|
|
9
|
+
import { toErrorMessage } from './utils/response.js';
|
|
9
10
|
const HEARTBEAT_INTERVAL = 30_000;
|
|
10
11
|
async function checkGateway() {
|
|
11
12
|
const provider = getProvider();
|
|
@@ -127,7 +128,7 @@ export async function publishHeartbeat(opts) {
|
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
catch (err) {
|
|
130
|
-
console.error('Heartbeat publish failed:', err
|
|
131
|
+
console.error('Heartbeat publish failed:', toErrorMessage(err));
|
|
131
132
|
debugLog('heartbeat', '← error', err);
|
|
132
133
|
}
|
|
133
134
|
}
|
package/dist/heartbeat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lift any legacy flat `mcpServers` at the root of openclaw.json into the
|
|
3
|
-
* canonical `mcp.servers` location. The OpenClaw CLI switched to strict
|
|
4
|
-
* schema validation that rejects the unknown top-level `mcpServers` key, so
|
|
5
|
-
* leaving it behind crashes the gateway on startup. Mutates `fileConfig`
|
|
6
|
-
* in place; returns true if anything changed.
|
|
7
|
-
*/
|
|
8
|
-
export declare function migrateLegacyMcpServers(fileConfig: Record<string, unknown>): boolean;
|
|
9
1
|
export declare function main(): Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { dirname, join } from 'node:path';
|
|
4
|
-
import fs from 'node:fs';
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
5
3
|
import { createConnection, logCollector } from './connection.js';
|
|
6
4
|
import { startHeartbeat } from './heartbeat.js';
|
|
7
5
|
import { createAgentApi } from './api.js';
|
|
8
|
-
import { configureProvider,
|
|
6
|
+
import { configureProvider, createProviderFromConfig, getProvider } from './providers/index.js';
|
|
9
7
|
import { ClaudeCodeProvider } from './providers/claude-code/index.js';
|
|
10
8
|
import { registerClaudeReplyPublisher } from './handlers/chat.js';
|
|
11
9
|
import { DEBUG } from './debug.js';
|
|
12
10
|
import { getBackendUrl } from './utils/env.js';
|
|
13
11
|
import { config, requireConfig } from './config.js';
|
|
14
12
|
import { createLockFile } from './lockfile.js';
|
|
15
|
-
import { fetchAndApplyConfig } from './utils/apply-config.js';
|
|
13
|
+
import { fetchAndApplyConfig, getOpenclawJsonPath, writeOpenclawJson, } from './utils/apply-config.js';
|
|
14
|
+
import { migrateLegacyMcpServers } from './utils/legacy-mcp-servers.js';
|
|
16
15
|
import { KnowledgeGraphManager } from './utils/knowledge-graph.js';
|
|
17
16
|
import { startMemoryMcpServer } from './memory-mcp-server.js';
|
|
18
17
|
import { wireMemoryDeltaLogging } from './handlers/memory.js';
|
|
19
18
|
import { toErrorMessage } from './utils/response.js';
|
|
20
|
-
|
|
21
|
-
const
|
|
19
|
+
import { getPackageVersion } from './utils/package-version.js';
|
|
20
|
+
const CONTROLLER_VERSION = getPackageVersion();
|
|
22
21
|
/**
|
|
23
22
|
* Startup config refresh — OFF unless `AC_RUN_BOOTSTRAP=1` is set explicitly.
|
|
24
23
|
*
|
|
@@ -56,45 +55,15 @@ async function refreshConfigFromBootstrap() {
|
|
|
56
55
|
console.error('[startup] Failed to refresh config from bootstrap:', toErrorMessage(err));
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Lift any legacy flat `mcpServers` at the root of openclaw.json into the
|
|
61
|
-
* canonical `mcp.servers` location. The OpenClaw CLI switched to strict
|
|
62
|
-
* schema validation that rejects the unknown top-level `mcpServers` key, so
|
|
63
|
-
* leaving it behind crashes the gateway on startup. Mutates `fileConfig`
|
|
64
|
-
* in place; returns true if anything changed.
|
|
65
|
-
*/
|
|
66
|
-
export function migrateLegacyMcpServers(fileConfig) {
|
|
67
|
-
const flat = fileConfig.mcpServers;
|
|
68
|
-
if (!flat || typeof flat !== 'object' || Array.isArray(flat))
|
|
69
|
-
return false;
|
|
70
|
-
const mcp = (fileConfig.mcp && typeof fileConfig.mcp === 'object' && !Array.isArray(fileConfig.mcp)
|
|
71
|
-
? fileConfig.mcp
|
|
72
|
-
: {});
|
|
73
|
-
const nested = (mcp.servers && typeof mcp.servers === 'object' && !Array.isArray(mcp.servers) ? mcp.servers : {});
|
|
74
|
-
for (const [name, value] of Object.entries(flat)) {
|
|
75
|
-
if (!(name in nested)) {
|
|
76
|
-
nested[name] = value;
|
|
77
|
-
console.log(`[startup] Migrated legacy mcpServers.${name} → mcp.servers.${name}`);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
console.warn(`[startup] Migration skip: mcp.servers.${name} already exists, dropping legacy flat entry`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
mcp.servers = nested;
|
|
84
|
-
fileConfig.mcp = mcp;
|
|
85
|
-
delete fileConfig.mcpServers;
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
58
|
/** Inject agent-memory MCP server into openclaw.json so OpenClaw agent can discover it. */
|
|
89
|
-
function injectMemoryMcpConfig() {
|
|
59
|
+
async function injectMemoryMcpConfig() {
|
|
90
60
|
try {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
if (!fs.existsSync(configPath))
|
|
61
|
+
const raw = await fs.readFile(getOpenclawJsonPath(), 'utf-8').catch(() => null);
|
|
62
|
+
if (raw === null)
|
|
94
63
|
return;
|
|
95
|
-
const fileConfig = JSON.parse(
|
|
64
|
+
const fileConfig = JSON.parse(raw);
|
|
96
65
|
// Clean up pre-rebrand configs before injecting — see migrateLegacyMcpServers.
|
|
97
|
-
migrateLegacyMcpServers(fileConfig);
|
|
66
|
+
migrateLegacyMcpServers(fileConfig, '[startup]');
|
|
98
67
|
const mcp = (fileConfig.mcp && typeof fileConfig.mcp === 'object' && !Array.isArray(fileConfig.mcp)
|
|
99
68
|
? fileConfig.mcp
|
|
100
69
|
: {});
|
|
@@ -107,11 +76,11 @@ function injectMemoryMcpConfig() {
|
|
|
107
76
|
};
|
|
108
77
|
mcp.servers = servers;
|
|
109
78
|
fileConfig.mcp = mcp;
|
|
110
|
-
|
|
79
|
+
await writeOpenclawJson(fileConfig);
|
|
111
80
|
console.log('[startup] Injected agent-memory MCP server into openclaw.json');
|
|
112
81
|
}
|
|
113
82
|
catch (err) {
|
|
114
|
-
console.warn('[startup] Failed to inject memory MCP config:', err
|
|
83
|
+
console.warn('[startup] Failed to inject memory MCP config:', toErrorMessage(err));
|
|
115
84
|
}
|
|
116
85
|
}
|
|
117
86
|
export async function main() {
|
|
@@ -138,7 +107,7 @@ export async function main() {
|
|
|
138
107
|
await knowledgeGraphManager.init();
|
|
139
108
|
console.log('[memory] KnowledgeGraphManager initialized');
|
|
140
109
|
closeMemoryMcp = await startMemoryMcpServer(knowledgeGraphManager);
|
|
141
|
-
injectMemoryMcpConfig();
|
|
110
|
+
await injectMemoryMcpConfig();
|
|
142
111
|
}
|
|
143
112
|
catch (err) {
|
|
144
113
|
console.error('[memory] Failed to initialize memory:', toErrorMessage(err));
|
|
@@ -160,53 +129,37 @@ export async function main() {
|
|
|
160
129
|
});
|
|
161
130
|
// Wire structured delta logs AFTER createConnection() so logCollector is set.
|
|
162
131
|
wireMemoryDeltaLogging(knowledgeGraphManager);
|
|
163
|
-
// Configure agent provider
|
|
132
|
+
// Configure agent provider. The openclaw provider is the chat transport, so
|
|
133
|
+
// without a gateway token we leave it unconfigured on purpose — chat commands
|
|
134
|
+
// then fail fast instead of retrying a doomed WS connect. (Gateway *restarts*
|
|
135
|
+
// no longer depend on this: restartGateway() builds its own provider.)
|
|
164
136
|
const providerType = config.agentProvider;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (providerType === 'openclaw') {
|
|
168
|
-
if (gatewayToken) {
|
|
169
|
-
const provider = createProvider('openclaw', { wsUrl: gatewayWsUrl, wsToken: gatewayToken });
|
|
170
|
-
configureProvider(provider);
|
|
171
|
-
console.log('Chat provider configured (lazy connect on first use)');
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
console.warn('OPENCLAW_GATEWAY_TOKEN not set, chat provider disabled');
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
else if (providerType === 'mock') {
|
|
178
|
-
const provider = createProvider('mock', {});
|
|
179
|
-
configureProvider(provider);
|
|
180
|
-
provider.connect().catch((err) => {
|
|
181
|
-
console.error('Mock provider connect failed:', err instanceof Error ? err.message : err);
|
|
182
|
-
});
|
|
183
|
-
console.log('Mock provider configured');
|
|
137
|
+
if (providerType === 'openclaw' && !config.gatewayToken) {
|
|
138
|
+
console.warn('OPENCLAW_GATEWAY_TOKEN not set, chat provider disabled');
|
|
184
139
|
}
|
|
185
|
-
else
|
|
186
|
-
const provider =
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
backendUrl,
|
|
192
|
-
agentToken: token,
|
|
193
|
-
});
|
|
140
|
+
else {
|
|
141
|
+
const provider = createProviderFromConfig({ backendUrl, agentToken: token });
|
|
142
|
+
if (!provider) {
|
|
143
|
+
console.error(`Unknown provider type: ${providerType}`);
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
194
146
|
configureProvider(provider);
|
|
195
147
|
// Wire the reply publisher: Claude's async reply tool calls are published
|
|
196
148
|
// to the backend as `chat_response` events so the chat UI receives them.
|
|
197
149
|
if (provider instanceof ClaudeCodeProvider) {
|
|
198
150
|
registerClaudeReplyPublisher(provider, (payload) => api.publishResponse(agentId, payload).catch((err) => {
|
|
199
|
-
console.error('[claude-code] reply publish failed:', err
|
|
151
|
+
console.error('[claude-code] reply publish failed:', toErrorMessage(err));
|
|
200
152
|
}));
|
|
201
153
|
}
|
|
202
|
-
|
|
203
|
-
console.
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
154
|
+
if (providerType === 'openclaw') {
|
|
155
|
+
console.log('Chat provider configured (lazy connect on first use)');
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
provider.connect().catch((err) => {
|
|
159
|
+
console.error(`${providerType} provider connect failed:`, toErrorMessage(err));
|
|
160
|
+
});
|
|
161
|
+
console.log(`${providerType} provider configured`);
|
|
162
|
+
}
|
|
210
163
|
}
|
|
211
164
|
console.log('Heartbeat via backend API');
|
|
212
165
|
const heartbeatHandle = startHeartbeat({
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lockfile.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
+
import { toErrorMessage } from './utils/response.js';
|
|
4
5
|
const LOCK_FILE = 'agent-controller.lock';
|
|
5
6
|
function getLockDir() {
|
|
6
7
|
// VM/K8s: /opt/openclaw-cloud/agent-controller
|
|
@@ -22,7 +23,7 @@ export function createLockFile() {
|
|
|
22
23
|
console.log(`[lock] Created lock file: ${getLockPath()}`);
|
|
23
24
|
}
|
|
24
25
|
catch (err) {
|
|
25
|
-
console.error('[lock] Failed to create lock file:', err
|
|
26
|
+
console.error('[lock] Failed to create lock file:', toErrorMessage(err));
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
/** Remove lock file (triggers restart on next heartbeat) */
|
package/dist/lockfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,SAAS,UAAU;IACjB,+CAA+C;IAC/C,2CAA2C;IAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,sCAAsC,CAAC,EAAE,CAAC;QAC1D,OAAO,sCAAsC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,WAAW,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/platform/linux.js
CHANGED
|
@@ -3,6 +3,7 @@ import { homedir, userInfo } from 'node:os';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { execAsync } from '../utils/exec.js';
|
|
5
5
|
import { which } from './common.js';
|
|
6
|
+
import { toErrorMessage } from '../utils/response.js';
|
|
6
7
|
const SYSTEM_SERVICE_PATH = '/etc/systemd/system/agent-controller.service';
|
|
7
8
|
const DBUS_ERROR_PATTERNS = [
|
|
8
9
|
'No medium found',
|
|
@@ -16,7 +17,7 @@ async function isUserSystemdAvailable() {
|
|
|
16
17
|
}
|
|
17
18
|
catch (err) {
|
|
18
19
|
// Node exec error includes message, stderr, and stdout — check all
|
|
19
|
-
const msg =
|
|
20
|
+
const msg = toErrorMessage(err);
|
|
20
21
|
const stderr = err?.stderr ?? '';
|
|
21
22
|
const stdout = err?.stdout ?? '';
|
|
22
23
|
const combined = `${msg}\n${stderr}\n${stdout}`;
|
|
@@ -127,7 +128,7 @@ export async function installLinux(config) {
|
|
|
127
128
|
console.log('Service enabled and started.');
|
|
128
129
|
}
|
|
129
130
|
catch (err) {
|
|
130
|
-
console.warn('systemctl command failed:', err
|
|
131
|
+
console.warn('systemctl command failed:', toErrorMessage(err));
|
|
131
132
|
}
|
|
132
133
|
console.log('');
|
|
133
134
|
console.log('Agent Controller installed as a systemd system service.');
|
|
@@ -147,7 +148,7 @@ export async function installLinux(config) {
|
|
|
147
148
|
console.log('Service enabled and started.');
|
|
148
149
|
}
|
|
149
150
|
catch (err) {
|
|
150
|
-
console.warn('systemctl command failed:', err
|
|
151
|
+
console.warn('systemctl command failed:', toErrorMessage(err));
|
|
151
152
|
}
|
|
152
153
|
console.log('');
|
|
153
154
|
console.log('Agent Controller installed as a systemd user service.');
|
|
@@ -168,7 +169,7 @@ export async function uninstallLinux() {
|
|
|
168
169
|
userDisableSucceeded = true;
|
|
169
170
|
}
|
|
170
171
|
catch (err) {
|
|
171
|
-
console.warn('systemctl --user disable failed, trying system-level:', err
|
|
172
|
+
console.warn('systemctl --user disable failed, trying system-level:', toErrorMessage(err));
|
|
172
173
|
}
|
|
173
174
|
if (!userDisableSucceeded) {
|
|
174
175
|
try {
|
|
@@ -176,7 +177,7 @@ export async function uninstallLinux() {
|
|
|
176
177
|
console.log('Service disabled and stopped (system).');
|
|
177
178
|
}
|
|
178
179
|
catch (err) {
|
|
179
|
-
console.warn('systemctl disable failed (may not be enabled):', err
|
|
180
|
+
console.warn('systemctl disable failed (may not be enabled):', toErrorMessage(err));
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
183
|
const userServicePath = join(homedir(), '.config', 'systemd', 'user', 'agent-controller.service');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"linux.js","sourceRoot":"","sources":["../../src/platform/linux.ts"],"names":[],"mappings":"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"}
|
package/dist/platform/macos.js
CHANGED
|
@@ -3,6 +3,7 @@ import { homedir } from 'node:os';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { execAsync } from '../utils/exec.js';
|
|
5
5
|
import { which } from './common.js';
|
|
6
|
+
import { toErrorMessage } from '../utils/response.js';
|
|
6
7
|
export async function installMacOS(config) {
|
|
7
8
|
const home = homedir();
|
|
8
9
|
const launchAgentsDir = join(home, 'Library', 'LaunchAgents');
|
|
@@ -69,7 +70,7 @@ export async function installMacOS(config) {
|
|
|
69
70
|
console.log('Service loaded via launchctl.');
|
|
70
71
|
}
|
|
71
72
|
catch (err) {
|
|
72
|
-
console.warn('launchctl load failed (may already be loaded):', err
|
|
73
|
+
console.warn('launchctl load failed (may already be loaded):', toErrorMessage(err));
|
|
73
74
|
}
|
|
74
75
|
console.log('');
|
|
75
76
|
console.log('Agent Controller installed as a macOS LaunchAgent.');
|
|
@@ -89,7 +90,7 @@ export async function uninstallMacOS() {
|
|
|
89
90
|
console.log('Service unloaded via launchctl.');
|
|
90
91
|
}
|
|
91
92
|
catch (err) {
|
|
92
|
-
console.warn('launchctl unload failed (may not be loaded):', err
|
|
93
|
+
console.warn('launchctl unload failed (may not be loaded):', toErrorMessage(err));
|
|
93
94
|
}
|
|
94
95
|
try {
|
|
95
96
|
await fs.unlink(plistPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/platform/macos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"macos.js","sourceRoot":"","sources":["../../src/platform/macos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAuB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAsB;IACvD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,qCAAqC,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,mBAAmB,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC1D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,kCAAkC;QAClC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG;;;;;;;;cAQF,QAAQ;cACR,mBAAmB;;;;;cAKnB,MAAM,CAAC,aAAa;;cAEpB,MAAM,CAAC,UAAU;;cAEjB,MAAM,CAAC,OAAO;;cAEd,MAAM,CAAC,kBAAkB,YACjC,MAAM,CAAC,YAAY;QACjB,CAAC,CAAC;;cAEI,MAAM,CAAC,YAAY,WAAW;QACpC,CAAC,CAAC,EACN;;;;;;;YAOQ,OAAO;;YAEP,OAAO;;;CAGlB,CAAC;IAEA,uDAAuD;IACvD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,qBAAqB,SAAS,eAAe,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;IACtB,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,sBAAsB,SAAS,GAAG,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,kCAAkC,SAAS,GAAG,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,qCAAqC,CAAC,CAAC;IAE/F,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,qBAAqB,SAAS,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/platform/windows.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { execAsync } from '../utils/exec.js';
|
|
4
4
|
import { which } from './common.js';
|
|
5
|
+
import { toErrorMessage } from '../utils/response.js';
|
|
5
6
|
export async function installWindows(config) {
|
|
6
7
|
const appData = process.env['APPDATA'] ??
|
|
7
8
|
join(process.env['USERPROFILE'] ?? 'C:\\Users\\Default', 'AppData', 'Roaming');
|
|
@@ -27,7 +28,7 @@ set BACKEND_URL=${config.backendInternalUrl}
|
|
|
27
28
|
console.log('Scheduled task created.');
|
|
28
29
|
}
|
|
29
30
|
catch (err) {
|
|
30
|
-
console.warn('schtasks create failed:', err
|
|
31
|
+
console.warn('schtasks create failed:', toErrorMessage(err));
|
|
31
32
|
}
|
|
32
33
|
console.log('');
|
|
33
34
|
console.log('Agent Controller installed as a Windows scheduled task (ONLOGON).');
|
|
@@ -44,7 +45,7 @@ export async function uninstallWindows() {
|
|
|
44
45
|
console.log('Scheduled task deleted.');
|
|
45
46
|
}
|
|
46
47
|
catch (err) {
|
|
47
|
-
console.warn('schtasks delete failed (may not exist):', err
|
|
48
|
+
console.warn('schtasks delete failed (may not exist):', toErrorMessage(err));
|
|
48
49
|
}
|
|
49
50
|
const appData = process.env['APPDATA'] ??
|
|
50
51
|
join(process.env['USERPROFILE'] ?? 'C:\\Users\\Default', 'AppData', 'Roaming');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/platform/windows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAuB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"windows.js","sourceRoot":"","sources":["../../src/platform/windows.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { EventEmitter } from 'node:events';
|
|
|
2
2
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { toErrorMessage } from '../../utils/response.js';
|
|
5
6
|
/**
|
|
6
7
|
* MCP channel server — stdio-based, modeled after anthropics/claude-plugins-official
|
|
7
8
|
* `fakechat/server.ts`. When Claude Code is launched with
|
|
@@ -98,7 +99,7 @@ export class ClaudeChannelServer extends EventEmitter {
|
|
|
98
99
|
content: [
|
|
99
100
|
{
|
|
100
101
|
type: 'text',
|
|
101
|
-
text: `${req.params.name} failed: ${
|
|
102
|
+
text: `${req.params.name} failed: ${toErrorMessage(err)}`,
|
|
102
103
|
},
|
|
103
104
|
],
|
|
104
105
|
isError: true,
|