agentfootprint 1.4.2 → 1.7.1

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 (159) hide show
  1. package/AGENTS.md +12 -32
  2. package/CLAUDE.md +20 -30
  3. package/README.md +1 -1
  4. package/dist/adapters/anthropic/AnthropicAdapter.js +9 -10
  5. package/dist/adapters/anthropic/AnthropicAdapter.js.map +1 -1
  6. package/dist/adapters/browser/BrowserAnthropicAdapter.js +26 -8
  7. package/dist/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
  8. package/dist/concepts/LLMCall.js +6 -0
  9. package/dist/concepts/LLMCall.js.map +1 -1
  10. package/dist/concepts/RAG.js +7 -1
  11. package/dist/concepts/RAG.js.map +1 -1
  12. package/dist/concepts/Swarm.js +1 -0
  13. package/dist/concepts/Swarm.js.map +1 -1
  14. package/dist/esm/adapters/anthropic/AnthropicAdapter.js +9 -10
  15. package/dist/esm/adapters/anthropic/AnthropicAdapter.js.map +1 -1
  16. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js +26 -8
  17. package/dist/esm/adapters/browser/BrowserAnthropicAdapter.js.map +1 -1
  18. package/dist/esm/concepts/LLMCall.js +6 -0
  19. package/dist/esm/concepts/LLMCall.js.map +1 -1
  20. package/dist/esm/concepts/RAG.js +7 -1
  21. package/dist/esm/concepts/RAG.js.map +1 -1
  22. package/dist/esm/concepts/Swarm.js +1 -0
  23. package/dist/esm/concepts/Swarm.js.map +1 -1
  24. package/dist/esm/executor/agentLoop.js +4 -0
  25. package/dist/esm/executor/agentLoop.js.map +1 -1
  26. package/dist/esm/index.js +6 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/lib/call/callLLMStage.js +41 -0
  29. package/dist/esm/lib/call/callLLMStage.js.map +1 -1
  30. package/dist/esm/lib/call/helpers.js +361 -3
  31. package/dist/esm/lib/call/helpers.js.map +1 -1
  32. package/dist/esm/lib/call/parseResponseStage.js +12 -3
  33. package/dist/esm/lib/call/parseResponseStage.js.map +1 -1
  34. package/dist/esm/lib/call/streamingCallLLMStage.js +42 -0
  35. package/dist/esm/lib/call/streamingCallLLMStage.js.map +1 -1
  36. package/dist/esm/lib/call/toolExecutionSubflow.js +5 -2
  37. package/dist/esm/lib/call/toolExecutionSubflow.js.map +1 -1
  38. package/dist/esm/lib/concepts/AgentBuilder.js +83 -0
  39. package/dist/esm/lib/concepts/AgentBuilder.js.map +1 -1
  40. package/dist/esm/lib/concepts/AgentRunner.js +77 -63
  41. package/dist/esm/lib/concepts/AgentRunner.js.map +1 -1
  42. package/dist/esm/lib/instructions/InstructionRecorder.js +6 -2
  43. package/dist/esm/lib/instructions/InstructionRecorder.js.map +1 -1
  44. package/dist/esm/lib/loop/buildAgentLoop.js +132 -4
  45. package/dist/esm/lib/loop/buildAgentLoop.js.map +1 -1
  46. package/dist/esm/lib/narrative/agentRenderer.js +79 -14
  47. package/dist/esm/lib/narrative/agentRenderer.js.map +1 -1
  48. package/dist/esm/observe.barrel.js +2 -0
  49. package/dist/esm/observe.barrel.js.map +1 -1
  50. package/dist/esm/providers.barrel.js +1 -1
  51. package/dist/esm/providers.barrel.js.map +1 -1
  52. package/dist/esm/recorders/CostRecorder.js +20 -16
  53. package/dist/esm/recorders/CostRecorder.js.map +1 -1
  54. package/dist/esm/recorders/ExplainRecorder.js +4 -0
  55. package/dist/esm/recorders/ExplainRecorder.js.map +1 -1
  56. package/dist/esm/recorders/RecorderBridge.js +11 -5
  57. package/dist/esm/recorders/RecorderBridge.js.map +1 -1
  58. package/dist/esm/recorders/TokenRecorder.js +26 -24
  59. package/dist/esm/recorders/TokenRecorder.js.map +1 -1
  60. package/dist/esm/recorders/ToolUsageRecorder.js +21 -17
  61. package/dist/esm/recorders/ToolUsageRecorder.js.map +1 -1
  62. package/dist/esm/streaming/StreamEmitter.js.map +1 -1
  63. package/dist/executor/agentLoop.js +4 -0
  64. package/dist/executor/agentLoop.js.map +1 -1
  65. package/dist/index.js +15 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib/call/callLLMStage.js +41 -0
  68. package/dist/lib/call/callLLMStage.js.map +1 -1
  69. package/dist/lib/call/helpers.js +364 -4
  70. package/dist/lib/call/helpers.js.map +1 -1
  71. package/dist/lib/call/parseResponseStage.js +12 -3
  72. package/dist/lib/call/parseResponseStage.js.map +1 -1
  73. package/dist/lib/call/streamingCallLLMStage.js +42 -0
  74. package/dist/lib/call/streamingCallLLMStage.js.map +1 -1
  75. package/dist/lib/call/toolExecutionSubflow.js +5 -2
  76. package/dist/lib/call/toolExecutionSubflow.js.map +1 -1
  77. package/dist/lib/concepts/AgentBuilder.js +83 -0
  78. package/dist/lib/concepts/AgentBuilder.js.map +1 -1
  79. package/dist/lib/concepts/AgentRunner.js +77 -63
  80. package/dist/lib/concepts/AgentRunner.js.map +1 -1
  81. package/dist/lib/instructions/InstructionRecorder.js +6 -2
  82. package/dist/lib/instructions/InstructionRecorder.js.map +1 -1
  83. package/dist/lib/loop/buildAgentLoop.js +132 -4
  84. package/dist/lib/loop/buildAgentLoop.js.map +1 -1
  85. package/dist/lib/narrative/agentRenderer.js +79 -14
  86. package/dist/lib/narrative/agentRenderer.js.map +1 -1
  87. package/dist/observe.barrel.js +4 -1
  88. package/dist/observe.barrel.js.map +1 -1
  89. package/dist/providers.barrel.js +3 -1
  90. package/dist/providers.barrel.js.map +1 -1
  91. package/dist/recorders/CostRecorder.js +20 -16
  92. package/dist/recorders/CostRecorder.js.map +1 -1
  93. package/dist/recorders/ExplainRecorder.js +4 -0
  94. package/dist/recorders/ExplainRecorder.js.map +1 -1
  95. package/dist/recorders/RecorderBridge.js +11 -5
  96. package/dist/recorders/RecorderBridge.js.map +1 -1
  97. package/dist/recorders/TokenRecorder.js +26 -24
  98. package/dist/recorders/TokenRecorder.js.map +1 -1
  99. package/dist/recorders/ToolUsageRecorder.js +21 -17
  100. package/dist/recorders/ToolUsageRecorder.js.map +1 -1
  101. package/dist/streaming/StreamEmitter.js.map +1 -1
  102. package/dist/types/adapters/browser/BrowserAnthropicAdapter.d.ts.map +1 -1
  103. package/dist/types/concepts/LLMCall.d.ts.map +1 -1
  104. package/dist/types/concepts/RAG.d.ts.map +1 -1
  105. package/dist/types/concepts/Swarm.d.ts.map +1 -1
  106. package/dist/types/concepts/index.d.ts +1 -1
  107. package/dist/types/concepts/index.d.ts.map +1 -1
  108. package/dist/types/core/recorders.d.ts +4 -0
  109. package/dist/types/core/recorders.d.ts.map +1 -1
  110. package/dist/types/executor/agentLoop.d.ts.map +1 -1
  111. package/dist/types/index.d.ts +6 -0
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/dist/types/lib/call/callLLMStage.d.ts.map +1 -1
  114. package/dist/types/lib/call/helpers.d.ts +45 -1
  115. package/dist/types/lib/call/helpers.d.ts.map +1 -1
  116. package/dist/types/lib/call/parseResponseStage.d.ts.map +1 -1
  117. package/dist/types/lib/call/streamingCallLLMStage.d.ts.map +1 -1
  118. package/dist/types/lib/call/toolExecutionSubflow.d.ts +12 -0
  119. package/dist/types/lib/call/toolExecutionSubflow.d.ts.map +1 -1
  120. package/dist/types/lib/concepts/Agent.d.ts +1 -1
  121. package/dist/types/lib/concepts/Agent.d.ts.map +1 -1
  122. package/dist/types/lib/concepts/AgentBuilder.d.ts +90 -0
  123. package/dist/types/lib/concepts/AgentBuilder.d.ts.map +1 -1
  124. package/dist/types/lib/concepts/AgentRunner.d.ts +19 -0
  125. package/dist/types/lib/concepts/AgentRunner.d.ts.map +1 -1
  126. package/dist/types/lib/concepts/index.d.ts +1 -1
  127. package/dist/types/lib/concepts/index.d.ts.map +1 -1
  128. package/dist/types/lib/instructions/InstructionRecorder.d.ts +3 -2
  129. package/dist/types/lib/instructions/InstructionRecorder.d.ts.map +1 -1
  130. package/dist/types/lib/loop/buildAgentLoop.d.ts.map +1 -1
  131. package/dist/types/lib/loop/types.d.ts +38 -0
  132. package/dist/types/lib/loop/types.d.ts.map +1 -1
  133. package/dist/types/lib/narrative/agentRenderer.d.ts +7 -2
  134. package/dist/types/lib/narrative/agentRenderer.d.ts.map +1 -1
  135. package/dist/types/observe.barrel.d.ts +1 -0
  136. package/dist/types/observe.barrel.d.ts.map +1 -1
  137. package/dist/types/providers.barrel.d.ts +1 -1
  138. package/dist/types/providers.barrel.d.ts.map +1 -1
  139. package/dist/types/recorders/CostRecorder.d.ts +17 -13
  140. package/dist/types/recorders/CostRecorder.d.ts.map +1 -1
  141. package/dist/types/recorders/ExplainRecorder.d.ts +3 -0
  142. package/dist/types/recorders/ExplainRecorder.d.ts.map +1 -1
  143. package/dist/types/recorders/RecorderBridge.d.ts +7 -3
  144. package/dist/types/recorders/RecorderBridge.d.ts.map +1 -1
  145. package/dist/types/recorders/TokenRecorder.d.ts +17 -18
  146. package/dist/types/recorders/TokenRecorder.d.ts.map +1 -1
  147. package/dist/types/recorders/ToolUsageRecorder.d.ts +15 -11
  148. package/dist/types/recorders/ToolUsageRecorder.d.ts.map +1 -1
  149. package/dist/types/scope/types.d.ts +7 -0
  150. package/dist/types/scope/types.d.ts.map +1 -1
  151. package/dist/types/streaming/StreamEmitter.d.ts +9 -0
  152. package/dist/types/streaming/StreamEmitter.d.ts.map +1 -1
  153. package/dist/types/types/agent.d.ts +7 -0
  154. package/dist/types/types/agent.d.ts.map +1 -1
  155. package/dist/types/types/multiAgent.d.ts +7 -0
  156. package/dist/types/types/multiAgent.d.ts.map +1 -1
  157. package/dist/types/types/tools.d.ts +19 -3
  158. package/dist/types/types/tools.d.ts.map +1 -1
  159. package/package.json +4 -5
@@ -32,6 +32,9 @@ class Agent {
32
32
  enableStreaming = false;
33
33
  enableVerboseNarrative = false;
34
34
  outputResponseFormat;
35
+ parallelToolsEnabled = false;
36
+ customRoute;
37
+ maxIdenticalFailuresValue;
35
38
  constructor(options) {
36
39
  this.provider = (0, createProvider_1.resolveProvider)(options.provider);
37
40
  this.agentName = options.name ?? 'agent';
@@ -93,6 +96,81 @@ class Agent {
93
96
  this.enableStreaming = enabled;
94
97
  return this;
95
98
  }
99
+ /**
100
+ * Run multiple tool calls within a single turn concurrently via Promise.all.
101
+ *
102
+ * Only beneficial when the LLM requests 2+ independent tool calls in one turn
103
+ * (e.g., "look up customer, orders, and product in parallel"). Results are
104
+ * appended to the conversation in the order the LLM requested them.
105
+ *
106
+ * **Caveat:** decide() functions on tool-level instructions mutate a shared
107
+ * Decision Scope — in parallel mode those mutations are not serialized.
108
+ * If your instructions rely on strict ordering, keep sequential (default).
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * Agent.create({ provider })
113
+ * .tools([getCustomer, getOrders, getProduct])
114
+ * .parallelTools(true)
115
+ * .build();
116
+ * ```
117
+ */
118
+ parallelTools(enabled = true) {
119
+ this.parallelToolsEnabled = enabled;
120
+ return this;
121
+ }
122
+ /**
123
+ * Register user-defined routing branches evaluated BEFORE the default
124
+ * `tool-calls | final` routing. First matching `when` predicate wins.
125
+ *
126
+ * Useful for injecting escalation paths, safety gates, or bespoke handlers
127
+ * without touching the Agent loop internals. The default tool-calls and
128
+ * final branches still apply when no user branch matches.
129
+ *
130
+ * @example
131
+ * ```ts
132
+ * Agent.create({ provider })
133
+ * .tool(searchTool)
134
+ * .route({
135
+ * branches: [
136
+ * { id: 'escalate', when: (s) => s.parsedResponse.content.includes('[ESCALATE]'), runner: humanReviewAgent },
137
+ * ],
138
+ * })
139
+ * .build();
140
+ * ```
141
+ */
142
+ route(config) {
143
+ this.customRoute = config;
144
+ return this;
145
+ }
146
+ /**
147
+ * Set the repeated-identical-failure escalation threshold. When a tool call
148
+ * with the exact same (name, args) has failed this many times in a row, a
149
+ * one-shot `escalation` field is injected into that tool result content
150
+ * urging the LLM to change arguments, switch tools, or finalize. Fires
151
+ * exactly once per (name, args) key per conversation — further identical
152
+ * failures are left bare to avoid token bloat.
153
+ *
154
+ * Defaults to `3`. Pass `0` to disable escalation entirely.
155
+ *
156
+ * @example
157
+ * ```ts
158
+ * Agent.create({ provider })
159
+ * .tools([...])
160
+ * .maxIdenticalFailures(2) // fire escalation after 2 identical failures
161
+ * .build();
162
+ *
163
+ * // Disable entirely:
164
+ * Agent.create({ provider }).tools([...]).maxIdenticalFailures(0).build();
165
+ * ```
166
+ */
167
+ maxIdenticalFailures(n) {
168
+ if (!Number.isFinite(n) || n < 0) {
169
+ throw new Error(`AgentBuilder.maxIdenticalFailures: expected a non-negative finite number, got ${n}`);
170
+ }
171
+ this.maxIdenticalFailuresValue = n;
172
+ return this;
173
+ }
96
174
  /**
97
175
  * Enable verbose narrative — full values, no truncation.
98
176
  * Shows complete system prompts, tool results, and LLM outputs in the narrative.
@@ -221,6 +299,11 @@ class Agent {
221
299
  streaming: this.enableStreaming,
222
300
  verboseNarrative: this.enableVerboseNarrative,
223
301
  responseFormat: this.outputResponseFormat,
302
+ parallelTools: this.parallelToolsEnabled,
303
+ customRoute: this.customRoute,
304
+ ...(this.maxIdenticalFailuresValue !== undefined && {
305
+ maxIdenticalFailures: this.maxIdenticalFailuresValue,
306
+ }),
224
307
  });
225
308
  }
226
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentBuilder.js","sourceRoot":"","sources":["../../../src/lib/concepts/AgentBuilder.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,9 @@ class AgentRunner {
36
36
  initialDecision;
37
37
  streamingEnabled;
38
38
  responseFormat;
39
+ parallelToolsEnabled;
40
+ customRoute;
41
+ maxIdenticalFailures;
39
42
  cachedDecideFunctions;
40
43
  conversationHistory = [];
41
44
  lastExecutor;
@@ -59,6 +62,9 @@ class AgentRunner {
59
62
  this.initialDecision = options.initialDecision;
60
63
  this.streamingEnabled = options.streaming ?? false;
61
64
  this.responseFormat = options.responseFormat;
65
+ this.parallelToolsEnabled = options.parallelTools ?? false;
66
+ this.customRoute = options.customRoute;
67
+ this.maxIdenticalFailures = options.maxIdenticalFailures;
62
68
  this.verboseNarrative = options.verboseNarrative ?? false;
63
69
  if (this.verboseNarrative) {
64
70
  this.narrativeRenderer = (0, narrative_1.createAgentRenderer)({ verbose: true });
@@ -174,37 +180,10 @@ class AgentRunner {
174
180
  const executor = new footprintjs_1.FlowChartExecutor(chart, executorOpts);
175
181
  executor.enableNarrative({ renderer: this.narrativeRenderer });
176
182
  executor.attachRecorder(new footprintjs_1.MetricRecorder('metrics'));
177
- const llmCaptures = [];
178
- let lastSystemPrompt;
179
- let lastToolDescriptions;
180
- let lastMessages;
183
+ // Capture LLM responses + per-call context during traversal
184
+ const { recorder: llmCaptureRecorder, captures: llmCaptures } = this.createLLMCaptureRecorder(bridge);
181
185
  if (bridge) {
182
- const llmCapture = {
183
- id: '__llm-capture',
184
- onWrite(event) {
185
- if (event.key === 'systemPrompt' && typeof event.value === 'string') {
186
- lastSystemPrompt = event.value;
187
- }
188
- if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
189
- lastToolDescriptions = event.value;
190
- }
191
- if (event.key === 'messages' && Array.isArray(event.value)) {
192
- lastMessages = event.value;
193
- }
194
- // adapterRawResponse fires AFTER context writes — snapshot context per call
195
- if (event.key === 'adapterRawResponse' && event.value) {
196
- llmCaptures.push({
197
- response: event.value,
198
- context: {
199
- systemPrompt: lastSystemPrompt,
200
- toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
201
- messages: lastMessages ? [...lastMessages] : undefined,
202
- },
203
- });
204
- }
205
- },
206
- };
207
- executor.attachRecorder(llmCapture);
186
+ executor.attachRecorder(llmCaptureRecorder);
208
187
  }
209
188
  const startMs = Date.now();
210
189
  try {
@@ -227,6 +206,7 @@ class AgentRunner {
227
206
  content: '',
228
207
  iterations: pauseResult.iterations,
229
208
  paused: true,
209
+ reason: 'paused',
230
210
  });
231
211
  return pauseResult;
232
212
  }
@@ -235,12 +215,16 @@ class AgentRunner {
235
215
  type: 'turn_end',
236
216
  content: agentResult.content,
237
217
  iterations: agentResult.iterations,
218
+ ...(agentResult.maxIterationsReached && { reason: 'maxIterations' }),
238
219
  });
239
220
  if (bridge) {
240
221
  // Dispatch per-iteration LLM calls — each with its own context snapshot
241
222
  const perCallMs = llmCaptures.length > 0 ? Math.round((Date.now() - startMs) / llmCaptures.length) : 0;
242
223
  for (const capture of llmCaptures) {
243
- bridge.dispatchLLMCall(capture.response, perCallMs, capture.context);
224
+ bridge.dispatchLLMCall(capture.response, perCallMs, {
225
+ ...capture.context,
226
+ runtimeStageId: capture.runtimeStageId,
227
+ });
244
228
  }
245
229
  bridge.dispatchTurnComplete(agentResult.content, agentResult.messages.length, agentResult.iterations);
246
230
  }
@@ -281,49 +265,68 @@ class AgentRunner {
281
265
  if (!checkpoint) {
282
266
  throw new Error('Cannot resume: no checkpoint available.');
283
267
  }
284
- // Capture LLM calls + context during resume (same pattern as run())
268
+ // Capture LLM calls + context during resume (same factory as run())
285
269
  const bridge = this.recorders.length > 0 ? new RecorderBridge_1.RecorderBridge(this.recorders) : null;
286
- const llmCaptures = [];
287
- let lastSystemPrompt;
288
- let lastToolDescriptions;
289
- let lastMessages;
270
+ const { recorder: llmCaptureRecorder, captures: llmCaptures } = this.createLLMCaptureRecorder(bridge);
290
271
  if (bridge) {
291
- const llmCapture = {
292
- id: '__llm-capture-resume',
293
- onWrite(event) {
294
- if (event.key === 'systemPrompt' && typeof event.value === 'string') {
295
- lastSystemPrompt = event.value;
296
- }
297
- if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
298
- lastToolDescriptions = event.value;
299
- }
300
- if (event.key === 'messages' && Array.isArray(event.value)) {
301
- lastMessages = event.value;
302
- }
303
- if (event.key === 'adapterRawResponse' && event.value) {
304
- llmCaptures.push({
305
- response: event.value,
306
- context: {
307
- systemPrompt: lastSystemPrompt,
308
- toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
309
- messages: lastMessages ? [...lastMessages] : undefined,
310
- },
311
- });
312
- }
313
- },
314
- };
315
- executor.attachRecorder(llmCapture);
272
+ executor.attachRecorder(llmCaptureRecorder);
316
273
  }
317
274
  const startMs = Date.now();
318
275
  await executor.resume(checkpoint, humanResponse);
319
276
  if (bridge) {
320
277
  const perCallMs = llmCaptures.length > 0 ? Math.round((Date.now() - startMs) / llmCaptures.length) : 0;
321
278
  for (const capture of llmCaptures) {
322
- bridge.dispatchLLMCall(capture.response, perCallMs, capture.context);
279
+ bridge.dispatchLLMCall(capture.response, perCallMs, {
280
+ ...capture.context,
281
+ runtimeStageId: capture.runtimeStageId,
282
+ });
323
283
  }
324
284
  }
325
285
  return this.buildResult(executor);
326
286
  }
287
+ /**
288
+ * Create a scope recorder that captures LLM responses + context during traversal.
289
+ * Shared by run() and resume() — eliminates duplication and ensures both paths
290
+ * track runtimeStageId for stream bridge tool events.
291
+ */
292
+ createLLMCaptureRecorder(bridge) {
293
+ const captures = [];
294
+ let lastSystemPrompt;
295
+ let lastToolDescriptions;
296
+ let lastMessages;
297
+ const recorder = {
298
+ id: '__llm-capture',
299
+ onStageStart(event) {
300
+ // Track current stage runtimeStageId — bridge reads it for stream tool events
301
+ if (bridge)
302
+ bridge.setToolRuntimeStageId(event.runtimeStageId);
303
+ },
304
+ onWrite(event) {
305
+ if (event.key === 'systemPrompt' && typeof event.value === 'string') {
306
+ lastSystemPrompt = event.value;
307
+ }
308
+ if (event.key === 'toolDescriptions' && Array.isArray(event.value)) {
309
+ lastToolDescriptions = event.value;
310
+ }
311
+ if (event.key === 'messages' && Array.isArray(event.value)) {
312
+ lastMessages = event.value;
313
+ }
314
+ // adapterRawResponse fires AFTER context writes — snapshot context per call
315
+ if (event.key === 'adapterRawResponse' && event.value) {
316
+ captures.push({
317
+ response: event.value,
318
+ runtimeStageId: event.runtimeStageId,
319
+ context: {
320
+ systemPrompt: lastSystemPrompt,
321
+ toolDescriptions: lastToolDescriptions ? [...lastToolDescriptions] : undefined,
322
+ messages: lastMessages ? [...lastMessages] : undefined,
323
+ },
324
+ });
325
+ }
326
+ },
327
+ };
328
+ return { recorder, captures };
329
+ }
327
330
  /** Extract AgentResult from executor state — shared by run() and resume(). */
328
331
  buildResult(executor) {
329
332
  if (executor.isPaused()) {
@@ -344,8 +347,14 @@ class AgentRunner {
344
347
  const lastAsst = (0, memory_1.lastAssistantMessage)(messages);
345
348
  const result = state.result ?? (lastAsst ? (0, content_1.getTextContent)(lastAsst.content) : '');
346
349
  const iterations = state.loopCount ?? 0;
350
+ const maxIterationsReached = state.maxIterationsReached === true;
347
351
  this.conversationHistory = messages;
348
- return { content: result, messages, iterations };
352
+ return {
353
+ content: result,
354
+ messages,
355
+ iterations,
356
+ ...(maxIterationsReached && { maxIterationsReached: true }),
357
+ };
349
358
  }
350
359
  getNarrative() {
351
360
  return this.lastExecutor?.getNarrative() ?? [];
@@ -398,6 +407,11 @@ class AgentRunner {
398
407
  decideFunctions: this.cachedDecideFunctions,
399
408
  streaming: this.streamingEnabled,
400
409
  responseFormat: this.responseFormat,
410
+ parallelTools: this.parallelToolsEnabled,
411
+ ...(this.maxIdenticalFailures !== undefined && {
412
+ maxIdenticalFailures: this.maxIdenticalFailures,
413
+ }),
414
+ routeExtensions: this.customRoute?.branches,
401
415
  onStreamEvent,
402
416
  onInstructionsFired: (toolId, fired) => {
403
417
  for (const rec of this.recorders) {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../../../src/lib/concepts/AgentRunner.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAAgE;AAOhE,kCAAuD;AACvD,kDAA8E;AAK9E,4CAAmD;AACnD,wDAA6D;AAE7D,0DAA6D;AAC7D,0EAAuE;AACvE,2DAAwD;AACxD,mEAAgE;AAEhE,yCAAoD;AACpD,iDAAqD;AACrD,uCAA+E;AAI/E,mEAAgE;AAwBhE,MAAa,WAAW;IACd,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;IACnB,QAAQ,CAAc;IAC9B,IAAI,CAAS;IACL,gBAAgB,CAAU;IAC1B,QAAQ,CAAe;IACvB,OAAO,CAAS;IAChB,SAAS,CAAkB;IAC3B,YAAY,CAAgB;IAC5B,YAAY,CAAe;IAC3B,oBAAoB,CAAkB;IACtC,kBAAkB,CAAgB;IAClC,oBAAoB,CAA4C;IAChE,iBAAiB,CAA+B;IAChD,eAAe,CAAqC;IACpD,gBAAgB,CAAU;IAC1B,cAAc,CAAkB;IAChC,qBAAqB,CAAiC;IAC/D,mBAAmB,GAAc,EAAE,CAAC;IACpC,YAAY,CAAqB;IACjC,QAAQ,CAAW;IACV,gBAAgB,CAAU;IACnC,iBAAiB,GAAG,IAAA,+BAAmB,GAAE,CAAC;IACjC,gBAAgB,GAAG,IAAI,qCAAsB,EAAE,CAAC;IAEjE,YAAY,OAA2B;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,IAAI,mBAAY,CAAC,OAAO,CAAC;QAC5D,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1D,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAA,+BAAmB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,wEAAwE;QACxE,gFAAgF;QAChF,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;4BAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,8EAA8E;QAC9E,+FAA+F;QAC/F,IAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;wBACtC,IAAI,IAAI,CAAC,MAAM;4BAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,WAAW;QACT,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAc,EACpC,IAAI,CAAC,WAAW,EAAE,EAClB;YACE,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,IAAI;SAClB,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAgB,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,GAAG,CACP,OAAe,EACf,OAOC;QAED,uEAAuE;QACvE,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC;QAC/F,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CACV,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,sFAAsF;QACtF,MAAM,UAAU,GACd,OAAO,EAAE,OAAO;YAChB,CAAC,OAAO,EAAE,OAAO;gBACf,CAAC,CAAC,CAAC,CAAmB,EAAE,EAAE;oBACtB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,CAAC,OAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACtD,CAAC;gBACH,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,MAAM,aAAa,GAAwC,UAAU;YACnE,CAAC,CAAC,CAAC,KAAuB,EAAE,EAAE;gBAC1B,IAAI,CAAC;oBACH,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa;gBACf,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9D,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpE,MAAM,YAAY,GAAc;oBAC9B,GAAG,IAAI,CAAC,mBAAmB;oBAC3B,IAAA,mBAAW,EAAC,OAAO,CAAC;oBACpB,IAAA,wBAAgB,EAAC,SAAS,YAAY,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE;wBAC9D;4BACE,EAAE,EAAE,eAAe,EAAE,WAAW,CAAC,gBAAgB,EAAE;4BACnD,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM;4BAClC,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM;yBACxC;qBACF,CAAC;oBACF,IAAA,yBAAiB,EAAC,UAAU,CAAC,OAAO,EAAE,eAAe,WAAW,CAAC,gBAAgB,EAAE,CAAC;iBACrF,CAAC;gBACF,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;QAElF,gGAAgG;QAChG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,+BAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,aAAa,GAAG,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACxD,MAAM,iBAAiB,GACrB,aAAa,IAAI,aAAa;YAC5B,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YACH,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC;QAErC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAA,qBAAc,EACvD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,EACnC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,EACrE,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAgB,CAAC,CAAC;QAEpD,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,YAAY,GAA6B,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACzE,IAAI,iBAAiB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,YAAY,CAAC,cAAc,GAAG;gBAC5B,OAAO,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE,CAC5C,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACtD,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;gBACjB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;aAChB,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,+BAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/D,QAAQ,CAAC,cAAc,CAAC,IAAI,4BAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QAcvD,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,IAAI,gBAAoC,CAAC;QACzC,IAAI,oBAA8E,CAAC;QACnF,IAAI,YAAmE,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAa;gBAC3B,EAAE,EAAE,eAAe;gBACnB,OAAO,CAAC,KAAiB;oBACvB,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACpE,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;oBACjC,CAAC;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnE,oBAAoB,GAAG,KAAK,CAAC,KAAqD,CAAC;oBACrF,CAAC;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3D,YAAY,GAAG,KAAK,CAAC,KAAkD,CAAC;oBAC1E,CAAC;oBACD,4EAA4E;oBAC5E,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACtD,WAAW,CAAC,IAAI,CAAC;4BACf,QAAQ,EAAE,KAAK,CAAC,KAAoB;4BACpC,OAAO,EAAE;gCACP,YAAY,EAAE,gBAAgB;gCAC9B,gBAAgB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS;gCAC9E,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;6BACvD;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;aACF,CAAC;YACF,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,GAAG,CAAC;gBACjB,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,SAAS,EAAE,OAAO,EAAE,SAAS;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;YAC7B,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAE7B,kFAAkF;QAClF,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC/C,aAAa,EAAE,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE/C,aAAa,EAAE,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;SACnC,CAAC,CAAC;QAEH,IAAI,MAAM,EAAE,CAAC;YACX,wEAAwE;YACxE,MAAM,SAAS,GACb,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,CAAC,oBAAoB,CACzB,WAAW,CAAC,OAAO,EACnB,WAAW,CAAC,QAAQ,CAAC,MAAM,EAC3B,WAAW,CAAC,UAAU,CACvB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,sEAAsE;IACtE,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,oEAAoE;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,+BAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QASrF,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,IAAI,gBAAoC,CAAC;QACzC,IAAI,oBAA8E,CAAC;QACnF,IAAI,YAAmE,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAa;gBAC3B,EAAE,EAAE,sBAAsB;gBAC1B,OAAO,CAAC,KAAiB;oBACvB,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBACpE,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;oBACjC,CAAC;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnE,oBAAoB,GAAG,KAAK,CAAC,KAAqD,CAAC;oBACrF,CAAC;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3D,YAAY,GAAG,KAAK,CAAC,KAAkD,CAAC;oBAC1E,CAAC;oBACD,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBACtD,WAAW,CAAC,IAAI,CAAC;4BACf,QAAQ,EAAE,KAAK,CAAC,KAAoB;4BACpC,OAAO,EAAE;gCACP,YAAY,EAAE,gBAAgB;gCAC9B,gBAAgB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS;gCAC9E,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;6BACvD;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;aACF,CAAC;YACF,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GACb,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,8EAA8E;IACtE,WAAW,CAAC,QAA2B;QAC7C,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,cAAc,GAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,QAAsB,IAAI,EAAE,CAAC;YAC1F,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,cAAc;gBACxB,UAAU,EAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,SAAoB,IAAI,CAAC;gBAC3E,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,EAAE,EAAE,SAAiE;aACjF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAI,KAAK,CAAC,QAAsB,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAA,6BAAoB,EAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAI,KAAK,CAAC,MAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAc,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAI,KAAK,CAAC,SAAoB,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;QAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,YAAY,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,qBAAc,EAC7B,IAAI,CAAC,WAAW,EAAE,EAClB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EACnC,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAiB,EAAC,IAAgB,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,iBAAiB;QACf,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAChC,CAAC;IAEO,WAAW,CAAC,aAAuC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAA,qBAAY,EAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,aAAa,GACjB,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,yBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAC,CAAC;QAEvF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;YAC1C,QAAQ,EAAE;gBACR,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,IAAA,6BAAa,EAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;gBAC5E,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK;gBAC/B,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc;aAClD;YACD,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE;YAClC,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC7B,CAAC,CAAC;oBACE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;oBAC9B,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc;iBACjD;gBACH,CAAC,CAAC,SAAS;YACb,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,eAAe,EAAE,IAAI,CAAC,qBAAqB;YAC3C,SAAS,EAAE,IAAI,CAAC,gBAAgB;YAChC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa;YACb,mBAAmB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,GAAG,YAAY,kCAAmB;wBAAE,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;;AAzdH,kCA0dC"}
1
+ {"version":3,"file":"AgentRunner.js","sourceRoot":"","sources":["../../../src/lib/concepts/AgentRunner.ts"],"names":[],"mappings":"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"}
@@ -112,9 +112,13 @@ class InstructionRecorder {
112
112
  const toolFirings = this.firings.get(toolId);
113
113
  return toolFirings ? [...toolFirings.keys()] : [];
114
114
  }
115
- /** Serialize for inclusion in executor.getSnapshot().recorders. */
116
115
  toSnapshot() {
117
- return { name: 'Instructions', data: this.getSummary() };
116
+ return {
117
+ name: 'Instructions',
118
+ description: 'Translator (FlowRecorder) — per-tool instruction injection log',
119
+ preferredOperation: 'translate',
120
+ data: this.getSummary(),
121
+ };
118
122
  }
119
123
  clear() {
120
124
  this.firings.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"InstructionRecorder.js","sourceRoot":"","sources":["../../../src/lib/instructions/InstructionRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstructionRecorder.js","sourceRoot":"","sources":["../../../src/lib/instructions/InstructionRecorder.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,7 @@ const content_1 = require("../../types/content");
44
44
  const memory_1 = require("../../memory");
45
45
  const types_1 = require("./types");
46
46
  const instructions_1 = require("../instructions");
47
+ const messages_3 = require("../../types/messages");
47
48
  // ── Default Agent Routing ─────────────────────────────────────────────────────
48
49
  /**
49
50
  * Default routing for the Agent loop: tool-calls | final.
@@ -171,6 +172,10 @@ function buildAgentLoop(config, seed, options) {
171
172
  const toolExecutionSubflow = (0, toolExecutionSubflow_1.buildToolExecutionSubflow)({
172
173
  registry: config.registry,
173
174
  toolProvider: config.toolProvider,
175
+ parallel: config.parallelTools === true,
176
+ ...(config.maxIdenticalFailures !== undefined && {
177
+ maxIdenticalFailures: config.maxIdenticalFailures,
178
+ }),
174
179
  // Always pass instruction config — even without build-time instructions,
175
180
  // tool handlers can return runtime instructions/followUps.
176
181
  instructionConfig: {
@@ -285,7 +290,12 @@ function buildAgentLoop(config, seed, options) {
285
290
  }
286
291
  builder = builder.addFunction('ParseResponse', parseResponseStage_1.parseResponseStage, 'parse-response', 'Parse LLM response into structured result');
287
292
  // ── Routing — one code path for both Agent and Swarm ──
288
- const routing = config.routing ?? defaultAgentRouting(toolExecutionSubflow, useCommitFlag);
293
+ // Priority: explicit config.routing (Swarm) > routeExtensions (user .route()) > default
294
+ const routing = config.routing
295
+ ? config.routing
296
+ : config.routeExtensions && config.routeExtensions.length > 0
297
+ ? extendDefaultRouting(defaultAgentRouting(toolExecutionSubflow, useCommitFlag), config.routeExtensions)
298
+ : defaultAgentRouting(toolExecutionSubflow, useCommitFlag);
289
299
  // Validate branches
290
300
  if (routing.branches.length === 0) {
291
301
  throw new Error('RoutingConfig must have at least one branch.');
@@ -300,13 +310,38 @@ function buildAgentLoop(config, seed, options) {
300
310
  ].join(', ')}]`);
301
311
  }
302
312
  // Wrap decider with structural maxIterations guard — no custom routing can bypass this.
303
- // If loopCount >= maxIterations, force-route to defaultBranch.
313
+ // If loopCount >= maxIterations, force-route to defaultBranch and set the
314
+ // `maxIterationsReached` flag on scope so ANY default-branch stage (Finalize,
315
+ // Swarm's RouteSpecialist fallback, user-supplied terminal stage, …) can
316
+ // surface the fact that this was a forced termination rather than a chosen
317
+ // one. Setting the flag here — rather than inside a specific Finalize stage —
318
+ // makes the signal available for every routing topology built on top of
319
+ // buildAgentLoop.
320
+ //
304
321
  // The defaultBranch MUST call $break() or breakFn() — validated below.
305
322
  const safeDecider = (scope, breakFn, streamCb) => {
306
323
  const loopCount = scope.loopCount ?? 0;
307
324
  const maxIter = scope.maxIterations ?? 10;
308
- if (loopCount >= maxIter)
325
+ if (loopCount >= maxIter) {
326
+ // Deciders can write to scope — the write is committed with the decider
327
+ // stage's transaction. For TypedScope, property assignment goes through
328
+ // the Proxy set trap; for raw ScopeFacade, fall back to setValue if the
329
+ // property assignment is rejected.
330
+ try {
331
+ scope.maxIterationsReached = true;
332
+ }
333
+ catch {
334
+ if (typeof scope.setValue === 'function') {
335
+ try {
336
+ scope.setValue('maxIterationsReached', true);
337
+ }
338
+ catch {
339
+ /* unable to record — consumers must read loopCount vs maxIterations */
340
+ }
341
+ }
342
+ }
309
343
  return routing.defaultBranch;
344
+ }
310
345
  return routing.decider(scope, breakFn, streamCb);
311
346
  };
312
347
  let decider = builder.addDeciderFunction(routing.deciderName, safeDecider, routing.deciderId, routing.deciderDescription);
@@ -348,6 +383,83 @@ function buildAgentLoop(config, seed, options) {
348
383
  return { chart: builder.build(), getStrictFollowUp };
349
384
  }
350
385
  exports.buildAgentLoop = buildAgentLoop;
386
+ /**
387
+ * Wrap a base RoutingConfig with user-defined extensions.
388
+ *
389
+ * User extensions run BEFORE the base decider. First matching `when` predicate wins.
390
+ * If no extension matches, base routing applies. Runners are mounted as subflows
391
+ * when they expose `.toFlowChart()`; otherwise they are wrapped with runnerAsStage.
392
+ */
393
+ function extendDefaultRouting(base, extensions) {
394
+ // Each user branch is a TERMINAL fn stage: run the runner, write the content as the
395
+ // agent's final result, and break the loop. We don't mount as a subflow because we
396
+ // need terminate semantics in the parent loop — a subflow would return control to
397
+ // the decider and keep looping. Drill-down via runner.toFlowChart() is a future
398
+ // enhancement; for Phase 1 we optimize for correctness and simplicity.
399
+ const userBranches = extensions.map((ext, idx) => {
400
+ const id = ext.id ?? `route-${idx}`;
401
+ return {
402
+ id,
403
+ kind: 'fn',
404
+ fn: createRouteExtensionStage(ext.runner),
405
+ name: id,
406
+ description: `User routing branch '${id}'`,
407
+ };
408
+ });
409
+ const extendedBranches = [...userBranches, ...base.branches];
410
+ return {
411
+ deciderName: base.deciderName,
412
+ deciderId: base.deciderId,
413
+ deciderDescription: base.deciderDescription,
414
+ decider: (scope, breakFn, streamCb) => {
415
+ // User predicates evaluated first — first match wins.
416
+ for (let i = 0; i < extensions.length; i++) {
417
+ try {
418
+ if (extensions[i].when(scope)) {
419
+ return userBranches[i].id;
420
+ }
421
+ }
422
+ catch {
423
+ // Predicate errors fall through to base routing (fail-open).
424
+ }
425
+ }
426
+ return base.decider(scope, breakFn, streamCb);
427
+ },
428
+ branches: extendedBranches,
429
+ defaultBranch: base.defaultBranch,
430
+ };
431
+ }
432
+ /**
433
+ * Build a terminal stage fn that invokes a user-provided runner, writes its content
434
+ * as the agent's final answer, and breaks the loop.
435
+ *
436
+ * Called when a user `.route()` branch predicate fires. The runner receives the last
437
+ * user message as input; its output content becomes the agent's assistant response.
438
+ */
439
+ function createRouteExtensionStage(runner) {
440
+ return async (scope) => {
441
+ const messages = scope.messages ?? [];
442
+ const lastUser = [...messages].reverse().find((m) => m.role === 'user');
443
+ const input = typeof lastUser?.content === 'string'
444
+ ? lastUser.content
445
+ : Array.isArray(lastUser?.content)
446
+ ? lastUser.content
447
+ .map((b) => (typeof b?.text === 'string' ? b.text : ''))
448
+ .filter(Boolean)
449
+ .join('\n')
450
+ : '';
451
+ const env = scope.$getEnv();
452
+ const signal = env?.signal;
453
+ const timeoutMs = env?.timeoutMs;
454
+ const output = await runner.run(input, { signal, timeoutMs });
455
+ const content = typeof output?.content === 'string' ? output.content : '';
456
+ // Append the runner's answer as an assistant message so downstream
457
+ // observers (narrative, recorders) see a coherent conversation.
458
+ scope.messages = [...messages, (0, messages_3.assistantMessage)(content)];
459
+ scope.result = content;
460
+ scope.$break();
461
+ };
462
+ }
351
463
  /**
352
464
  * Create the Finalize stage function (decider 'final' branch).
353
465
  *
@@ -360,7 +472,23 @@ function createFinalizeStage(options) {
360
472
  return (scope) => {
361
473
  const messages = scope.messages ?? [];
362
474
  const lastAsst = (0, memory_1.lastAssistantMessage)(messages);
363
- scope.result = lastAsst ? (0, content_1.getTextContent)(lastAsst.content) : '';
475
+ const lastAsstText = lastAsst ? (0, content_1.getTextContent)(lastAsst.content) : '';
476
+ // safeDecider sets `maxIterationsReached` when it force-routes at the cap.
477
+ // Read it here — don't re-derive from loopCount — so this stage agrees
478
+ // with whatever safeDecider decided (single source of truth).
479
+ const exhausted = scope.maxIterationsReached === true;
480
+ if (exhausted) {
481
+ const maxIter = scope.maxIterations ?? 10;
482
+ // Prefer the LLM's last reasoning text if present — otherwise synthesize
483
+ // a clear "agent gave up" message so callers never see an unexplained
484
+ // empty response after a long tool-error loop.
485
+ scope.result =
486
+ lastAsstText ||
487
+ `Agent stopped after ${maxIter} iterations without a final answer. The LLM may be stuck in a tool-error retry loop — check the execution trace.`;
488
+ }
489
+ else {
490
+ scope.result = lastAsstText;
491
+ }
364
492
  if (useCommitFlag) {
365
493
  scope.memory_shouldCommit = true;
366
494
  }