omnara 0.1.2 → 0.1.4

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 (132) hide show
  1. package/bin/omnara.js +8 -3
  2. package/dist/auth/auth-provider.d.ts +2 -2
  3. package/dist/auth/auth-provider.js +14 -16
  4. package/dist/auth/auth-provider.js.map +1 -1
  5. package/dist/auth/cli-auth-service.d.ts +12 -3
  6. package/dist/auth/cli-auth-service.js +23 -9
  7. package/dist/auth/cli-auth-service.js.map +1 -1
  8. package/dist/auth/credential-manager.d.ts +1 -1
  9. package/dist/auth/credential-manager.js +7 -9
  10. package/dist/auth/credential-manager.js.map +1 -1
  11. package/dist/auth/credentials-store.js +14 -20
  12. package/dist/auth/credentials-store.js.map +1 -1
  13. package/dist/auth/login-flow.d.ts +2 -2
  14. package/dist/auth/login-flow.js +128 -39
  15. package/dist/auth/login-flow.js.map +1 -1
  16. package/dist/auth/loopback-listener.d.ts +20 -0
  17. package/dist/auth/loopback-listener.js +155 -0
  18. package/dist/auth/loopback-listener.js.map +1 -0
  19. package/dist/auth/pkce.d.ts +6 -0
  20. package/dist/auth/pkce.js +15 -0
  21. package/dist/auth/pkce.js.map +1 -0
  22. package/dist/auth/supabase-client.d.ts +1 -1
  23. package/dist/auth/supabase-client.js +3 -6
  24. package/dist/auth/supabase-client.js.map +1 -1
  25. package/dist/auth/supabase-config.js +3 -6
  26. package/dist/auth/supabase-config.js.map +1 -1
  27. package/dist/cli.js +26 -25
  28. package/dist/cli.js.map +1 -1
  29. package/dist/commands/agent.js +36 -38
  30. package/dist/commands/agent.js.map +1 -1
  31. package/dist/commands/auth.js +13 -16
  32. package/dist/commands/auth.js.map +1 -1
  33. package/dist/commands/index.d.ts +2 -2
  34. package/dist/commands/index.js +2 -8
  35. package/dist/commands/index.js.map +1 -1
  36. package/dist/http/api-client.js +7 -11
  37. package/dist/http/api-client.js.map +1 -1
  38. package/dist/http/user-sessions.d.ts +13 -0
  39. package/dist/http/user-sessions.js +9 -0
  40. package/dist/http/user-sessions.js.map +1 -0
  41. package/dist/orchestrator/agent-orchestrator.d.ts +11 -6
  42. package/dist/orchestrator/agent-orchestrator.js +226 -57
  43. package/dist/orchestrator/agent-orchestrator.js.map +1 -1
  44. package/dist/orchestrator/ai-client.d.ts +5 -4
  45. package/dist/orchestrator/ai-client.js +17 -14
  46. package/dist/orchestrator/ai-client.js.map +1 -1
  47. package/dist/orchestrator/orchestrator-prompt.d.ts +2 -7
  48. package/dist/orchestrator/orchestrator-prompt.js +7 -154
  49. package/dist/orchestrator/orchestrator-prompt.js.map +1 -1
  50. package/dist/orchestrator/orchestrator-prompt.md +405 -0
  51. package/dist/orchestrator/session.d.ts +7 -3
  52. package/dist/orchestrator/session.js +56 -34
  53. package/dist/orchestrator/session.js.map +1 -1
  54. package/dist/orchestrator/tools/worker-status-tool.d.ts +7 -0
  55. package/dist/orchestrator/tools/worker-status-tool.js +41 -0
  56. package/dist/orchestrator/tools/worker-status-tool.js.map +1 -0
  57. package/dist/orchestrator/tools/worker-tools.d.ts +1 -1
  58. package/dist/orchestrator/tools/worker-tools.js +73 -89
  59. package/dist/orchestrator/tools/worker-tools.js.map +1 -1
  60. package/dist/orchestrator/types.d.ts +19 -29
  61. package/dist/orchestrator/types.js +22 -25
  62. package/dist/orchestrator/types.js.map +1 -1
  63. package/dist/orchestrator/utils/async-queue.d.ts +26 -0
  64. package/dist/orchestrator/utils/async-queue.js +70 -0
  65. package/dist/orchestrator/utils/async-queue.js.map +1 -0
  66. package/dist/orchestrator/utils/session-logger.d.ts +1 -1
  67. package/dist/orchestrator/utils/session-logger.js +8 -14
  68. package/dist/orchestrator/utils/session-logger.js.map +1 -1
  69. package/dist/orchestrator/worker-manager.d.ts +31 -15
  70. package/dist/orchestrator/worker-manager.js +186 -18
  71. package/dist/orchestrator/worker-manager.js.map +1 -1
  72. package/dist/relay/relay-bridge.d.ts +24 -3
  73. package/dist/relay/relay-bridge.js +382 -90
  74. package/dist/relay/relay-bridge.js.map +1 -1
  75. package/dist/relay/relay-service.d.ts +4 -7
  76. package/dist/relay/relay-service.js +5 -11
  77. package/dist/relay/relay-service.js.map +1 -1
  78. package/dist/repl/terminal-repl.js +34 -30
  79. package/dist/repl/terminal-repl.js.map +1 -1
  80. package/dist/schemas/generated.d.ts +244 -0
  81. package/dist/schemas/generated.js +5 -0
  82. package/dist/schemas/generated.js.map +1 -0
  83. package/dist/schemas/index.d.ts +2 -0
  84. package/dist/schemas/index.js +2 -0
  85. package/dist/schemas/index.js.map +1 -0
  86. package/dist/scripts/generate-schema-types.js +53 -0
  87. package/dist/scripts/generate-schema-types.js.map +1 -0
  88. package/dist/scripts/sync-schemas.d.ts +1 -0
  89. package/dist/scripts/sync-schemas.js +28 -0
  90. package/dist/scripts/sync-schemas.js.map +1 -0
  91. package/dist/utils/prompt.js +4 -10
  92. package/dist/utils/prompt.js.map +1 -1
  93. package/dist/voice/voice-service.d.ts +1 -1
  94. package/dist/voice/voice-service.js +2 -4
  95. package/dist/voice/voice-service.js.map +1 -1
  96. package/package.json +6 -2
  97. package/dist/commands/hello.d.ts +0 -2
  98. package/dist/commands/hello.js +0 -12
  99. package/dist/commands/hello.js.map +0 -1
  100. package/dist/generated/relay.d.ts +0 -240
  101. package/dist/generated/relay.js +0 -2376
  102. package/dist/generated/relay.js.map +0 -1
  103. package/dist/messaging/proto-codec.d.ts +0 -5
  104. package/dist/messaging/proto-codec.js +0 -387
  105. package/dist/messaging/proto-codec.js.map +0 -1
  106. package/dist/server/agent-server.d.ts +0 -46
  107. package/dist/server/agent-server.js +0 -429
  108. package/dist/server/agent-server.js.map +0 -1
  109. package/dist/server/ai-client.d.ts +0 -16
  110. package/dist/server/ai-client.js +0 -74
  111. package/dist/server/ai-client.js.map +0 -1
  112. package/dist/server/session.d.ts +0 -35
  113. package/dist/server/session.js +0 -272
  114. package/dist/server/session.js.map +0 -1
  115. package/dist/server/subagents.d.ts +0 -19
  116. package/dist/server/subagents.js +0 -42
  117. package/dist/server/subagents.js.map +0 -1
  118. package/dist/server/tools/worker-tools.d.ts +0 -2
  119. package/dist/server/tools/worker-tools.js +0 -37
  120. package/dist/server/tools/worker-tools.js.map +0 -1
  121. package/dist/server/types.d.ts +0 -120
  122. package/dist/server/types.js +0 -29
  123. package/dist/server/types.js.map +0 -1
  124. package/dist/server/utils/session-logger.d.ts +0 -7
  125. package/dist/server/utils/session-logger.js +0 -53
  126. package/dist/server/utils/session-logger.js.map +0 -1
  127. package/dist/server/worker-manager.d.ts +0 -67
  128. package/dist/server/worker-manager.js +0 -207
  129. package/dist/server/worker-manager.js.map +0 -1
  130. package/dist/test-agent.js +0 -63
  131. package/dist/test-agent.js.map +0 -1
  132. /package/dist/{test-agent.d.ts → scripts/generate-schema-types.d.ts} +0 -0
@@ -1,29 +1,23 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createSessionLogger = createSessionLogger;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const os_1 = __importDefault(require("os"));
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
10
4
  function getLogDir() {
11
- return process.env.OMNARA_LOG_DIR ?? path_1.default.join(os_1.default.homedir(), '.omnara', 'omnara-voice');
5
+ return process.env.OMNARA_LOG_DIR ?? path.join(os.homedir(), '.omnara', 'omnara-voice');
12
6
  }
13
7
  function ensureLogDir() {
14
8
  const dir = getLogDir();
15
9
  try {
16
- fs_1.default.mkdirSync(dir, { recursive: true });
10
+ fs.mkdirSync(dir, { recursive: true });
17
11
  }
18
12
  catch {
19
13
  // ignore
20
14
  }
21
15
  return dir;
22
16
  }
23
- function createSessionLogger(sessionId) {
17
+ export function createSessionLogger(sessionId) {
24
18
  const dir = ensureLogDir();
25
- const filePath = path_1.default.join(dir, `${sessionId}.log`);
26
- const stream = fs_1.default.createWriteStream(filePath, { flags: 'a' });
19
+ const filePath = path.join(dir, `${sessionId}.log`);
20
+ const stream = fs.createWriteStream(filePath, { flags: 'a' });
27
21
  const logLine = (direction, payload) => {
28
22
  const timestamp = new Date().toISOString();
29
23
  const serialized = safeStringify(payload);
@@ -1 +1 @@
1
- {"version":3,"file":"session-logger.js","sourceRoot":"","sources":["../../../src/orchestrator/utils/session-logger.ts"],"names":[],"mappings":";;;;;AAyBA,kDAsBC;AA/CD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAGpB,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,YAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,SAAuB,EAAE,OAAgB,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/C,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;QACjD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"session-logger.js","sourceRoot":"","sources":["../../../src/orchestrator/utils/session-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAGpB,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,SAAuB,EAAE,OAAgB,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/C,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;QACjD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { EventEmitter } from 'events';
2
- import type { AgentClient } from './ai-client';
2
+ import type { SDKUserMessage } from '@anthropic-ai/claude-agent-sdk';
3
+ import type { AgentClient } from './ai-client.js';
4
+ import { AsyncQueue } from './utils/async-queue.js';
3
5
  export type WorkerStatus = 'running' | 'completed' | 'error' | 'canceled';
4
6
  export interface WorkerProgressEntry {
5
7
  timestamp: number;
@@ -18,24 +20,18 @@ export interface WorkerRecord {
18
20
  result?: string;
19
21
  error?: string;
20
22
  metadata?: Record<string, unknown>;
21
- }
22
- export interface WorkerUpdatePayload {
23
- id: string;
24
- task: string;
25
- status: WorkerStatus;
26
- prompt: string;
27
- lastUpdateAt: number;
28
- result?: string;
29
- error?: string;
30
- latestMessage?: string;
31
- originSessionId?: string;
32
- sessionId: string;
23
+ messageQueue: AsyncQueue<SDKUserMessage>;
33
24
  }
34
25
  export interface WorkerMessageEvent {
35
26
  record: WorkerRecord;
36
- messageType: 'assistant_text' | 'assistant_complete';
27
+ messageType: 'assistant_text' | 'assistant_complete' | 'tool_call' | 'tool_result';
37
28
  text?: string;
38
29
  success?: boolean;
30
+ toolName?: string;
31
+ toolUseId?: string;
32
+ toolInput?: unknown;
33
+ toolContent?: unknown;
34
+ isError?: boolean;
39
35
  }
40
36
  interface LaunchWorkerOptions {
41
37
  task: string;
@@ -44,7 +40,7 @@ interface LaunchWorkerOptions {
44
40
  metadata?: Record<string, unknown>;
45
41
  }
46
42
  interface WorkerManagerOptions {
47
- createClient: () => AgentClient;
43
+ createClient: (mcpServers?: Record<string, any>) => AgentClient;
48
44
  resolveSessionIdBySdk?: (sdkSessionId?: string) => string | undefined;
49
45
  }
50
46
  export declare class WorkerManager extends EventEmitter {
@@ -55,10 +51,30 @@ export declare class WorkerManager extends EventEmitter {
55
51
  listWorkers(): WorkerRecord[];
56
52
  getWorker(id: string): WorkerRecord | undefined;
57
53
  getWorkerByTask(task: string): WorkerRecord | undefined;
54
+ /**
55
+ * Get a formatted summary of all current worker statuses for inclusion in system prompts.
56
+ * Returns a string describing all active workers and their current state.
57
+ */
58
+ getWorkerStatusSummary(): string;
58
59
  launchWorker({ task, prompt, originSessionId, metadata }: LaunchWorkerOptions): WorkerRecord;
59
60
  cancelWorker(id: string): boolean;
61
+ /**
62
+ * Send a message to a running worker.
63
+ *
64
+ * @param task - The task name of the worker to message
65
+ * @param message - The message content to send
66
+ * @param interrupt - If true, interrupt current generation; if false, queue for next turn
67
+ * @returns true if message was sent, false if worker not found or not running
68
+ */
69
+ messageWorker(task: string, message: string, interrupt: boolean): Promise<boolean>;
60
70
  private emitUpdate;
61
71
  private emitCompleted;
72
+ private handleStatusUpdate;
73
+ /**
74
+ * Create an async iterable stream of user messages for the worker.
75
+ * Yields the initial prompt, then streams any additional messages from the queue.
76
+ */
77
+ private createMessageStream;
62
78
  private runWorker;
63
79
  private handleMessage;
64
80
  private extractAssistantText;
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WorkerManager = void 0;
4
- const events_1 = require("events");
5
- const crypto_1 = require("crypto");
6
- class WorkerManager extends events_1.EventEmitter {
1
+ import { EventEmitter } from 'events';
2
+ import { randomUUID } from 'crypto';
3
+ import { createWorkerStatusMcpServer } from './tools/worker-status-tool.js';
4
+ import { AsyncQueue } from './utils/async-queue.js';
5
+ export class WorkerManager extends EventEmitter {
6
+ options;
7
+ workers = new Map();
8
+ runningQueries = new Map();
7
9
  constructor(options) {
8
10
  super();
9
11
  this.options = options;
10
- this.workers = new Map();
11
- this.runningQueries = new Map();
12
12
  }
13
13
  listWorkers() {
14
14
  return Array.from(this.workers.values());
@@ -24,22 +24,55 @@ class WorkerManager extends events_1.EventEmitter {
24
24
  }
25
25
  return undefined;
26
26
  }
27
+ /**
28
+ * Get a formatted summary of all current worker statuses for inclusion in system prompts.
29
+ * Returns a string describing all active workers and their current state.
30
+ */
31
+ getWorkerStatusSummary() {
32
+ const workers = this.listWorkers();
33
+ if (workers.length === 0) {
34
+ return 'No active workers.';
35
+ }
36
+ const lines = ['## Current Worker Status'];
37
+ lines.push('');
38
+ for (const worker of workers) {
39
+ const latestMsg = worker.progress.length > 0
40
+ ? worker.progress[worker.progress.length - 1]?.message
41
+ : undefined;
42
+ lines.push(`**Task: "${worker.task}"**`);
43
+ lines.push(`- Status: ${worker.status}`);
44
+ lines.push(`- Worker ID: ${worker.id}`);
45
+ if (worker.status === 'completed' && worker.result) {
46
+ lines.push(`- Result: ${worker.result}`);
47
+ }
48
+ else if (worker.status === 'error' && worker.error) {
49
+ lines.push(`- Error: ${worker.error}`);
50
+ }
51
+ else if (latestMsg) {
52
+ lines.push(`- Latest: ${latestMsg}`);
53
+ }
54
+ lines.push('');
55
+ }
56
+ return lines.join('\n');
57
+ }
27
58
  launchWorker({ task, prompt, originSessionId, metadata }) {
28
- const id = (0, crypto_1.randomUUID)();
59
+ // Use a single UUID for both worker ID and session ID to unify them
60
+ const sessionId = randomUUID();
29
61
  const resolvedOriginSessionId = originSessionId;
30
62
  const record = {
31
- id,
63
+ id: sessionId, // Worker ID is the same as session ID
32
64
  task,
33
65
  prompt,
34
66
  status: 'running',
35
- sessionId: (0, crypto_1.randomUUID)(),
67
+ sessionId,
36
68
  startedAt: Date.now(),
37
69
  lastUpdateAt: Date.now(),
38
70
  originSessionId: resolvedOriginSessionId,
39
71
  progress: [],
40
72
  metadata,
73
+ messageQueue: new AsyncQueue(),
41
74
  };
42
- this.workers.set(id, record);
75
+ this.workers.set(sessionId, record);
43
76
  this.emit('session_start', { ...record });
44
77
  this.emitUpdate(record);
45
78
  void this.runWorker(record, prompt);
@@ -72,18 +105,127 @@ class WorkerManager extends events_1.EventEmitter {
72
105
  // Ignore interrupt errors; status already updated.
73
106
  });
74
107
  }
108
+ // Close the message queue
109
+ record.messageQueue.close();
75
110
  return true;
76
111
  }
112
+ /**
113
+ * Send a message to a running worker.
114
+ *
115
+ * @param task - The task name of the worker to message
116
+ * @param message - The message content to send
117
+ * @param interrupt - If true, interrupt current generation; if false, queue for next turn
118
+ * @returns true if message was sent, false if worker not found or not running
119
+ */
120
+ async messageWorker(task, message, interrupt) {
121
+ const record = this.getWorkerByTask(task);
122
+ if (!record) {
123
+ return false;
124
+ }
125
+ if (record.status !== 'running') {
126
+ return false;
127
+ }
128
+ // Log the message being sent to progress for internal tracking
129
+ // Note: We don't emit an update here because the user already sees the message_worker tool call.
130
+ // We only emit updates when the worker's actual state changes (status, completion, etc.)
131
+ record.progress.push({
132
+ timestamp: Date.now(),
133
+ message: `[ORCHESTRATOR MESSAGE${interrupt ? ' - INTERRUPT' : ''}]: ${message}`,
134
+ });
135
+ record.lastUpdateAt = Date.now();
136
+ // If interrupt is requested, interrupt the current query
137
+ if (interrupt) {
138
+ const query = this.runningQueries.get(record.id);
139
+ if (query) {
140
+ try {
141
+ await query.interrupt();
142
+ }
143
+ catch (error) {
144
+ console.error('[WorkerManager] Failed to interrupt worker:', error);
145
+ }
146
+ }
147
+ }
148
+ // Create SDK user message and push to queue
149
+ const userMessage = {
150
+ session_id: record.sessionId,
151
+ type: 'user',
152
+ message: {
153
+ role: 'user',
154
+ content: message,
155
+ },
156
+ parent_tool_use_id: null,
157
+ isSynthetic: true,
158
+ };
159
+ try {
160
+ record.messageQueue.push(userMessage);
161
+ return true;
162
+ }
163
+ catch (error) {
164
+ console.error('[WorkerManager] Failed to queue message:', error);
165
+ return false;
166
+ }
167
+ }
77
168
  emitUpdate(record) {
78
169
  this.emit('update', { ...record });
79
170
  }
80
171
  emitCompleted(record) {
81
172
  this.emit('completed', { ...record });
82
173
  }
174
+ handleStatusUpdate(record, event) {
175
+ console.log('[WorkerManager] Status update received:', {
176
+ workerId: record.id,
177
+ task: record.task,
178
+ message: event.message,
179
+ metadata: event.metadata,
180
+ });
181
+ record.progress.push({
182
+ timestamp: event.timestamp,
183
+ message: event.message,
184
+ });
185
+ record.lastUpdateAt = event.timestamp;
186
+ this.emitUpdate(record);
187
+ }
188
+ /**
189
+ * Create an async iterable stream of user messages for the worker.
190
+ * Yields the initial prompt, then streams any additional messages from the queue.
191
+ */
192
+ async *createMessageStream(initialPrompt, sessionId, messageQueue) {
193
+ // Yield initial prompt as first message
194
+ yield {
195
+ session_id: sessionId,
196
+ type: 'user',
197
+ message: {
198
+ role: 'user',
199
+ content: initialPrompt,
200
+ },
201
+ parent_tool_use_id: null,
202
+ };
203
+ // Continue yielding messages from the queue
204
+ for await (const message of messageQueue) {
205
+ yield message;
206
+ }
207
+ }
83
208
  async runWorker(record, prompt) {
84
- const client = this.options.createClient();
209
+ // Create status update MCP server for this worker
210
+ const statusMcpServer = createWorkerStatusMcpServer((event) => {
211
+ this.handleStatusUpdate(record, event);
212
+ });
213
+ console.log('[WorkerManager] Creating worker client with status MCP server:', {
214
+ workerId: record.id,
215
+ task: record.task,
216
+ hasMcpServer: !!statusMcpServer,
217
+ });
218
+ // Create client with status MCP server
219
+ const client = this.options.createClient({
220
+ worker_status: statusMcpServer,
221
+ });
222
+ // Wrap the prompt with worker instructions
85
223
  const workerPrompt = this.wrapPrompt(prompt);
86
- const query = client.createQuery(workerPrompt);
224
+ // Create message stream that includes initial prompt and any future messages
225
+ const messageStream = this.createMessageStream(workerPrompt, record.sessionId, record.messageQueue);
226
+ // Create query with the message stream for continuous message support
227
+ const query = client.createQuery(messageStream);
228
+ // Store the query reference for interrupt support
87
229
  this.runningQueries.set(record.id, query);
88
230
  const summarizedChunks = [];
89
231
  try {
@@ -127,12 +269,15 @@ class WorkerManager extends events_1.EventEmitter {
127
269
  this.emitCompleted(record);
128
270
  }
129
271
  finally {
272
+ // Close the message queue to signal no more messages
273
+ record.messageQueue.close();
130
274
  this.runningQueries.delete(record.id);
131
275
  }
132
276
  }
133
277
  handleMessage(record, message, summarizedChunks) {
134
278
  switch (message.type) {
135
279
  case 'assistant': {
280
+ // Extract text content
136
281
  const text = this.extractAssistantText(message);
137
282
  if (text) {
138
283
  summarizedChunks.push(text);
@@ -141,13 +286,38 @@ class WorkerManager extends events_1.EventEmitter {
141
286
  message: text,
142
287
  });
143
288
  record.lastUpdateAt = Date.now();
144
- this.emitUpdate(record);
145
289
  this.emit('message', {
146
290
  record,
147
291
  messageType: 'assistant_text',
148
292
  text,
149
293
  });
150
294
  }
295
+ // Extract tool uses from assistant message content
296
+ const content = message.message.content;
297
+ let hasToolUse = false;
298
+ if (Array.isArray(content)) {
299
+ for (const block of content) {
300
+ if (block && typeof block === 'object' && 'type' in block) {
301
+ if (block.type === 'tool_use' && 'name' in block && 'id' in block) {
302
+ hasToolUse = true;
303
+ this.emit('message', {
304
+ record,
305
+ messageType: 'tool_call',
306
+ toolName: block.name,
307
+ toolUseId: block.id,
308
+ toolInput: 'input' in block ? block.input : undefined,
309
+ });
310
+ }
311
+ }
312
+ }
313
+ }
314
+ // If the assistant message has no tool uses, the conversation is likely done
315
+ // Close the message queue to signal to SDK that no more messages are coming
316
+ // This allows the SDK to emit the final 'result' message and complete the query
317
+ if (!hasToolUse && !record.messageQueue.isClosed()) {
318
+ console.log('[WorkerManager] Assistant message without tool use - closing message queue to signal completion');
319
+ record.messageQueue.close();
320
+ }
151
321
  break;
152
322
  }
153
323
  case 'stream_event': {
@@ -158,7 +328,6 @@ class WorkerManager extends events_1.EventEmitter {
158
328
  message: text,
159
329
  });
160
330
  record.lastUpdateAt = Date.now();
161
- this.emitUpdate(record);
162
331
  }
163
332
  break;
164
333
  }
@@ -242,9 +411,8 @@ class WorkerManager extends events_1.EventEmitter {
242
411
  }
243
412
  }
244
413
  wrapPrompt(userPrompt) {
245
- const directive = `\n\nIMPORTANT:\n- Provide concise status updates prefixed with "STATUS:" whenever you make progress.\n- When finished, output a final summary prefixed with "RESULT:".\n- Do not include raw diffs or large file dumps unless explicitly asked.\n`;
414
+ const directive = `\n\nIMPORTANT:\n- Use the mcp__worker_status__send_status_update tool to report progress as you work.\n- When finished, output a final summary.\n- Do not include raw diffs or large file dumps unless explicitly asked.\n`;
246
415
  return `${userPrompt.trim()}\n${directive}`;
247
416
  }
248
417
  }
249
- exports.WorkerManager = WorkerManager;
250
418
  //# sourceMappingURL=worker-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-manager.js","sourceRoot":"","sources":["../../src/orchestrator/worker-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-manager.js","sourceRoot":"","sources":["../../src/orchestrator/worker-manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from 'events';
2
- import { AgentOrchestrator } from '../orchestrator/agent-orchestrator';
3
- import { CredentialsStore } from '../auth/credentials-store';
2
+ import { AgentOrchestrator } from '../orchestrator/agent-orchestrator.js';
3
+ import { CredentialsStore } from '../auth/credentials-store.js';
4
4
  export interface RelayBridgeOptions {
5
5
  store?: CredentialsStore;
6
6
  logger?: Console;
@@ -20,15 +20,36 @@ export declare class RelayBridge extends EventEmitter {
20
20
  private pingTimer;
21
21
  private heartbeatIntervalMs;
22
22
  private authProviderPromise;
23
- private currentSessionId;
23
+ private userSessionId;
24
+ private currentAgentSessionId;
24
25
  constructor(orchestrator: AgentOrchestrator, options: RelayBridgeOptions);
25
26
  start(): Promise<void>;
26
27
  stop(): Promise<void>;
27
28
  private establishConnection;
28
29
  private getAuthProvider;
30
+ private ensureAgentSessionExists;
31
+ private ensureUserSession;
32
+ private sendPrimarySessionInit;
33
+ private sendFrame;
29
34
  private handleWebsocketLifecycle;
30
35
  private handleOutbound;
31
36
  private handleInbound;
37
+ private toRelayFrame;
38
+ private tryHandleControlMessage;
39
+ private tryHandleMessageEnvelope;
40
+ private handleSessionBootstrap;
41
+ private handleSessionInitAck;
42
+ private handleSessionAnnounce;
43
+ private handleMessageEnvelope;
44
+ private isTextContent;
45
+ private buildTextEnvelope;
46
+ private buildToolCallEnvelope;
47
+ private normalizeToolArguments;
48
+ private buildToolResultEnvelope;
49
+ private buildAgentCompleteEnvelope;
50
+ private buildProgressEnvelope;
51
+ private buildEnvelope;
52
+ private isMessageEnvelope;
32
53
  private enqueue;
33
54
  private flushQueue;
34
55
  private startPingTimer;