@openclaw-cloud/agent-controller 2.0.0 → 2.2.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 (62) hide show
  1. package/bin/agent-controller.js +11 -2
  2. package/dist/commands/bootstrap.js +3 -28
  3. package/dist/commands/bootstrap.js.map +1 -1
  4. package/dist/commands/channel-server.d.ts +17 -0
  5. package/dist/commands/channel-server.js +71 -0
  6. package/dist/commands/channel-server.js.map +1 -0
  7. package/dist/config-file.js +6 -0
  8. package/dist/config-file.js.map +1 -1
  9. package/dist/config.d.ts +10 -0
  10. package/dist/config.js +20 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/connection.js +11 -0
  13. package/dist/connection.js.map +1 -1
  14. package/dist/handlers/board-handler.js +56 -20
  15. package/dist/handlers/board-handler.js.map +1 -1
  16. package/dist/handlers/chat.d.ts +17 -0
  17. package/dist/handlers/chat.js +93 -0
  18. package/dist/handlers/chat.js.map +1 -1
  19. package/dist/handlers/memory.d.ts +6 -0
  20. package/dist/handlers/memory.js +100 -13
  21. package/dist/handlers/memory.js.map +1 -1
  22. package/dist/index.js +47 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/providers/claude-code/channel-server.d.ts +60 -0
  25. package/dist/providers/claude-code/channel-server.js +155 -0
  26. package/dist/providers/claude-code/channel-server.js.map +1 -0
  27. package/dist/providers/claude-code/index.d.ts +68 -0
  28. package/dist/providers/claude-code/index.js +280 -0
  29. package/dist/providers/claude-code/index.js.map +1 -0
  30. package/dist/providers/claude-code/login-flow.d.ts +26 -0
  31. package/dist/providers/claude-code/login-flow.js +135 -0
  32. package/dist/providers/claude-code/login-flow.js.map +1 -0
  33. package/dist/providers/claude-code/settings-writer.d.ts +29 -0
  34. package/dist/providers/claude-code/settings-writer.js +94 -0
  35. package/dist/providers/claude-code/settings-writer.js.map +1 -0
  36. package/dist/providers/claude-code/socket-bridge.d.ts +98 -0
  37. package/dist/providers/claude-code/socket-bridge.js +301 -0
  38. package/dist/providers/claude-code/socket-bridge.js.map +1 -0
  39. package/dist/providers/claude-code/spawn-claude.d.ts +48 -0
  40. package/dist/providers/claude-code/spawn-claude.js +108 -0
  41. package/dist/providers/claude-code/spawn-claude.js.map +1 -0
  42. package/dist/providers/index.d.ts +3 -1
  43. package/dist/providers/index.js +16 -0
  44. package/dist/providers/index.js.map +1 -1
  45. package/dist/utils/agent-controller-bin.d.ts +8 -0
  46. package/dist/utils/agent-controller-bin.js +58 -0
  47. package/dist/utils/agent-controller-bin.js.map +1 -0
  48. package/dist/utils/anthropic-auth.d.ts +25 -0
  49. package/dist/utils/anthropic-auth.js +13 -0
  50. package/dist/utils/anthropic-auth.js.map +1 -0
  51. package/dist/utils/apply-config.d.ts +28 -0
  52. package/dist/utils/apply-config.js +226 -0
  53. package/dist/utils/apply-config.js.map +1 -1
  54. package/dist/utils/claude-env.js +9 -4
  55. package/dist/utils/claude-env.js.map +1 -1
  56. package/dist/utils/config-merge-paths.d.ts +21 -0
  57. package/dist/utils/config-merge-paths.js +27 -0
  58. package/dist/utils/config-merge-paths.js.map +1 -0
  59. package/dist/utils/write-workspace-files.d.ts +15 -0
  60. package/dist/utils/write-workspace-files.js +48 -0
  61. package/dist/utils/write-workspace-files.js.map +1 -0
  62. 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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"}
@@ -1,5 +1,11 @@
1
1
  import type { AgentCommand, AgentResponse } from '../types.js';
2
2
  import type { KnowledgeGraphManager } from '../utils/knowledge-graph.js';
3
+ /**
4
+ * Forward KnowledgeGraphManager 'delta' events to the structured log stream so
5
+ * we can correlate WS broadcast with backend receipt. Call once at startup
6
+ * (idempotent per manager — caller is responsible for not double-wiring).
7
+ */
8
+ export declare function wireMemoryDeltaLogging(manager: KnowledgeGraphManager): void;
3
9
  /**
4
10
  * Create WS command handlers for memory operations.
5
11
  * All 9 handlers delegate to the shared KnowledgeGraphManager instance.
@@ -1,5 +1,7 @@
1
+ import { logCollector } from '../connection.js';
2
+ import { toErrorMessage } from '../utils/response.js';
1
3
  // ---------------------------------------------------------------------------
2
- // Helper
4
+ // Helpers
3
5
  // ---------------------------------------------------------------------------
4
6
  function ok(cmd, data) {
5
7
  return {
@@ -9,6 +11,91 @@ function ok(cmd, data) {
9
11
  data: data,
10
12
  };
11
13
  }
14
+ /**
15
+ * Compute a compact payload-shape summary for logs. NEVER logs values —
16
+ * only counts / top-level shape, so we can't leak observation contents.
17
+ */
18
+ function payloadShape(cmd) {
19
+ const p = (cmd.payload ?? {});
20
+ const shape = {};
21
+ const entities = p.entities;
22
+ if (Array.isArray(entities))
23
+ shape.entityCount = entities.length;
24
+ const relations = p.relations;
25
+ if (Array.isArray(relations))
26
+ shape.relationCount = relations.length;
27
+ const observations = p.observations;
28
+ if (Array.isArray(observations))
29
+ shape.observationCount = observations.length;
30
+ const deletions = p.deletions;
31
+ if (Array.isArray(deletions))
32
+ shape.deletionCount = deletions.length;
33
+ const entityNames = p.entityNames;
34
+ if (Array.isArray(entityNames))
35
+ shape.entityNameCount = entityNames.length;
36
+ const names = p.names;
37
+ if (Array.isArray(names))
38
+ shape.nameCount = names.length;
39
+ return shape;
40
+ }
41
+ /**
42
+ * Wrap a memory handler with structured lifecycle logs:
43
+ * memory_cmd_received → memory_cmd_persisting → memory_cmd_completed | memory_cmd_failed
44
+ * The `received`/`persisting` logs fire BEFORE disk I/O so that a hang during
45
+ * atomic write leaves the last-known state in backend-visible logs.
46
+ */
47
+ function instrument(type, fn) {
48
+ return async (cmd) => {
49
+ const started = Date.now();
50
+ const shape = payloadShape(cmd);
51
+ logCollector?.push('memory_cmd_received', 'info', `memory ${type} received`, {
52
+ commandId: cmd.id,
53
+ type,
54
+ ...shape,
55
+ });
56
+ logCollector?.push('memory_cmd_persisting', 'info', `memory ${type} persisting`, {
57
+ commandId: cmd.id,
58
+ type,
59
+ ...shape,
60
+ });
61
+ try {
62
+ const res = await fn(cmd);
63
+ logCollector?.push('memory_cmd_completed', 'info', `memory ${type} completed`, {
64
+ commandId: cmd.id,
65
+ type,
66
+ durationMs: Date.now() - started,
67
+ ...shape,
68
+ });
69
+ return res;
70
+ }
71
+ catch (err) {
72
+ logCollector?.push('memory_cmd_failed', 'error', `memory ${type} failed: ${toErrorMessage(err)}`, {
73
+ commandId: cmd.id,
74
+ type,
75
+ durationMs: Date.now() - started,
76
+ error: toErrorMessage(err),
77
+ ...shape,
78
+ });
79
+ throw err;
80
+ }
81
+ };
82
+ }
83
+ /**
84
+ * Forward KnowledgeGraphManager 'delta' events to the structured log stream so
85
+ * we can correlate WS broadcast with backend receipt. Call once at startup
86
+ * (idempotent per manager — caller is responsible for not double-wiring).
87
+ */
88
+ export function wireMemoryDeltaLogging(manager) {
89
+ manager.on('delta', (delta) => {
90
+ let count = 0;
91
+ if (Array.isArray(delta.data))
92
+ count = delta.data.length;
93
+ logCollector?.push('memory_delta', 'debug', `memory delta ${delta.action}`, {
94
+ action: delta.action,
95
+ count,
96
+ });
97
+ });
98
+ }
12
99
  // ---------------------------------------------------------------------------
13
100
  // Handler factory
14
101
  // ---------------------------------------------------------------------------
@@ -18,24 +105,24 @@ function ok(cmd, data) {
18
105
  */
19
106
  export function createMemoryHandlers(manager) {
20
107
  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) => {
108
+ memory_create_entities: instrument('memory_create_entities', async (cmd) => ok(cmd, await manager.createEntities(cmd.payload.entities))),
109
+ memory_create_relations: instrument('memory_create_relations', async (cmd) => ok(cmd, await manager.createRelations(cmd.payload.relations))),
110
+ memory_add_observations: instrument('memory_add_observations', async (cmd) => ok(cmd, await manager.addObservations(cmd.payload.observations))),
111
+ memory_delete_entities: instrument('memory_delete_entities', async (cmd) => {
25
112
  await manager.deleteEntities(cmd.payload.entityNames);
26
113
  return ok(cmd, {});
27
- },
28
- memory_delete_observations: async (cmd) => {
114
+ }),
115
+ memory_delete_observations: instrument('memory_delete_observations', async (cmd) => {
29
116
  await manager.deleteObservations(cmd.payload.deletions);
30
117
  return ok(cmd, {});
31
- },
32
- memory_delete_relations: async (cmd) => {
118
+ }),
119
+ memory_delete_relations: instrument('memory_delete_relations', async (cmd) => {
33
120
  await manager.deleteRelations(cmd.payload.relations);
34
121
  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)),
122
+ }),
123
+ memory_read_graph: instrument('memory_read_graph', async (cmd) => ok(cmd, manager.readGraph())),
124
+ memory_search_nodes: instrument('memory_search_nodes', async (cmd) => ok(cmd, manager.searchNodes(cmd.payload.query))),
125
+ memory_open_nodes: instrument('memory_open_nodes', async (cmd) => ok(cmd, manager.openNodes(cmd.payload.names))),
39
126
  };
40
127
  }
41
128
  //# sourceMappingURL=memory.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/handlers/memory.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,28 +8,47 @@ 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
- import { applyBootstrapConfig } from './utils/apply-config.js';
17
+ import { applyBootstrapConfig, applyMergeableConfig } from './utils/apply-config.js';
16
18
  import { KnowledgeGraphManager } from './utils/knowledge-graph.js';
17
19
  import { startMemoryMcpServer } from './memory-mcp-server.js';
20
+ import { wireMemoryDeltaLogging } from './handlers/memory.js';
18
21
  import { toErrorMessage } from './utils/response.js';
19
22
  const _require = createRequire(import.meta.url);
20
23
  const { version: CONTROLLER_VERSION } = _require(join(dirname(fileURLToPath(import.meta.url)), '../package.json'));
21
- /** On startup, fetch latest config from bootstrap API and apply */
24
+ /** On startup, fetch latest config from bootstrap API and apply.
25
+ *
26
+ * - vm / k8s → full `applyBootstrapConfig` (writes openclaw.json,
27
+ * auth-profiles.json, ~/.claude/settings.json, .env, restarts gateway).
28
+ * - standalone / undefined → `applyMergeableConfig` does a SCOPED merge of
29
+ * allowlisted safe-additive sections (mcpServers, tools.media.*, etc.)
30
+ * into the user's existing openclaw.json. Local values always win on
31
+ * conflict, and auth-profiles.json / .env / gateway are left untouched.
32
+ */
22
33
  async function refreshConfigFromBootstrap() {
23
34
  const backendUrl = config.backendUrl;
24
35
  const agentToken = config.agentToken;
25
36
  const agentId = config.agentId;
26
37
  if (!backendUrl || !agentToken || !agentId)
27
38
  return;
39
+ const deployType = config.agentDeployType;
40
+ const managedDeploy = deployType === 'vm' || deployType === 'k8s';
28
41
  try {
29
42
  const api = createAgentApi(backendUrl, agentToken);
30
43
  const data = await api.agentBootstrap(agentId);
31
- await applyBootstrapConfig(data);
32
- console.log('[startup] Config refreshed from bootstrap API');
44
+ if (managedDeploy) {
45
+ await applyBootstrapConfig(data);
46
+ console.log(`[startup] Config refreshed from bootstrap API (deployType=${deployType})`);
47
+ }
48
+ else {
49
+ await applyMergeableConfig(data);
50
+ console.log(`[startup] Scoped merge of mergeable config sections applied (deployType=${deployType ?? 'standalone'}); local config preserved on conflict`);
51
+ }
33
52
  }
34
53
  catch (err) {
35
54
  console.error('[startup] Failed to refresh config from bootstrap:', err instanceof Error ? err.message : err);
@@ -128,6 +147,8 @@ export async function main() {
128
147
  version: CONTROLLER_VERSION,
129
148
  knowledgeGraphManager,
130
149
  });
150
+ // Wire structured delta logs AFTER createConnection() so logCollector is set.
151
+ wireMemoryDeltaLogging(knowledgeGraphManager);
131
152
  // Configure agent provider
132
153
  const providerType = config.agentProvider;
133
154
  const gatewayWsUrl = config.gatewayWsUrl;
@@ -150,6 +171,28 @@ export async function main() {
150
171
  });
151
172
  console.log('Mock provider configured');
152
173
  }
174
+ else if (providerType === 'claude-code') {
175
+ const provider = createProvider('claude-code', {
176
+ workspaceDir: config.claudeWorkspaceDir,
177
+ anthropicApiKey: config.anthropicApiKey,
178
+ anthropicAuthToken: config.anthropicAuthToken,
179
+ claudeCodeOauthToken: config.claudeCodeOauthToken,
180
+ backendUrl,
181
+ agentToken: token,
182
+ });
183
+ configureProvider(provider);
184
+ // Wire the reply publisher: Claude's async reply tool calls are published
185
+ // to the backend as `chat_response` events so the chat UI receives them.
186
+ if (provider instanceof ClaudeCodeProvider) {
187
+ registerClaudeReplyPublisher(provider, (payload) => api.publishResponse(agentId, payload).catch((err) => {
188
+ console.error('[claude-code] reply publish failed:', err instanceof Error ? err.message : err);
189
+ }));
190
+ }
191
+ provider.connect().catch((err) => {
192
+ console.error('claude-code provider connect failed:', err instanceof Error ? err.message : err);
193
+ });
194
+ console.log('claude-code provider configured');
195
+ }
153
196
  else {
154
197
  console.error(`Unknown provider type: ${providerType}`);
155
198
  process.exit(1);
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,60 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
3
+ export interface ChannelReplyMeta {
4
+ chat_id?: string;
5
+ message_id?: string;
6
+ source?: string;
7
+ user?: string;
8
+ ts?: string;
9
+ [k: string]: unknown;
10
+ }
11
+ export interface ChannelReply {
12
+ text: string;
13
+ reply_to?: string;
14
+ files?: string[];
15
+ }
16
+ export interface ChannelMessageMeta {
17
+ chat_id: string;
18
+ source: string;
19
+ message_id?: string;
20
+ user?: string;
21
+ ts?: string;
22
+ file_path?: string;
23
+ }
24
+ export type ReplyHandler = (reply: ChannelReply, tool: 'reply' | 'edit_message') => void;
25
+ /**
26
+ * MCP channel server — stdio-based, modeled after anthropics/claude-plugins-official
27
+ * `fakechat/server.ts`. When Claude Code is launched with
28
+ * `--channels plugin:<plugin-name>` and a `.mcp.json` entry that spawns this
29
+ * process, it advertises the `claude/channel` experimental capability.
30
+ *
31
+ * Inbound (we → Claude): `pushChatMessage(content, meta)` emits an MCP
32
+ * notification `notifications/claude/channel`.
33
+ *
34
+ * Outbound (Claude → we): Claude calls our `reply` / `edit_message` tool.
35
+ * Listeners registered via `onReply(handler)` receive the call args.
36
+ */
37
+ export declare class ClaudeChannelServer extends EventEmitter {
38
+ private readonly opts;
39
+ private server;
40
+ private transport;
41
+ private started;
42
+ constructor(opts?: {
43
+ name?: string;
44
+ version?: string;
45
+ instructions?: string;
46
+ });
47
+ private registerHandlers;
48
+ /**
49
+ * Start the MCP server on a given transport (stdio by default).
50
+ * Pass a custom transport for in-process tests.
51
+ */
52
+ start(transport?: Transport): Promise<void>;
53
+ /** Emit a channel notification to Claude. */
54
+ pushChatMessage(content: string, meta: ChannelMessageMeta): Promise<void>;
55
+ /** Register a callback for incoming reply/edit tool calls from Claude. */
56
+ onReply(handler: ReplyHandler): () => void;
57
+ /** Graceful shutdown. */
58
+ stop(): Promise<void>;
59
+ isStarted(): boolean;
60
+ }