@openclaw-cloud/agent-controller 0.8.2 → 0.9.1

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.
Files changed (71) hide show
  1. package/dist/api.d.ts +22 -0
  2. package/dist/api.js +89 -5
  3. package/dist/api.js.map +1 -1
  4. package/dist/commands/backup-cli.js +5 -1
  5. package/dist/commands/backup-cli.js.map +1 -1
  6. package/dist/commands/bootstrap.js +6 -15
  7. package/dist/commands/bootstrap.js.map +1 -1
  8. package/dist/commands/knowledge-sync-cli.js +5 -1
  9. package/dist/commands/knowledge-sync-cli.js.map +1 -1
  10. package/dist/connection.js +39 -114
  11. package/dist/connection.js.map +1 -1
  12. package/dist/handlers/backup.d.ts +2 -1
  13. package/dist/handlers/backup.js +2 -2
  14. package/dist/handlers/backup.js.map +1 -1
  15. package/dist/handlers/chat.js +4 -3
  16. package/dist/handlers/chat.js.map +1 -1
  17. package/dist/handlers/config.js +13 -2
  18. package/dist/handlers/config.js.map +1 -1
  19. package/dist/handlers/diagnostics.d.ts +2 -0
  20. package/dist/handlers/diagnostics.js +50 -0
  21. package/dist/handlers/diagnostics.js.map +1 -0
  22. package/dist/handlers/knowledge-sync.d.ts +2 -1
  23. package/dist/handlers/knowledge-sync.js +2 -2
  24. package/dist/handlers/knowledge-sync.js.map +1 -1
  25. package/dist/handlers/onboarding.js +3 -21
  26. package/dist/handlers/onboarding.js.map +1 -1
  27. package/dist/handlers/package-install.js +17 -3
  28. package/dist/handlers/package-install.js.map +1 -1
  29. package/dist/handlers/restart.js +3 -21
  30. package/dist/handlers/restart.js.map +1 -1
  31. package/dist/handlers/self-update.d.ts +2 -0
  32. package/dist/handlers/self-update.js +14 -0
  33. package/dist/handlers/self-update.js.map +1 -0
  34. package/dist/heartbeat.js +0 -4
  35. package/dist/heartbeat.js.map +1 -1
  36. package/dist/index.js +2 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/openclaw/gateway-adapter.d.ts +1 -0
  39. package/dist/openclaw/gateway-adapter.js +37 -7
  40. package/dist/openclaw/gateway-adapter.js.map +1 -1
  41. package/dist/platform/common.d.ts +1 -0
  42. package/dist/platform/common.js +10 -1
  43. package/dist/platform/common.js.map +1 -1
  44. package/dist/platform/linux.d.ts +1 -1
  45. package/dist/platform/linux.js +1 -8
  46. package/dist/platform/linux.js.map +1 -1
  47. package/dist/platform/macos.d.ts +1 -1
  48. package/dist/platform/macos.js +1 -8
  49. package/dist/platform/macos.js.map +1 -1
  50. package/dist/platform/windows.d.ts +1 -1
  51. package/dist/platform/windows.js +1 -8
  52. package/dist/platform/windows.js.map +1 -1
  53. package/dist/types.d.ts +1 -1
  54. package/dist/utils/archive.js +2 -2
  55. package/dist/utils/archive.js.map +1 -1
  56. package/dist/utils/backup-push.d.ts +4 -3
  57. package/dist/utils/backup-push.js +10 -56
  58. package/dist/utils/backup-push.js.map +1 -1
  59. package/dist/utils/env.d.ts +1 -0
  60. package/dist/utils/env.js +3 -0
  61. package/dist/utils/env.js.map +1 -1
  62. package/dist/utils/gateway-restart-handler.d.ts +6 -0
  63. package/dist/utils/gateway-restart-handler.js +27 -0
  64. package/dist/utils/gateway-restart-handler.js.map +1 -0
  65. package/dist/utils/knowledge-push.d.ts +3 -2
  66. package/dist/utils/knowledge-push.js +3 -20
  67. package/dist/utils/knowledge-push.js.map +1 -1
  68. package/package.json +1 -1
  69. package/dist/handlers/exec.d.ts +0 -2
  70. package/dist/handlers/exec.js +0 -29
  71. package/dist/handlers/exec.js.map +0 -1
package/dist/api.d.ts CHANGED
@@ -1,7 +1,29 @@
1
+ export interface BackupInitResult {
2
+ snapshotId: string;
3
+ uploadUrl: string;
4
+ token: string | null;
5
+ method: 'presigned' | 'api';
6
+ }
7
+ export interface BootstrapResult {
8
+ openclawConfig?: Record<string, unknown>;
9
+ workspaceFiles?: Record<string, string>;
10
+ }
1
11
  export interface AgentApi {
2
12
  get(path: string): Promise<unknown>;
3
13
  post(path: string, body?: unknown): Promise<Response>;
4
14
  publishResponse(agentId: string, data: unknown): Promise<void>;
5
15
  publishHeartbeat(agentId: string, payload: unknown): Promise<void>;
16
+ fetchConnectionToken(agentId: string): Promise<string>;
17
+ fetchSubscriptionToken(agentId: string, channels: string[]): Promise<Record<string, string>>;
18
+ backupInit(agentId: string): Promise<BackupInitResult>;
19
+ backupComplete(agentId: string, snapshotId: string, sizeBytes: number): Promise<void>;
20
+ knowledgePush(agentId: string, files: Array<{
21
+ path: string;
22
+ content: string;
23
+ }>): Promise<{
24
+ filesUpdated: number;
25
+ }>;
26
+ agentBootstrap(agentId: string): Promise<BootstrapResult>;
27
+ uploadRaw(url: string, body: NodeJS.ReadableStream | Buffer | Uint8Array, contentType: string, size: number, timeoutMs?: number): Promise<void>;
6
28
  }
7
29
  export declare function createAgentApi(backendUrl: string, agentToken: string): AgentApi;
package/dist/api.js CHANGED
@@ -1,11 +1,21 @@
1
1
  import { DEBUG, debugLog } from './debug.js';
2
- const TIMEOUT = 10_000;
2
+ // ---------------------------------------------------------------------------
3
+ // Timeouts by operation type
4
+ // ---------------------------------------------------------------------------
5
+ const TIMEOUT_DEFAULT = 10_000;
6
+ const TIMEOUT_TOKEN = 5_000;
7
+ const TIMEOUT_LONG = 30_000;
8
+ const TIMEOUT_UPLOAD = 300_000; // 5 min
9
+ // ---------------------------------------------------------------------------
10
+ // Implementation
11
+ // ---------------------------------------------------------------------------
3
12
  export function createAgentApi(backendUrl, agentToken) {
4
- async function request(method, path, body) {
13
+ async function request(method, path, body, timeoutMs = TIMEOUT_DEFAULT) {
5
14
  const controller = new AbortController();
6
- const timeout = setTimeout(() => controller.abort(), TIMEOUT);
15
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
16
+ const start = Date.now();
7
17
  try {
8
- debugLog('api', '→', method, path, body ? JSON.stringify(body).slice(0, 500) : '');
18
+ debugLog('api', `→ ${method} ${path}`, body ? JSON.stringify(body).slice(0, 500) : '');
9
19
  const res = await fetch(`${backendUrl}${path}`, {
10
20
  method,
11
21
  headers: {
@@ -15,10 +25,11 @@ export function createAgentApi(backendUrl, agentToken) {
15
25
  ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
16
26
  signal: controller.signal,
17
27
  });
28
+ const elapsed = Date.now() - start;
18
29
  if (DEBUG) {
19
30
  const clone = res.clone();
20
31
  const bodyText = await clone.text().catch(() => '');
21
- debugLog('api', '←', method, path, res.status, bodyText.slice(0, 1000));
32
+ debugLog('api', `← ${res.status} ${method} ${path} (${bodyText.length}b, ${elapsed}ms)`, bodyText.slice(0, 1000));
22
33
  }
23
34
  return res;
24
35
  }
@@ -27,6 +38,7 @@ export function createAgentApi(backendUrl, agentToken) {
27
38
  }
28
39
  }
29
40
  return {
41
+ // --- Generic ---
30
42
  async get(path) {
31
43
  const res = await request('GET', path);
32
44
  if (!res.ok) {
@@ -37,6 +49,7 @@ export function createAgentApi(backendUrl, agentToken) {
37
49
  async post(path, body) {
38
50
  return request('POST', path, body);
39
51
  },
52
+ // --- Agent responses & heartbeat ---
40
53
  async publishResponse(agentId, data) {
41
54
  const res = await request('POST', '/api/internal/agent-response', { agentId, data });
42
55
  if (!res.ok) {
@@ -49,6 +62,77 @@ export function createAgentApi(backendUrl, agentToken) {
49
62
  throw new Error(`publishHeartbeat failed: HTTP ${res.status}`);
50
63
  }
51
64
  },
65
+ // --- Centrifugo tokens ---
66
+ async fetchConnectionToken(agentId) {
67
+ const res = await request('POST', '/api/internal/centrifugo-token', { agentId }, TIMEOUT_TOKEN);
68
+ if (!res.ok) {
69
+ const body = await res.text().catch(() => '');
70
+ throw new Error(`HTTP ${res.status}: ${body}`);
71
+ }
72
+ const data = await res.json();
73
+ return data.token;
74
+ },
75
+ async fetchSubscriptionToken(agentId, channels) {
76
+ const res = await request('POST', '/api/internal/centrifugo-subscribe-token', { agentId, channels }, TIMEOUT_TOKEN);
77
+ if (!res.ok) {
78
+ const body = await res.text().catch(() => '');
79
+ throw new Error(`HTTP ${res.status}: ${body}`);
80
+ }
81
+ const data = await res.json();
82
+ return data.subscriptions;
83
+ },
84
+ // --- Backup ---
85
+ async backupInit(agentId) {
86
+ const res = await request('POST', `/api/internal/agents/${agentId}/backup/init`, undefined, TIMEOUT_LONG);
87
+ if (!res.ok) {
88
+ const text = await res.text().catch(() => '');
89
+ throw new Error(`Backup init failed: ${res.status} ${text}`);
90
+ }
91
+ return res.json();
92
+ },
93
+ async backupComplete(agentId, snapshotId, sizeBytes) {
94
+ const res = await request('POST', `/api/internal/agents/${agentId}/backup/complete`, { snapshotId, sizeBytes }, TIMEOUT_LONG);
95
+ if (!res.ok) {
96
+ const text = await res.text().catch(() => '');
97
+ throw new Error(`Backup complete failed: ${res.status} ${text}`);
98
+ }
99
+ },
100
+ // --- Knowledge ---
101
+ async knowledgePush(agentId, files) {
102
+ const res = await request('POST', `/api/internal/agents/${agentId}/knowledge/push`, { files }, TIMEOUT_LONG);
103
+ if (!res.ok) {
104
+ const text = await res.text().catch(() => '');
105
+ throw new Error(`Knowledge push failed: ${res.status} ${text}`);
106
+ }
107
+ return res.json();
108
+ },
109
+ // --- Bootstrap ---
110
+ async agentBootstrap(agentId) {
111
+ const res = await request('GET', `/api/internal/agent-bootstrap/${agentId}`, undefined, TIMEOUT_LONG);
112
+ if (!res.ok) {
113
+ const body = await res.text().catch(() => '');
114
+ throw new Error(`Bootstrap API failed: HTTP ${res.status} ${body}`);
115
+ }
116
+ return res.json();
117
+ },
118
+ // --- Raw upload (S3 presigned or backend API fallback) ---
119
+ async uploadRaw(url, body, contentType, size, timeoutMs = TIMEOUT_UPLOAD) {
120
+ const start = Date.now();
121
+ debugLog('api', `→ PUT ${url.slice(0, 80)}... (${size}b)`);
122
+ const res = await fetch(url, {
123
+ method: 'PUT',
124
+ headers: { 'Content-Type': contentType, 'Content-Length': String(size) },
125
+ body: body,
126
+ duplex: 'half',
127
+ signal: AbortSignal.timeout(timeoutMs),
128
+ });
129
+ const elapsed = Date.now() - start;
130
+ debugLog('api', `← ${res.status} PUT upload (${elapsed}ms)`);
131
+ if (!res.ok) {
132
+ const text = await res.text().catch(() => '');
133
+ throw new Error(`Upload failed: ${res.status} ${text}`);
134
+ }
135
+ },
52
136
  };
53
137
  }
54
138
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
+ import { createAgentApi } from '../api.js';
2
+ import { getBackendUrl, requireEnv } from '../utils/env.js';
1
3
  import { pushBackupToBackend } from '../utils/backup-push.js';
2
4
  export async function runBackup() {
3
5
  console.log('Starting backup...');
6
+ const api = createAgentApi(getBackendUrl(), requireEnv('AGENT_TOKEN'));
7
+ const agentId = requireEnv('AGENT_ID');
4
8
  try {
5
- const { sizeBytes } = await pushBackupToBackend();
9
+ const { sizeBytes } = await pushBackupToBackend(api, agentId);
6
10
  const sizeMb = (sizeBytes / 1024 / 1024).toFixed(2);
7
11
  console.log(`Backup complete — ${sizeMb} MB.`);
8
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backup-cli.js","sourceRoot":"","sources":["../../src/commands/backup-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"backup-cli.js","sourceRoot":"","sources":["../../src/commands/backup-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAElC,MAAM,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import os from 'node:os';
4
- import { requireEnv } from '../utils/env.js';
4
+ import { createAgentApi } from '../api.js';
5
+ import { getBackendUrl, requireEnv } from '../utils/env.js';
5
6
  export async function bootstrap() {
6
- const backendUrl = process.env.BACKEND_URL || process.env.BACKEND_INTERNAL_URL || requireEnv('BACKEND_URL');
7
+ const backendUrl = getBackendUrl();
7
8
  const agentToken = requireEnv('AGENT_TOKEN');
8
9
  const agentId = requireEnv('AGENT_ID');
9
10
  const openclawDir = process.env.OPENCLAW_STATE_DIR?.trim() ?? path.join(os.homedir(), '.openclaw');
@@ -11,23 +12,13 @@ export async function bootstrap() {
11
12
  console.log(`Bootstrapping agent ${agentId}...`);
12
13
  console.log(` Backend: ${backendUrl}`);
13
14
  console.log(` OpenClaw dir: ${openclawDir}`);
14
- // Fetch bootstrap data from backend
15
- const url = `${backendUrl}/api/internal/agent-bootstrap/${agentId}`;
15
+ const api = createAgentApi(backendUrl, agentToken);
16
16
  let data;
17
17
  try {
18
- const res = await fetch(url, {
19
- headers: { Authorization: `Bearer ${agentToken}` },
20
- signal: AbortSignal.timeout(30_000),
21
- });
22
- if (!res.ok) {
23
- const body = await res.text().catch(() => '');
24
- console.error(`Bootstrap API failed: HTTP ${res.status} ${body}`);
25
- process.exit(1);
26
- }
27
- data = await res.json();
18
+ data = await api.agentBootstrap(agentId);
28
19
  }
29
20
  catch (err) {
30
- console.error('Bootstrap API request failed:', err instanceof Error ? err.message : err);
21
+ console.error('Bootstrap failed:', err instanceof Error ? err.message : err);
31
22
  process.exit(1);
32
23
  return;
33
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
+ import { createAgentApi } from '../api.js';
2
+ import { getBackendUrl, requireEnv } from '../utils/env.js';
1
3
  import { pushKnowledgeToBackend } from '../utils/knowledge-push.js';
2
4
  export async function runKnowledgeSync() {
3
5
  console.log('Starting knowledge sync...');
6
+ const api = createAgentApi(getBackendUrl(), requireEnv('AGENT_TOKEN'));
7
+ const agentId = requireEnv('AGENT_ID');
4
8
  try {
5
- const { filesRead, filesUpdated } = await pushKnowledgeToBackend();
9
+ const { filesRead, filesUpdated } = await pushKnowledgeToBackend(api, agentId);
6
10
  console.log(`Knowledge sync complete — ${filesUpdated}/${filesRead} files updated.`);
7
11
  }
8
12
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-sync-cli.js","sourceRoot":"","sources":["../../src/commands/knowledge-sync-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,sBAAsB,EAAE,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,IAAI,SAAS,iBAAiB,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"knowledge-sync-cli.js","sourceRoot":"","sources":["../../src/commands/knowledge-sync-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,MAAM,GAAG,GAAG,cAAc,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,IAAI,SAAS,iBAAiB,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { debugLog } from './debug.js';
2
2
  import { Centrifuge } from 'centrifuge';
3
3
  import WebSocket from 'ws';
4
- import { handleExec } from './handlers/exec.js';
4
+ import { handleDiagnostics } from './handlers/diagnostics.js';
5
5
  import { handleRestart } from './handlers/restart.js';
6
6
  import { handleDeploy } from './handlers/deploy.js';
7
7
  import { handleConfig } from './handlers/config.js';
@@ -14,109 +14,41 @@ import { handleFileWrite } from './handlers/file-write.js';
14
14
  import { handleFileDelete } from './handlers/file-delete.js';
15
15
  import { handleOnboardingComplete } from './handlers/onboarding.js';
16
16
  import { handleKnowledgeSync } from './handlers/knowledge-sync.js';
17
- import { selfUpdate } from './commands/self-update.js';
17
+ import { handleSelfUpdate } from './handlers/self-update.js';
18
+ import { toErrorMessage } from './utils/response.js';
18
19
  // ---------------------------------------------------------------------------
19
20
  // Handlers
20
21
  // ---------------------------------------------------------------------------
21
22
  function buildHandlers(opts) {
22
23
  return {
23
- exec: handleExec,
24
+ diagnostics: handleDiagnostics,
24
25
  restart: handleRestart,
25
26
  deploy: handleDeploy,
26
27
  config: handleConfig,
27
28
  pair: handlePair,
28
29
  stop: handleStop,
29
- backup: (cmd) => handleBackup(cmd),
30
+ backup: (cmd) => handleBackup(cmd, opts.api, opts.agentId),
30
31
  package_install: handlePackageInstall,
31
32
  file_write: handleFileWrite,
32
33
  file_delete: handleFileDelete,
33
34
  onboarding_complete: handleOnboardingComplete,
34
- knowledge_sync: handleKnowledgeSync,
35
- // RACE-3: selfUpdate calls process.exit(0) after npm install, which may interrupt
36
- // in-flight commands. This is intentional — the agent restarts and resumes from scratch.
37
- // The backend should handle missing responses for in-flight commands gracefully.
38
- self_update: (cmd) => selfUpdate(opts.version)
39
- .then(() => ({ id: cmd.id, type: cmd.type, success: true, data: {} }))
40
- .catch((err) => ({
41
- id: cmd.id,
42
- type: cmd.type,
43
- success: false,
44
- error: err instanceof Error ? err.message : String(err),
45
- })),
35
+ knowledge_sync: (cmd) => handleKnowledgeSync(cmd, opts.api, opts.agentId),
36
+ self_update: handleSelfUpdate(opts.version),
46
37
  };
47
38
  }
48
39
  // ---------------------------------------------------------------------------
49
- // Token helpers
50
- // ---------------------------------------------------------------------------
51
- async function fetchConnectionToken(backendUrl, agentToken, agentId) {
52
- debugLog('api', '→ POST /api/internal/centrifugo-token', JSON.stringify({ agentId }));
53
- const controller = new AbortController();
54
- const timeout = setTimeout(() => controller.abort(), 5000);
55
- try {
56
- const res = await fetch(`${backendUrl}/api/internal/centrifugo-token`, {
57
- method: 'POST',
58
- headers: {
59
- 'Content-Type': 'application/json',
60
- 'Authorization': `Bearer ${agentToken}`,
61
- },
62
- body: JSON.stringify({ agentId }),
63
- signal: controller.signal,
64
- });
65
- const body = await res.text();
66
- debugLog('api', `← POST /api/internal/centrifugo-token ${res.status}`, body.slice(0, 200));
67
- if (!res.ok) {
68
- throw new Error(`HTTP ${res.status}: ${body}`);
69
- }
70
- const data = JSON.parse(body);
71
- return data.token;
72
- }
73
- finally {
74
- clearTimeout(timeout);
75
- }
76
- }
77
- async function fetchSubscriptionToken(backendUrl, agentToken, agentId, channels) {
78
- debugLog('api', '→ POST /api/internal/centrifugo-subscribe-token', JSON.stringify({ agentId, channels }));
79
- const controller = new AbortController();
80
- const timeout = setTimeout(() => controller.abort(), 5000);
81
- try {
82
- const res = await fetch(`${backendUrl}/api/internal/centrifugo-subscribe-token`, {
83
- method: 'POST',
84
- headers: {
85
- 'Content-Type': 'application/json',
86
- 'Authorization': `Bearer ${agentToken}`,
87
- },
88
- body: JSON.stringify({ agentId, channels }),
89
- signal: controller.signal,
90
- });
91
- const body = await res.text();
92
- debugLog('api', `← POST /api/internal/centrifugo-subscribe-token ${res.status}`, body.slice(0, 500));
93
- if (!res.ok) {
94
- throw new Error(`HTTP ${res.status}: ${body}`);
95
- }
96
- const data = JSON.parse(body);
97
- return data.subscriptions;
98
- }
99
- catch (err) {
100
- console.error('Subscription token fetch failed:', err instanceof Error ? err.message : err);
101
- throw err;
102
- }
103
- finally {
104
- clearTimeout(timeout);
105
- }
106
- }
107
- // ---------------------------------------------------------------------------
108
40
  // Step 1: Create Centrifuge client (no subscriptions yet)
109
41
  // ---------------------------------------------------------------------------
110
42
  function createClient(opts) {
111
43
  const getToken = async () => {
112
44
  console.log('Fetching connection token...');
113
45
  try {
114
- const token = await fetchConnectionToken(opts.backendUrl, opts.token, opts.agentId);
46
+ const token = await opts.api.fetchConnectionToken(opts.agentId);
115
47
  console.log('Got connection token');
116
48
  return token;
117
49
  }
118
50
  catch (err) {
119
- console.error('Connection token failed:', err instanceof Error ? err.message : err);
51
+ console.error('Connection token failed:', toErrorMessage(err));
120
52
  throw err;
121
53
  }
122
54
  };
@@ -148,7 +80,7 @@ function subscribeToChannel(client, channel, opts) {
148
80
  const sub = client.newSubscription(channel, {
149
81
  getToken: async () => {
150
82
  console.log(`Fetching subscription token for ${channel}...`);
151
- const subs = await fetchSubscriptionToken(opts.backendUrl, opts.token, opts.agentId, [channel]);
83
+ const subs = await opts.api.fetchSubscriptionToken(opts.agentId, [channel]);
152
84
  const token = subs[channel];
153
85
  if (!token) {
154
86
  throw new Error(`No subscription token returned for ${channel}`);
@@ -179,36 +111,35 @@ function subscribeToChannel(client, channel, opts) {
179
111
  // ---------------------------------------------------------------------------
180
112
  function attachCommandHandlers(sub, channel, opts) {
181
113
  const handlers = buildHandlers(opts);
182
- // RACE-1: Serialize command execution. A simple promise chain ensures no two
183
- // commands execute concurrently, preventing races (dual restart, concurrent exec, etc.)
184
114
  let commandQueue = Promise.resolve();
185
115
  sub.on('publication', (ctx) => {
186
- commandQueue = commandQueue.then(async () => {
187
- console.log(`[WS] Received message on ${channel}:`, JSON.stringify(ctx.data));
188
- debugLog('connection', 'publication', channel, JSON.stringify(ctx.data).slice(0, 500));
189
- const raw = ctx.data;
190
- if (!raw || typeof raw['id'] !== 'string' || typeof raw['type'] !== 'string') {
191
- console.warn('[WS] Ignoring malformed message (missing id or type):', JSON.stringify(ctx.data));
192
- return;
193
- }
194
- const command = raw;
195
- // Chat commands
196
- if (command.type === 'chat_list_sessions' || command.type === 'chat_history' || command.type === 'chat_send') {
197
- const publishFn = async (data) => { await opts.api.publishResponse(opts.agentId, data); };
198
- console.log(`[WS] Handling chat command: type=${command.type} id=${command.id}`);
199
- switch (command.type) {
200
- case 'chat_list_sessions':
201
- handleChatListSessions(command, publishFn).catch(console.error);
202
- break;
203
- case 'chat_history':
204
- handleChatHistory(command, publishFn).catch(console.error);
205
- break;
206
- case 'chat_send':
207
- handleChatSend(command, publishFn, opts.agentId).catch(console.error);
208
- break;
209
- }
210
- return;
116
+ console.log(`[WS] Received message on ${channel}:`, JSON.stringify(ctx.data));
117
+ debugLog('connection', 'publication', channel, JSON.stringify(ctx.data).slice(0, 500));
118
+ const raw = ctx.data;
119
+ if (!raw || typeof raw['id'] !== 'string' || typeof raw['type'] !== 'string') {
120
+ console.warn('[WS] Ignoring malformed message (missing id or type):', JSON.stringify(ctx.data));
121
+ return;
122
+ }
123
+ const command = raw;
124
+ // Chat commands are stateless — run concurrently, outside the queue
125
+ if (command.type === 'chat_list_sessions' || command.type === 'chat_history' || command.type === 'chat_send') {
126
+ const publishFn = async (data) => { await opts.api.publishResponse(opts.agentId, data); };
127
+ console.log(`[WS] Handling chat command: type=${command.type} id=${command.id}`);
128
+ switch (command.type) {
129
+ case 'chat_list_sessions':
130
+ handleChatListSessions(command, publishFn).catch(console.error);
131
+ break;
132
+ case 'chat_history':
133
+ handleChatHistory(command, publishFn).catch(console.error);
134
+ break;
135
+ case 'chat_send':
136
+ handleChatSend(command, publishFn, opts.agentId).catch(console.error);
137
+ break;
211
138
  }
139
+ return;
140
+ }
141
+ // All other commands — serialized queue (RACE-1)
142
+ commandQueue = commandQueue.then(async () => {
212
143
  const handler = handlers[command.type];
213
144
  if (!handler) {
214
145
  console.error(`[WS] Unknown command type: ${command.type}`);
@@ -224,18 +155,17 @@ function attachCommandHandlers(sub, channel, opts) {
224
155
  id: command.id,
225
156
  type: command.type,
226
157
  success: false,
227
- error: err instanceof Error ? err.message : String(err),
158
+ error: toErrorMessage(err),
228
159
  };
229
160
  try {
230
161
  await opts.api.publishResponse(opts.agentId, errorResponse);
231
162
  }
232
163
  catch (publishErr) {
233
- console.error('[WS] Failed to publish error response:', publishErr instanceof Error ? publishErr.message : publishErr);
164
+ console.error('[WS] Failed to publish error response:', toErrorMessage(publishErr));
234
165
  }
235
166
  }
236
167
  }).catch((err) => {
237
- // Prevent one command failure from breaking the queue for subsequent commands
238
- console.error('[WS] Unhandled error in command queue:', err instanceof Error ? err.message : err);
168
+ console.error('[WS] Unhandled error in command queue:', toErrorMessage(err));
239
169
  });
240
170
  });
241
171
  return () => commandQueue;
@@ -245,16 +175,11 @@ function attachCommandHandlers(sub, channel, opts) {
245
175
  // ---------------------------------------------------------------------------
246
176
  export function createConnection(opts) {
247
177
  const commandChannel = `agent:${opts.agentId}`;
248
- // Step 1: Create client
249
178
  const client = createClient(opts);
250
- // Step 2: Subscribe to agent command channel
251
179
  const commandSub = subscribeToChannel(client, commandChannel, opts);
252
- // Step 3: Wire up command handlers
253
180
  const drainCommands = attachCommandHandlers(commandSub, commandChannel, opts);
254
- // Step 4: Connect
255
181
  client.connect();
256
182
  return { client, drainCommands };
257
183
  }
258
- // Re-export for use in index.ts (board subscription)
259
184
  export { subscribeToChannel };
260
185
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import type { AgentCommand, AgentResponse } from '../types.js';
2
- export declare function handleBackup(command: AgentCommand): Promise<AgentResponse>;
2
+ import type { AgentApi } from '../api.js';
3
+ export declare function handleBackup(command: AgentCommand, api: AgentApi, agentId: string): Promise<AgentResponse>;
@@ -1,8 +1,8 @@
1
1
  import { pushBackupToBackend } from '../utils/backup-push.js';
2
2
  import { toErrorMessage } from '../utils/response.js';
3
- export async function handleBackup(command) {
3
+ export async function handleBackup(command, api, agentId) {
4
4
  try {
5
- const { snapshotId, sizeBytes } = await pushBackupToBackend();
5
+ const { snapshotId, sizeBytes } = await pushBackupToBackend(api, agentId);
6
6
  return {
7
7
  id: command.id,
8
8
  type: 'backup',
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/handlers/backup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC9D,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;SAChC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/handlers/backup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqB,EAAE,GAAa,EAAE,OAAe;IACtF,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1E,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;SAChC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { getChatProvider } from '../openclaw/index.js';
2
+ import { toErrorMessage } from '../utils/response.js';
2
3
  export async function handleChatListSessions(command, publish) {
3
4
  const provider = getChatProvider();
4
5
  if (!provider) {
@@ -10,7 +11,7 @@ export async function handleChatListSessions(command, publish) {
10
11
  await publish({ type: 'chat_sessions_response', correlationId: command.id, sessions });
11
12
  }
12
13
  catch (err) {
13
- await publish({ type: 'chat_sessions_response', correlationId: command.id, sessions: [], error: err instanceof Error ? err.message : String(err) });
14
+ await publish({ type: 'chat_sessions_response', correlationId: command.id, sessions: [], error: toErrorMessage(err) });
14
15
  }
15
16
  }
16
17
  export async function handleChatHistory(command, publish) {
@@ -25,7 +26,7 @@ export async function handleChatHistory(command, publish) {
25
26
  await publish({ type: 'chat_history_response', correlationId: command.id, messages });
26
27
  }
27
28
  catch (err) {
28
- await publish({ type: 'chat_history_response', correlationId: command.id, messages: [], error: err instanceof Error ? err.message : String(err) });
29
+ await publish({ type: 'chat_history_response', correlationId: command.id, messages: [], error: toErrorMessage(err) });
29
30
  }
30
31
  }
31
32
  export async function handleChatSend(command, publish, agentId) {
@@ -56,7 +57,7 @@ export async function handleChatSend(command, publish, agentId) {
56
57
  });
57
58
  }
58
59
  catch (err) {
59
- await publish({ type: 'chat_response', correlationId, sessionKey, text: '', error: err instanceof Error ? err.message : String(err) }).catch(() => { });
60
+ await publish({ type: 'chat_response', correlationId, sessionKey, text: '', error: toErrorMessage(err) }).catch(() => { });
60
61
  }
61
62
  }
62
63
  //# sourceMappingURL=chat.js.map