@openclaw-cloud/agent-controller 2.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 (38) hide show
  1. package/bin/agent-controller.js +11 -2
  2. package/dist/commands/channel-server.d.ts +17 -0
  3. package/dist/commands/channel-server.js +71 -0
  4. package/dist/commands/channel-server.js.map +1 -0
  5. package/dist/config-file.js +6 -0
  6. package/dist/config-file.js.map +1 -1
  7. package/dist/config.d.ts +10 -0
  8. package/dist/config.js +20 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/handlers/board-handler.js +56 -20
  11. package/dist/handlers/board-handler.js.map +1 -1
  12. package/dist/handlers/chat.d.ts +17 -0
  13. package/dist/handlers/chat.js +93 -0
  14. package/dist/handlers/chat.js.map +1 -1
  15. package/dist/index.js +24 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/providers/claude-code/channel-server.d.ts +60 -0
  18. package/dist/providers/claude-code/channel-server.js +155 -0
  19. package/dist/providers/claude-code/channel-server.js.map +1 -0
  20. package/dist/providers/claude-code/index.d.ts +68 -0
  21. package/dist/providers/claude-code/index.js +276 -0
  22. package/dist/providers/claude-code/index.js.map +1 -0
  23. package/dist/providers/claude-code/login-flow.d.ts +26 -0
  24. package/dist/providers/claude-code/login-flow.js +129 -0
  25. package/dist/providers/claude-code/login-flow.js.map +1 -0
  26. package/dist/providers/claude-code/settings-writer.d.ts +29 -0
  27. package/dist/providers/claude-code/settings-writer.js +79 -0
  28. package/dist/providers/claude-code/settings-writer.js.map +1 -0
  29. package/dist/providers/claude-code/socket-bridge.d.ts +88 -0
  30. package/dist/providers/claude-code/socket-bridge.js +302 -0
  31. package/dist/providers/claude-code/socket-bridge.js.map +1 -0
  32. package/dist/providers/claude-code/spawn-claude.d.ts +44 -0
  33. package/dist/providers/claude-code/spawn-claude.js +108 -0
  34. package/dist/providers/claude-code/spawn-claude.js.map +1 -0
  35. package/dist/providers/index.d.ts +3 -1
  36. package/dist/providers/index.js +12 -0
  37. package/dist/providers/index.js.map +1 -1
  38. package/package.json +1 -1
@@ -28,7 +28,7 @@ if (command === '--version' || command === '-v') {
28
28
  } else if (command === 'heartbeat') {
29
29
  const { runHeartbeat } = await import('../dist/commands/heartbeat-cli.js');
30
30
  await runHeartbeat();
31
- } else if (command === 'bootstrap') {
31
+ } else if (command === 'bootstrap' || command === 'update-config' || command === 'update_config') {
32
32
  const { bootstrap } = await import('../dist/commands/bootstrap.js');
33
33
  await bootstrap();
34
34
  } else if (command === 'install-deps' || command === 'install_deps') {
@@ -40,7 +40,16 @@ if (command === '--version' || command === '-v') {
40
40
  } else if (command === 'uninstall') {
41
41
  const { uninstall } = await import('../dist/commands/uninstall.js');
42
42
  await uninstall();
43
- } else {
43
+ } else if (command === 'channel-server' || command === 'channel_server') {
44
+ const { runChannelServer } = await import('../dist/commands/channel-server.js');
45
+ await runChannelServer(process.argv.slice(3));
46
+ } else if (command === undefined) {
44
47
  const { main } = await import('../dist/index.js');
45
48
  main();
49
+ } else {
50
+ console.error(`Unknown command: ${command}`);
51
+ console.error(
52
+ 'Available: --version, self-update, backup, knowledge-sync, heartbeat, bootstrap, update-config, install-deps, install, uninstall, channel-server',
53
+ );
54
+ process.exit(2);
46
55
  }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLI: `agent-controller channel-server`
3
+ *
4
+ * Thin worker subprocess spawned by Claude Code as a stdio MCP server. It:
5
+ * 1. Connects to the main agent-controller via the Unix domain socket at
6
+ * `~/.openclaw/claude-channel.sock` (retries for up to 30s).
7
+ * 2. Sends `{op:"hello",pid}` once connected.
8
+ * 3. Starts a `ClaudeChannelServer` on stdio so Claude can call its reply
9
+ * and edit_message tools.
10
+ * 4. Forwards worker → main: reply/edit tool calls as JSON lines.
11
+ * 5. Forwards main → worker: push ops as MCP notifications to Claude.
12
+ * 6. Exits cleanly when the bridge socket closes.
13
+ *
14
+ * `logCollector` is NOT available here (runs as a detached subprocess);
15
+ * diagnostics go to stderr only.
16
+ */
17
+ export declare function runChannelServer(argv?: string[]): Promise<void>;
@@ -0,0 +1,71 @@
1
+ import { ClaudeChannelServer } from '../providers/claude-code/channel-server.js';
2
+ import { ChannelBridgeClient, DEFAULT_SOCKET_PATH, } from '../providers/claude-code/socket-bridge.js';
3
+ /**
4
+ * CLI: `agent-controller channel-server`
5
+ *
6
+ * Thin worker subprocess spawned by Claude Code as a stdio MCP server. It:
7
+ * 1. Connects to the main agent-controller via the Unix domain socket at
8
+ * `~/.openclaw/claude-channel.sock` (retries for up to 30s).
9
+ * 2. Sends `{op:"hello",pid}` once connected.
10
+ * 3. Starts a `ClaudeChannelServer` on stdio so Claude can call its reply
11
+ * and edit_message tools.
12
+ * 4. Forwards worker → main: reply/edit tool calls as JSON lines.
13
+ * 5. Forwards main → worker: push ops as MCP notifications to Claude.
14
+ * 6. Exits cleanly when the bridge socket closes.
15
+ *
16
+ * `logCollector` is NOT available here (runs as a detached subprocess);
17
+ * diagnostics go to stderr only.
18
+ */
19
+ export async function runChannelServer(argv = []) {
20
+ const socketPath = parseFlag(argv, '--socket-path') ?? DEFAULT_SOCKET_PATH;
21
+ const maxWaitMs = Number(parseFlag(argv, '--max-wait-ms') ?? '30000');
22
+ const bridge = new ChannelBridgeClient({ socketPath, maxWaitMs });
23
+ try {
24
+ await bridge.connect();
25
+ }
26
+ catch (err) {
27
+ process.stderr.write(`[channel-server] failed to connect to ${socketPath}: ${err instanceof Error ? err.message : String(err)}\n`);
28
+ process.exit(1);
29
+ }
30
+ bridge.sendHello(process.pid);
31
+ const channel = new ClaudeChannelServer({ name: 'agent-controller' });
32
+ // main → worker: forward inbound chat messages to Claude.
33
+ bridge.on('push', (content, meta) => {
34
+ channel.pushChatMessage(content, meta).catch((err) => {
35
+ process.stderr.write(`[channel-server] pushChatMessage failed: ${err instanceof Error ? err.message : String(err)}\n`);
36
+ });
37
+ });
38
+ // worker → main: forward Claude's reply/edit tool calls.
39
+ channel.onReply((reply, tool) => {
40
+ const meta = {
41
+ chat_id: undefined,
42
+ message_id: reply.reply_to,
43
+ tool,
44
+ };
45
+ bridge.sendReply(reply.text, meta, tool);
46
+ });
47
+ const shutdown = () => {
48
+ try {
49
+ bridge.close();
50
+ }
51
+ catch {
52
+ /* ignore */
53
+ }
54
+ channel.stop().finally(() => process.exit(0));
55
+ };
56
+ bridge.on('close', shutdown);
57
+ bridge.on('error', (err) => {
58
+ process.stderr.write(`[channel-server] bridge error: ${err instanceof Error ? err.message : String(err)}\n`);
59
+ });
60
+ process.on('SIGTERM', shutdown);
61
+ process.on('SIGINT', shutdown);
62
+ // Attach to stdio — this blocks on stdin.
63
+ await channel.start();
64
+ }
65
+ function parseFlag(argv, name) {
66
+ const idx = argv.indexOf(name);
67
+ if (idx < 0 || idx + 1 >= argv.length)
68
+ return undefined;
69
+ return argv[idx + 1];
70
+ }
71
+ //# sourceMappingURL=channel-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-server.js","sourceRoot":"","sources":["../../src/commands/channel-server.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ const ENV_KEYS = [
12
12
  'OPENCLAW_GATEWAY_TOKEN',
13
13
  'AC_RELEASE_CHANNEL',
14
14
  'AC_DEBUG',
15
+ 'AGENT_PROVIDER',
16
+ 'ANTHROPIC_API_KEY',
17
+ 'ANTHROPIC_AUTH_TOKEN',
18
+ 'CLAUDE_CODE_OAUTH_TOKEN',
19
+ 'CLAUDE_WORKSPACE_DIR',
20
+ 'CLAUDE_MD_CONTENT',
15
21
  ];
16
22
  /** VM provisioner writes env here */
17
23
  export const VM_ENV_PATH = '/opt/openclaw-cloud/agent-controller/.env';
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -25,5 +25,15 @@ export declare const config: {
25
25
  readonly agentDeployType: string | undefined;
26
26
  /** HOME directory */
27
27
  readonly home: string;
28
+ /** Anthropic API key (claude-code provider) */
29
+ readonly anthropicApiKey: string | undefined;
30
+ /** Anthropic auth token — alternative to API key (claude-code provider) */
31
+ readonly anthropicAuthToken: string | undefined;
32
+ /** Claude Code OAuth token — issued by `claude login` (claude-code provider) */
33
+ readonly claudeCodeOauthToken: string | undefined;
34
+ /** Workspace directory for the claude-code provider */
35
+ readonly claudeWorkspaceDir: string;
36
+ /** Optional CLAUDE.md content for the claude-code workspace (set by bootstrap). */
37
+ readonly claudeMdContent: string | undefined;
28
38
  };
29
39
  export declare function requireConfig<K extends keyof typeof config>(key: K): NonNullable<(typeof config)[K]>;
package/dist/config.js CHANGED
@@ -68,6 +68,26 @@ export const config = {
68
68
  get home() {
69
69
  return process.env.HOME ?? '/root';
70
70
  },
71
+ /** Anthropic API key (claude-code provider) */
72
+ get anthropicApiKey() {
73
+ return process.env.ANTHROPIC_API_KEY;
74
+ },
75
+ /** Anthropic auth token — alternative to API key (claude-code provider) */
76
+ get anthropicAuthToken() {
77
+ return process.env.ANTHROPIC_AUTH_TOKEN;
78
+ },
79
+ /** Claude Code OAuth token — issued by `claude login` (claude-code provider) */
80
+ get claudeCodeOauthToken() {
81
+ return process.env.CLAUDE_CODE_OAUTH_TOKEN;
82
+ },
83
+ /** Workspace directory for the claude-code provider */
84
+ get claudeWorkspaceDir() {
85
+ return process.env.CLAUDE_WORKSPACE_DIR ?? '/home/ubuntu/.claude/workspace';
86
+ },
87
+ /** Optional CLAUDE.md content for the claude-code workspace (set by bootstrap). */
88
+ get claudeMdContent() {
89
+ return process.env.CLAUDE_MD_CONTENT?.trim() || undefined;
90
+ },
71
91
  };
72
92
  /* ── Strict accessors (throw on missing) ────────────────────── */
73
93
  export function requireConfig(key) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;;;GAUG;AAEH,SAAS,QAAQ;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,+DAA+D;IAC/D,IAAI,QAAQ;QACV,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK;QACP,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,4DAA4D;IAC5D,IAAI,OAAO;QACT,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,mCAAmC;IACnC,IAAI,UAAU;QACZ,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,6BAA6B;IAC7B,IAAI,aAAa;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,qFAAqF;IACrF,IAAI,UAAU;QACZ,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IAClF,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU,CAAC;IAClD,CAAC;IAED,8BAA8B;IAC9B,IAAI,YAAY;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,sBAAsB,CAAC;IACnE,CAAC;IAED,kCAAkC;IAClC,IAAI,YAAY;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,uCAAuC;IACvC,IAAI,cAAc;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,mCAAmC;IACnC,IAAI,YAAY;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACxD,CAAC;IAED,sCAAsC;IACtC,IAAI,eAAe;QACjB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI;QACN,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC;IACrC,CAAC;CACO,CAAC;AAEX,mEAAmE;AAEnE,MAAM,UAAU,aAAa,CAC3B,GAAM;IAEN,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,gBAAgB,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAwC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
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';
4
5
  /**
@@ -65,7 +66,7 @@ export class BoardHandler {
65
66
  return this.workspaceId;
66
67
  }
67
68
  catch (err) {
68
- logCollector?.push('board_init_error', 'error', `Board initialization failed: ${toErrorMessage(err)}`);
69
+ logCollector?.push('board_init_error', 'warn', `Board initialization failed: ${toErrorMessage(err)}`);
69
70
  return null;
70
71
  }
71
72
  }
@@ -199,27 +200,62 @@ export class BoardHandler {
199
200
  const provider = getProvider();
200
201
  if (!provider)
201
202
  throw new Error('No agent provider configured');
202
- await new Promise((resolve, reject) => {
203
- const timeoutId = setTimeout(() => reject(new Error('Provider timeout')), 300_000);
204
- provider
205
- .sendMessage({
206
- sessionKey: 'board-task',
207
- text: taskData.prompt,
208
- idempotencyKey: `board-${cardId}-${Date.now()}`,
209
- onDone: () => {
210
- clearTimeout(timeoutId);
211
- resolve();
212
- },
213
- onError: (error) => {
203
+ // claude-code: board tasks flow through the channel as plain chat
204
+ // notifications Claude replies asynchronously via the MCP `reply`
205
+ // tool, we don't block on onDone here.
206
+ if (provider instanceof ClaudeCodeProvider) {
207
+ provider.pushToChannel(`New task (card ${cardId}):\n\n${taskData.prompt}`, {
208
+ chat_id: 'board',
209
+ source: 'board',
210
+ message_id: cardId,
211
+ });
212
+ // BOARD-CC-COMPLETION: Claude drives card completion itself by
213
+ // calling the agent-board MCP tools (POST /api/agent/board/cards/:id/
214
+ // result | artifacts | comments | move) exposed via the backend MCP
215
+ // server. We intentionally do NOT call completeTask() here — that
216
+ // would mark the card `completed` before Claude has done any work.
217
+ //
218
+ // Trade-off: we reset local state to `idle` so the agent can claim
219
+ // additional cards while Claude works, but the card itself stays
220
+ // `claimed/in-progress` on the backend until Claude posts a result.
221
+ // If Claude never finishes (crash, exit) the card appears stuck
222
+ // until a backend reaper times it out.
223
+ //
224
+ // TODO: detect Claude's own result-call (via a `board:done` marker
225
+ // in reply meta, or by wiring a second MCP notification back to
226
+ // this handler) so we can log completion in agent-controller too.
227
+ logCollector?.push('card_task_handed_off', 'info', `Card ${cardId} handed to claude-code channel; completion driven by agent via MCP`, { cardId, provider: 'claude-code' });
228
+ delete process.env.BOARD_CARD_ID;
229
+ this.currentCardProcessingId = null;
230
+ this.boardState = { state: 'idle', cardId: null };
231
+ this.checkQueue().catch((err) => {
232
+ logCollector?.push('board_queue_check_error', 'error', `checkQueue after claude-code handoff error: ${toErrorMessage(err)}`, { cardId });
233
+ });
234
+ return;
235
+ }
236
+ else {
237
+ await new Promise((resolve, reject) => {
238
+ const timeoutId = setTimeout(() => reject(new Error('Provider timeout')), 300_000);
239
+ provider
240
+ .sendMessage({
241
+ sessionKey: 'board-task',
242
+ text: taskData.prompt,
243
+ idempotencyKey: `board-${cardId}-${Date.now()}`,
244
+ onDone: () => {
245
+ clearTimeout(timeoutId);
246
+ resolve();
247
+ },
248
+ onError: (error) => {
249
+ clearTimeout(timeoutId);
250
+ reject(new Error(error));
251
+ },
252
+ })
253
+ .catch((err) => {
214
254
  clearTimeout(timeoutId);
215
- reject(new Error(error));
216
- },
217
- })
218
- .catch((err) => {
219
- clearTimeout(timeoutId);
220
- reject(err);
255
+ reject(err);
256
+ });
221
257
  });
222
- });
258
+ }
223
259
  }
224
260
  // STRUCT-2: reset state after task is sent so new cards can be claimed
225
261
  await this.completeTask(cardId);
@@ -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":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;GAGG;AACH,SAAS,cAAc,CAAI,MAAqB,EAAE,QAAgB;IAChE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,mBAAmB,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,YAAY,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,wBAAwB,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;AAC/B,CAAC;AAED,MAAM,OAAO,YAAY;IACf,UAAU,GAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACzD,WAAW,GAAa,EAAE,CAAC;IAC3B,OAAO,GAAkB,IAAI,CAAC;IAC9B,WAAW,GAAkB,IAAI,CAAC;IAClC,uBAAuB,GAAkB,IAAI,CAAC;IAC9C,GAAG,CAAW;IACd,SAAS,GAA0B,IAAI,CAAC;IACxC,YAAY,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,GAAa,EAAE,SAA0B;QACnD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,kCAAkC;YAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBAC/B,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;oBACrD,YAAY,EAAE,IAAI,CAChB,iBAAiB,EACjB,MAAM,EACN,wBAAwB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvD,CAAC;oBACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBAEnB,mDAAmD;oBACnD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,EAAE;wBACvC,IAAI,CAAC,YAAY,CAAC;4BAChB,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAwB;4BACzD,MAAM,EAAE,KAAK,CAAC,MAAgB;4BAC9B,QAAQ,EAAE,KAAK,CAAC,QAA8B;yBAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;4BACf,YAAY,EAAE,IAAI,CAChB,uBAAuB,EACvB,OAAO,EACP,4BAA4B,cAAc,CAAC,GAAG,CAAC,EAAE,CAClD,CAAC;wBACJ,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,YAAY,EAAE,IAAI,CAChB,oBAAoB,EACpB,OAAO,EACP,gDAAgD,cAAc,CAAC,GAAG,CAAC,EAAE,CACtE,CAAC;oBACF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1C,YAAY,EAAE,IAAI,CAChB,mBAAmB,EACnB,MAAM,EACN,sBAAsB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,WAAW,CAAC,MAAM,YAAY,CACrH,CAAC;YAEF,8DAA8D;YAC9D,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5B,oEAAoE;YACpE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,IAAI,CAChB,kBAAkB,EAClB,MAAM,EACN,gCAAgC,cAAc,CAAC,GAAG,CAAC,EAAE,CACtD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAE3E;;;OAGG;IACK,QAAQ,CAAC,MAAc,EAAE,YAAoB;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;QAC1C,OAAO,CACL,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CACtF,IAAI,IAAI,CACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACrB,QAAuB,EACvB,OAA6D,EAC7D,YAA8B;QAE9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CACnB,QAAQ,EACR,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAY,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EACpF,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAuB,CAC7D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc;QACpC,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,CAAC,EACzD,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACvD,wDAAwD;YACxD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAc,CAAC;YAC9E,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;aAC/C,CAAC;QAChB,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,QAAQ,CAAC,CAC9D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc;QAClC,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,iCAAiC,CAAC,EACvD,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CACrB,cAAc,CAAW,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EACzE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,MAAM,OAAO,CAAsB,CACjF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,IAA4B;QACnE,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAC,EAC1D,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,EACD,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,SAAS,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,IAA6B;QACtE,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,sCAAsC,CAAC,EAC7D,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC,EACD,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAA6B;QACrE,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,qCAAqC,CAAC,EAC5D,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC,EACD,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,WAAW,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC,EACxD,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC,EACD,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,MAAM,OAAO,CAAC,CAAC;QAC/D,CAAC,CACF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,YAAY,CAAC,KAAiB;QAClC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAAE,OAAO;gBAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,MAAM;oBAAE,OAAO;gBAC7C,sFAAsF;gBACtF,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,cAAc,CAAC;YACpB,KAAK,YAAY,CAAC;YAClB,KAAK,gBAAgB;gBACnB,oBAAoB;gBACpB,MAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC/C,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClF,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAClD,YAAY,EAAE,IAAI,CAChB,oBAAoB,EACpB,MAAM,EACN,QAAQ,MAAM,0CAA0C,EACxD,EAAE,MAAM,EAAE,CACX,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,YAAY,EAAE,IAAI,CAChB,kBAAkB,EAClB,OAAO,EACP,cAAc,MAAM,iBAAiB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,EAC3D,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAClD,YAAY,EAAE,IAAI,CAChB,kBAAkB,EAClB,OAAO,EACP,uBAAuB,cAAc,CAAC,GAAG,CAAC,EAAE,EAC5C,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc;QAC5B,IAAI,CAAC;YACH,qEAAqE;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;YAEzD,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;YAEnC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,oEAAoE;gBACpE,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAE/D,kEAAkE;gBAClE,oEAAoE;gBACpE,uCAAuC;gBACvC,IAAI,QAAQ,YAAY,kBAAkB,EAAE,CAAC;oBAC3C,QAAQ,CAAC,aAAa,CAAC,kBAAkB,MAAM,SAAS,QAAQ,CAAC,MAAM,EAAE,EAAE;wBACzE,OAAO,EAAE,OAAO;wBAChB,MAAM,EAAE,OAAO;wBACf,UAAU,EAAE,MAAM;qBACnB,CAAC,CAAC;oBACH,+DAA+D;oBAC/D,sEAAsE;oBACtE,oEAAoE;oBACpE,kEAAkE;oBAClE,mEAAmE;oBACnE,EAAE;oBACF,mEAAmE;oBACnE,iEAAiE;oBACjE,oEAAoE;oBACpE,gEAAgE;oBAChE,uCAAuC;oBACvC,EAAE;oBACF,mEAAmE;oBACnE,gEAAgE;oBAChE,kEAAkE;oBAClE,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,MAAM,EACN,QAAQ,MAAM,oEAAoE,EAClF,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,CACpC,CAAC;oBACF,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;oBACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBACpC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBAClD,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC9B,YAAY,EAAE,IAAI,CAChB,yBAAyB,EACzB,OAAO,EACP,+CAA+C,cAAc,CAAC,GAAG,CAAC,EAAE,EACpE,EAAE,MAAM,EAAE,CACX,CAAC;oBACJ,CAAC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBAEnF,QAAQ;6BACL,WAAW,CAAC;4BACX,UAAU,EAAE,YAAY;4BACxB,IAAI,EAAE,QAAQ,CAAC,MAAM;4BACrB,cAAc,EAAE,SAAS,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;4BAC/C,MAAM,EAAE,GAAG,EAAE;gCACX,YAAY,CAAC,SAAS,CAAC,CAAC;gCACxB,OAAO,EAAE,CAAC;4BACZ,CAAC;4BACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gCACjB,YAAY,CAAC,SAAS,CAAC,CAAC;gCACxB,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BAC3B,CAAC;yBACF,CAAC;6BACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;4BACtB,YAAY,CAAC,SAAS,CAAC,CAAC;4BACxB,MAAM,CAAC,GAAG,CAAC,CAAC;wBACd,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,IAAI,CAChB,iBAAiB,EACjB,OAAO,EACP,aAAa,MAAM,YAAY,cAAc,CAAC,GAAG,CAAC,EAAE,EACpD,EAAE,MAAM,EAAE,CACX,CAAC;YACF,4BAA4B;YAC5B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,OAAqB;QACpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,MAAM;oBACT,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;oBAC3D,MAAM;gBACR,KAAK,UAAU;oBACb,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,SAAS;oBACZ,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oBAClD,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAA2B,CAAC,CAAC;oBAC7E,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC5B,MAAM;YACV,CAAC;YACD,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,yBAAyB,MAAM,CAAC,IAAI,EAAE,EAAE;gBACtF,MAAM;gBACN,UAAU,EAAE,MAAM,CAAC,IAAI;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,mBAAmB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAEjC,+BAA+B;QAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAEpC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9B,YAAY,EAAE,IAAI,CAChB,yBAAyB,EACzB,OAAO,EACP,wCAAwC,cAAc,CAAC,GAAG,CAAC,EAAE,EAC7D,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAc,EACd,MAA8B,EAC9B,KAAc;QAEd,IAAI,CAAC;YACH,MAAM,IAAI,GAA2B,EAAE,MAAM,EAAE,CAAC;YAChD,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,YAAY,EAAE,IAAI,CAChB,sBAAsB,EACtB,MAAM,EACN,4BAA4B,MAAM,KAAK,MAAM,EAAE,EAC/C,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,IAAI,CAChB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,MAAM,YAAY,cAAc,CAAC,GAAG,CAAC,EAAE,EACvD,EAAE,MAAM,EAAE,CACX,CAAC;YACF,kEAAkE;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAwB;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrD,MAAM,UAAU,GAAiE,EAAE,CAAC;YAEpF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACjD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEpC,yFAAyF;YACzF,MAAM,aAAa,GAA2B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC1F,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;YAEH,YAAY,EAAE,IAAI,CAChB,mBAAmB,EACnB,MAAM,EACN,UAAU,UAAU,CAAC,MAAM,iDAAiD,EAC5E,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAC7B,CAAC;YACF,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,EAAE,IAAI,CAChB,yBAAyB,EACzB,OAAO,EACP,qBAAqB,cAAc,CAAC,GAAG,CAAC,EAAE,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,kEAAkE;IAClE,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -1,4 +1,21 @@
1
1
  import type { AgentCommand } from '../types.js';
2
+ import { ClaudeCodeProvider } from '../providers/claude-code/index.js';
3
+ /** Test-only: wipe any tracked in-flight claude-code chat sends. */
4
+ export declare function __resetClaudeChatRegistry(): void;
5
+ /**
6
+ * Register a one-shot reply publisher with the claude-code provider. Called
7
+ * at startup from `main()` once the provider is configured. The publisher
8
+ * receives Claude's async `reply` / `edit_message` tool calls and publishes
9
+ * them to the chat channel via the supplied callback (typically a wrapper
10
+ * around `api.publishResponse` that emits `chat_response`).
11
+ */
12
+ export declare function registerClaudeReplyPublisher(provider: ClaudeCodeProvider, publish: (payload: {
13
+ type: 'chat_response' | 'chat_edit';
14
+ correlationId?: string;
15
+ sessionKey?: string;
16
+ text: string;
17
+ source?: string;
18
+ }) => Promise<void> | void): void;
2
19
  export declare function handleChatListSessions(command: AgentCommand, publish: (data: unknown) => Promise<void>): Promise<void>;
3
20
  export declare function handleChatHistory(command: AgentCommand, publish: (data: unknown) => Promise<void>): Promise<void>;
4
21
  export declare function handleChatSend(command: AgentCommand, publish: (data: unknown) => Promise<void>, agentId: string): Promise<void>;
@@ -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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"}
package/dist/index.js CHANGED
@@ -8,6 +8,8 @@ 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';
@@ -150,6 +152,28 @@ export async function main() {
150
152
  });
151
153
  console.log('Mock provider configured');
152
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
+ }
153
177
  else {
154
178
  console.error(`Unknown provider type: ${providerType}`);
155
179
  process.exit(1);