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.
- package/bin/omnara.js +8 -3
- package/dist/auth/auth-provider.d.ts +2 -2
- package/dist/auth/auth-provider.js +14 -16
- package/dist/auth/auth-provider.js.map +1 -1
- package/dist/auth/cli-auth-service.d.ts +12 -3
- package/dist/auth/cli-auth-service.js +23 -9
- package/dist/auth/cli-auth-service.js.map +1 -1
- package/dist/auth/credential-manager.d.ts +1 -1
- package/dist/auth/credential-manager.js +7 -9
- package/dist/auth/credential-manager.js.map +1 -1
- package/dist/auth/credentials-store.js +14 -20
- package/dist/auth/credentials-store.js.map +1 -1
- package/dist/auth/login-flow.d.ts +2 -2
- package/dist/auth/login-flow.js +128 -39
- package/dist/auth/login-flow.js.map +1 -1
- package/dist/auth/loopback-listener.d.ts +20 -0
- package/dist/auth/loopback-listener.js +155 -0
- package/dist/auth/loopback-listener.js.map +1 -0
- package/dist/auth/pkce.d.ts +6 -0
- package/dist/auth/pkce.js +15 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/supabase-client.d.ts +1 -1
- package/dist/auth/supabase-client.js +3 -6
- package/dist/auth/supabase-client.js.map +1 -1
- package/dist/auth/supabase-config.js +3 -6
- package/dist/auth/supabase-config.js.map +1 -1
- package/dist/cli.js +26 -25
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent.js +36 -38
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/auth.js +13 -16
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/index.d.ts +2 -2
- package/dist/commands/index.js +2 -8
- package/dist/commands/index.js.map +1 -1
- package/dist/http/api-client.js +7 -11
- package/dist/http/api-client.js.map +1 -1
- package/dist/http/user-sessions.d.ts +13 -0
- package/dist/http/user-sessions.js +9 -0
- package/dist/http/user-sessions.js.map +1 -0
- package/dist/orchestrator/agent-orchestrator.d.ts +11 -6
- package/dist/orchestrator/agent-orchestrator.js +226 -57
- package/dist/orchestrator/agent-orchestrator.js.map +1 -1
- package/dist/orchestrator/ai-client.d.ts +5 -4
- package/dist/orchestrator/ai-client.js +17 -14
- package/dist/orchestrator/ai-client.js.map +1 -1
- package/dist/orchestrator/orchestrator-prompt.d.ts +2 -7
- package/dist/orchestrator/orchestrator-prompt.js +7 -154
- package/dist/orchestrator/orchestrator-prompt.js.map +1 -1
- package/dist/orchestrator/orchestrator-prompt.md +405 -0
- package/dist/orchestrator/session.d.ts +7 -3
- package/dist/orchestrator/session.js +56 -34
- package/dist/orchestrator/session.js.map +1 -1
- package/dist/orchestrator/tools/worker-status-tool.d.ts +7 -0
- package/dist/orchestrator/tools/worker-status-tool.js +41 -0
- package/dist/orchestrator/tools/worker-status-tool.js.map +1 -0
- package/dist/orchestrator/tools/worker-tools.d.ts +1 -1
- package/dist/orchestrator/tools/worker-tools.js +73 -89
- package/dist/orchestrator/tools/worker-tools.js.map +1 -1
- package/dist/orchestrator/types.d.ts +19 -29
- package/dist/orchestrator/types.js +22 -25
- package/dist/orchestrator/types.js.map +1 -1
- package/dist/orchestrator/utils/async-queue.d.ts +26 -0
- package/dist/orchestrator/utils/async-queue.js +70 -0
- package/dist/orchestrator/utils/async-queue.js.map +1 -0
- package/dist/orchestrator/utils/session-logger.d.ts +1 -1
- package/dist/orchestrator/utils/session-logger.js +8 -14
- package/dist/orchestrator/utils/session-logger.js.map +1 -1
- package/dist/orchestrator/worker-manager.d.ts +31 -15
- package/dist/orchestrator/worker-manager.js +186 -18
- package/dist/orchestrator/worker-manager.js.map +1 -1
- package/dist/relay/relay-bridge.d.ts +24 -3
- package/dist/relay/relay-bridge.js +382 -90
- package/dist/relay/relay-bridge.js.map +1 -1
- package/dist/relay/relay-service.d.ts +4 -7
- package/dist/relay/relay-service.js +5 -11
- package/dist/relay/relay-service.js.map +1 -1
- package/dist/repl/terminal-repl.js +34 -30
- package/dist/repl/terminal-repl.js.map +1 -1
- package/dist/schemas/generated.d.ts +244 -0
- package/dist/schemas/generated.js +5 -0
- package/dist/schemas/generated.js.map +1 -0
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/scripts/generate-schema-types.js +53 -0
- package/dist/scripts/generate-schema-types.js.map +1 -0
- package/dist/scripts/sync-schemas.d.ts +1 -0
- package/dist/scripts/sync-schemas.js +28 -0
- package/dist/scripts/sync-schemas.js.map +1 -0
- package/dist/utils/prompt.js +4 -10
- package/dist/utils/prompt.js.map +1 -1
- package/dist/voice/voice-service.d.ts +1 -1
- package/dist/voice/voice-service.js +2 -4
- package/dist/voice/voice-service.js.map +1 -1
- package/package.json +6 -2
- package/dist/commands/hello.d.ts +0 -2
- package/dist/commands/hello.js +0 -12
- package/dist/commands/hello.js.map +0 -1
- package/dist/generated/relay.d.ts +0 -240
- package/dist/generated/relay.js +0 -2376
- package/dist/generated/relay.js.map +0 -1
- package/dist/messaging/proto-codec.d.ts +0 -5
- package/dist/messaging/proto-codec.js +0 -387
- package/dist/messaging/proto-codec.js.map +0 -1
- package/dist/server/agent-server.d.ts +0 -46
- package/dist/server/agent-server.js +0 -429
- package/dist/server/agent-server.js.map +0 -1
- package/dist/server/ai-client.d.ts +0 -16
- package/dist/server/ai-client.js +0 -74
- package/dist/server/ai-client.js.map +0 -1
- package/dist/server/session.d.ts +0 -35
- package/dist/server/session.js +0 -272
- package/dist/server/session.js.map +0 -1
- package/dist/server/subagents.d.ts +0 -19
- package/dist/server/subagents.js +0 -42
- package/dist/server/subagents.js.map +0 -1
- package/dist/server/tools/worker-tools.d.ts +0 -2
- package/dist/server/tools/worker-tools.js +0 -37
- package/dist/server/tools/worker-tools.js.map +0 -1
- package/dist/server/types.d.ts +0 -120
- package/dist/server/types.js +0 -29
- package/dist/server/types.js.map +0 -1
- package/dist/server/utils/session-logger.d.ts +0 -7
- package/dist/server/utils/session-logger.js +0 -53
- package/dist/server/utils/session-logger.js.map +0 -1
- package/dist/server/worker-manager.d.ts +0 -67
- package/dist/server/worker-manager.js +0 -207
- package/dist/server/worker-manager.js.map +0 -1
- package/dist/test-agent.js +0 -63
- package/dist/test-agent.js.map +0 -1
- /package/dist/{test-agent.d.ts → scripts/generate-schema-types.d.ts} +0 -0
|
@@ -1,29 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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 ??
|
|
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
|
-
|
|
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 =
|
|
26
|
-
const stream =
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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
|
|
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;
|