@openclaw-cloud/agent-controller 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/bin/agent-controller.js +11 -2
  2. package/dist/api.d.ts +4 -0
  3. package/dist/api.js +8 -0
  4. package/dist/api.js.map +1 -1
  5. package/dist/commands/channel-server.d.ts +17 -0
  6. package/dist/commands/channel-server.js +71 -0
  7. package/dist/commands/channel-server.js.map +1 -0
  8. package/dist/config-file.js +6 -0
  9. package/dist/config-file.js.map +1 -1
  10. package/dist/config.d.ts +10 -0
  11. package/dist/config.js +20 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/connection.d.ts +2 -0
  14. package/dist/connection.js +2 -0
  15. package/dist/connection.js.map +1 -1
  16. package/dist/handlers/board-handler.js +56 -20
  17. package/dist/handlers/board-handler.js.map +1 -1
  18. package/dist/handlers/chat.d.ts +17 -0
  19. package/dist/handlers/chat.js +93 -0
  20. package/dist/handlers/chat.js.map +1 -1
  21. package/dist/handlers/memory.d.ts +7 -0
  22. package/dist/handlers/memory.js +41 -0
  23. package/dist/handlers/memory.js.map +1 -0
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +73 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/memory-mcp-server.d.ts +8 -0
  28. package/dist/memory-mcp-server.js +291 -0
  29. package/dist/memory-mcp-server.js.map +1 -0
  30. package/dist/providers/claude-code/channel-server.d.ts +60 -0
  31. package/dist/providers/claude-code/channel-server.js +155 -0
  32. package/dist/providers/claude-code/channel-server.js.map +1 -0
  33. package/dist/providers/claude-code/index.d.ts +68 -0
  34. package/dist/providers/claude-code/index.js +276 -0
  35. package/dist/providers/claude-code/index.js.map +1 -0
  36. package/dist/providers/claude-code/login-flow.d.ts +26 -0
  37. package/dist/providers/claude-code/login-flow.js +129 -0
  38. package/dist/providers/claude-code/login-flow.js.map +1 -0
  39. package/dist/providers/claude-code/settings-writer.d.ts +29 -0
  40. package/dist/providers/claude-code/settings-writer.js +79 -0
  41. package/dist/providers/claude-code/settings-writer.js.map +1 -0
  42. package/dist/providers/claude-code/socket-bridge.d.ts +88 -0
  43. package/dist/providers/claude-code/socket-bridge.js +302 -0
  44. package/dist/providers/claude-code/socket-bridge.js.map +1 -0
  45. package/dist/providers/claude-code/spawn-claude.d.ts +44 -0
  46. package/dist/providers/claude-code/spawn-claude.js +108 -0
  47. package/dist/providers/claude-code/spawn-claude.js.map +1 -0
  48. package/dist/providers/index.d.ts +3 -1
  49. package/dist/providers/index.js +12 -0
  50. package/dist/providers/index.js.map +1 -1
  51. package/dist/types.d.ts +1 -1
  52. package/dist/utils/knowledge-graph.d.ts +66 -0
  53. package/dist/utils/knowledge-graph.js +163 -0
  54. package/dist/utils/knowledge-graph.js.map +1 -0
  55. package/package.json +1 -1
@@ -1,6 +1,60 @@
1
1
  import { getProvider } from '../providers/index.js';
2
+ import { ClaudeCodeProvider } from '../providers/claude-code/index.js';
2
3
  import { toErrorMessage } from '../utils/response.js';
3
4
  import { logCollector } from '../connection.js';
5
+ const pendingClaudeChats = new Map();
6
+ /** Test-only: wipe any tracked in-flight claude-code chat sends. */
7
+ export function __resetClaudeChatRegistry() {
8
+ pendingClaudeChats.clear();
9
+ }
10
+ function resolvePendingClaudeChat(sessionKey) {
11
+ if (!sessionKey)
12
+ return;
13
+ const pending = pendingClaudeChats.get(sessionKey);
14
+ if (!pending)
15
+ return;
16
+ pendingClaudeChats.delete(sessionKey);
17
+ logCollector?.push('command_completed', 'info', 'chat_send completed', {
18
+ commandId: pending.commandId,
19
+ durationMs: Date.now() - pending.startMs,
20
+ sessionKey,
21
+ provider: 'claude-code',
22
+ });
23
+ // Clear the typing indicator — Claude has produced its reply.
24
+ Promise.resolve(pending.publish({ type: 'chat_typing', agentId: pending.agentId, state: false })).catch(() => { });
25
+ }
26
+ /**
27
+ * Register a one-shot reply publisher with the claude-code provider. Called
28
+ * at startup from `main()` once the provider is configured. The publisher
29
+ * receives Claude's async `reply` / `edit_message` tool calls and publishes
30
+ * them to the chat channel via the supplied callback (typically a wrapper
31
+ * around `api.publishResponse` that emits `chat_response`).
32
+ */
33
+ export function registerClaudeReplyPublisher(provider, publish) {
34
+ provider.setReplyPublisher((reply, tool, meta) => {
35
+ const sessionKey = typeof meta.chat_id === 'string' ? meta.chat_id : undefined;
36
+ const payload = {
37
+ type: tool === 'edit_message' ? 'chat_edit' : 'chat_response',
38
+ correlationId: typeof meta.message_id === 'string' ? meta.message_id : undefined,
39
+ sessionKey,
40
+ text: reply.text,
41
+ source: typeof meta.source === 'string' ? meta.source : undefined,
42
+ };
43
+ try {
44
+ void publish(payload);
45
+ }
46
+ catch (err) {
47
+ logCollector?.push('claude_reply_publish_failed', 'warn', `reply publish failed: ${toErrorMessage(err)}`);
48
+ }
49
+ // Pair the reply with its originating chat_send (if any): clears the
50
+ // typing indicator and logs `command_completed`. Only `reply` (final)
51
+ // closes the command; `edit_message` is an intermediate progress update
52
+ // and must not clear typing.
53
+ if (tool === 'reply') {
54
+ resolvePendingClaudeChat(sessionKey);
55
+ }
56
+ });
57
+ }
4
58
  export async function handleChatListSessions(command, publish) {
5
59
  logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
6
60
  commandId: command.id,
@@ -106,9 +160,41 @@ export async function handleChatSend(command, publish, agentId) {
106
160
  text: '',
107
161
  error: 'Chat provider not available',
108
162
  });
163
+ await publish({ type: 'chat_typing', agentId, state: false }).catch(() => { });
109
164
  return;
110
165
  }
111
166
  try {
167
+ // claude-code: if a login is pending, treat the next message as the auth
168
+ // code instead of a chat message. Acknowledge via chat_response.
169
+ if (provider instanceof ClaudeCodeProvider && provider.getPendingLoginUrl()) {
170
+ const accepted = provider.submitLoginCode(text);
171
+ const ack = accepted
172
+ ? 'Login code received — finishing authentication…'
173
+ : 'No login prompt is waiting right now.';
174
+ logCollector?.push('command_completed', 'info', `${command.type} completed`, {
175
+ commandId: command.id,
176
+ durationMs: Date.now() - startMs,
177
+ sessionKey,
178
+ loginCodeSubmitted: accepted,
179
+ });
180
+ await publish({ type: 'chat_response', correlationId, sessionKey, text: ack }).catch(() => { });
181
+ await publish({ type: 'chat_typing', agentId, state: false }).catch(() => { });
182
+ return;
183
+ }
184
+ // CLAUDE-CODE TYPING: ClaudeCodeProvider.sendMessage returns immediately
185
+ // and never invokes onDone — replies arrive async via the reply publisher.
186
+ // Register this command as "pending" so the publisher can clear typing
187
+ // and emit `command_completed` when Claude's first reply arrives.
188
+ const isClaudeCode = provider instanceof ClaudeCodeProvider;
189
+ if (isClaudeCode) {
190
+ pendingClaudeChats.set(sessionKey, {
191
+ commandId: command.id,
192
+ agentId,
193
+ sessionKey,
194
+ startMs,
195
+ publish,
196
+ });
197
+ }
112
198
  await provider.sendMessage({
113
199
  sessionKey,
114
200
  text,
@@ -124,13 +210,17 @@ export async function handleChatSend(command, publish, agentId) {
124
210
  sessionKey,
125
211
  });
126
212
  await publish({ type: 'chat_response', correlationId, sessionKey, text: finalText }).catch(() => { });
213
+ await publish({ type: 'chat_typing', agentId, state: false }).catch(() => { });
127
214
  },
128
215
  onError: async (error) => {
129
216
  logCollector?.push('command_failed', 'error', `${command.type} failed: ${error}`, {
130
217
  commandId: command.id,
131
218
  durationMs: Date.now() - startMs,
132
219
  });
220
+ // Release any pending claude-code entry so it doesn't linger.
221
+ pendingClaudeChats.delete(sessionKey);
133
222
  await publish({ type: 'chat_response', correlationId, sessionKey, text: '', error }).catch(() => { });
223
+ await publish({ type: 'chat_typing', agentId, state: false }).catch(() => { });
134
224
  },
135
225
  });
136
226
  }
@@ -139,6 +229,8 @@ export async function handleChatSend(command, publish, agentId) {
139
229
  commandId: command.id,
140
230
  durationMs: Date.now() - startMs,
141
231
  });
232
+ // Clear any claude-code pending entry to prevent stale tracking.
233
+ pendingClaudeChats.delete(sessionKey);
142
234
  await publish({
143
235
  type: 'chat_response',
144
236
  correlationId,
@@ -146,6 +238,7 @@ export async function handleChatSend(command, publish, agentId) {
146
238
  text: '',
147
239
  error: toErrorMessage(err),
148
240
  }).catch(() => { });
241
+ await publish({ type: 'chat_typing', agentId, state: false }).catch(() => { });
149
242
  }
150
243
  }
151
244
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/handlers/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/handlers/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AgentCommand, AgentResponse } from '../types.js';
2
+ import type { KnowledgeGraphManager } from '../utils/knowledge-graph.js';
3
+ /**
4
+ * Create WS command handlers for memory operations.
5
+ * All 9 handlers delegate to the shared KnowledgeGraphManager instance.
6
+ */
7
+ export declare function createMemoryHandlers(manager: KnowledgeGraphManager): Record<string, (cmd: AgentCommand) => Promise<AgentResponse>>;
@@ -0,0 +1,41 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Helper
3
+ // ---------------------------------------------------------------------------
4
+ function ok(cmd, data) {
5
+ return {
6
+ id: cmd.id,
7
+ type: cmd.type,
8
+ success: true,
9
+ data: data,
10
+ };
11
+ }
12
+ // ---------------------------------------------------------------------------
13
+ // Handler factory
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Create WS command handlers for memory operations.
17
+ * All 9 handlers delegate to the shared KnowledgeGraphManager instance.
18
+ */
19
+ export function createMemoryHandlers(manager) {
20
+ return {
21
+ memory_create_entities: async (cmd) => ok(cmd, await manager.createEntities(cmd.payload.entities)),
22
+ memory_create_relations: async (cmd) => ok(cmd, await manager.createRelations(cmd.payload.relations)),
23
+ memory_add_observations: async (cmd) => ok(cmd, await manager.addObservations(cmd.payload.observations)),
24
+ memory_delete_entities: async (cmd) => {
25
+ await manager.deleteEntities(cmd.payload.entityNames);
26
+ return ok(cmd, {});
27
+ },
28
+ memory_delete_observations: async (cmd) => {
29
+ await manager.deleteObservations(cmd.payload.deletions);
30
+ return ok(cmd, {});
31
+ },
32
+ memory_delete_relations: async (cmd) => {
33
+ await manager.deleteRelations(cmd.payload.relations);
34
+ return ok(cmd, {});
35
+ },
36
+ memory_read_graph: async (cmd) => ok(cmd, manager.readGraph()),
37
+ memory_search_nodes: async (cmd) => ok(cmd, manager.searchNodes(cmd.payload.query)),
38
+ memory_open_nodes: async (cmd) => ok(cmd, manager.openNodes(cmd.payload.names)),
39
+ };
40
+ }
41
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/handlers/memory.ts"],"names":[],"mappings":"AASA,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,SAAS,EAAE,CAAC,GAAiB,EAAE,IAAuC;IACpE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAA+B;KACtC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA8B;IAE9B,OAAO;QACL,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACpC,EAAE,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAoB,CAAC,CAAC;QAEzE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACrC,EAAE,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAuB,CAAC,CAAC;QAE7E,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CACrC,EAAE,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,YAAkC,CAAC,CAAC;QAExF,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,WAAuB,CAAC,CAAC;YAClE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAkC,CAAC,CAAC;YACjF,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACrC,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAuB,CAAC,CAAC;YACnE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAE9D,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAe,CAAC,CAAC;QAE7F,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,KAAiB,CAAC,CAAC;KAC5F,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export declare function main(): void;
1
+ export declare function main(): Promise<void>;
package/dist/index.js CHANGED
@@ -8,11 +8,16 @@ import { createAgentApi } from './api.js';
8
8
  import { BoardHandler } from './handlers/board-handler.js';
9
9
  import { McpBoardClient } from './mcp-client.js';
10
10
  import { configureProvider, createProvider, getProvider } from './providers/index.js';
11
+ import { ClaudeCodeProvider } from './providers/claude-code/index.js';
12
+ import { registerClaudeReplyPublisher } from './handlers/chat.js';
11
13
  import { DEBUG } from './debug.js';
12
14
  import { getBackendUrl } from './utils/env.js';
13
15
  import { config, requireConfig } from './config.js';
14
16
  import { createLockFile } from './lockfile.js';
15
17
  import { applyBootstrapConfig } from './utils/apply-config.js';
18
+ import { KnowledgeGraphManager } from './utils/knowledge-graph.js';
19
+ import { startMemoryMcpServer } from './memory-mcp-server.js';
20
+ import { toErrorMessage } from './utils/response.js';
16
21
  const _require = createRequire(import.meta.url);
17
22
  const { version: CONTROLLER_VERSION } = _require(join(dirname(fileURLToPath(import.meta.url)), '../package.json'));
18
23
  /** On startup, fetch latest config from bootstrap API and apply */
@@ -32,6 +37,28 @@ async function refreshConfigFromBootstrap() {
32
37
  console.error('[startup] Failed to refresh config from bootstrap:', err instanceof Error ? err.message : err);
33
38
  }
34
39
  }
40
+ /** Inject agent-memory MCP server into openclaw.json so OpenClaw agent can discover it. */
41
+ function injectMemoryMcpConfig() {
42
+ try {
43
+ const openclawDir = config.stateDir;
44
+ const configPath = join(openclawDir, 'openclaw.json');
45
+ if (!fs.existsSync(configPath))
46
+ return;
47
+ const fileConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
48
+ // Ensure mcpServers section exists
49
+ if (!fileConfig.mcpServers)
50
+ fileConfig.mcpServers = {};
51
+ fileConfig.mcpServers['agent-memory'] = {
52
+ url: 'http://127.0.0.1:3457/mcp',
53
+ transport: 'streamable-http',
54
+ };
55
+ fs.writeFileSync(configPath, JSON.stringify(fileConfig, null, 2) + '\n');
56
+ console.log('[startup] Injected agent-memory MCP server into openclaw.json');
57
+ }
58
+ catch (err) {
59
+ console.warn('[startup] Failed to inject memory MCP config:', err instanceof Error ? err.message : err);
60
+ }
61
+ }
35
62
  /**
36
63
  * Read MCP server config from openclaw.json (injected by bootstrap).
37
64
  * Returns McpBoardClient if config is found, null otherwise.
@@ -59,7 +86,7 @@ function createMcpClient() {
59
86
  return null;
60
87
  }
61
88
  }
62
- export function main() {
89
+ export async function main() {
63
90
  createLockFile();
64
91
  refreshConfigFromBootstrap().catch((err) => {
65
92
  console.error('[startup] refreshConfigFromBootstrap failed:', err);
@@ -73,6 +100,27 @@ export function main() {
73
100
  console.log(`Starting agent-controller for agent: ${agentId}`);
74
101
  console.log(`Backend URL: ${backendUrl} (JWT mode)`);
75
102
  const api = createAgentApi(backendUrl, token);
103
+ // ---------------------------------------------------------------------------
104
+ // Memory graph — init, MCP server, delta wiring, openclaw.json injection
105
+ // ---------------------------------------------------------------------------
106
+ const graphPath = join(config.stateDir, 'memory', 'graph.jsonl');
107
+ const knowledgeGraphManager = new KnowledgeGraphManager(graphPath);
108
+ let closeMemoryMcp = null;
109
+ try {
110
+ await knowledgeGraphManager.init();
111
+ console.log('[memory] KnowledgeGraphManager initialized');
112
+ closeMemoryMcp = await startMemoryMcpServer(knowledgeGraphManager);
113
+ injectMemoryMcpConfig();
114
+ }
115
+ catch (err) {
116
+ console.error('[memory] Failed to initialize memory:', toErrorMessage(err));
117
+ }
118
+ // Fire-and-forget delta sync to backend
119
+ knowledgeGraphManager.on('delta', (delta) => {
120
+ api.postMemoryDelta(agentId, delta).catch((err) => {
121
+ console.error('[memory] Failed to push delta:', toErrorMessage(err));
122
+ });
123
+ });
76
124
  const { client, drainCommands } = createConnection({
77
125
  url,
78
126
  token,
@@ -80,6 +128,7 @@ export function main() {
80
128
  backendUrl,
81
129
  api,
82
130
  version: CONTROLLER_VERSION,
131
+ knowledgeGraphManager,
83
132
  });
84
133
  // Configure agent provider
85
134
  const providerType = config.agentProvider;
@@ -103,6 +152,28 @@ export function main() {
103
152
  });
104
153
  console.log('Mock provider configured');
105
154
  }
155
+ else if (providerType === 'claude-code') {
156
+ const provider = createProvider('claude-code', {
157
+ workspaceDir: config.claudeWorkspaceDir,
158
+ anthropicApiKey: config.anthropicApiKey,
159
+ anthropicAuthToken: config.anthropicAuthToken,
160
+ claudeCodeOauthToken: config.claudeCodeOauthToken,
161
+ backendUrl,
162
+ agentToken: token,
163
+ });
164
+ configureProvider(provider);
165
+ // Wire the reply publisher: Claude's async reply tool calls are published
166
+ // to the backend as `chat_response` events so the chat UI receives them.
167
+ if (provider instanceof ClaudeCodeProvider) {
168
+ registerClaudeReplyPublisher(provider, (payload) => api.publishResponse(agentId, payload).catch((err) => {
169
+ console.error('[claude-code] reply publish failed:', err instanceof Error ? err.message : err);
170
+ }));
171
+ }
172
+ provider.connect().catch((err) => {
173
+ console.error('claude-code provider connect failed:', err instanceof Error ? err.message : err);
174
+ });
175
+ console.log('claude-code provider configured');
176
+ }
106
177
  else {
107
178
  console.error(`Unknown provider type: ${providerType}`);
108
179
  process.exit(1);
@@ -159,6 +230,7 @@ export function main() {
159
230
  heartbeatHandle.stop();
160
231
  boardSub?.unsubscribe();
161
232
  mcpClient?.disconnect();
233
+ closeMemoryMcp?.();
162
234
  getProvider()?.disconnect();
163
235
  client.disconnect();
164
236
  const drainWithTimeout = Promise.race([
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { KnowledgeGraphManager } from './utils/knowledge-graph.js';
3
+ export declare function createMemoryMcpServer(manager: KnowledgeGraphManager): McpServer;
4
+ /**
5
+ * Start the MCP memory server on localhost.
6
+ * Returns a close function for graceful shutdown.
7
+ */
8
+ export declare function startMemoryMcpServer(manager: KnowledgeGraphManager): Promise<() => void>;