@mohanscodex/spectra-agent 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { StreamOptions, Message, AssistantMessage } from "@mohanscodex/spectra-ai";
2
+ import type { AgentTool, AgentEvent, AgentEventListener, AgentConfig } from "./types.js";
3
+ type QueueMode = "all" | "one-at-a-time";
4
+ export declare class Agent {
5
+ private tools;
6
+ private listeners;
7
+ private abortController;
8
+ private _isStreaming;
9
+ private _streamingMessage?;
10
+ private _pendingToolCalls;
11
+ private _errorMessage?;
12
+ private _messages;
13
+ private model;
14
+ private systemPrompt?;
15
+ private maxTurns?;
16
+ private toolExecution;
17
+ private beforeToolCallHook?;
18
+ private afterToolCallHook?;
19
+ private transformContextFn?;
20
+ private getApiKeyFn?;
21
+ private streamOptions?;
22
+ private steeringQueue;
23
+ private followUpQueue;
24
+ private convertToLlmFn?;
25
+ private maxRetryDelayMs;
26
+ private retryCount;
27
+ constructor(config: AgentConfig & {
28
+ streamOptions?: StreamOptions;
29
+ steeringMode?: QueueMode;
30
+ followUpMode?: QueueMode;
31
+ convertToLlm?: (messages: Message[]) => Message[] | Promise<Message[]>;
32
+ maxRetryDelayMs?: number;
33
+ });
34
+ get messages(): Message[];
35
+ restoreHistory(messages: Message[]): void;
36
+ get isStreaming(): boolean;
37
+ get streamingMessage(): AssistantMessage | undefined;
38
+ get pendingToolCalls(): ReadonlySet<string>;
39
+ get errorMessage(): string | undefined;
40
+ get signal(): AbortSignal | undefined;
41
+ registerTool(tool: AgentTool): void;
42
+ subscribe(listener: AgentEventListener): () => void;
43
+ steer(message: string | Message): void;
44
+ followUp(message: string | Message): void;
45
+ abort(): void;
46
+ reset(): void;
47
+ run(input: string | Message | Message[]): AsyncGenerator<AgentEvent>;
48
+ private runLoop;
49
+ private streamAssistantResponse;
50
+ private streamWithRetry;
51
+ private sleep;
52
+ private doStream;
53
+ private executeToolCallsSequential;
54
+ private executeToolCallsParallel;
55
+ private prepareToolCalls;
56
+ private executePreparedToolCall;
57
+ private executeSingleToolCall;
58
+ private finalizeToolCall;
59
+ private buildContext;
60
+ private createErrorMessage;
61
+ private normalizeInput;
62
+ }
63
+ export {};
64
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,OAAO,EACP,gBAAgB,EAGjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,SAAS,EAMT,UAAU,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,KAAK,SAAS,GAAG,KAAK,GAAG,eAAe,CAAC;AAqDzC,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAiB;IAElC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,kBAAkB,CAAC,CAAgC;IAC3D,OAAO,CAAC,iBAAiB,CAAC,CAA+B;IACzD,OAAO,CAAC,kBAAkB,CAAC,CAAkC;IAC7D,OAAO,CAAC,WAAW,CAAC,CAA2B;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAC,CAA0D;IACjF,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAK;gBAEX,MAAM,EAAE,WAAW,GAAG;QAChC,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAmBD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAgC;IAEzD,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAGzC,IAAI,WAAW,IAAI,OAAO,CAA8B;IACxD,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAAmC;IACvF,IAAI,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,CAAmC;IAC9E,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAA+B;IACrE,IAAI,MAAM,IAAI,WAAW,GAAG,SAAS,CAAyC;IAE9E,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAEnC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAOnD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAOtC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAOzC,KAAK,IAAI,IAAI;IAEb,KAAK,IAAI,IAAI;IAQN,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;YA0D7D,OAAO;YAoFP,uBAAuB;YAavB,eAAe;IAiC7B,OAAO,CAAC,KAAK;YAIC,QAAQ;YAoER,0BAA0B;YAc1B,wBAAwB;YAgBxB,gBAAgB;YA8EhB,uBAAuB;YAyCvB,qBAAqB;YAUrB,gBAAgB;IAkC9B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,cAAc;CASvB"}
package/dist/agent.js ADDED
@@ -0,0 +1,508 @@
1
+ import { stream, EventStream } from "@mohanscodex/spectra-ai";
2
+ class PendingMessageQueue {
3
+ mode;
4
+ messages = [];
5
+ constructor(mode) {
6
+ this.mode = mode;
7
+ }
8
+ enqueue(message) {
9
+ this.messages.push(message);
10
+ }
11
+ hasItems() {
12
+ return this.messages.length > 0;
13
+ }
14
+ drain() {
15
+ if (this.mode === "all") {
16
+ const drained = this.messages.slice();
17
+ this.messages = [];
18
+ return drained;
19
+ }
20
+ const first = this.messages[0];
21
+ if (!first)
22
+ return [];
23
+ this.messages = this.messages.slice(1);
24
+ return [first];
25
+ }
26
+ clear() {
27
+ this.messages = [];
28
+ }
29
+ }
30
+ class AgentEventStream extends EventStream {
31
+ constructor() {
32
+ super((event) => event.type === "agent_end", (event) => {
33
+ if (event.type === "agent_end") {
34
+ return event.messages;
35
+ }
36
+ return [];
37
+ });
38
+ }
39
+ }
40
+ export class Agent {
41
+ tools = new Map();
42
+ listeners = [];
43
+ abortController = null;
44
+ _isStreaming = false;
45
+ _streamingMessage;
46
+ _pendingToolCalls = new Set();
47
+ _errorMessage;
48
+ _messages = [];
49
+ model;
50
+ systemPrompt;
51
+ maxTurns;
52
+ toolExecution;
53
+ beforeToolCallHook;
54
+ afterToolCallHook;
55
+ transformContextFn;
56
+ getApiKeyFn;
57
+ streamOptions;
58
+ steeringQueue;
59
+ followUpQueue;
60
+ convertToLlmFn;
61
+ maxRetryDelayMs;
62
+ retryCount = 0;
63
+ constructor(config) {
64
+ this.model = config.model;
65
+ this.systemPrompt = config.systemPrompt;
66
+ this.maxTurns = config.maxTurns;
67
+ this.toolExecution = config.toolExecution ?? "parallel";
68
+ this.beforeToolCallHook = config.beforeToolCall;
69
+ this.afterToolCallHook = config.afterToolCall;
70
+ this.transformContextFn = config.transformContext;
71
+ this.getApiKeyFn = config.getApiKey;
72
+ this.streamOptions = config.streamOptions;
73
+ this.steeringQueue = new PendingMessageQueue(config.steeringMode ?? "one-at-a-time");
74
+ this.followUpQueue = new PendingMessageQueue(config.followUpMode ?? "one-at-a-time");
75
+ this.convertToLlmFn = config.convertToLlm;
76
+ this.maxRetryDelayMs = config.maxRetryDelayMs ?? 30000;
77
+ for (const tool of config.tools ?? []) {
78
+ this.tools.set(tool.name, tool);
79
+ }
80
+ }
81
+ get messages() { return [...this._messages]; }
82
+ restoreHistory(messages) {
83
+ this._messages = [...messages];
84
+ }
85
+ get isStreaming() { return this._isStreaming; }
86
+ get streamingMessage() { return this._streamingMessage; }
87
+ get pendingToolCalls() { return this._pendingToolCalls; }
88
+ get errorMessage() { return this._errorMessage; }
89
+ get signal() { return this.abortController?.signal; }
90
+ registerTool(tool) { this.tools.set(tool.name, tool); }
91
+ subscribe(listener) {
92
+ this.listeners.push(listener);
93
+ return () => {
94
+ this.listeners = this.listeners.filter((l) => l !== listener);
95
+ };
96
+ }
97
+ steer(message) {
98
+ const msg = typeof message === "string"
99
+ ? { role: "user", content: message, timestamp: Date.now() }
100
+ : message;
101
+ this.steeringQueue.enqueue(msg);
102
+ }
103
+ followUp(message) {
104
+ const msg = typeof message === "string"
105
+ ? { role: "user", content: message, timestamp: Date.now() }
106
+ : message;
107
+ this.followUpQueue.enqueue(msg);
108
+ }
109
+ abort() { this.abortController?.abort(); }
110
+ reset() {
111
+ this._messages = [];
112
+ this._isStreaming = false;
113
+ this._streamingMessage = undefined;
114
+ this._pendingToolCalls = new Set();
115
+ this._errorMessage = undefined;
116
+ }
117
+ async *run(input) {
118
+ const agentStream = new AgentEventStream();
119
+ const emit = async (event) => {
120
+ agentStream.push(event);
121
+ for (const listener of this.listeners) {
122
+ try {
123
+ await listener(event, this.abortController?.signal);
124
+ }
125
+ catch {
126
+ // Isolate listener errors so one failing subscriber doesn't break others
127
+ }
128
+ }
129
+ if (event.type === "agent_end") {
130
+ agentStream.end(event.messages);
131
+ }
132
+ };
133
+ const userMessages = this.normalizeInput(input);
134
+ if (this._isStreaming)
135
+ throw new Error("Agent is already processing a prompt");
136
+ this.abortController = new AbortController();
137
+ this._isStreaming = true;
138
+ this._errorMessage = undefined;
139
+ for (const msg of userMessages) {
140
+ this._messages.push(msg);
141
+ }
142
+ // Emit initial events synchronously before starting the loop
143
+ await emit({ type: "agent_start" });
144
+ for (const msg of userMessages) {
145
+ await emit({ type: "message_start", message: msg });
146
+ await emit({ type: "message_end", message: msg });
147
+ }
148
+ await emit({ type: "turn_start" });
149
+ // Start runLoop fire-and-forget so we can yield events progressively
150
+ const runPromise = this.runLoop(emit)
151
+ .catch(async (err) => {
152
+ this._errorMessage = err instanceof Error ? err.message : String(err);
153
+ // Safety net: always emit agent_end so the generator doesn't hang
154
+ await emit({ type: "agent_end", messages: this._messages });
155
+ })
156
+ .finally(() => {
157
+ this._isStreaming = false;
158
+ this._streamingMessage = undefined;
159
+ this._pendingToolCalls = new Set();
160
+ this.abortController = null;
161
+ });
162
+ // Yield events to consumer as they arrive during streaming
163
+ for await (const event of agentStream) {
164
+ yield event;
165
+ }
166
+ // Ensure runLoop has fully completed
167
+ await runPromise;
168
+ }
169
+ async runLoop(emit) {
170
+ let turns = 0;
171
+ while (!this.abortController?.signal.aborted) {
172
+ // Check maxTurns limit only if configured
173
+ if (this.maxTurns !== undefined && turns >= this.maxTurns) {
174
+ break;
175
+ }
176
+ if (turns > 0) {
177
+ await emit({ type: "turn_start" });
178
+ }
179
+ turns++;
180
+ let ctxMessages = this._messages;
181
+ if (this.transformContextFn) {
182
+ ctxMessages = await this.transformContextFn(ctxMessages, this.abortController.signal);
183
+ }
184
+ const resolvedApiKey = this.getApiKeyFn
185
+ ? await this.getApiKeyFn(this.model.provider)
186
+ : this.streamOptions?.apiKey;
187
+ const context = this.buildContext(ctxMessages);
188
+ const opts = { ...this.streamOptions, apiKey: resolvedApiKey, signal: this.abortController?.signal };
189
+ let assistantMessage;
190
+ try {
191
+ assistantMessage = await this.streamAssistantResponse(context, opts, emit);
192
+ }
193
+ catch (err) {
194
+ this._errorMessage = err instanceof Error ? err.message : String(err);
195
+ const errorMsg = this.createErrorMessage(err);
196
+ this._messages.push(errorMsg);
197
+ await emit({ type: "message_start", message: errorMsg });
198
+ await emit({ type: "message_end", message: errorMsg });
199
+ await emit({ type: "agent_end", messages: this._messages });
200
+ return;
201
+ }
202
+ // Note: streamAssistantResponse already manages adding the assistant message to _messages
203
+ // and emits message_start/message_end events, so we don't duplicate here
204
+ const toolCalls = assistantMessage.content.filter((c) => c.type === "toolCall");
205
+ if (toolCalls.length === 0) {
206
+ await emit({ type: "turn_end", message: assistantMessage, toolResults: [] });
207
+ await emit({ type: "agent_end", messages: this._messages });
208
+ return;
209
+ }
210
+ const toolResults = this.toolExecution === "sequential"
211
+ ? await this.executeToolCallsSequential(toolCalls, assistantMessage, emit)
212
+ : await this.executeToolCallsParallel(toolCalls, assistantMessage, emit);
213
+ await emit({ type: "turn_end", message: assistantMessage, toolResults });
214
+ // Check steering queue after tool execution
215
+ const steeringMessages = this.steeringQueue.drain();
216
+ if (steeringMessages.length > 0) {
217
+ for (const msg of steeringMessages) {
218
+ this._messages.push(msg);
219
+ await emit({ type: "message_start", message: msg });
220
+ await emit({ type: "message_end", message: msg });
221
+ }
222
+ // Continue loop with steering messages
223
+ continue;
224
+ }
225
+ // Check follow-up queue before ending
226
+ const followUpMessages = this.followUpQueue.drain();
227
+ if (followUpMessages.length > 0) {
228
+ for (const msg of followUpMessages) {
229
+ this._messages.push(msg);
230
+ await emit({ type: "message_start", message: msg });
231
+ await emit({ type: "message_end", message: msg });
232
+ }
233
+ // Reset turns and continue with follow-up messages
234
+ turns = 0;
235
+ continue;
236
+ }
237
+ }
238
+ await emit({ type: "agent_end", messages: this._messages });
239
+ }
240
+ async streamAssistantResponse(context, opts, emit) {
241
+ // Apply convertToLlm hook if provided
242
+ if (this.convertToLlmFn) {
243
+ context.messages = await this.convertToLlmFn(context.messages);
244
+ }
245
+ return this.streamWithRetry(context, opts, emit);
246
+ }
247
+ async streamWithRetry(context, opts, emit) {
248
+ const maxRetries = 3;
249
+ let lastError;
250
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
251
+ try {
252
+ return await this.doStream(context, opts, emit);
253
+ }
254
+ catch (err) {
255
+ lastError = err instanceof Error ? err : new Error(String(err));
256
+ // Don't retry if aborted
257
+ if (this.abortController?.signal.aborted)
258
+ throw err;
259
+ // Don't retry on 4xx errors (client errors)
260
+ if (lastError.message.includes("400") || lastError.message.includes("401") ||
261
+ lastError.message.includes("403") || lastError.message.includes("404")) {
262
+ throw err;
263
+ }
264
+ if (attempt < maxRetries) {
265
+ const delay = Math.min(1000 * Math.pow(2, attempt), this.maxRetryDelayMs);
266
+ await this.sleep(delay);
267
+ }
268
+ }
269
+ }
270
+ throw lastError;
271
+ }
272
+ sleep(ms) {
273
+ return new Promise(resolve => setTimeout(resolve, ms));
274
+ }
275
+ async doStream(context, opts, emit) {
276
+ let partialMessage = null;
277
+ let addedPartial = false;
278
+ const eventStream = stream(this.model, context, opts);
279
+ for await (const event of eventStream) {
280
+ if (this.abortController?.signal.aborted)
281
+ break;
282
+ switch (event.type) {
283
+ case "start":
284
+ partialMessage = event.partial;
285
+ this._streamingMessage = partialMessage;
286
+ this._messages.push(partialMessage);
287
+ addedPartial = true;
288
+ await emit({ type: "message_start", message: { ...partialMessage } });
289
+ break;
290
+ case "text_start":
291
+ case "text_delta":
292
+ case "text_end":
293
+ case "thinking_start":
294
+ case "thinking_delta":
295
+ case "thinking_end":
296
+ case "toolcall_start":
297
+ case "toolcall_delta":
298
+ case "toolcall_end":
299
+ if (partialMessage) {
300
+ partialMessage = event.partial;
301
+ this._messages[this._messages.length - 1] = partialMessage;
302
+ this._streamingMessage = partialMessage;
303
+ await emit({ type: "message_update", message: { ...partialMessage }, assistantMessageEvent: event });
304
+ }
305
+ break;
306
+ case "done":
307
+ case "error":
308
+ const finalMessage = await eventStream.result();
309
+ if (addedPartial) {
310
+ this._messages[this._messages.length - 1] = finalMessage;
311
+ }
312
+ else {
313
+ this._messages.push(finalMessage);
314
+ }
315
+ if (!addedPartial) {
316
+ await emit({ type: "message_start", message: { ...finalMessage } });
317
+ }
318
+ await emit({ type: "message_end", message: finalMessage });
319
+ this._streamingMessage = undefined;
320
+ return finalMessage;
321
+ }
322
+ }
323
+ const finalMessage = await eventStream.result();
324
+ if (addedPartial) {
325
+ this._messages[this._messages.length - 1] = finalMessage;
326
+ }
327
+ else {
328
+ this._messages.push(finalMessage);
329
+ await emit({ type: "message_start", message: { ...finalMessage } });
330
+ }
331
+ await emit({ type: "message_end", message: finalMessage });
332
+ this._streamingMessage = undefined;
333
+ return finalMessage;
334
+ }
335
+ async executeToolCallsSequential(toolCalls, assistantMessage, emit) {
336
+ const results = [];
337
+ for (const tc of toolCalls) {
338
+ if (this.abortController?.signal.aborted)
339
+ break;
340
+ const result = await this.executeSingleToolCall(tc, assistantMessage, emit);
341
+ results.push(result);
342
+ }
343
+ return results;
344
+ }
345
+ async executeToolCallsParallel(toolCalls, assistantMessage, emit) {
346
+ // Phase 1: Prepare all tool calls sequentially (validation + hooks)
347
+ const prepared = await this.prepareToolCalls(toolCalls, assistantMessage, emit);
348
+ // Phase 2: Execute all prepared tool calls in parallel
349
+ const executed = await Promise.all(prepared.map((p) => this.executePreparedToolCall(p, assistantMessage, emit)));
350
+ return executed;
351
+ }
352
+ async prepareToolCalls(toolCalls, assistantMessage, emit) {
353
+ const prepared = [];
354
+ for (const toolCall of toolCalls) {
355
+ if (this.abortController?.signal.aborted)
356
+ break;
357
+ await emit({ type: "tool_execution_start", toolCallId: toolCall.id, toolName: toolCall.name, args: toolCall.arguments });
358
+ this._pendingToolCalls.add(toolCall.id);
359
+ const tool = this.tools.get(toolCall.name);
360
+ if (!tool) {
361
+ prepared.push({
362
+ toolCall,
363
+ tool: null,
364
+ args: toolCall.arguments,
365
+ blocked: true,
366
+ blockReason: `Unknown tool "${toolCall.name}"`,
367
+ });
368
+ continue;
369
+ }
370
+ let args = toolCall.arguments;
371
+ if (tool.prepareArguments) {
372
+ try {
373
+ args = tool.prepareArguments(args);
374
+ }
375
+ catch (err) {
376
+ prepared.push({
377
+ toolCall,
378
+ tool: null,
379
+ args,
380
+ blocked: true,
381
+ blockReason: `Argument validation failed: ${err instanceof Error ? err.message : String(err)}`,
382
+ });
383
+ continue;
384
+ }
385
+ }
386
+ if (this.beforeToolCallHook) {
387
+ try {
388
+ const result = await this.beforeToolCallHook({ assistantMessage, toolCall, args, context: this.buildContext() }, this.abortController?.signal);
389
+ if (result?.block) {
390
+ prepared.push({
391
+ toolCall,
392
+ tool: null,
393
+ args,
394
+ blocked: true,
395
+ blockReason: result.reason ?? "Tool call blocked",
396
+ });
397
+ continue;
398
+ }
399
+ if (result?.transform) {
400
+ args = result.transform.modifiedArgs;
401
+ }
402
+ }
403
+ catch (err) {
404
+ prepared.push({
405
+ toolCall,
406
+ tool: null,
407
+ args,
408
+ blocked: true,
409
+ blockReason: `beforeToolCall hook error: ${err instanceof Error ? err.message : String(err)}`,
410
+ });
411
+ continue;
412
+ }
413
+ }
414
+ prepared.push({ toolCall, tool, args, blocked: false });
415
+ }
416
+ return prepared;
417
+ }
418
+ async executePreparedToolCall(prepared, assistantMessage, emit) {
419
+ const { toolCall, tool, args, blocked, blockReason } = prepared;
420
+ if (blocked) {
421
+ this._pendingToolCalls.delete(toolCall.id);
422
+ return this.finalizeToolCall(toolCall, { content: [{ type: "text", text: blockReason ?? "Tool call blocked" }], isError: true }, true, assistantMessage, emit);
423
+ }
424
+ let toolResult;
425
+ try {
426
+ const onUpdate = (partial) => {
427
+ emit({
428
+ type: "tool_execution_update",
429
+ toolCallId: toolCall.id,
430
+ toolName: toolCall.name,
431
+ args,
432
+ partialResult: partial,
433
+ });
434
+ };
435
+ toolResult = await tool.execute(toolCall.id, args, this.abortController?.signal, onUpdate);
436
+ }
437
+ catch (err) {
438
+ toolResult = {
439
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
440
+ isError: true,
441
+ };
442
+ }
443
+ this._pendingToolCalls.delete(toolCall.id);
444
+ return this.finalizeToolCall(toolCall, toolResult, toolResult.isError ?? false, assistantMessage, emit);
445
+ }
446
+ async executeSingleToolCall(toolCall, assistantMessage, emit) {
447
+ // Sequential path: prepare then execute immediately
448
+ const [prepared] = await this.prepareToolCalls([toolCall], assistantMessage, emit);
449
+ return this.executePreparedToolCall(prepared, assistantMessage, emit);
450
+ }
451
+ async finalizeToolCall(toolCall, result, isError, assistantMessage, emit) {
452
+ if (this.afterToolCallHook) {
453
+ try {
454
+ const override = await this.afterToolCallHook({ assistantMessage, toolCall, args: toolCall.arguments, result, isError, context: this.buildContext() }, this.abortController?.signal);
455
+ if (override) {
456
+ if (override.content)
457
+ result = { ...result, content: override.content };
458
+ if (override.isError !== undefined)
459
+ isError = override.isError;
460
+ }
461
+ }
462
+ catch {
463
+ // Hook errors should not break tool execution
464
+ }
465
+ }
466
+ const msg = { role: "toolResult", toolCallId: toolCall.id, toolName: toolCall.name, content: result.content, details: result.details, isError, timestamp: Date.now() };
467
+ this._messages.push(msg);
468
+ // Emit message events so consumers can track tool results in the transcript
469
+ await emit({ type: "message_start", message: msg });
470
+ await emit({ type: "message_end", message: msg });
471
+ await emit({ type: "tool_execution_end", toolCallId: toolCall.id, toolName: toolCall.name, result, isError });
472
+ return msg;
473
+ }
474
+ buildContext(messages) {
475
+ const toolDefs = Array.from(this.tools.values()).map((t) => ({
476
+ name: t.name,
477
+ description: t.description,
478
+ parameters: t.parameters,
479
+ }));
480
+ return {
481
+ systemPrompt: this.systemPrompt,
482
+ messages: messages ?? this._messages,
483
+ tools: toolDefs.length > 0 ? toolDefs : undefined,
484
+ };
485
+ }
486
+ createErrorMessage(err) {
487
+ return {
488
+ role: "assistant",
489
+ content: [],
490
+ provider: this.model.provider,
491
+ model: this.model.id,
492
+ usage: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, totalTokens: 0 },
493
+ stopReason: "error",
494
+ errorMessage: err instanceof Error ? err.message : String(err),
495
+ timestamp: Date.now(),
496
+ };
497
+ }
498
+ normalizeInput(input) {
499
+ if (Array.isArray(input)) {
500
+ return input.map((m) => typeof m === "string" ? { role: "user", content: m, timestamp: Date.now() } : m);
501
+ }
502
+ if (typeof input === "string") {
503
+ return [{ role: "user", content: input, timestamp: Date.now() }];
504
+ }
505
+ return [input];
506
+ }
507
+ }
508
+ //# sourceMappingURL=agent.js.map