@falai/agent 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/MemoryAdapter.js +29 -33
  3. package/dist/adapters/MemoryAdapter.js.map +1 -1
  4. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  5. package/dist/adapters/PostgreSQLAdapter.js +16 -11
  6. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  7. package/dist/adapters/RedisAdapter.d.ts +1 -0
  8. package/dist/adapters/RedisAdapter.d.ts.map +1 -1
  9. package/dist/adapters/RedisAdapter.js +75 -25
  10. package/dist/adapters/RedisAdapter.js.map +1 -1
  11. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  12. package/dist/adapters/SQLiteAdapter.js +7 -29
  13. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  14. package/dist/adapters/sessionRow.d.ts +22 -0
  15. package/dist/adapters/sessionRow.d.ts.map +1 -0
  16. package/dist/adapters/sessionRow.js +48 -0
  17. package/dist/adapters/sessionRow.js.map +1 -0
  18. package/dist/cjs/adapters/MemoryAdapter.js +29 -33
  19. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  20. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  21. package/dist/cjs/adapters/PostgreSQLAdapter.js +16 -11
  22. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  23. package/dist/cjs/adapters/RedisAdapter.d.ts +1 -0
  24. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
  25. package/dist/cjs/adapters/RedisAdapter.js +75 -25
  26. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  27. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  28. package/dist/cjs/adapters/SQLiteAdapter.js +7 -29
  29. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  30. package/dist/cjs/adapters/sessionRow.d.ts +22 -0
  31. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -0
  32. package/dist/cjs/adapters/sessionRow.js +52 -0
  33. package/dist/cjs/adapters/sessionRow.js.map +1 -0
  34. package/dist/cjs/core/Agent.d.ts +8 -0
  35. package/dist/cjs/core/Agent.d.ts.map +1 -1
  36. package/dist/cjs/core/Agent.js +43 -3
  37. package/dist/cjs/core/Agent.js.map +1 -1
  38. package/dist/cjs/core/AutoChainExecutor.d.ts +8 -18
  39. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
  40. package/dist/cjs/core/AutoChainExecutor.js +23 -26
  41. package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
  42. package/dist/cjs/core/CompactionEngine.d.ts +14 -1
  43. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  44. package/dist/cjs/core/CompactionEngine.js +30 -6
  45. package/dist/cjs/core/CompactionEngine.js.map +1 -1
  46. package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
  47. package/dist/cjs/core/FlowRouter.js +32 -10
  48. package/dist/cjs/core/FlowRouter.js.map +1 -1
  49. package/dist/cjs/core/ResponseGenerationError.d.ts.map +1 -1
  50. package/dist/cjs/core/ResponseGenerationError.js +3 -5
  51. package/dist/cjs/core/ResponseGenerationError.js.map +1 -1
  52. package/dist/cjs/core/ResponseModal.d.ts +29 -0
  53. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  54. package/dist/cjs/core/ResponseModal.js +141 -18
  55. package/dist/cjs/core/ResponseModal.js.map +1 -1
  56. package/dist/cjs/core/ResponsePipeline.d.ts +36 -6
  57. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  58. package/dist/cjs/core/ResponsePipeline.js +208 -73
  59. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  60. package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
  61. package/dist/cjs/core/SessionFinalizer.js +30 -3
  62. package/dist/cjs/core/SessionFinalizer.js.map +1 -1
  63. package/dist/cjs/core/SessionManager.d.ts +10 -1
  64. package/dist/cjs/core/SessionManager.d.ts.map +1 -1
  65. package/dist/cjs/core/SessionManager.js +43 -16
  66. package/dist/cjs/core/SessionManager.js.map +1 -1
  67. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
  68. package/dist/cjs/core/SignalProcessor.js +5 -77
  69. package/dist/cjs/core/SignalProcessor.js.map +1 -1
  70. package/dist/cjs/core/Step.d.ts.map +1 -1
  71. package/dist/cjs/core/Step.js +50 -2
  72. package/dist/cjs/core/Step.js.map +1 -1
  73. package/dist/cjs/core/StepLifecycle.d.ts +16 -6
  74. package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
  75. package/dist/cjs/core/StepLifecycle.js +97 -14
  76. package/dist/cjs/core/StepLifecycle.js.map +1 -1
  77. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  78. package/dist/cjs/core/StreamingToolExecutor.js +28 -4
  79. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  80. package/dist/cjs/core/ToolLoopExecutor.d.ts +5 -1
  81. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  82. package/dist/cjs/core/ToolLoopExecutor.js +156 -64
  83. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  84. package/dist/cjs/core/ToolManager.d.ts +1 -1
  85. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  86. package/dist/cjs/core/ToolManager.js +40 -17
  87. package/dist/cjs/core/ToolManager.js.map +1 -1
  88. package/dist/cjs/core/flow-namespace.d.ts +15 -0
  89. package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
  90. package/dist/cjs/core/flow-namespace.js +22 -0
  91. package/dist/cjs/core/flow-namespace.js.map +1 -1
  92. package/dist/cjs/index.d.ts +4 -1
  93. package/dist/cjs/index.d.ts.map +1 -1
  94. package/dist/cjs/index.js +5 -2
  95. package/dist/cjs/index.js.map +1 -1
  96. package/dist/cjs/providers/AnthropicProvider.d.ts +10 -3
  97. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  98. package/dist/cjs/providers/AnthropicProvider.js +54 -73
  99. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  100. package/dist/cjs/providers/GeminiProvider.d.ts +9 -3
  101. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  102. package/dist/cjs/providers/GeminiProvider.js +24 -68
  103. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  104. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +9 -0
  105. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  106. package/dist/cjs/providers/OpenAICompatibleProvider.js +101 -74
  107. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  108. package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
  109. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  110. package/dist/cjs/providers/OpenAIProvider.js +1 -1
  111. package/dist/cjs/providers/errorClassification.d.ts +7 -0
  112. package/dist/cjs/providers/errorClassification.d.ts.map +1 -1
  113. package/dist/cjs/providers/errorClassification.js +27 -0
  114. package/dist/cjs/providers/errorClassification.js.map +1 -1
  115. package/dist/cjs/types/agent.d.ts +35 -0
  116. package/dist/cjs/types/agent.d.ts.map +1 -1
  117. package/dist/cjs/types/flow.d.ts +49 -32
  118. package/dist/cjs/types/flow.d.ts.map +1 -1
  119. package/dist/cjs/types/index.d.ts +1 -1
  120. package/dist/cjs/types/index.d.ts.map +1 -1
  121. package/dist/cjs/types/index.js.map +1 -1
  122. package/dist/cjs/types/tool.d.ts +2 -0
  123. package/dist/cjs/types/tool.d.ts.map +1 -1
  124. package/dist/cjs/types/tool.js.map +1 -1
  125. package/dist/cjs/utils/index.d.ts +4 -4
  126. package/dist/cjs/utils/index.d.ts.map +1 -1
  127. package/dist/cjs/utils/index.js +10 -1
  128. package/dist/cjs/utils/index.js.map +1 -1
  129. package/dist/cjs/utils/retry.d.ts +99 -1
  130. package/dist/cjs/utils/retry.d.ts.map +1 -1
  131. package/dist/cjs/utils/retry.js +140 -3
  132. package/dist/cjs/utils/retry.js.map +1 -1
  133. package/dist/cjs/utils/serialize.d.ts +17 -0
  134. package/dist/cjs/utils/serialize.d.ts.map +1 -1
  135. package/dist/cjs/utils/serialize.js +33 -0
  136. package/dist/cjs/utils/serialize.js.map +1 -1
  137. package/dist/cjs/utils/session.d.ts +21 -1
  138. package/dist/cjs/utils/session.d.ts.map +1 -1
  139. package/dist/cjs/utils/session.js +36 -4
  140. package/dist/cjs/utils/session.js.map +1 -1
  141. package/dist/core/Agent.d.ts +8 -0
  142. package/dist/core/Agent.d.ts.map +1 -1
  143. package/dist/core/Agent.js +43 -3
  144. package/dist/core/Agent.js.map +1 -1
  145. package/dist/core/AutoChainExecutor.d.ts +8 -18
  146. package/dist/core/AutoChainExecutor.d.ts.map +1 -1
  147. package/dist/core/AutoChainExecutor.js +23 -26
  148. package/dist/core/AutoChainExecutor.js.map +1 -1
  149. package/dist/core/CompactionEngine.d.ts +14 -1
  150. package/dist/core/CompactionEngine.d.ts.map +1 -1
  151. package/dist/core/CompactionEngine.js +30 -6
  152. package/dist/core/CompactionEngine.js.map +1 -1
  153. package/dist/core/FlowRouter.d.ts.map +1 -1
  154. package/dist/core/FlowRouter.js +32 -10
  155. package/dist/core/FlowRouter.js.map +1 -1
  156. package/dist/core/ResponseGenerationError.d.ts.map +1 -1
  157. package/dist/core/ResponseGenerationError.js +3 -5
  158. package/dist/core/ResponseGenerationError.js.map +1 -1
  159. package/dist/core/ResponseModal.d.ts +29 -0
  160. package/dist/core/ResponseModal.d.ts.map +1 -1
  161. package/dist/core/ResponseModal.js +142 -19
  162. package/dist/core/ResponseModal.js.map +1 -1
  163. package/dist/core/ResponsePipeline.d.ts +36 -6
  164. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  165. package/dist/core/ResponsePipeline.js +208 -73
  166. package/dist/core/ResponsePipeline.js.map +1 -1
  167. package/dist/core/SessionFinalizer.d.ts.map +1 -1
  168. package/dist/core/SessionFinalizer.js +31 -4
  169. package/dist/core/SessionFinalizer.js.map +1 -1
  170. package/dist/core/SessionManager.d.ts +10 -1
  171. package/dist/core/SessionManager.d.ts.map +1 -1
  172. package/dist/core/SessionManager.js +44 -17
  173. package/dist/core/SessionManager.js.map +1 -1
  174. package/dist/core/SignalProcessor.d.ts.map +1 -1
  175. package/dist/core/SignalProcessor.js +5 -77
  176. package/dist/core/SignalProcessor.js.map +1 -1
  177. package/dist/core/Step.d.ts.map +1 -1
  178. package/dist/core/Step.js +50 -2
  179. package/dist/core/Step.js.map +1 -1
  180. package/dist/core/StepLifecycle.d.ts +16 -6
  181. package/dist/core/StepLifecycle.d.ts.map +1 -1
  182. package/dist/core/StepLifecycle.js +97 -14
  183. package/dist/core/StepLifecycle.js.map +1 -1
  184. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  185. package/dist/core/StreamingToolExecutor.js +28 -4
  186. package/dist/core/StreamingToolExecutor.js.map +1 -1
  187. package/dist/core/ToolLoopExecutor.d.ts +5 -1
  188. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  189. package/dist/core/ToolLoopExecutor.js +156 -64
  190. package/dist/core/ToolLoopExecutor.js.map +1 -1
  191. package/dist/core/ToolManager.d.ts +1 -1
  192. package/dist/core/ToolManager.d.ts.map +1 -1
  193. package/dist/core/ToolManager.js +41 -18
  194. package/dist/core/ToolManager.js.map +1 -1
  195. package/dist/core/flow-namespace.d.ts +15 -0
  196. package/dist/core/flow-namespace.d.ts.map +1 -1
  197. package/dist/core/flow-namespace.js +22 -0
  198. package/dist/core/flow-namespace.js.map +1 -1
  199. package/dist/index.d.ts +4 -1
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +2 -1
  202. package/dist/index.js.map +1 -1
  203. package/dist/providers/AnthropicProvider.d.ts +10 -3
  204. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  205. package/dist/providers/AnthropicProvider.js +56 -75
  206. package/dist/providers/AnthropicProvider.js.map +1 -1
  207. package/dist/providers/GeminiProvider.d.ts +9 -3
  208. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  209. package/dist/providers/GeminiProvider.js +26 -70
  210. package/dist/providers/GeminiProvider.js.map +1 -1
  211. package/dist/providers/OpenAICompatibleProvider.d.ts +9 -0
  212. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  213. package/dist/providers/OpenAICompatibleProvider.js +103 -76
  214. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  215. package/dist/providers/OpenAIProvider.d.ts +1 -1
  216. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  217. package/dist/providers/OpenAIProvider.js +1 -1
  218. package/dist/providers/errorClassification.d.ts +7 -0
  219. package/dist/providers/errorClassification.d.ts.map +1 -1
  220. package/dist/providers/errorClassification.js +26 -0
  221. package/dist/providers/errorClassification.js.map +1 -1
  222. package/dist/types/agent.d.ts +35 -0
  223. package/dist/types/agent.d.ts.map +1 -1
  224. package/dist/types/flow.d.ts +49 -32
  225. package/dist/types/flow.d.ts.map +1 -1
  226. package/dist/types/index.d.ts +1 -1
  227. package/dist/types/index.d.ts.map +1 -1
  228. package/dist/types/index.js.map +1 -1
  229. package/dist/types/tool.d.ts +2 -0
  230. package/dist/types/tool.d.ts.map +1 -1
  231. package/dist/types/tool.js.map +1 -1
  232. package/dist/utils/index.d.ts +4 -4
  233. package/dist/utils/index.d.ts.map +1 -1
  234. package/dist/utils/index.js +3 -3
  235. package/dist/utils/index.js.map +1 -1
  236. package/dist/utils/retry.d.ts +99 -1
  237. package/dist/utils/retry.d.ts.map +1 -1
  238. package/dist/utils/retry.js +137 -3
  239. package/dist/utils/retry.js.map +1 -1
  240. package/dist/utils/serialize.d.ts +17 -0
  241. package/dist/utils/serialize.d.ts.map +1 -1
  242. package/dist/utils/serialize.js +31 -0
  243. package/dist/utils/serialize.js.map +1 -1
  244. package/dist/utils/session.d.ts +21 -1
  245. package/dist/utils/session.d.ts.map +1 -1
  246. package/dist/utils/session.js +33 -4
  247. package/dist/utils/session.js.map +1 -1
  248. package/docs/concepts/architecture.md +3 -3
  249. package/docs/concepts/directives.md +1 -1
  250. package/docs/guides/error-handling.md +46 -45
  251. package/docs/guides/flow-control.md +8 -1
  252. package/docs/guides/instructions.md +15 -6
  253. package/docs/guides/persistence.md +12 -5
  254. package/docs/guides/streaming.md +10 -0
  255. package/docs/migration/README.md +4 -0
  256. package/docs/migration/v2-3-to-v2-4.md +4 -0
  257. package/docs/migration/v2-6-to-v2-7.md +246 -0
  258. package/docs/reference/adapters.md +15 -1
  259. package/docs/reference/create-agent.md +30 -0
  260. package/docs/reference/directive.md +1 -1
  261. package/docs/reference/errors.md +29 -31
  262. package/docs/reference/providers.md +23 -19
  263. package/docs/reference/step.md +28 -21
  264. package/docs/reference/tool.md +14 -5
  265. package/docs/start/02-first-agent.md +8 -4
  266. package/docs/start/03-collect-data.md +19 -10
  267. package/examples/01-quickstart.ts +1 -1
  268. package/examples/02-data-extraction.ts +1 -1
  269. package/examples/03-tools.ts +1 -1
  270. package/examples/04-instructions.ts +1 -1
  271. package/examples/05-branching.ts +1 -1
  272. package/examples/06-flow-control.ts +3 -3
  273. package/examples/07-streaming.ts +1 -1
  274. package/examples/08-persistence.ts +1 -1
  275. package/examples/09-signals.ts +1 -1
  276. package/package.json +2 -2
  277. package/src/adapters/MemoryAdapter.ts +29 -33
  278. package/src/adapters/PostgreSQLAdapter.ts +23 -18
  279. package/src/adapters/RedisAdapter.ts +81 -34
  280. package/src/adapters/SQLiteAdapter.ts +10 -31
  281. package/src/adapters/sessionRow.ts +57 -0
  282. package/src/core/Agent.ts +51 -3
  283. package/src/core/AutoChainExecutor.ts +37 -50
  284. package/src/core/CompactionEngine.ts +40 -6
  285. package/src/core/FlowRouter.ts +38 -12
  286. package/src/core/ResponseGenerationError.ts +3 -6
  287. package/src/core/ResponseModal.ts +185 -19
  288. package/src/core/ResponsePipeline.ts +259 -85
  289. package/src/core/SessionFinalizer.ts +35 -5
  290. package/src/core/SessionManager.ts +55 -21
  291. package/src/core/SignalProcessor.ts +5 -85
  292. package/src/core/Step.ts +79 -2
  293. package/src/core/StepLifecycle.ts +125 -22
  294. package/src/core/StreamingToolExecutor.ts +31 -6
  295. package/src/core/ToolLoopExecutor.ts +201 -75
  296. package/src/core/ToolManager.ts +45 -18
  297. package/src/core/flow-namespace.ts +29 -0
  298. package/src/index.ts +4 -1
  299. package/src/providers/AnthropicProvider.ts +83 -131
  300. package/src/providers/GeminiProvider.ts +42 -116
  301. package/src/providers/OpenAICompatibleProvider.ts +132 -133
  302. package/src/providers/OpenAIProvider.ts +2 -2
  303. package/src/providers/errorClassification.ts +34 -0
  304. package/src/types/agent.ts +34 -0
  305. package/src/types/flow.ts +37 -39
  306. package/src/types/index.ts +1 -0
  307. package/src/types/tool.ts +2 -0
  308. package/src/utils/index.ts +22 -3
  309. package/src/utils/retry.ts +251 -2
  310. package/src/utils/serialize.ts +38 -0
  311. package/src/utils/session.ts +41 -4
  312. package/dist/cjs/core/DirectiveBus.d.ts +0 -88
  313. package/dist/cjs/core/DirectiveBus.d.ts.map +0 -1
  314. package/dist/cjs/core/DirectiveBus.js +0 -196
  315. package/dist/cjs/core/DirectiveBus.js.map +0 -1
  316. package/dist/core/DirectiveBus.d.ts +0 -88
  317. package/dist/core/DirectiveBus.d.ts.map +0 -1
  318. package/dist/core/DirectiveBus.js +0 -192
  319. package/dist/core/DirectiveBus.js.map +0 -1
  320. package/src/core/DirectiveBus.ts +0 -248
@@ -25,6 +25,23 @@ export function hasDirectivePositionField(directive) {
25
25
  return false;
26
26
  return DIRECTIVE_POSITION_FIELDS.some((field) => directive[field] !== undefined);
27
27
  }
28
+ /**
29
+ * Compute the per-key data writes the signal phase applied to a session.
30
+ * The signal phase and routing start from the same input session, so any
31
+ * key whose value differs between the input and the signal output was
32
+ * written by the signal phase alone (handler `updateData` calls).
33
+ */
34
+ function diffSignalDataWrites(before, after) {
35
+ const beforeData = (before ?? {});
36
+ const afterData = (after ?? {});
37
+ const writes = {};
38
+ for (const key of Object.keys(afterData)) {
39
+ if (afterData[key] !== beforeData[key]) {
40
+ writes[key] = afterData[key];
41
+ }
42
+ }
43
+ return writes;
44
+ }
28
45
  /**
29
46
  * Shared response processing logic between respond() and respondStream() methods
30
47
  */
@@ -85,7 +102,7 @@ export class ResponsePipeline {
85
102
  * Handle routing and step selection logic
86
103
  */
87
104
  async handleRoutingAndStepSelection(params) {
88
- const { session, history, context, signal } = params;
105
+ const { session, history, context, signal, allowedFlows } = params;
89
106
  // PHASE 2: ROUTING + STEP SELECTION - Determine which flow and step to use (combined)
90
107
  let selectedFlow;
91
108
  let responseDirectives;
@@ -93,8 +110,19 @@ export class ResponsePipeline {
93
110
  let isFlowComplete = false;
94
111
  let completedFlows = [];
95
112
  let targetSession = session;
113
+ // Flows exited this turn via pendingDirective redirect/reset
114
+ const endedFlows = [];
115
+ let exitPrevFlowId;
116
+ let exitPrevFlowTitle;
117
+ let exitReason;
96
118
  // Get flows early since we need them for pending directives
97
119
  const flows = this.getFlows();
120
+ // Routing candidates may be narrowed for this turn (entry pins); the
121
+ // pendingDirective applier below still resolves targets against the FULL
122
+ // registry so declared redirects always resolve.
123
+ const routingFlows = allowedFlows && allowedFlows.length > 0
124
+ ? flows.filter((f) => allowedFlows.includes(f.id) || allowedFlows.includes(f.title))
125
+ : flows;
98
126
  // Check for pending directive from previous flow completion or external dispatch
99
127
  if (targetSession.pendingDirective) {
100
128
  const directive = targetSession.pendingDirective;
@@ -114,8 +142,15 @@ export class ResponsePipeline {
114
142
  ...targetSession,
115
143
  pendingDirective: nextDirective,
116
144
  };
145
+ // Capture the flow we're leaving so directive-driven exits surface on
146
+ // the response (endedFlows).
147
+ exitPrevFlowId = targetSession.currentFlow?.id;
148
+ exitPrevFlowTitle = exitPrevFlowId
149
+ ? flows.find((f) => f.id === exitPrevFlowId)?.title
150
+ : undefined;
117
151
  // Apply the directive: resolve position field to a flow/step
118
152
  if (directive.goTo) {
153
+ exitReason = 'goto';
119
154
  const flowTarget = typeof directive.goTo === 'string'
120
155
  ? directive.goTo
121
156
  : directive.goTo.flow;
@@ -181,6 +216,7 @@ export class ResponsePipeline {
181
216
  }
182
217
  }
183
218
  else if (directive.reset) {
219
+ exitReason = 'reset';
184
220
  // Reset current flow
185
221
  if (targetSession.currentFlow) {
186
222
  const currentFlow = flows.find(r => r.id === targetSession.currentFlow?.id);
@@ -212,10 +248,16 @@ export class ResponsePipeline {
212
248
  }
213
249
  // Skip FlowRouter.decideFlowAndStep — the directive resolved the position
214
250
  }
215
- // If no pending transition or transition handled, do normal routing
216
- if (flows.length > 0 && !selectedFlow) {
251
+ if (exitReason &&
252
+ exitPrevFlowId &&
253
+ (!selectedFlow || selectedFlow.id !== exitPrevFlowId)) {
254
+ endedFlows.push({ flowId: exitPrevFlowId, title: exitPrevFlowTitle, reason: exitReason });
255
+ }
256
+ // If no pending transition or transition handled, do normal routing.
257
+ // Candidates honor allowedFlows; completion scoring runs over the same set.
258
+ if (routingFlows.length > 0 && !selectedFlow) {
217
259
  const orchestration = await this.flowRouter.decideFlowAndStep({
218
- flows: flows,
260
+ flows: routingFlows,
219
261
  session: targetSession,
220
262
  history,
221
263
  agentOptions: this.options,
@@ -241,8 +283,29 @@ export class ResponsePipeline {
241
283
  session: targetSession,
242
284
  isFlowComplete,
243
285
  completedFlows,
286
+ ...(endedFlows.length > 0 ? { endedFlows } : {}),
244
287
  };
245
288
  }
289
+ /**
290
+ * Combine a routing-derived session with the signal phase's non-position
291
+ * mutations. The routing session is the base — it owns position state AND
292
+ * data merges such as flow initialData and directive-carried writes; the
293
+ * signal phase's mutations (trigger recording under `signals`, handler
294
+ * data writes) are re-applied on top. Both phases start from the same
295
+ * input session, so their mutations cannot silently collide.
296
+ */
297
+ combineRoutingAndSignalSessions(params) {
298
+ const { inputSession, signalSession, routingSession } = params;
299
+ let combined = routingSession;
300
+ if (signalSession.signals !== inputSession.signals) {
301
+ combined = { ...combined, signals: signalSession.signals };
302
+ }
303
+ const signalWrites = diffSignalDataWrites(inputSession.data, signalSession.data);
304
+ if (Object.keys(signalWrites).length > 0) {
305
+ combined = mergeCollected(combined, signalWrites);
306
+ }
307
+ return combined;
308
+ }
246
309
  /**
247
310
  * Determine next step and update session
248
311
  */
@@ -481,17 +544,20 @@ export class ResponsePipeline {
481
544
  // Create a fresh chain tracker for this turn (Requirement 22.1)
482
545
  this.createChainTracker();
483
546
  // ROUTING SKIP OPTIMIZATION (Requirements 20.1, 20.2, 20.3):
484
- // When the current step has collect fields AND pre-extraction populates at least
485
- // one of those fields, skip FlowRouter.decideFlowAndStep for this turn.
486
- const routingSkipResult = await this.attemptRoutingSkipForCollect(params);
487
- if (routingSkipResult) {
547
+ // When the current step has collect fields AND step-scoped pre-extraction
548
+ // populates at least one of those fields, skip FlowRouter.decideFlowAndStep
549
+ // for this turn. The check's extraction result is reused by the fallthrough
550
+ // paths below so a turn costs at most ONE extraction LLM call.
551
+ const routingSkipCheck = await this.attemptRoutingSkipForCollect(params);
552
+ if (routingSkipCheck.skipResult) {
553
+ const skipResult = routingSkipCheck.skipResult;
488
554
  // Even when routing is skipped, run pre-signal phase if processor is present
489
555
  if (this.signalCoordinator.enabled) {
490
556
  const signalResult = await this.signalCoordinator.runPrePhase(params.session, params.context, params.history);
491
557
  // If signal halts, override the routing skip result
492
558
  if (signalResult.mergedDirective?.halt) {
493
559
  return {
494
- ...routingSkipResult,
560
+ ...skipResult,
495
561
  session: signalResult.updatedSession,
496
562
  signalFirings: signalResult.firings,
497
563
  signalHalted: true,
@@ -502,15 +568,20 @@ export class ResponsePipeline {
502
568
  if (hasDirectivePositionField(signalResult.mergedDirective)) {
503
569
  return this.signalCoordinator.applyPositionDirective(signalResult);
504
570
  }
505
- // Non-position directive: propagate for pre-LLM augmentation
571
+ // Non-position directive: keep the skip result (extraction merges,
572
+ // step entry) and re-apply the signal phase's non-position mutations
506
573
  return {
507
- ...routingSkipResult,
508
- session: signalResult.updatedSession,
574
+ ...skipResult,
575
+ session: this.combineRoutingAndSignalSessions({
576
+ inputSession: params.session,
577
+ signalSession: signalResult.updatedSession,
578
+ routingSession: skipResult.session,
579
+ }),
509
580
  signalFirings: signalResult.firings,
510
581
  signalPreDirective: signalResult.mergedDirective || undefined,
511
582
  };
512
583
  }
513
- return routingSkipResult;
584
+ return skipResult;
514
585
  }
515
586
  // ── PARALLEL PRE-SIGNAL PHASE + ROUTING (Algorithm 5) ────────────────
516
587
  // When signalProcessor is present, run pre-signals in parallel with routing.
@@ -524,6 +595,7 @@ export class ResponsePipeline {
524
595
  history: params.history,
525
596
  context: params.context,
526
597
  signal: params.signal,
598
+ allowedFlows: params.allowedFlows,
527
599
  }),
528
600
  ]);
529
601
  // ── Requirement 8.2: halt → discard routing, skip LLM ────────────
@@ -544,38 +616,41 @@ export class ResponsePipeline {
544
616
  }
545
617
  // ── Requirement 8.4: non-position directive → use routing, propagate augmentation ──
546
618
  // ── Requirement 8.5: no directive → use routing as-is ─────────────
547
- let updatedSession = signalResult.updatedSession;
548
- // Apply data/context updates from signal to the routed session
619
+ // Base = routed session (position state AND router data merges such as
620
+ // flow initialData survive); the signal phase's non-position mutations
621
+ // (trigger state, handler data writes) are re-applied on top.
622
+ let updatedSession = this.combineRoutingAndSignalSessions({
623
+ inputSession: params.session,
624
+ signalSession: signalResult.updatedSession,
625
+ routingSession: routingResult.session,
626
+ });
627
+ // Explicit dataUpdate from the signal's merged directive lands last
549
628
  if (signalResult.mergedDirective?.dataUpdate) {
550
629
  updatedSession = mergeCollected(updatedSession, signalResult.mergedDirective.dataUpdate);
551
630
  }
552
- // Use routing result for flow/step, but carry signal session state
553
- // Merge routing session changes on top of signal session
554
- const routingSession = routingResult.session;
555
- updatedSession = {
556
- ...updatedSession,
557
- currentFlow: routingSession.currentFlow,
558
- currentStep: routingSession.currentStep,
559
- flowHistory: routingSession.flowHistory,
560
- pendingDirective: routingSession.pendingDirective,
561
- };
562
631
  const isFlowComplete = routingResult.isFlowComplete;
563
- // PRE-EXTRACTION: same logic as below — extract data from user message
632
+ // PRE-EXTRACTION: same logic as below — extract data from user message.
633
+ // Reuses the routing-skip check's step-scoped extraction when it already
634
+ // ran this turn (at most ONE extraction LLM call per turn).
564
635
  if (routingResult.selectedFlow && !isFlowComplete) {
565
- if (this.shouldPreExtractData(routingResult.selectedFlow)) {
636
+ let extractedData;
637
+ if (routingSkipCheck.extractionRan) {
638
+ extractedData = routingSkipCheck.extractedData;
639
+ }
640
+ else if (this.shouldPreExtractData(routingResult.selectedFlow)) {
566
641
  logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
567
- const extractedData = await this.preExtractFlowData({
642
+ extractedData = await this.preExtractFlowData({
568
643
  route: routingResult.selectedFlow,
569
644
  history: params.history,
570
645
  context: params.context,
571
646
  session: updatedSession,
572
647
  signal: params.signal,
573
648
  });
574
- if (extractedData && Object.keys(extractedData).length > 0) {
575
- logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
576
- updatedSession = mergeCollected(updatedSession, extractedData);
577
- await this.updateCollectedData(extractedData);
578
- }
649
+ }
650
+ if (extractedData && Object.keys(extractedData).length > 0) {
651
+ logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
652
+ updatedSession = mergeCollected(updatedSession, extractedData);
653
+ await this.updateCollectedData(extractedData);
579
654
  }
580
655
  }
581
656
  // Determine next step
@@ -594,6 +669,7 @@ export class ResponsePipeline {
594
669
  isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
595
670
  signalFirings: signalResult.firings,
596
671
  signalPreDirective: signalResult.mergedDirective || undefined,
672
+ endedFlows: routingResult.endedFlows,
597
673
  };
598
674
  }
599
675
  // ── No signal processor: existing behavior (zero overhead) ────────────
@@ -602,30 +678,37 @@ export class ResponsePipeline {
602
678
  history: params.history,
603
679
  context: params.context,
604
680
  signal: params.signal,
681
+ allowedFlows: params.allowedFlows,
605
682
  });
606
683
  let updatedSession = routingResult.session;
607
684
  const isFlowComplete = routingResult.isFlowComplete;
608
685
  // PRE-EXTRACTION: If entering a flow that collects data, extract data from user message first
609
- // This allows us to skip steps whose data is already provided
686
+ // This allows us to skip steps whose data is already provided.
687
+ // Reuses the routing-skip check's step-scoped extraction when it already
688
+ // ran this turn — at most ONE extraction LLM call per turn.
610
689
  if (routingResult.selectedFlow && !isFlowComplete) {
611
690
  // Always pre-extract when flow collects data (not just on new flow entry)
612
691
  // This ensures step selection has the most up-to-date data
613
- if (this.shouldPreExtractData(routingResult.selectedFlow)) {
692
+ let extractedData;
693
+ if (routingSkipCheck.extractionRan) {
694
+ extractedData = routingSkipCheck.extractedData;
695
+ }
696
+ else if (this.shouldPreExtractData(routingResult.selectedFlow)) {
614
697
  logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
615
- const extractedData = await this.preExtractFlowData({
698
+ extractedData = await this.preExtractFlowData({
616
699
  route: routingResult.selectedFlow,
617
700
  history: params.history,
618
701
  context: params.context,
619
702
  session: updatedSession,
620
703
  signal: params.signal,
621
704
  });
622
- if (extractedData && Object.keys(extractedData).length > 0) {
623
- logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
624
- // Merge pre-extracted data into session before step selection
625
- updatedSession = mergeCollected(updatedSession, extractedData);
626
- // Also update agent's collected data
627
- await this.updateCollectedData(extractedData);
628
- }
705
+ }
706
+ if (extractedData && Object.keys(extractedData).length > 0) {
707
+ logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
708
+ // Merge pre-extracted data into session before step selection
709
+ updatedSession = mergeCollected(updatedSession, extractedData);
710
+ // Also update agent's collected data
711
+ await this.updateCollectedData(extractedData);
629
712
  }
630
713
  }
631
714
  // Determine next step using pipeline method for consistency
@@ -643,6 +726,7 @@ export class ResponsePipeline {
643
726
  session: stepResult.session,
644
727
  // If a branch changed the flow, the original isFlowComplete no longer applies
645
728
  isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
729
+ endedFlows: routingResult.endedFlows,
646
730
  };
647
731
  }
648
732
  catch (error) {
@@ -737,61 +821,80 @@ export class ResponsePipeline {
737
821
  return { nextStep, session, flowTransition: false };
738
822
  }
739
823
  /**
740
- * Routing skip optimization (Requirements 20.1, 20.2, 20.3):
741
- * When the current step declares `collect` fields AND pre-extraction populates
742
- * at least one of those fields from the user's message, skip routing for this turn.
824
+ * Routing skip check (Requirements 20.1, 20.2, 20.3):
825
+ * When the current step declares `collect` fields AND step-scoped extraction
826
+ * populates at least one of those fields from the user's message, the caller
827
+ * skips routing for this turn (`skipResult`).
828
+ *
829
+ * The extraction is scoped to EXACTLY this step's collect fields — incidental
830
+ * mentions of other (e.g. other-flow) fields cannot pin the routing decision.
831
+ * It is skipped entirely when every collect field is already populated.
743
832
  *
744
- * Returns the routing result if the skip applies, or undefined to fall through
745
- * to normal routing.
833
+ * Always returns what the check did so the caller can reuse the single
834
+ * extraction result in its normal path instead of extracting twice:
835
+ * - `extractionRan` — whether an extraction LLM call was made this turn.
836
+ * - `extractedData` — that call's result (empty when nothing found / not run).
746
837
  */
747
838
  async attemptRoutingSkipForCollect(params) {
748
839
  const { session } = params;
840
+ const notApplicable = { extractionRan: false, extractedData: {} };
749
841
  // Only applies when we already have a current flow and step
750
842
  if (!session.currentFlow || !session.currentStep) {
751
- return undefined;
843
+ return notApplicable;
752
844
  }
753
845
  // Also skip this optimization if there's a pending directive (it takes priority)
754
846
  if (session.pendingDirective) {
755
- return undefined;
847
+ return notApplicable;
756
848
  }
757
849
  // Look up the actual Flow and Step objects to access `collect`
758
850
  const currentFlow = this.getFlows().find((f) => f.id === session.currentFlow?.id);
759
851
  if (!currentFlow) {
760
- return undefined;
852
+ return notApplicable;
761
853
  }
762
854
  const currentStep = currentFlow.getStep(session.currentStep.id);
763
855
  if (!currentStep || !currentStep.collect || currentStep.collect.length === 0) {
764
- return undefined;
856
+ return notApplicable;
765
857
  }
766
- // We have a step with collect fields. Run pre-extraction to see if the
767
- // user's message populates any of them.
768
858
  const collectFields = currentStep.collect;
859
+ // Every relevant field already set — the skip cannot fire; don't spend
860
+ // an extraction LLM call probing for it.
861
+ const sessionRecord = (session.data ?? {});
862
+ const allPopulated = collectFields.every((field) => {
863
+ const value = sessionRecord[String(field)];
864
+ return value !== undefined && value !== null;
865
+ });
866
+ if (allPopulated) {
867
+ return notApplicable;
868
+ }
769
869
  // Snapshot current data for comparison
770
- const dataBefore = { ...session.data };
771
- // Run pre-extraction against the current flow
870
+ const dataBefore = { ...sessionRecord };
871
+ // Step-scoped pre-extraction: see if the user's message populates any of
872
+ // THIS step's collect fields.
772
873
  const extractedData = await this.preExtractFlowData({
773
874
  route: currentFlow,
774
875
  history: params.history,
775
876
  context: params.context,
776
877
  session,
777
878
  signal: params.signal,
879
+ restrictToFields: collectFields.map(String),
778
880
  });
779
881
  if (!extractedData || Object.keys(extractedData).length === 0) {
780
- return undefined;
882
+ return { extractionRan: true, extractedData: {} };
781
883
  }
782
884
  // Determine which collect fields were newly populated by pre-extraction
885
+ const extractedRecord = extractedData;
783
886
  const populatedCollectFields = [];
784
887
  for (const field of collectFields) {
785
- const key = field;
786
- const hadValue = dataBefore[field] !== undefined && dataBefore[field] !== null;
787
- const hasNewValue = extractedData[field] !== undefined && extractedData[field] !== null;
888
+ const key = String(field);
889
+ const hadValue = dataBefore[key] !== undefined && dataBefore[key] !== null;
890
+ const hasNewValue = extractedRecord[key] !== undefined && extractedRecord[key] !== null;
788
891
  if (hasNewValue && !hadValue) {
789
892
  populatedCollectFields.push(key);
790
893
  }
791
894
  }
792
895
  if (populatedCollectFields.length === 0) {
793
896
  // Pre-extraction didn't populate any declared collect field — no skip
794
- return undefined;
897
+ return { extractionRan: true, extractedData };
795
898
  }
796
899
  // ROUTING SKIP: pre-extraction populated collect fields → retain current flow/step
797
900
  logger.debug(`[ResponsePipeline] Routing skip: pre-extraction populated collect fields [${populatedCollectFields.join(', ')}] for step "${currentStep.id}" — skipping FlowRouter`);
@@ -808,11 +911,15 @@ export class ResponsePipeline {
808
911
  context: params.context,
809
912
  });
810
913
  return {
811
- selectedFlow: stepResult.flowChanged || currentFlow,
812
- selectedStep: stepResult.nextStep,
813
- responseDirectives: undefined,
814
- session: stepResult.session,
815
- isFlowComplete: false,
914
+ extractionRan: true,
915
+ extractedData,
916
+ skipResult: {
917
+ selectedFlow: stepResult.flowChanged || currentFlow,
918
+ selectedStep: stepResult.nextStep,
919
+ responseDirectives: undefined,
920
+ session: stepResult.session,
921
+ isFlowComplete: false,
922
+ },
816
923
  };
817
924
  }
818
925
  /**
@@ -831,18 +938,41 @@ export class ResponsePipeline {
831
938
  const hasDataCollectionSteps = steps.some(step => step.collect && step.collect.length > 0);
832
939
  return hasDataCollectionSteps;
833
940
  }
941
+ /**
942
+ * Build an extraction schema limited to the given subset of agent schema
943
+ * fields. Used by the routing-skip probe so only the current step's collect
944
+ * fields are visible to the extractor.
945
+ */
946
+ buildFieldRestrictedSchema(agentSchema, fields) {
947
+ const properties = {};
948
+ for (const field of fields) {
949
+ const prop = agentSchema.properties?.[field];
950
+ if (prop) {
951
+ properties[field] = prop;
952
+ }
953
+ }
954
+ return {
955
+ type: "object",
956
+ description: `Extraction restricted to these fields: ${fields.join(', ')}`,
957
+ properties,
958
+ additionalProperties: false,
959
+ };
960
+ }
834
961
  /**
835
962
  * Pre-extract data from user message when entering a flow
836
963
  * This allows skipping steps whose data is already provided
837
964
  */
838
965
  async preExtractFlowData(params) {
839
- const { route: flow, history, signal } = params;
966
+ const { route: flow, history, signal, restrictToFields } = params;
840
967
  // Build a schema for data extraction based on flow's fields
841
- const extractionSchema = this.getSchema();
842
- if (!extractionSchema) {
968
+ const agentSchema = this.getSchema();
969
+ if (!agentSchema) {
843
970
  logger.warn(`[ResponsePipeline] No schema available for pre-extraction`);
844
971
  return {};
845
972
  }
973
+ const extractionSchema = restrictToFields
974
+ ? this.buildFieldRestrictedSchema(agentSchema, restrictToFields)
975
+ : agentSchema;
846
976
  // Get last user message
847
977
  const lastMessage = getLastMessageFromHistory(history);
848
978
  // Build extraction prompt
@@ -855,11 +985,16 @@ export class ResponsePipeline {
855
985
  `Extract data for these fields if present:`,
856
986
  ];
857
987
  // Add field descriptions
858
- if (flow.requiredFields) {
859
- extractionPrompt.push(`Required fields: ${flow.requiredFields.join(', ')}`);
988
+ if (restrictToFields) {
989
+ extractionPrompt.push(`Only these fields: ${restrictToFields.join(', ')}`);
860
990
  }
861
- if (flow.optionalFields) {
862
- extractionPrompt.push(`Optional fields: ${flow.optionalFields.join(', ')}`);
991
+ else {
992
+ if (flow.requiredFields) {
993
+ extractionPrompt.push(`Required fields: ${flow.requiredFields.join(', ')}`);
994
+ }
995
+ if (flow.optionalFields) {
996
+ extractionPrompt.push(`Optional fields: ${flow.optionalFields.join(', ')}`);
997
+ }
863
998
  }
864
999
  extractionPrompt.push(``, `Return ONLY the extracted data as JSON. If no data can be extracted, return an empty object {}.`);
865
1000
  // Convert Event[] to HistoryItem[] for provider call
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsePipeline.js","sourceRoot":"","sources":["../../src/core/ResponsePipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResponsePipeline.js","sourceRoot":"","sources":["../../src/core/ResponsePipeline.ts"],"names":[],"mappings":"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"}