@openclaw-cloud/agent-controller 0.20.2 → 1.0.0-beta.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 (62) hide show
  1. package/dist/commands/self-update.js +29 -18
  2. package/dist/commands/self-update.js.map +1 -1
  3. package/dist/connection.js +2 -6
  4. package/dist/connection.js.map +1 -1
  5. package/dist/handlers/board-handler.d.ts +19 -1
  6. package/dist/handlers/board-handler.js +145 -10
  7. package/dist/handlers/board-handler.js.map +1 -1
  8. package/dist/handlers/update-config.d.ts +3 -0
  9. package/dist/handlers/update-config.js +22 -0
  10. package/dist/handlers/update-config.js.map +1 -0
  11. package/dist/heartbeat.js +62 -2
  12. package/dist/heartbeat.js.map +1 -1
  13. package/dist/index.js +52 -17
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp-client.d.ts +29 -0
  16. package/dist/mcp-client.js +70 -0
  17. package/dist/mcp-client.js.map +1 -0
  18. package/dist/providers/chat-types.d.ts +0 -1
  19. package/dist/providers/chat-types.js +0 -1
  20. package/dist/providers/chat-types.js.map +1 -1
  21. package/dist/providers/openclaw/gateway-client.js +3 -1
  22. package/dist/providers/openclaw/gateway-client.js.map +1 -1
  23. package/dist/providers/openclaw/index.d.ts +1 -0
  24. package/dist/providers/openclaw/index.js +12 -9
  25. package/dist/providers/openclaw/index.js.map +1 -1
  26. package/dist/skills/index.d.ts +1 -1
  27. package/dist/skills/index.js +1 -21
  28. package/dist/skills/index.js.map +1 -1
  29. package/dist/types.d.ts +1 -1
  30. package/dist/utils/apply-config.d.ts +9 -0
  31. package/dist/utils/apply-config.js +120 -0
  32. package/dist/utils/apply-config.js.map +1 -0
  33. package/dist/utils/claude-env.js +1 -31
  34. package/dist/utils/claude-env.js.map +1 -1
  35. package/package.json +5 -3
  36. package/dist/handlers/config.d.ts +0 -2
  37. package/dist/handlers/config.js +0 -52
  38. package/dist/handlers/config.js.map +0 -1
  39. package/dist/handlers/update-auth-profiles.d.ts +0 -2
  40. package/dist/handlers/update-auth-profiles.js +0 -67
  41. package/dist/handlers/update-auth-profiles.js.map +0 -1
  42. package/dist/handlers/update-env.d.ts +0 -2
  43. package/dist/handlers/update-env.js +0 -61
  44. package/dist/handlers/update-env.js.map +0 -1
  45. package/dist/openclaw/gateway-adapter.d.ts +0 -5
  46. package/dist/openclaw/gateway-adapter.js +0 -6
  47. package/dist/openclaw/gateway-adapter.js.map +0 -1
  48. package/dist/openclaw/gateway-client.d.ts +0 -21
  49. package/dist/openclaw/gateway-client.js +0 -138
  50. package/dist/openclaw/gateway-client.js.map +0 -1
  51. package/dist/openclaw/index.d.ts +0 -20
  52. package/dist/openclaw/index.js +0 -45
  53. package/dist/openclaw/index.js.map +0 -1
  54. package/dist/openclaw/types.d.ts +0 -5
  55. package/dist/openclaw/types.js +0 -2
  56. package/dist/openclaw/types.js.map +0 -1
  57. package/dist/skills/board-tools/SKILL.md +0 -75
  58. package/dist/skills/board-tools/scripts/board-artifact.sh +0 -56
  59. package/dist/skills/board-tools/scripts/board-artifacts.sh +0 -16
  60. package/dist/skills/board-tools/scripts/board-comment.sh +0 -23
  61. package/dist/skills/board-tools/scripts/board-move.sh +0 -13
  62. package/dist/skills/board-tools/scripts/board-result.sh +0 -35
@@ -2,34 +2,45 @@ import { execAsync } from '../utils/exec.js';
2
2
  import { removeLockFile } from '../lockfile.js';
3
3
  import { getReleaseChannel } from '../utils/release-channel.js';
4
4
  const PACKAGE_NAME = '@openclaw-cloud/agent-controller';
5
- export async function selfUpdate(currentVersion) {
6
- const channel = getReleaseChannel();
7
- const tag = channel === 'stable' ? 'latest' : channel;
8
- console.log(`Current version: ${currentVersion} (channel: ${channel})`);
9
- let latestVersion;
5
+ async function fixNpmPermissions() {
6
+ const home = process.env.HOME ?? '/root';
7
+ console.log('Fixing npm permissions (root-owned files from previous installs)...');
8
+ // Fix both cache (.npm) and global prefix (.npm-global)
9
+ await execAsync(`sudo chown -R $(id -u):$(id -g) "${home}/.npm" "${home}/.npm-global" 2>/dev/null || true`, 30_000);
10
+ }
11
+ async function withEaccesRetry(fn, label) {
10
12
  try {
11
- latestVersion = await execAsync(`npm view ${PACKAGE_NAME}@${tag} version`, 10_000);
13
+ return await fn();
12
14
  }
13
15
  catch (err) {
14
- console.error('Failed to fetch latest version:', err instanceof Error ? err.message : err);
16
+ if (err instanceof Error && err.message.includes('EACCES')) {
17
+ await fixNpmPermissions();
18
+ try {
19
+ return await fn();
20
+ }
21
+ catch (retryErr) {
22
+ console.error(`${label} failed after permission fix:`, retryErr instanceof Error ? retryErr.message : retryErr);
23
+ throw retryErr;
24
+ }
25
+ }
26
+ console.error(`${label} failed:`, err instanceof Error ? err.message : err);
15
27
  throw err;
16
28
  }
29
+ }
30
+ export async function selfUpdate(currentVersion) {
31
+ const channel = getReleaseChannel();
32
+ const tag = channel === 'stable' ? 'latest' : channel;
33
+ console.log(`Current version: ${currentVersion} (channel: ${channel})`);
34
+ const latestVersion = await withEaccesRetry(() => execAsync(`npm view ${PACKAGE_NAME}@${tag} version`, 10_000), 'Fetch latest version');
17
35
  console.log(`Latest version on ${tag}: ${latestVersion}`);
18
36
  if (currentVersion === latestVersion) {
19
37
  console.log('Already up to date.');
20
38
  return;
21
39
  }
22
40
  console.log(`Updating from ${currentVersion} to ${latestVersion}...`);
23
- try {
24
- await execAsync(`npm install -g ${PACKAGE_NAME}@${tag}`, 120_000);
25
- console.log(`Successfully updated to ${latestVersion}. Removing lock file for graceful restart...`);
26
- removeLockFile();
27
- // Wait 30s for the next heartbeat to pick up the missing lock file and exit
28
- await new Promise((resolve) => setTimeout(resolve, 30_000));
29
- }
30
- catch (err) {
31
- console.error('Update failed:', err instanceof Error ? err.message : err);
32
- throw err;
33
- }
41
+ await withEaccesRetry(() => execAsync(`npm install -g ${PACKAGE_NAME}@${tag}`, 120_000), 'npm install -g');
42
+ console.log(`Successfully updated to ${latestVersion}. Removing lock file for graceful restart...`);
43
+ removeLockFile();
44
+ await new Promise((resolve) => setTimeout(resolve, 30_000));
34
45
  }
35
46
  //# sourceMappingURL=self-update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAsB;IACrD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,cAAc,OAAO,GAAG,CAAC,CAAC;IAExE,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,SAAS,CAAC,YAAY,YAAY,IAAI,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,aAAa,EAAE,CAAC,CAAC;IAE1D,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,cAAc,OAAO,aAAa,KAAK,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,kBAAkB,YAAY,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,2BAA2B,aAAa,8CAA8C,CAAC,CAAC;QACpG,cAAc,EAAE,CAAC;QACjB,4EAA4E;QAC5E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1E,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/commands/self-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,YAAY,GAAG,kCAAkC,CAAC;AAExD,KAAK,UAAU,iBAAiB;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,wDAAwD;IACxD,MAAM,SAAS,CAAC,oCAAoC,IAAI,WAAW,IAAI,mCAAmC,EAAE,MAAM,CAAC,CAAC;AACtH,CAAC;AAED,KAAK,UAAU,eAAe,CAAI,EAAoB,EAAE,KAAa;IACnE,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,MAAM,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,+BAA+B,EAAE,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChH,MAAM,QAAQ,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5E,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,cAAsB;IACrD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,oBAAoB,cAAc,cAAc,OAAO,GAAG,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,MAAM,eAAe,CACzC,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,YAAY,IAAI,GAAG,UAAU,EAAE,MAAM,CAAC,EAClE,sBAAsB,CACvB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,KAAK,aAAa,EAAE,CAAC,CAAC;IAE1D,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,cAAc,OAAO,aAAa,KAAK,CAAC,CAAC;IACtE,MAAM,eAAe,CACnB,GAAG,EAAE,CAAC,SAAS,CAAC,kBAAkB,YAAY,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,EACjE,gBAAgB,CACjB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,2BAA2B,aAAa,8CAA8C,CAAC,CAAC;IACpG,cAAc,EAAE,CAAC;IACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC"}
@@ -4,7 +4,6 @@ import WebSocket from 'ws';
4
4
  import { handleDiagnostics } from './handlers/diagnostics.js';
5
5
  import { handleRestart } from './handlers/restart.js';
6
6
  import { handleDeploy } from './handlers/deploy.js';
7
- import { handleConfig } from './handlers/config.js';
8
7
  import { handlePair } from './handlers/pair.js';
9
8
  import { handleStop } from './handlers/stop.js';
10
9
  import { handleBackup } from './handlers/backup.js';
@@ -15,10 +14,9 @@ import { handleFileDelete } from './handlers/file-delete.js';
15
14
  import { handleOnboardingComplete } from './handlers/onboarding.js';
16
15
  import { handleKnowledgeSync } from './handlers/knowledge-sync.js';
17
16
  import { handleSelfUpdate } from './handlers/self-update.js';
18
- import { handleUpdateAuthProfiles } from './handlers/update-auth-profiles.js';
19
- import { handleUpdateEnv } from './handlers/update-env.js';
20
17
  import { handleTelegramWebhook } from './handlers/telegram-webhook.js';
21
18
  import { handleUpdateSkills } from './handlers/update-skills.js';
19
+ import { handleUpdateConfig } from './handlers/update-config.js';
22
20
  import { toErrorMessage } from './utils/response.js';
23
21
  import { LogCollector } from './utils/log-collector.js';
24
22
  // ---------------------------------------------------------------------------
@@ -33,7 +31,6 @@ function buildHandlers(opts) {
33
31
  diagnostics: handleDiagnostics,
34
32
  restart: handleRestart,
35
33
  deploy: handleDeploy,
36
- config: handleConfig,
37
34
  pair: handlePair,
38
35
  stop: handleStop,
39
36
  backup: (cmd) => handleBackup(cmd, opts.api, opts.agentId),
@@ -43,10 +40,9 @@ function buildHandlers(opts) {
43
40
  onboarding_complete: handleOnboardingComplete,
44
41
  knowledge_sync: (cmd) => handleKnowledgeSync(cmd, opts.api, opts.agentId),
45
42
  self_update: handleSelfUpdate(opts.version),
46
- update_auth_profiles: handleUpdateAuthProfiles,
47
- update_env: handleUpdateEnv,
48
43
  telegram_webhook: handleTelegramWebhook,
49
44
  update_skills: handleUpdateSkills,
45
+ update_config: handleUpdateConfig(opts.api, opts.agentId),
50
46
  };
51
47
  }
52
48
  // ---------------------------------------------------------------------------
@@ -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,4 +1,5 @@
1
1
  import type { AgentApi } from '../api.js';
2
+ import type { McpBoardClient } from '../mcp-client.js';
2
3
  import type { BoardState, BoardEvent, BoardInfo } from '../types.js';
3
4
  export declare class BoardHandler {
4
5
  private boardState;
@@ -7,8 +8,23 @@ export declare class BoardHandler {
7
8
  private workspaceId;
8
9
  private currentCardProcessingId;
9
10
  private api;
10
- constructor(api: AgentApi);
11
+ private mcpClient;
12
+ private mcpToolNames;
13
+ private useMcp;
14
+ constructor(api: AgentApi, mcpClient?: McpBoardClient);
11
15
  initialize(): Promise<string | null>;
16
+ /**
17
+ * Find an MCP tool name matching a path pattern.
18
+ * Tool names are generated from method + path: e.g. get__api_agent_board
19
+ */
20
+ private findTool;
21
+ private getBoard;
22
+ private claimCard;
23
+ private getTask;
24
+ private postResult;
25
+ private postArtifact;
26
+ private postComment;
27
+ private postMove;
12
28
  onBoardEvent(event: BoardEvent): Promise<void>;
13
29
  tryClaimCard(cardId: string): Promise<void>;
14
30
  startTask(cardId: string): Promise<void>;
@@ -18,4 +34,6 @@ export declare class BoardHandler {
18
34
  checkQueue(existingData?: BoardInfo): Promise<void>;
19
35
  getBoardStatus(): BoardState;
20
36
  getBoardId(): string | null;
37
+ /** Whether this handler is using MCP tools (vs HTTP fallback). */
38
+ isUsingMcp(): boolean;
21
39
  }
@@ -1,4 +1,18 @@
1
1
  import { getProvider } from '../providers/index.js';
2
+ /**
3
+ * Try to parse JSON response from MCP tool result.
4
+ * Returns the parsed object or throws on error.
5
+ */
6
+ function parseMcpResult(result, toolName) {
7
+ if (result.isError) {
8
+ const errText = result.content[0]?.text ?? 'Unknown MCP error';
9
+ throw new Error(`MCP tool ${toolName} failed: ${errText}`);
10
+ }
11
+ const text = result.content[0]?.text;
12
+ if (!text)
13
+ throw new Error(`MCP tool ${toolName} returned empty result`);
14
+ return JSON.parse(text);
15
+ }
2
16
  export class BoardHandler {
3
17
  boardState = { state: 'idle', cardId: null };
4
18
  myColumnIds = [];
@@ -6,12 +20,39 @@ export class BoardHandler {
6
20
  workspaceId = null;
7
21
  currentCardProcessingId = null;
8
22
  api;
9
- constructor(api) {
23
+ mcpClient = null;
24
+ mcpToolNames = [];
25
+ useMcp = false;
26
+ constructor(api, mcpClient) {
10
27
  this.api = api;
28
+ this.mcpClient = mcpClient ?? null;
11
29
  }
12
30
  async initialize() {
13
31
  try {
14
- const data = await this.api.get('/api/agent/board');
32
+ // Try to connect MCP client first
33
+ if (this.mcpClient) {
34
+ try {
35
+ await this.mcpClient.connect();
36
+ this.mcpToolNames = await this.mcpClient.listTools();
37
+ console.log(`[board] MCP tools available: ${this.mcpToolNames.join(', ')}`);
38
+ this.useMcp = true;
39
+ // Set up MCP event handler for board notifications
40
+ this.mcpClient.setEventHandler((event) => {
41
+ this.onBoardEvent({
42
+ event: (event.type ?? event.event),
43
+ cardId: event.cardId,
44
+ columnId: event.columnId,
45
+ }).catch((err) => {
46
+ console.error('[board] MCP event handler error:', err instanceof Error ? err.message : err);
47
+ });
48
+ });
49
+ }
50
+ catch (err) {
51
+ console.warn('[board] MCP connection failed, falling back to HTTP:', err instanceof Error ? err.message : err);
52
+ this.useMcp = false;
53
+ }
54
+ }
55
+ const data = await this.getBoard();
15
56
  this.boardId = data.board.id;
16
57
  this.workspaceId = data.board.workspaceId;
17
58
  this.myColumnIds = data.board.myColumnIds;
@@ -26,6 +67,96 @@ export class BoardHandler {
26
67
  return null;
27
68
  }
28
69
  }
70
+ // ─── MCP-aware API methods ──────────────────────────────────────────────
71
+ /**
72
+ * Find an MCP tool name matching a path pattern.
73
+ * Tool names are generated from method + path: e.g. get__api_agent_board
74
+ */
75
+ findTool(method, pathFragment) {
76
+ const prefix = method.toLowerCase() + '_';
77
+ return this.mcpToolNames.find((t) => t.startsWith(prefix) && t.includes(pathFragment.replace(/[^a-zA-Z0-9]/g, '_'))) ?? null;
78
+ }
79
+ async getBoard() {
80
+ if (this.useMcp && this.mcpClient) {
81
+ const toolName = this.findTool('get', 'api_agent_board');
82
+ if (toolName && !toolName.includes('cards')) {
83
+ const result = await this.mcpClient.callTool(toolName);
84
+ return parseMcpResult(result, toolName);
85
+ }
86
+ }
87
+ // Fallback to HTTP
88
+ return this.api.get('/api/agent/board');
89
+ }
90
+ async claimCard(cardId) {
91
+ if (this.useMcp && this.mcpClient) {
92
+ const toolName = this.findTool('post', 'agent_board_cards__cardId__claim');
93
+ if (toolName) {
94
+ const result = await this.mcpClient.callTool(toolName, { cardId });
95
+ // Convert MCP result to Response-like for compatibility
96
+ if (result.isError) {
97
+ const text = result.content[0]?.text ?? '';
98
+ const status = text.includes('409') ? 409 : 500;
99
+ return { ok: false, status, text: () => Promise.resolve(text) };
100
+ }
101
+ return { ok: true, status: 200, text: () => Promise.resolve(result.content[0]?.text ?? '') };
102
+ }
103
+ }
104
+ return this.api.post(`/api/agent/board/cards/${cardId}/claim`);
105
+ }
106
+ async getTask(cardId) {
107
+ if (this.useMcp && this.mcpClient) {
108
+ const toolName = this.findTool('get', 'agent_board_cards__cardId__task');
109
+ if (toolName) {
110
+ const result = await this.mcpClient.callTool(toolName, { cardId });
111
+ return parseMcpResult(result, toolName);
112
+ }
113
+ }
114
+ return this.api.get(`/api/agent/board/cards/${cardId}/task`);
115
+ }
116
+ async postResult(cardId, body) {
117
+ if (this.useMcp && this.mcpClient) {
118
+ const toolName = this.findTool('post', 'agent_board_cards__cardId__result');
119
+ if (toolName) {
120
+ const result = await this.mcpClient.callTool(toolName, { cardId, body });
121
+ if (result.isError) {
122
+ throw new Error(`MCP tool ${toolName} failed: ${result.content[0]?.text}`);
123
+ }
124
+ return;
125
+ }
126
+ }
127
+ await this.api.post(`/api/agent/board/cards/${cardId}/result`, body);
128
+ }
129
+ async postArtifact(cardId, body) {
130
+ if (this.useMcp && this.mcpClient) {
131
+ const toolName = this.findTool('post', 'agent_board_cards__cardId__artifacts');
132
+ if (toolName) {
133
+ await this.mcpClient.callTool(toolName, { cardId, body });
134
+ return;
135
+ }
136
+ }
137
+ await this.api.post(`/api/agent/board/cards/${cardId}/artifacts`, body);
138
+ }
139
+ async postComment(cardId, body) {
140
+ if (this.useMcp && this.mcpClient) {
141
+ const toolName = this.findTool('post', 'agent_board_cards__cardId__comments');
142
+ if (toolName) {
143
+ await this.mcpClient.callTool(toolName, { cardId, body });
144
+ return;
145
+ }
146
+ }
147
+ await this.api.post(`/api/agent/board/cards/${cardId}/comments`, body);
148
+ }
149
+ async postMove(cardId) {
150
+ if (this.useMcp && this.mcpClient) {
151
+ const toolName = this.findTool('post', 'agent_board_cards__cardId__move');
152
+ if (toolName) {
153
+ await this.mcpClient.callTool(toolName, { cardId });
154
+ return;
155
+ }
156
+ }
157
+ await this.api.post(`/api/agent/board/cards/${cardId}/move`);
158
+ }
159
+ // ─── Board event handling ────────────────────────────────────────────────
29
160
  async onBoardEvent(event) {
30
161
  switch (event.event) {
31
162
  case 'card:entered':
@@ -46,7 +177,7 @@ export class BoardHandler {
46
177
  }
47
178
  async tryClaimCard(cardId) {
48
179
  try {
49
- const res = await this.api.post(`/api/agent/board/cards/${cardId}/claim`);
180
+ const res = await this.claimCard(cardId);
50
181
  if (res.ok) {
51
182
  this.boardState = { state: 'working', cardId };
52
183
  console.log(`Claimed card: ${cardId}`);
@@ -70,7 +201,7 @@ export class BoardHandler {
70
201
  async startTask(cardId) {
71
202
  try {
72
203
  // Fetch task prompt from backend (includes rendered workflow prompt)
73
- const taskData = await this.api.get(`/api/agent/board/cards/${cardId}/task`);
204
+ const taskData = await this.getTask(cardId);
74
205
  this.currentCardProcessingId = taskData.cardProcessingId;
75
206
  process.env.BOARD_CARD_ID = cardId;
76
207
  if (taskData.mockActions) {
@@ -119,16 +250,16 @@ export class BoardHandler {
119
250
  await new Promise((r) => setTimeout(r, action.ms ?? 1000));
120
251
  break;
121
252
  case 'artifact':
122
- await this.api.post(`/api/agent/board/cards/${cardId}/artifacts`, action.body);
253
+ await this.postArtifact(cardId, action.body ?? {});
123
254
  break;
124
255
  case 'comment':
125
- await this.api.post(`/api/agent/board/cards/${cardId}/comments`, action.body);
256
+ await this.postComment(cardId, action.body ?? {});
126
257
  break;
127
258
  case 'result':
128
- await this.api.post(`/api/agent/board/cards/${cardId}/result`, action.body);
259
+ await this.postResult(cardId, (action.body ?? {}));
129
260
  break;
130
261
  case 'move':
131
- await this.api.post(`/api/agent/board/cards/${cardId}/move`);
262
+ await this.postMove(cardId);
132
263
  break;
133
264
  }
134
265
  console.log(`Mock action executed: ${action.type}`);
@@ -150,7 +281,7 @@ export class BoardHandler {
150
281
  const body = { status };
151
282
  if (error)
152
283
  body.error = error;
153
- await this.api.post(`/api/agent/board/cards/${cardId}/result`, body);
284
+ await this.postResult(cardId, body);
154
285
  console.log(`Reported result for card ${cardId}: ${status}`);
155
286
  }
156
287
  catch (err) {
@@ -160,7 +291,7 @@ export class BoardHandler {
160
291
  }
161
292
  async checkQueue(existingData) {
162
293
  try {
163
- const data = existingData ?? await this.api.get('/api/agent/board');
294
+ const data = existingData ?? (await this.getBoard());
164
295
  const candidates = [];
165
296
  for (const col of data.board.columns) {
166
297
  if (!this.myColumnIds.includes(col.id))
@@ -195,5 +326,9 @@ export class BoardHandler {
195
326
  getBoardId() {
196
327
  return this.boardId;
197
328
  }
329
+ /** Whether this handler is using MCP tools (vs HTTP fallback). */
330
+ isUsingMcp() {
331
+ return this.useMcp;
332
+ }
198
333
  }
199
334
  //# sourceMappingURL=board-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"board-handler.js","sourceRoot":"","sources":["../../src/handlers/board-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board-handler.js","sourceRoot":"","sources":["../../src/handlers/board-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AgentCommand, AgentResponse } from '../types.js';
2
+ import type { AgentApi } from '../api.js';
3
+ export declare function handleUpdateConfig(api: AgentApi, agentId: string): (cmd: AgentCommand) => Promise<AgentResponse>;
@@ -0,0 +1,22 @@
1
+ import { toErrorMessage } from '../utils/response.js';
2
+ import { applyBootstrapConfig } from '../utils/apply-config.js';
3
+ import { logCollector } from '../connection.js';
4
+ export function handleUpdateConfig(api, agentId) {
5
+ return async (cmd) => {
6
+ const startMs = Date.now();
7
+ logCollector?.push('command_received', 'info', `Command: ${cmd.type}`, { commandId: cmd.id });
8
+ try {
9
+ const data = await api.agentBootstrap(agentId);
10
+ await applyBootstrapConfig(data);
11
+ const durationMs = Date.now() - startMs;
12
+ logCollector?.push('command_completed', 'info', `${cmd.type} completed`, { commandId: cmd.id, durationMs });
13
+ return { id: cmd.id, type: cmd.type, success: true, data: {} };
14
+ }
15
+ catch (err) {
16
+ const durationMs = Date.now() - startMs;
17
+ logCollector?.push('command_failed', 'error', `${cmd.type} failed: ${toErrorMessage(err)}`, { commandId: cmd.id, durationMs });
18
+ return { id: cmd.id, type: cmd.type, success: false, error: toErrorMessage(err) };
19
+ }
20
+ };
21
+ }
22
+ //# sourceMappingURL=update-config.js.map
@@ -0,0 +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,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,UAAU,kBAAkB,CAAC,GAAa,EAAE,OAAe;IAC/D,OAAO,KAAK,EAAE,GAAiB,EAA0B,EAAE;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,YAAY,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,EAAE,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5G,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,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,YAAY,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/H,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
@@ -17,6 +17,28 @@ async function checkGateway() {
17
17
  return { running: false, rpcOk: false };
18
18
  }
19
19
  }
20
+ const HEARTBEAT_PATTERNS = ['Read HEARTBEAT.md', 'HEARTBEAT_OK', 'heartbeat poll'];
21
+ const TAIL_READ_SIZE = 64 * 1024; // 64KB — enough for last ~20 JSONL entries
22
+ const TAIL_LINES = 20;
23
+ function isHeartbeatMessage(text) {
24
+ return HEARTBEAT_PATTERNS.some((p) => text.includes(p));
25
+ }
26
+ function extractUserText(entry) {
27
+ if (entry.type !== 'message')
28
+ return null;
29
+ const msg = entry.message;
30
+ if (!msg || msg.role !== 'user')
31
+ return null;
32
+ if (typeof msg.content === 'string')
33
+ return msg.content;
34
+ if (Array.isArray(msg.content)) {
35
+ return msg.content
36
+ .filter((c) => c.type === 'text')
37
+ .map((c) => c.text ?? '')
38
+ .join(' ');
39
+ }
40
+ return null;
41
+ }
20
42
  export async function getLastMessageAt() {
21
43
  const stateDir = process.env.OPENCLAW_STATE_DIR?.trim()
22
44
  ?? path.join(os.homedir(), '.openclaw');
@@ -26,8 +48,46 @@ export async function getLastMessageAt() {
26
48
  const jsonlFiles = files.filter((f) => f.endsWith('.jsonl'));
27
49
  if (jsonlFiles.length === 0)
28
50
  return null;
29
- const mtimes = await Promise.all(jsonlFiles.map((f) => fs.stat(path.join(sessionsDir, f)).then((s) => s.mtime.getTime())));
30
- return new Date(Math.max(...mtimes)).toISOString();
51
+ const now = Date.now();
52
+ const TWO_HOURS = 2 * 60 * 60 * 1000;
53
+ let latestTs = 0;
54
+ for (const file of jsonlFiles) {
55
+ const filePath = path.join(sessionsDir, file);
56
+ const stat = await fs.stat(filePath);
57
+ // Skip files not modified in the last 2 hours
58
+ if (now - stat.mtimeMs > TWO_HOURS)
59
+ continue;
60
+ // Read last 64KB of the file
61
+ const readSize = Math.min(stat.size, TAIL_READ_SIZE);
62
+ const fh = await fs.open(filePath, 'r');
63
+ const buf = Buffer.alloc(readSize);
64
+ await fh.read(buf, 0, readSize, Math.max(0, stat.size - readSize));
65
+ await fh.close();
66
+ // Take last N lines, search backwards for a real user message
67
+ const lines = buf.toString('utf-8').split('\n').filter((l) => l.trim());
68
+ const tail = lines.slice(-TAIL_LINES);
69
+ for (let i = tail.length - 1; i >= 0; i--) {
70
+ try {
71
+ const entry = JSON.parse(tail[i]);
72
+ const text = extractUserText(entry);
73
+ if (text === null)
74
+ continue;
75
+ if (isHeartbeatMessage(text))
76
+ continue;
77
+ // Found a real user message — extract timestamp
78
+ const msg = entry.message;
79
+ const ts = (msg?.timestamp ?? entry.timestamp);
80
+ const tsNum = typeof ts === 'number' ? ts : new Date(ts).getTime();
81
+ if (tsNum > latestTs)
82
+ latestTs = tsNum;
83
+ break; // Only need the latest per file
84
+ }
85
+ catch {
86
+ continue;
87
+ }
88
+ }
89
+ }
90
+ return latestTs > 0 ? new Date(latestTs).toISOString() : null;
31
91
  }
32
92
  catch {
33
93
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}