@falai/agent 2.7.0 → 3.0.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 (559) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/MemoryAdapter.d.ts +1 -1
  3. package/dist/adapters/MemoryAdapter.d.ts.map +1 -1
  4. package/dist/adapters/MemoryAdapter.js +3 -3
  5. package/dist/adapters/MemoryAdapter.js.map +1 -1
  6. package/dist/adapters/MongoAdapter.d.ts +1 -1
  7. package/dist/adapters/MongoAdapter.d.ts.map +1 -1
  8. package/dist/adapters/MongoAdapter.js +2 -2
  9. package/dist/adapters/MongoAdapter.js.map +1 -1
  10. package/dist/adapters/OpenSearchAdapter.d.ts +1 -1
  11. package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
  12. package/dist/adapters/OpenSearchAdapter.js +3 -3
  13. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  14. package/dist/adapters/PostgreSQLAdapter.d.ts +1 -1
  15. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  16. package/dist/adapters/PostgreSQLAdapter.js +3 -3
  17. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  18. package/dist/adapters/PrismaAdapter.d.ts +1 -1
  19. package/dist/adapters/PrismaAdapter.d.ts.map +1 -1
  20. package/dist/adapters/PrismaAdapter.js +3 -3
  21. package/dist/adapters/PrismaAdapter.js.map +1 -1
  22. package/dist/adapters/RedisAdapter.d.ts +1 -1
  23. package/dist/adapters/RedisAdapter.d.ts.map +1 -1
  24. package/dist/adapters/RedisAdapter.js +3 -3
  25. package/dist/adapters/RedisAdapter.js.map +1 -1
  26. package/dist/adapters/SQLiteAdapter.d.ts +1 -1
  27. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  28. package/dist/adapters/SQLiteAdapter.js +3 -3
  29. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  30. package/dist/adapters/index.d.ts +13 -13
  31. package/dist/adapters/index.d.ts.map +1 -1
  32. package/dist/adapters/index.js +7 -7
  33. package/dist/adapters/index.js.map +1 -1
  34. package/dist/adapters/sessionRow.d.ts +1 -1
  35. package/dist/adapters/sessionRow.d.ts.map +1 -1
  36. package/dist/cjs/adapters/MemoryAdapter.d.ts +1 -1
  37. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
  38. package/dist/cjs/adapters/MemoryAdapter.js +14 -14
  39. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  40. package/dist/cjs/adapters/MongoAdapter.d.ts +1 -1
  41. package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
  42. package/dist/cjs/adapters/MongoAdapter.js +4 -4
  43. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  44. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +1 -1
  45. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
  46. package/dist/cjs/adapters/OpenSearchAdapter.js +6 -6
  47. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  48. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +1 -1
  49. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  50. package/dist/cjs/adapters/PostgreSQLAdapter.js +12 -12
  51. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  52. package/dist/cjs/adapters/PrismaAdapter.d.ts +1 -1
  53. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
  54. package/dist/cjs/adapters/PrismaAdapter.js +7 -7
  55. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  56. package/dist/cjs/adapters/RedisAdapter.d.ts +1 -1
  57. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
  58. package/dist/cjs/adapters/RedisAdapter.js +13 -13
  59. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  60. package/dist/cjs/adapters/SQLiteAdapter.d.ts +1 -1
  61. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  62. package/dist/cjs/adapters/SQLiteAdapter.js +8 -8
  63. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  64. package/dist/cjs/adapters/index.d.ts +13 -13
  65. package/dist/cjs/adapters/index.d.ts.map +1 -1
  66. package/dist/cjs/adapters/index.js +14 -14
  67. package/dist/cjs/adapters/index.js.map +1 -1
  68. package/dist/cjs/adapters/sessionRow.d.ts +1 -1
  69. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -1
  70. package/dist/cjs/core/Agent.d.ts +11 -11
  71. package/dist/cjs/core/Agent.d.ts.map +1 -1
  72. package/dist/cjs/core/Agent.js +65 -65
  73. package/dist/cjs/core/Agent.js.map +1 -1
  74. package/dist/cjs/core/AutoChainExecutor.d.ts +5 -5
  75. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
  76. package/dist/cjs/core/AutoChainExecutor.js +26 -26
  77. package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
  78. package/dist/cjs/core/BranchEvaluator.d.ts +4 -4
  79. package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -1
  80. package/dist/cjs/core/BranchEvaluator.js +6 -6
  81. package/dist/cjs/core/BranchEvaluator.js.map +1 -1
  82. package/dist/cjs/core/CompactionEngine.d.ts +2 -2
  83. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  84. package/dist/cjs/core/DirectiveChainTracker.d.ts +1 -1
  85. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -1
  86. package/dist/cjs/core/DirectiveChainTracker.js +5 -5
  87. package/dist/cjs/core/DirectiveChainTracker.js.map +1 -1
  88. package/dist/cjs/core/Events.d.ts +1 -1
  89. package/dist/cjs/core/Events.d.ts.map +1 -1
  90. package/dist/cjs/core/Events.js +15 -15
  91. package/dist/cjs/core/Events.js.map +1 -1
  92. package/dist/cjs/core/Flow.d.ts +4 -4
  93. package/dist/cjs/core/Flow.d.ts.map +1 -1
  94. package/dist/cjs/core/Flow.js +15 -15
  95. package/dist/cjs/core/Flow.js.map +1 -1
  96. package/dist/cjs/core/FlowRouter.d.ts +4 -4
  97. package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
  98. package/dist/cjs/core/FlowRouter.js +64 -64
  99. package/dist/cjs/core/FlowRouter.js.map +1 -1
  100. package/dist/cjs/core/PersistenceManager.d.ts +1 -1
  101. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  102. package/dist/cjs/core/PersistenceManager.js +10 -10
  103. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  104. package/dist/cjs/core/PromptComposer.d.ts +4 -4
  105. package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
  106. package/dist/cjs/core/PromptComposer.js +13 -13
  107. package/dist/cjs/core/PromptComposer.js.map +1 -1
  108. package/dist/cjs/core/PromptSectionCache.d.ts +2 -2
  109. package/dist/cjs/core/PromptSectionCache.d.ts.map +1 -1
  110. package/dist/cjs/core/ResponseEngine.d.ts +4 -4
  111. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  112. package/dist/cjs/core/ResponseEngine.js +7 -7
  113. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  114. package/dist/cjs/core/ResponseModal.d.ts +10 -10
  115. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  116. package/dist/cjs/core/ResponseModal.js +69 -69
  117. package/dist/cjs/core/ResponseModal.js.map +1 -1
  118. package/dist/cjs/core/ResponsePipeline.d.ts +15 -7
  119. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  120. package/dist/cjs/core/ResponsePipeline.js +99 -91
  121. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  122. package/dist/cjs/core/SessionFinalizer.d.ts +4 -4
  123. package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
  124. package/dist/cjs/core/SessionFinalizer.js +12 -12
  125. package/dist/cjs/core/SessionFinalizer.js.map +1 -1
  126. package/dist/cjs/core/SessionManager.d.ts +5 -5
  127. package/dist/cjs/core/SessionManager.d.ts.map +1 -1
  128. package/dist/cjs/core/SessionManager.js +8 -8
  129. package/dist/cjs/core/SessionManager.js.map +1 -1
  130. package/dist/cjs/core/SignalCoordinator.d.ts +5 -5
  131. package/dist/cjs/core/SignalCoordinator.d.ts.map +1 -1
  132. package/dist/cjs/core/SignalCoordinator.js +12 -12
  133. package/dist/cjs/core/SignalCoordinator.js.map +1 -1
  134. package/dist/cjs/core/SignalEvaluator.d.ts +4 -4
  135. package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -1
  136. package/dist/cjs/core/SignalEvaluator.js +6 -6
  137. package/dist/cjs/core/SignalEvaluator.js.map +1 -1
  138. package/dist/cjs/core/SignalProcessor.d.ts +6 -6
  139. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
  140. package/dist/cjs/core/SignalProcessor.js +14 -14
  141. package/dist/cjs/core/SignalProcessor.js.map +1 -1
  142. package/dist/cjs/core/Step.d.ts +5 -5
  143. package/dist/cjs/core/Step.d.ts.map +1 -1
  144. package/dist/cjs/core/Step.js +17 -17
  145. package/dist/cjs/core/Step.js.map +1 -1
  146. package/dist/cjs/core/StepLifecycle.d.ts +3 -3
  147. package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
  148. package/dist/cjs/core/StepLifecycle.js +10 -10
  149. package/dist/cjs/core/StepLifecycle.js.map +1 -1
  150. package/dist/cjs/core/StreamingToolExecutor.d.ts +1 -1
  151. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  152. package/dist/cjs/core/StreamingToolExecutor.js +5 -5
  153. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  154. package/dist/cjs/core/ToolLoopExecutor.d.ts +4 -4
  155. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
  156. package/dist/cjs/core/ToolLoopExecutor.js +51 -51
  157. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
  158. package/dist/cjs/core/ToolManager.d.ts +5 -5
  159. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  160. package/dist/cjs/core/ToolManager.js +66 -66
  161. package/dist/cjs/core/ToolManager.js.map +1 -1
  162. package/dist/cjs/core/createAgent.d.ts +2 -2
  163. package/dist/cjs/core/createAgent.d.ts.map +1 -1
  164. package/dist/cjs/core/createAgent.js +2 -2
  165. package/dist/cjs/core/createAgent.js.map +1 -1
  166. package/dist/cjs/core/flow-namespace.d.ts +2 -2
  167. package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
  168. package/dist/cjs/core/flow-namespace.js +4 -4
  169. package/dist/cjs/core/flow-namespace.js.map +1 -1
  170. package/dist/cjs/core/toolGates.d.ts +1 -1
  171. package/dist/cjs/core/toolGates.d.ts.map +1 -1
  172. package/dist/cjs/core/toolGates.js +3 -3
  173. package/dist/cjs/core/toolGates.js.map +1 -1
  174. package/dist/cjs/index.d.ts +50 -48
  175. package/dist/cjs/index.d.ts.map +1 -1
  176. package/dist/cjs/index.js +96 -91
  177. package/dist/cjs/index.js.map +1 -1
  178. package/dist/cjs/providers/AnthropicProvider.d.ts +25 -42
  179. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
  180. package/dist/cjs/providers/AnthropicProvider.js +31 -408
  181. package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
  182. package/dist/cjs/providers/DeepSeekProvider.d.ts +13 -34
  183. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  184. package/dist/cjs/providers/DeepSeekProvider.js +17 -51
  185. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  186. package/dist/cjs/providers/GeminiProvider.d.ts +24 -83
  187. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  188. package/dist/cjs/providers/GeminiProvider.js +32 -514
  189. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  190. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  191. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  192. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +14 -20
  193. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  194. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +26 -144
  195. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  196. package/dist/cjs/providers/OpenAICompatibleProvider.js +40 -523
  197. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  198. package/dist/cjs/providers/OpenAIProvider.d.ts +14 -20
  199. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  200. package/dist/cjs/providers/OpenAIProvider.js +20 -27
  201. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  202. package/dist/cjs/providers/OpenRouterProvider.d.ts +20 -24
  203. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  204. package/dist/cjs/providers/OpenRouterProvider.js +22 -38
  205. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  206. package/dist/cjs/providers/ProviderAdapter.d.ts +94 -0
  207. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -0
  208. package/dist/cjs/providers/ProviderAdapter.js +257 -0
  209. package/dist/cjs/providers/ProviderAdapter.js.map +1 -0
  210. package/dist/cjs/providers/index.d.ts +21 -18
  211. package/dist/cjs/providers/index.d.ts.map +1 -1
  212. package/dist/cjs/providers/index.js +23 -21
  213. package/dist/cjs/providers/index.js.map +1 -1
  214. package/dist/cjs/types/agent.d.ts +11 -11
  215. package/dist/cjs/types/agent.d.ts.map +1 -1
  216. package/dist/cjs/types/ai.d.ts +11 -21
  217. package/dist/cjs/types/ai.d.ts.map +1 -1
  218. package/dist/cjs/types/compaction.d.ts +2 -2
  219. package/dist/cjs/types/compaction.d.ts.map +1 -1
  220. package/dist/cjs/types/errors.d.ts +16 -20
  221. package/dist/cjs/types/errors.d.ts.map +1 -1
  222. package/dist/cjs/types/errors.js +17 -18
  223. package/dist/cjs/types/errors.js.map +1 -1
  224. package/dist/cjs/types/flow.d.ts +7 -7
  225. package/dist/cjs/types/flow.d.ts.map +1 -1
  226. package/dist/cjs/types/history.d.ts +1 -1
  227. package/dist/cjs/types/history.d.ts.map +1 -1
  228. package/dist/cjs/types/index.d.ts +17 -17
  229. package/dist/cjs/types/index.d.ts.map +1 -1
  230. package/dist/cjs/types/index.js +14 -14
  231. package/dist/cjs/types/index.js.map +1 -1
  232. package/dist/cjs/types/persistence.d.ts +2 -2
  233. package/dist/cjs/types/persistence.d.ts.map +1 -1
  234. package/dist/cjs/types/session.d.ts +4 -4
  235. package/dist/cjs/types/session.d.ts.map +1 -1
  236. package/dist/cjs/types/signals.d.ts +3 -3
  237. package/dist/cjs/types/signals.d.ts.map +1 -1
  238. package/dist/cjs/types/template.d.ts +2 -2
  239. package/dist/cjs/types/template.d.ts.map +1 -1
  240. package/dist/cjs/types/tool.d.ts +2 -2
  241. package/dist/cjs/types/tool.d.ts.map +1 -1
  242. package/dist/cjs/utils/condition.d.ts +1 -1
  243. package/dist/cjs/utils/condition.d.ts.map +1 -1
  244. package/dist/cjs/utils/condition.js +6 -6
  245. package/dist/cjs/utils/condition.js.map +1 -1
  246. package/dist/cjs/utils/event.d.ts +1 -1
  247. package/dist/cjs/utils/event.d.ts.map +1 -1
  248. package/dist/cjs/utils/event.js +2 -2
  249. package/dist/cjs/utils/event.js.map +1 -1
  250. package/dist/cjs/utils/history.d.ts +2 -2
  251. package/dist/cjs/utils/history.d.ts.map +1 -1
  252. package/dist/cjs/utils/history.js +15 -15
  253. package/dist/cjs/utils/history.js.map +1 -1
  254. package/dist/cjs/utils/index.d.ts +11 -13
  255. package/dist/cjs/utils/index.d.ts.map +1 -1
  256. package/dist/cjs/utils/index.js +57 -67
  257. package/dist/cjs/utils/index.js.map +1 -1
  258. package/dist/cjs/utils/serialize.d.ts +2 -2
  259. package/dist/cjs/utils/serialize.d.ts.map +1 -1
  260. package/dist/cjs/utils/session.d.ts +3 -3
  261. package/dist/cjs/utils/session.d.ts.map +1 -1
  262. package/dist/cjs/utils/session.js +4 -4
  263. package/dist/cjs/utils/session.js.map +1 -1
  264. package/dist/cjs/utils/template.d.ts +3 -3
  265. package/dist/cjs/utils/template.d.ts.map +1 -1
  266. package/dist/cjs/utils/template.js +5 -5
  267. package/dist/cjs/utils/template.js.map +1 -1
  268. package/dist/constants/index.d.ts +1 -0
  269. package/dist/constants/index.js +1 -1
  270. package/dist/core/Agent.d.ts +11 -11
  271. package/dist/core/Agent.d.ts.map +1 -1
  272. package/dist/core/Agent.js +13 -13
  273. package/dist/core/Agent.js.map +1 -1
  274. package/dist/core/AutoChainExecutor.d.ts +5 -5
  275. package/dist/core/AutoChainExecutor.d.ts.map +1 -1
  276. package/dist/core/AutoChainExecutor.js +5 -5
  277. package/dist/core/AutoChainExecutor.js.map +1 -1
  278. package/dist/core/BranchEvaluator.d.ts +4 -4
  279. package/dist/core/BranchEvaluator.d.ts.map +1 -1
  280. package/dist/core/BranchEvaluator.js +2 -2
  281. package/dist/core/BranchEvaluator.js.map +1 -1
  282. package/dist/core/CompactionEngine.d.ts +2 -2
  283. package/dist/core/CompactionEngine.d.ts.map +1 -1
  284. package/dist/core/DirectiveChainTracker.d.ts +1 -1
  285. package/dist/core/DirectiveChainTracker.d.ts.map +1 -1
  286. package/dist/core/DirectiveChainTracker.js +2 -2
  287. package/dist/core/DirectiveChainTracker.js.map +1 -1
  288. package/dist/core/Events.d.ts +1 -1
  289. package/dist/core/Events.d.ts.map +1 -1
  290. package/dist/core/Events.js +1 -1
  291. package/dist/core/Events.js.map +1 -1
  292. package/dist/core/Flow.d.ts +4 -4
  293. package/dist/core/Flow.d.ts.map +1 -1
  294. package/dist/core/Flow.js +3 -3
  295. package/dist/core/Flow.js.map +1 -1
  296. package/dist/core/FlowRouter.d.ts +4 -4
  297. package/dist/core/FlowRouter.d.ts.map +1 -1
  298. package/dist/core/FlowRouter.js +4 -4
  299. package/dist/core/FlowRouter.js.map +1 -1
  300. package/dist/core/PersistenceManager.d.ts +1 -1
  301. package/dist/core/PersistenceManager.d.ts.map +1 -1
  302. package/dist/core/PersistenceManager.js +3 -3
  303. package/dist/core/PersistenceManager.js.map +1 -1
  304. package/dist/core/PromptComposer.d.ts +4 -4
  305. package/dist/core/PromptComposer.d.ts.map +1 -1
  306. package/dist/core/PromptComposer.js +3 -3
  307. package/dist/core/PromptComposer.js.map +1 -1
  308. package/dist/core/PromptSectionCache.d.ts +2 -2
  309. package/dist/core/PromptSectionCache.d.ts.map +1 -1
  310. package/dist/core/ResponseEngine.d.ts +4 -4
  311. package/dist/core/ResponseEngine.d.ts.map +1 -1
  312. package/dist/core/ResponseEngine.js +2 -2
  313. package/dist/core/ResponseEngine.js.map +1 -1
  314. package/dist/core/ResponseModal.d.ts +10 -10
  315. package/dist/core/ResponseModal.d.ts.map +1 -1
  316. package/dist/core/ResponseModal.js +14 -14
  317. package/dist/core/ResponseModal.js.map +1 -1
  318. package/dist/core/ResponsePipeline.d.ts +15 -7
  319. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  320. package/dist/core/ResponsePipeline.js +25 -17
  321. package/dist/core/ResponsePipeline.js.map +1 -1
  322. package/dist/core/SessionFinalizer.d.ts +4 -4
  323. package/dist/core/SessionFinalizer.d.ts.map +1 -1
  324. package/dist/core/SessionFinalizer.js +3 -3
  325. package/dist/core/SessionFinalizer.js.map +1 -1
  326. package/dist/core/SessionManager.d.ts +5 -5
  327. package/dist/core/SessionManager.d.ts.map +1 -1
  328. package/dist/core/SessionManager.js +3 -3
  329. package/dist/core/SessionManager.js.map +1 -1
  330. package/dist/core/SignalCoordinator.d.ts +5 -5
  331. package/dist/core/SignalCoordinator.d.ts.map +1 -1
  332. package/dist/core/SignalCoordinator.js +2 -2
  333. package/dist/core/SignalCoordinator.js.map +1 -1
  334. package/dist/core/SignalEvaluator.d.ts +4 -4
  335. package/dist/core/SignalEvaluator.d.ts.map +1 -1
  336. package/dist/core/SignalEvaluator.js +2 -2
  337. package/dist/core/SignalEvaluator.js.map +1 -1
  338. package/dist/core/SignalProcessor.d.ts +6 -6
  339. package/dist/core/SignalProcessor.d.ts.map +1 -1
  340. package/dist/core/SignalProcessor.js +3 -3
  341. package/dist/core/SignalProcessor.js.map +1 -1
  342. package/dist/core/Step.d.ts +5 -5
  343. package/dist/core/Step.d.ts.map +1 -1
  344. package/dist/core/Step.js +4 -4
  345. package/dist/core/Step.js.map +1 -1
  346. package/dist/core/StepLifecycle.d.ts +3 -3
  347. package/dist/core/StepLifecycle.d.ts.map +1 -1
  348. package/dist/core/StepLifecycle.js +2 -2
  349. package/dist/core/StepLifecycle.js.map +1 -1
  350. package/dist/core/StreamingToolExecutor.d.ts +1 -1
  351. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  352. package/dist/core/StreamingToolExecutor.js +2 -2
  353. package/dist/core/StreamingToolExecutor.js.map +1 -1
  354. package/dist/core/ToolLoopExecutor.d.ts +4 -4
  355. package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
  356. package/dist/core/ToolLoopExecutor.js +3 -3
  357. package/dist/core/ToolLoopExecutor.js.map +1 -1
  358. package/dist/core/ToolManager.d.ts +5 -5
  359. package/dist/core/ToolManager.d.ts.map +1 -1
  360. package/dist/core/ToolManager.js +4 -4
  361. package/dist/core/ToolManager.js.map +1 -1
  362. package/dist/core/createAgent.d.ts +2 -2
  363. package/dist/core/createAgent.d.ts.map +1 -1
  364. package/dist/core/createAgent.js +1 -1
  365. package/dist/core/createAgent.js.map +1 -1
  366. package/dist/core/flow-namespace.d.ts +2 -2
  367. package/dist/core/flow-namespace.d.ts.map +1 -1
  368. package/dist/core/flow-namespace.js +1 -1
  369. package/dist/core/flow-namespace.js.map +1 -1
  370. package/dist/core/toolGates.d.ts +1 -1
  371. package/dist/core/toolGates.d.ts.map +1 -1
  372. package/dist/core/toolGates.js +1 -1
  373. package/dist/core/toolGates.js.map +1 -1
  374. package/dist/index.d.ts +50 -48
  375. package/dist/index.d.ts.map +1 -1
  376. package/dist/index.js +34 -31
  377. package/dist/index.js.map +1 -1
  378. package/dist/providers/AnthropicProvider.d.ts +25 -42
  379. package/dist/providers/AnthropicProvider.d.ts.map +1 -1
  380. package/dist/providers/AnthropicProvider.js +31 -405
  381. package/dist/providers/AnthropicProvider.js.map +1 -1
  382. package/dist/providers/DeepSeekProvider.d.ts +13 -34
  383. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  384. package/dist/providers/DeepSeekProvider.js +16 -47
  385. package/dist/providers/DeepSeekProvider.js.map +1 -1
  386. package/dist/providers/GeminiProvider.d.ts +24 -83
  387. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  388. package/dist/providers/GeminiProvider.js +32 -514
  389. package/dist/providers/GeminiProvider.js.map +1 -1
  390. package/dist/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
  391. package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
  392. package/dist/providers/GenericOpenAICompatibleProvider.js +13 -16
  393. package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -1
  394. package/dist/providers/OpenAICompatibleProvider.d.ts +26 -144
  395. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  396. package/dist/providers/OpenAICompatibleProvider.js +39 -522
  397. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  398. package/dist/providers/OpenAIProvider.d.ts +14 -20
  399. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  400. package/dist/providers/OpenAIProvider.js +19 -23
  401. package/dist/providers/OpenAIProvider.js.map +1 -1
  402. package/dist/providers/OpenRouterProvider.d.ts +20 -24
  403. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  404. package/dist/providers/OpenRouterProvider.js +21 -34
  405. package/dist/providers/OpenRouterProvider.js.map +1 -1
  406. package/dist/providers/ProviderAdapter.d.ts +94 -0
  407. package/dist/providers/ProviderAdapter.d.ts.map +1 -0
  408. package/dist/providers/ProviderAdapter.js +251 -0
  409. package/dist/providers/ProviderAdapter.js.map +1 -0
  410. package/dist/providers/index.d.ts +21 -18
  411. package/dist/providers/index.d.ts.map +1 -1
  412. package/dist/providers/index.js +13 -10
  413. package/dist/providers/index.js.map +1 -1
  414. package/dist/types/agent.d.ts +11 -11
  415. package/dist/types/agent.d.ts.map +1 -1
  416. package/dist/types/ai.d.ts +11 -21
  417. package/dist/types/ai.d.ts.map +1 -1
  418. package/dist/types/compaction.d.ts +2 -2
  419. package/dist/types/compaction.d.ts.map +1 -1
  420. package/dist/types/errors.d.ts +16 -20
  421. package/dist/types/errors.d.ts.map +1 -1
  422. package/dist/types/errors.js +15 -16
  423. package/dist/types/errors.js.map +1 -1
  424. package/dist/types/flow.d.ts +7 -7
  425. package/dist/types/flow.d.ts.map +1 -1
  426. package/dist/types/history.d.ts +1 -1
  427. package/dist/types/history.d.ts.map +1 -1
  428. package/dist/types/index.d.ts +17 -17
  429. package/dist/types/index.d.ts.map +1 -1
  430. package/dist/types/index.js +4 -4
  431. package/dist/types/index.js.map +1 -1
  432. package/dist/types/persistence.d.ts +2 -2
  433. package/dist/types/persistence.d.ts.map +1 -1
  434. package/dist/types/session.d.ts +4 -4
  435. package/dist/types/session.d.ts.map +1 -1
  436. package/dist/types/signals.d.ts +3 -3
  437. package/dist/types/signals.d.ts.map +1 -1
  438. package/dist/types/template.d.ts +2 -2
  439. package/dist/types/template.d.ts.map +1 -1
  440. package/dist/types/tool.d.ts +2 -2
  441. package/dist/types/tool.d.ts.map +1 -1
  442. package/dist/utils/condition.d.ts +1 -1
  443. package/dist/utils/condition.d.ts.map +1 -1
  444. package/dist/utils/condition.js +2 -2
  445. package/dist/utils/condition.js.map +1 -1
  446. package/dist/utils/event.d.ts +1 -1
  447. package/dist/utils/event.d.ts.map +1 -1
  448. package/dist/utils/event.js +1 -1
  449. package/dist/utils/event.js.map +1 -1
  450. package/dist/utils/history.d.ts +2 -2
  451. package/dist/utils/history.d.ts.map +1 -1
  452. package/dist/utils/history.js +1 -1
  453. package/dist/utils/history.js.map +1 -1
  454. package/dist/utils/index.d.ts +11 -13
  455. package/dist/utils/index.d.ts.map +1 -1
  456. package/dist/utils/index.js +11 -12
  457. package/dist/utils/index.js.map +1 -1
  458. package/dist/utils/serialize.d.ts +2 -2
  459. package/dist/utils/serialize.d.ts.map +1 -1
  460. package/dist/utils/session.d.ts +3 -3
  461. package/dist/utils/session.d.ts.map +1 -1
  462. package/dist/utils/session.js +2 -2
  463. package/dist/utils/session.js.map +1 -1
  464. package/dist/utils/template.d.ts +3 -3
  465. package/dist/utils/template.d.ts.map +1 -1
  466. package/dist/utils/template.js +1 -1
  467. package/dist/utils/template.js.map +1 -1
  468. package/docs/reference/branches.md +2 -0
  469. package/docs/reference/errors.md +5 -5
  470. package/docs/reference/providers.md +42 -43
  471. package/examples/01-quickstart.ts +1 -1
  472. package/examples/04-instructions.ts +1 -1
  473. package/examples/05-branching.ts +2 -2
  474. package/examples/08-persistence.ts +1 -1
  475. package/examples/tsconfig.json +6 -3
  476. package/package.json +8 -6
  477. package/src/adapters/MemoryAdapter.ts +4 -4
  478. package/src/adapters/MongoAdapter.ts +3 -3
  479. package/src/adapters/OpenSearchAdapter.ts +4 -4
  480. package/src/adapters/PostgreSQLAdapter.ts +4 -4
  481. package/src/adapters/PrismaAdapter.ts +4 -4
  482. package/src/adapters/RedisAdapter.ts +4 -4
  483. package/src/adapters/SQLiteAdapter.ts +4 -4
  484. package/src/adapters/index.ts +13 -13
  485. package/src/adapters/sessionRow.ts +1 -1
  486. package/src/core/Agent.ts +18 -18
  487. package/src/core/AutoChainExecutor.ts +9 -9
  488. package/src/core/BranchEvaluator.ts +5 -5
  489. package/src/core/CompactionEngine.ts +2 -2
  490. package/src/core/DirectiveChainTracker.ts +3 -3
  491. package/src/core/Events.ts +2 -2
  492. package/src/core/Flow.ts +9 -9
  493. package/src/core/FlowRouter.ts +8 -8
  494. package/src/core/PersistenceManager.ts +4 -4
  495. package/src/core/PromptComposer.ts +8 -8
  496. package/src/core/PromptSectionCache.ts +2 -2
  497. package/src/core/ResponseEngine.ts +6 -6
  498. package/src/core/ResponseModal.ts +24 -24
  499. package/src/core/ResponsePipeline.ts +43 -23
  500. package/src/core/SessionFinalizer.ts +7 -7
  501. package/src/core/SessionManager.ts +7 -7
  502. package/src/core/SignalCoordinator.ts +7 -7
  503. package/src/core/SignalEvaluator.ts +6 -6
  504. package/src/core/SignalProcessor.ts +9 -9
  505. package/src/core/Step.ts +9 -9
  506. package/src/core/StepLifecycle.ts +6 -6
  507. package/src/core/StreamingToolExecutor.ts +4 -4
  508. package/src/core/ToolLoopExecutor.ts +7 -7
  509. package/src/core/ToolManager.ts +9 -9
  510. package/src/core/createAgent.ts +2 -2
  511. package/src/core/flow-namespace.ts +3 -3
  512. package/src/core/toolGates.ts +2 -2
  513. package/src/index.ts +59 -48
  514. package/src/providers/AnthropicProvider.ts +45 -548
  515. package/src/providers/DeepSeekProvider.ts +27 -92
  516. package/src/providers/GeminiProvider.ts +43 -680
  517. package/src/providers/GenericOpenAICompatibleProvider.ts +19 -27
  518. package/src/providers/OpenAICompatibleProvider.ts +58 -763
  519. package/src/providers/OpenAIProvider.ts +31 -55
  520. package/src/providers/OpenRouterProvider.ts +40 -70
  521. package/src/providers/ProviderAdapter.ts +368 -0
  522. package/src/providers/index.ts +21 -23
  523. package/src/types/agent.ts +11 -11
  524. package/src/types/ai.ts +11 -21
  525. package/src/types/compaction.ts +2 -2
  526. package/src/types/errors.ts +17 -35
  527. package/src/types/flow.ts +7 -7
  528. package/src/types/history.ts +1 -1
  529. package/src/types/index.ts +17 -17
  530. package/src/types/persistence.ts +2 -2
  531. package/src/types/session.ts +4 -4
  532. package/src/types/signals.ts +3 -3
  533. package/src/types/template.ts +2 -2
  534. package/src/types/tool.ts +2 -2
  535. package/src/utils/condition.ts +3 -3
  536. package/src/utils/event.ts +1 -1
  537. package/src/utils/history.ts +3 -3
  538. package/src/utils/index.ts +11 -31
  539. package/src/utils/serialize.ts +2 -2
  540. package/src/utils/session.ts +6 -6
  541. package/src/utils/template.ts +3 -3
  542. package/dist/cjs/providers/errorClassification.d.ts +0 -68
  543. package/dist/cjs/providers/errorClassification.d.ts.map +0 -1
  544. package/dist/cjs/providers/errorClassification.js +0 -150
  545. package/dist/cjs/providers/errorClassification.js.map +0 -1
  546. package/dist/cjs/utils/retry.d.ts +0 -165
  547. package/dist/cjs/utils/retry.d.ts.map +0 -1
  548. package/dist/cjs/utils/retry.js +0 -338
  549. package/dist/cjs/utils/retry.js.map +0 -1
  550. package/dist/providers/errorClassification.d.ts +0 -68
  551. package/dist/providers/errorClassification.d.ts.map +0 -1
  552. package/dist/providers/errorClassification.js +0 -142
  553. package/dist/providers/errorClassification.js.map +0 -1
  554. package/dist/utils/retry.d.ts +0 -165
  555. package/dist/utils/retry.d.ts.map +0 -1
  556. package/dist/utils/retry.js +0 -327
  557. package/dist/utils/retry.js.map +0 -1
  558. package/src/providers/errorClassification.ts +0 -206
  559. package/src/utils/retry.ts +0 -523
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * Response processing utilities shared between respond() and respondStream() methods
3
3
  */
4
- import type { EndedFlow, AgentOptions, Event, SessionState, Directive, StructuredSchema } from "../types";
5
- import type { SignalFiring } from "../types/signals";
6
- import { Flow } from "./Flow";
7
- import { Step } from "../core/Step";
8
- import { FlowRouter } from "./FlowRouter";
9
- import { DirectiveChainTracker } from "./DirectiveChainTracker";
10
- import type { SignalCoordinator } from "./SignalCoordinator";
4
+ import type { EndedFlow, AgentOptions, Event, SessionState, Directive, StructuredSchema } from "../types/index.js";
5
+ import type { SignalFiring } from "../types/signals.js";
6
+ import { Flow } from "./Flow.js";
7
+ import { Step } from "../core/Step.js";
8
+ import { FlowRouter } from "./FlowRouter.js";
9
+ import { DirectiveChainTracker } from "./DirectiveChainTracker.js";
10
+ import type { SignalCoordinator } from "./SignalCoordinator.js";
11
11
  /**
12
12
  * Returns `true` if the given directive has at least one position field set.
13
13
  * Used as the guard at the directive-bus / branch-evaluation seam:
@@ -104,6 +104,14 @@ export declare class ResponsePipeline<TContext = unknown, TData = unknown> {
104
104
  nextStep: Step<TContext, TData> | undefined;
105
105
  session: SessionState<TData>;
106
106
  flowChanged?: Flow<TContext, TData>;
107
+ /**
108
+ * The turn's authoritative completion verdict — callers must use this, not
109
+ * the `isFlowComplete` they passed in. The router derives its verdict from
110
+ * the LINEAR chain alone (the current step has no successor), before
111
+ * branches run, so what it returns is only a proposal. Branches win over
112
+ * flow completion (Algorithm 1, STEP 1) and this is where that resolves.
113
+ */
114
+ isFlowComplete: boolean;
107
115
  }>;
108
116
  /**
109
117
  * Evaluate branches on a step and resolve the `then` value.
@@ -1 +1 @@
1
- {"version":3,"file":"ResponsePipeline.d.ts","sourceRoot":"","sources":["../../../src/core/ResponsePipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResponsePipeline.d.ts","sourceRoot":"","sources":["../../../src/core/ResponsePipeline.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ResponsePipeline = void 0;
7
7
  exports.hasDirectivePositionField = hasDirectivePositionField;
8
- const utils_1 = require("../utils");
9
- const session_1 = require("../utils/session");
10
- const template_1 = require("../utils/template");
11
- const Step_1 = require("../core/Step");
12
- const BranchEvaluator_1 = require("./BranchEvaluator");
13
- const DirectiveChainTracker_1 = require("./DirectiveChainTracker");
14
- const ResponseGenerationError_1 = require("./ResponseGenerationError");
8
+ const index_js_1 = require("../utils/index.js");
9
+ const session_js_1 = require("../utils/session.js");
10
+ const template_js_1 = require("../utils/template.js");
11
+ const Step_js_1 = require("../core/Step.js");
12
+ const BranchEvaluator_js_1 = require("./BranchEvaluator.js");
13
+ const DirectiveChainTracker_js_1 = require("./DirectiveChainTracker.js");
14
+ const ResponseGenerationError_js_1 = require("./ResponseGenerationError.js");
15
15
  /**
16
16
  * Position fields on a Directive that represent a navigation decision.
17
17
  * When any of these is set, the directive "wins" the turn's position decision
@@ -64,7 +64,7 @@ class ResponsePipeline {
64
64
  */
65
65
  createChainTracker() {
66
66
  const maxChain = this.options.maxDirectiveChain ?? 10;
67
- this._chainTracker = new DirectiveChainTracker_1.DirectiveChainTracker(maxChain);
67
+ this._chainTracker = new DirectiveChainTracker_js_1.DirectiveChainTracker(maxChain);
68
68
  return this._chainTracker;
69
69
  }
70
70
  /**
@@ -95,7 +95,7 @@ class ResponsePipeline {
95
95
  ...contextOverride,
96
96
  };
97
97
  // Initialize or get session (use the live session if available)
98
- const targetSession = session || params.currentSession || (0, utils_1.createSession)();
98
+ const targetSession = session || params.currentSession || (0, index_js_1.createSession)();
99
99
  return {
100
100
  effectiveContext,
101
101
  session: targetSession,
@@ -130,7 +130,7 @@ class ResponsePipeline {
130
130
  // Check for pending directive from previous flow completion or external dispatch
131
131
  if (targetSession.pendingDirective) {
132
132
  const directive = targetSession.pendingDirective;
133
- utils_1.logger.debug(`[ResponsePipeline] Applying pending directive at start of turn`);
133
+ index_js_1.logger.debug(`[ResponsePipeline] Applying pending directive at start of turn`);
134
134
  // Track directive chain depth (Requirement 22.1)
135
135
  const tracker = this.chainTracker;
136
136
  tracker.record(directive, "pending");
@@ -161,15 +161,15 @@ class ResponsePipeline {
161
161
  if (flowTarget) {
162
162
  const targetFlow = flows.find((r) => r.id === flowTarget || r.title === flowTarget);
163
163
  if (targetFlow) {
164
- utils_1.logger.debug(`[ResponsePipeline] Pending directive goTo → flow: ${targetFlow.title}`);
165
- targetSession = (0, session_1.enterFlow)(targetSession, targetFlow.id, targetFlow.title);
164
+ index_js_1.logger.debug(`[ResponsePipeline] Pending directive goTo → flow: ${targetFlow.title}`);
165
+ targetSession = (0, session_js_1.enterFlow)(targetSession, targetFlow.id, targetFlow.title);
166
166
  // Merge initial data if available
167
167
  if (targetFlow.initialData) {
168
- targetSession = (0, utils_1.mergeCollected)(targetSession, targetFlow.initialData);
168
+ targetSession = (0, index_js_1.mergeCollected)(targetSession, targetFlow.initialData);
169
169
  }
170
170
  // Merge directive-carried data if present
171
171
  if (typeof directive.goTo === 'object' && directive.goTo.data) {
172
- targetSession = (0, utils_1.mergeCollected)(targetSession, directive.goTo.data);
172
+ targetSession = (0, index_js_1.mergeCollected)(targetSession, directive.goTo.data);
173
173
  }
174
174
  selectedFlow = targetFlow;
175
175
  // If goTo specifies a step, enter it
@@ -177,13 +177,13 @@ class ResponsePipeline {
177
177
  const stepTarget = directive.goTo.step;
178
178
  const targetStep = targetFlow.getStep(stepTarget);
179
179
  if (targetStep) {
180
- targetSession = (0, utils_1.enterStep)(targetSession, targetStep.id, targetStep.description);
180
+ targetSession = (0, index_js_1.enterStep)(targetSession, targetStep.id, targetStep.description);
181
181
  selectedStep = targetStep;
182
182
  }
183
183
  }
184
184
  }
185
185
  else {
186
- utils_1.logger.warn(`[FlowConfigurationError] Pending directive goTo target not found: flow "${flowTarget}" does not exist. Falling back to normal routing. Fix the goTo reference or remove the pending directive.`);
186
+ index_js_1.logger.warn(`[FlowConfigurationError] Pending directive goTo target not found: flow "${flowTarget}" does not exist. Falling back to normal routing. Fix the goTo reference or remove the pending directive.`);
187
187
  }
188
188
  }
189
189
  }
@@ -197,11 +197,11 @@ class ResponsePipeline {
197
197
  if (flowTarget) {
198
198
  const targetFlow = flows.find((r) => r.id === flowTarget || r.title === flowTarget);
199
199
  if (targetFlow) {
200
- targetSession = (0, session_1.enterFlow)(targetSession, targetFlow.id, targetFlow.title);
200
+ targetSession = (0, session_js_1.enterFlow)(targetSession, targetFlow.id, targetFlow.title);
201
201
  selectedFlow = targetFlow;
202
202
  const targetStep = targetFlow.getStep(stepTarget);
203
203
  if (targetStep) {
204
- targetSession = (0, utils_1.enterStep)(targetSession, targetStep.id, targetStep.description);
204
+ targetSession = (0, index_js_1.enterStep)(targetSession, targetStep.id, targetStep.description);
205
205
  selectedStep = targetStep;
206
206
  }
207
207
  }
@@ -213,7 +213,7 @@ class ResponsePipeline {
213
213
  selectedFlow = currentFlow;
214
214
  const targetStep = currentFlow.getStep(stepTarget);
215
215
  if (targetStep) {
216
- targetSession = (0, utils_1.enterStep)(targetSession, targetStep.id, targetStep.description);
216
+ targetSession = (0, index_js_1.enterStep)(targetSession, targetStep.id, targetStep.description);
217
217
  selectedStep = targetStep;
218
218
  }
219
219
  }
@@ -232,14 +232,14 @@ class ResponsePipeline {
232
232
  if (resetStep) {
233
233
  const targetStep = currentFlow.getStep(resetStep);
234
234
  if (targetStep) {
235
- targetSession = (0, utils_1.enterStep)(targetSession, targetStep.id, targetStep.description);
235
+ targetSession = (0, index_js_1.enterStep)(targetSession, targetStep.id, targetStep.description);
236
236
  selectedStep = targetStep;
237
237
  }
238
238
  }
239
239
  else {
240
240
  // Reset to initial step
241
241
  const initialStep = currentFlow.initialStep;
242
- targetSession = (0, utils_1.enterStep)(targetSession, initialStep.id, initialStep.description);
242
+ targetSession = (0, index_js_1.enterStep)(targetSession, initialStep.id, initialStep.description);
243
243
  selectedStep = initialStep;
244
244
  }
245
245
  }
@@ -248,7 +248,7 @@ class ResponsePipeline {
248
248
  // For complete/abort, selectedFlow stays undefined → handled downstream
249
249
  // Apply state writes from the directive
250
250
  if (directive.dataUpdate) {
251
- targetSession = (0, utils_1.mergeCollected)(targetSession, directive.dataUpdate);
251
+ targetSession = (0, index_js_1.mergeCollected)(targetSession, directive.dataUpdate);
252
252
  }
253
253
  // Skip FlowRouter.decideFlowAndStep — the directive resolved the position
254
254
  }
@@ -277,7 +277,7 @@ class ResponsePipeline {
277
277
  completedFlows = orchestration.completedFlows || [];
278
278
  // Log if flow is complete
279
279
  if (isFlowComplete) {
280
- utils_1.logger.debug(`[ResponsePipeline] Flow complete: all required data collected or last step reached`);
280
+ index_js_1.logger.debug(`[ResponsePipeline] Flow complete: all required data collected or last step reached`);
281
281
  }
282
282
  }
283
283
  return {
@@ -306,7 +306,7 @@ class ResponsePipeline {
306
306
  }
307
307
  const signalWrites = diffSignalDataWrites(inputSession.data, signalSession.data);
308
308
  if (Object.keys(signalWrites).length > 0) {
309
- combined = (0, utils_1.mergeCollected)(combined, signalWrites);
309
+ combined = (0, index_js_1.mergeCollected)(combined, signalWrites);
310
310
  }
311
311
  return combined;
312
312
  }
@@ -316,7 +316,7 @@ class ResponsePipeline {
316
316
  async determineNextStep(params) {
317
317
  const { selectedFlow, selectedStep, session, isFlowComplete, context, busDirective } = params;
318
318
  if (!selectedFlow) {
319
- return { nextStep: undefined, session };
319
+ return { nextStep: undefined, session, isFlowComplete };
320
320
  }
321
321
  // ─── GUARD: directive bus winner with a position field preempts branches ───
322
322
  // Resolution precedence (design.md): bus > branches > linear > AI.
@@ -324,8 +324,8 @@ class ResponsePipeline {
324
324
  // complete, abort, reset), that decision wins the turn. Do NOT evaluate
325
325
  // branches or linear/AI selection — the caller applies the bus directive.
326
326
  if (hasDirectivePositionField(busDirective)) {
327
- utils_1.logger.debug(`[ResponsePipeline] Directive bus winner has position field — skipping branch evaluation and linear/AI selection`);
328
- return { nextStep: undefined, session };
327
+ index_js_1.logger.debug(`[ResponsePipeline] Directive bus winner has position field — skipping branch evaluation and linear/AI selection`);
328
+ return { nextStep: undefined, session, isFlowComplete };
329
329
  }
330
330
  // STEP 1 (Algorithm 1): branches win over linear chain AND flow completion.
331
331
  // Evaluate branches before checking isFlowComplete — a branch can redirect
@@ -337,13 +337,20 @@ class ResponsePipeline {
337
337
  if (currentStep?.branches && currentStep.branches.length > 0) {
338
338
  const branchResult = await this.evaluateStepBranches(currentStep, selectedFlow, session, context);
339
339
  if (branchResult) {
340
- return branchResult;
340
+ // A branch that resolved a position overrides the router's completion
341
+ // proposal. Without this, a branch that parks on a step of its own
342
+ // flow (`then: '<stepId>'`, `then: { reset: true }`) keeps
343
+ // isFlowComplete=true, the caller drops the step it just resolved,
344
+ // and the turn ends as a silent completion — no LLM call, empty
345
+ // reply, flow marked completed for the rest of the session.
346
+ const resolvedPosition = Boolean(branchResult.nextStep || branchResult.flowChanged);
347
+ return { ...branchResult, isFlowComplete: resolvedPosition ? false : isFlowComplete };
341
348
  }
342
349
  // undefined → fall through to linear/AI selection or flow completion
343
350
  }
344
351
  }
345
352
  if (isFlowComplete) {
346
- return { nextStep: undefined, session };
353
+ return { nextStep: undefined, session, isFlowComplete: true };
347
354
  }
348
355
  let nextStep;
349
356
  // If we have a selected step from the combined routing decision, use it
@@ -357,15 +364,15 @@ class ResponsePipeline {
357
364
  : undefined;
358
365
  // Get candidate steps based on current position in the flow
359
366
  const candidates = await this.flowRouter.getCandidateStepsWithConditions(selectedFlow, currentStep, // Pass current step instead of undefined to maintain progression
360
- (0, template_1.createTemplateContext)({ data: session.data, session, context }));
367
+ (0, template_js_1.createTemplateContext)({ data: session.data, session, context }));
361
368
  if (candidates.length > 0) {
362
369
  nextStep = candidates[0].step;
363
- utils_1.logger.debug(`[ResponsePipeline] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new flow'}`);
370
+ index_js_1.logger.debug(`[ResponsePipeline] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new flow'}`);
364
371
  }
365
372
  else {
366
373
  // Fallback to initial step even if it should be skipped
367
374
  nextStep = selectedFlow.initialStep;
368
- utils_1.logger.warn(`[FlowConfigurationError] No valid steps found in flow "${selectedFlow.title}": all candidates were skipped. Falling back to initial step "${nextStep.id}". Review step skip conditions.`);
375
+ index_js_1.logger.warn(`[FlowConfigurationError] No valid steps found in flow "${selectedFlow.title}": all candidates were skipped. Falling back to initial step "${nextStep.id}". Review step skip conditions.`);
369
376
  }
370
377
  }
371
378
  // Before entering the step, check if requires fields are satisfied
@@ -373,7 +380,7 @@ class ResponsePipeline {
373
380
  const sessionData = session.data || {};
374
381
  const missingRequires = nextStep.requires.filter(field => sessionData[String(field)] === undefined);
375
382
  if (missingRequires.length > 0) {
376
- utils_1.logger.debug(`[ResponsePipeline] Cannot enter step "${nextStep.id}": missing required fields [${missingRequires.join(', ')}]. Staying at current step.`);
383
+ index_js_1.logger.debug(`[ResponsePipeline] Cannot enter step "${nextStep.id}": missing required fields [${missingRequires.join(', ')}]. Staying at current step.`);
377
384
  // Stay at current step - don't enter the next one
378
385
  const currentStepId = session.currentStep?.id;
379
386
  if (currentStepId && selectedFlow) {
@@ -382,13 +389,13 @@ class ResponsePipeline {
382
389
  nextStep = currentStepInstance;
383
390
  }
384
391
  }
385
- return { nextStep, session };
392
+ return { nextStep, session, isFlowComplete: false };
386
393
  }
387
394
  }
388
395
  // Update session with next step
389
- const updatedSession = (0, utils_1.enterStep)(session, nextStep.id, nextStep.description);
390
- utils_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
391
- return { nextStep, session: updatedSession };
396
+ const updatedSession = (0, index_js_1.enterStep)(session, nextStep.id, nextStep.description);
397
+ index_js_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
398
+ return { nextStep, session: updatedSession, isFlowComplete: false };
392
399
  }
393
400
  /**
394
401
  * Evaluate branches on a step and resolve the `then` value.
@@ -402,7 +409,7 @@ class ResponsePipeline {
402
409
  * Returns the resolved { nextStep, session, flowChanged? } or undefined if no branch matched.
403
410
  */
404
411
  async evaluateStepBranches(currentStep, selectedFlow, session, context) {
405
- const history = session.history ? (0, utils_1.historyToEvents)(session.history) : [];
412
+ const history = session.history ? (0, index_js_1.historyToEvents)(session.history) : [];
406
413
  // Build the BranchPredicateContext
407
414
  const branchCtx = {
408
415
  data: session.data,
@@ -411,8 +418,8 @@ class ResponsePipeline {
411
418
  history,
412
419
  };
413
420
  // Create the AI condition evaluator
414
- const aiEvaluator = (0, BranchEvaluator_1.createAiConditionEvaluator)(this.options.provider, history, context);
415
- const result = await (0, BranchEvaluator_1.evaluateBranches)(currentStep.branches, branchCtx, aiEvaluator);
421
+ const aiEvaluator = (0, BranchEvaluator_js_1.createAiConditionEvaluator)(this.options.provider, history, context);
422
+ const result = await (0, BranchEvaluator_js_1.evaluateBranches)(currentStep.branches, branchCtx, aiEvaluator);
416
423
  if (result === undefined) {
417
424
  return undefined; // No branch matched → fall through to linear/AI selection
418
425
  }
@@ -425,8 +432,8 @@ class ResponsePipeline {
425
432
  // 1. Look up in current flow's step registry first (local step wins)
426
433
  const localStep = selectedFlow.getStep(result);
427
434
  if (localStep) {
428
- const updatedSession = (0, utils_1.enterStep)(session, localStep.id, localStep.description);
429
- utils_1.logger.debug(`[ResponsePipeline] Branch resolved to local step: ${localStep.id}`);
435
+ const updatedSession = (0, index_js_1.enterStep)(session, localStep.id, localStep.description);
436
+ index_js_1.logger.debug(`[ResponsePipeline] Branch resolved to local step: ${localStep.id}`);
430
437
  return { nextStep: localStep, session: updatedSession };
431
438
  }
432
439
  // 2. Look up in agent's flow registry
@@ -434,12 +441,12 @@ class ResponsePipeline {
434
441
  const targetFlow = flows.find(f => f.id === result || f.title === result);
435
442
  if (targetFlow) {
436
443
  // Treat as applyDirective({ goTo: result }) — enter the target flow
437
- utils_1.logger.debug(`[ResponsePipeline] Branch resolved to flow: ${targetFlow.title}`);
438
- const updatedSession = (0, session_1.enterFlow)(session, targetFlow.id, targetFlow.title);
444
+ index_js_1.logger.debug(`[ResponsePipeline] Branch resolved to flow: ${targetFlow.title}`);
445
+ const updatedSession = (0, session_js_1.enterFlow)(session, targetFlow.id, targetFlow.title);
439
446
  return { nextStep: undefined, session: updatedSession, flowChanged: targetFlow };
440
447
  }
441
448
  // 3. Neither → throw FlowConfigurationError
442
- throw new Step_1.FlowConfigurationError(`[FlowConfigurationError] Unresolved branch target: "${result}" does not match any step in flow "${selectedFlow.id}" or any flow in the agent. ` +
449
+ throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Unresolved branch target: "${result}" does not match any step in flow "${selectedFlow.id}" or any flow in the agent. ` +
443
450
  `Source: ${selectedFlow.id}.${currentStep.id}. Fix the branch "then" value to reference a valid step id or flow id/title.`);
444
451
  }
445
452
  /**
@@ -453,7 +460,7 @@ class ResponsePipeline {
453
460
  let updatedSession = session;
454
461
  // Apply state writes first
455
462
  if (directive.dataUpdate) {
456
- updatedSession = (0, utils_1.mergeCollected)(updatedSession, directive.dataUpdate);
463
+ updatedSession = (0, index_js_1.mergeCollected)(updatedSession, directive.dataUpdate);
457
464
  }
458
465
  // Handle position fields
459
466
  if (directive.goToStep) {
@@ -468,24 +475,24 @@ class ResponsePipeline {
468
475
  const flows = this.getFlows();
469
476
  const targetFlow = flows.find(f => f.id === flowTarget || f.title === flowTarget);
470
477
  if (targetFlow) {
471
- updatedSession = (0, session_1.enterFlow)(updatedSession, targetFlow.id, targetFlow.title);
472
- updatedSession = (0, utils_1.enterStep)(updatedSession, stepTarget);
478
+ updatedSession = (0, session_js_1.enterFlow)(updatedSession, targetFlow.id, targetFlow.title);
479
+ updatedSession = (0, index_js_1.enterStep)(updatedSession, stepTarget);
473
480
  // Try to resolve the target step instance for the caller
474
481
  const targetStepInstance = targetFlow.getStep(stepTarget);
475
- utils_1.logger.debug(`[ResponsePipeline] Branch directive goToStep → ${flowTarget}.${stepTarget}`);
482
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive goToStep → ${flowTarget}.${stepTarget}`);
476
483
  return { nextStep: targetStepInstance || undefined, session: updatedSession, flowChanged: targetFlow };
477
484
  }
478
- throw new Step_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goToStep targets unknown flow: "${flowTarget}" does not match any flow id or title. ` +
485
+ throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goToStep targets unknown flow: "${flowTarget}" does not match any flow id or title. ` +
479
486
  `Fix the goToStep.flow value or use goTo to target a known flow.`);
480
487
  }
481
488
  // Local step reference
482
489
  const targetStep = selectedFlow.getStep(stepTarget);
483
490
  if (targetStep) {
484
- updatedSession = (0, utils_1.enterStep)(updatedSession, targetStep.id, targetStep.description);
485
- utils_1.logger.debug(`[ResponsePipeline] Branch directive goToStep → ${targetStep.id}`);
491
+ updatedSession = (0, index_js_1.enterStep)(updatedSession, targetStep.id, targetStep.description);
492
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive goToStep → ${targetStep.id}`);
486
493
  return { nextStep: targetStep, session: updatedSession };
487
494
  }
488
- throw new Step_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goToStep targets unknown step: "${stepTarget}" does not exist in flow "${selectedFlow.id}". ` +
495
+ throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goToStep targets unknown step: "${stepTarget}" does not exist in flow "${selectedFlow.id}". ` +
489
496
  `Fix the goToStep value to reference a valid step id in the current flow.`);
490
497
  }
491
498
  if (directive.goTo) {
@@ -496,24 +503,24 @@ class ResponsePipeline {
496
503
  const flows = this.getFlows();
497
504
  const targetFlow = flows.find(f => f.id === flowTarget || f.title === flowTarget);
498
505
  if (targetFlow) {
499
- updatedSession = (0, session_1.enterFlow)(updatedSession, targetFlow.id, targetFlow.title);
506
+ updatedSession = (0, session_js_1.enterFlow)(updatedSession, targetFlow.id, targetFlow.title);
500
507
  // If goTo is an object with a step field, enter that step too
501
508
  if (typeof directive.goTo === 'object' && directive.goTo.step) {
502
- updatedSession = (0, utils_1.enterStep)(updatedSession, directive.goTo.step);
509
+ updatedSession = (0, index_js_1.enterStep)(updatedSession, directive.goTo.step);
503
510
  }
504
- utils_1.logger.debug(`[ResponsePipeline] Branch directive goTo → ${targetFlow.title}`);
511
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive goTo → ${targetFlow.title}`);
505
512
  return { nextStep: undefined, session: updatedSession, flowChanged: targetFlow };
506
513
  }
507
- throw new Step_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goTo targets unknown flow: "${flowTarget}" does not match any flow id or title. ` +
514
+ throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Branch directive goTo targets unknown flow: "${flowTarget}" does not match any flow id or title. ` +
508
515
  `Fix the goTo value to reference a valid flow.`);
509
516
  }
510
517
  }
511
518
  if (directive.complete) {
512
- utils_1.logger.debug(`[ResponsePipeline] Branch directive complete`);
519
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive complete`);
513
520
  return { nextStep: undefined, session: updatedSession };
514
521
  }
515
522
  if (directive.abort) {
516
- utils_1.logger.debug(`[ResponsePipeline] Branch directive abort`);
523
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive abort`);
517
524
  return { nextStep: undefined, session: updatedSession };
518
525
  }
519
526
  if (directive.reset) {
@@ -523,14 +530,14 @@ class ResponsePipeline {
523
530
  if (resetStep) {
524
531
  const targetStep = selectedFlow.getStep(resetStep);
525
532
  if (targetStep) {
526
- updatedSession = (0, utils_1.enterStep)(updatedSession, targetStep.id, targetStep.description);
533
+ updatedSession = (0, index_js_1.enterStep)(updatedSession, targetStep.id, targetStep.description);
527
534
  return { nextStep: targetStep, session: updatedSession };
528
535
  }
529
536
  }
530
537
  // Reset to initial step
531
538
  const initialStep = selectedFlow.initialStep;
532
- updatedSession = (0, utils_1.enterStep)(updatedSession, initialStep.id, initialStep.description);
533
- utils_1.logger.debug(`[ResponsePipeline] Branch directive reset → ${initialStep.id}`);
539
+ updatedSession = (0, index_js_1.enterStep)(updatedSession, initialStep.id, initialStep.description);
540
+ index_js_1.logger.debug(`[ResponsePipeline] Branch directive reset → ${initialStep.id}`);
534
541
  return { nextStep: initialStep, session: updatedSession };
535
542
  }
536
543
  // Directive with only non-position fields (e.g., just dataUpdate/contextUpdate/reply)
@@ -630,7 +637,7 @@ class ResponsePipeline {
630
637
  });
631
638
  // Explicit dataUpdate from the signal's merged directive lands last
632
639
  if (signalResult.mergedDirective?.dataUpdate) {
633
- updatedSession = (0, utils_1.mergeCollected)(updatedSession, signalResult.mergedDirective.dataUpdate);
640
+ updatedSession = (0, index_js_1.mergeCollected)(updatedSession, signalResult.mergedDirective.dataUpdate);
634
641
  }
635
642
  const isFlowComplete = routingResult.isFlowComplete;
636
643
  // PRE-EXTRACTION: same logic as below — extract data from user message.
@@ -642,7 +649,7 @@ class ResponsePipeline {
642
649
  extractedData = routingSkipCheck.extractedData;
643
650
  }
644
651
  else if (this.shouldPreExtractData(routingResult.selectedFlow)) {
645
- utils_1.logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
652
+ index_js_1.logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
646
653
  extractedData = await this.preExtractFlowData({
647
654
  route: routingResult.selectedFlow,
648
655
  history: params.history,
@@ -652,8 +659,8 @@ class ResponsePipeline {
652
659
  });
653
660
  }
654
661
  if (extractedData && Object.keys(extractedData).length > 0) {
655
- utils_1.logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
656
- updatedSession = (0, utils_1.mergeCollected)(updatedSession, extractedData);
662
+ index_js_1.logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
663
+ updatedSession = (0, index_js_1.mergeCollected)(updatedSession, extractedData);
657
664
  await this.updateCollectedData(extractedData);
658
665
  }
659
666
  }
@@ -670,7 +677,7 @@ class ResponsePipeline {
670
677
  selectedStep: stepResult.nextStep,
671
678
  responseDirectives: routingResult.responseDirectives,
672
679
  session: stepResult.session,
673
- isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
680
+ isFlowComplete: stepResult.isFlowComplete,
674
681
  signalFirings: signalResult.firings,
675
682
  signalPreDirective: signalResult.mergedDirective || undefined,
676
683
  endedFlows: routingResult.endedFlows,
@@ -698,7 +705,7 @@ class ResponsePipeline {
698
705
  extractedData = routingSkipCheck.extractedData;
699
706
  }
700
707
  else if (this.shouldPreExtractData(routingResult.selectedFlow)) {
701
- utils_1.logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
708
+ index_js_1.logger.debug(`[ResponsePipeline] Pre-extracting data for flow: ${routingResult.selectedFlow.title}`);
702
709
  extractedData = await this.preExtractFlowData({
703
710
  route: routingResult.selectedFlow,
704
711
  history: params.history,
@@ -708,9 +715,9 @@ class ResponsePipeline {
708
715
  });
709
716
  }
710
717
  if (extractedData && Object.keys(extractedData).length > 0) {
711
- utils_1.logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
718
+ index_js_1.logger.debug(`[ResponsePipeline] Pre-extracted data:`, extractedData);
712
719
  // Merge pre-extracted data into session before step selection
713
- updatedSession = (0, utils_1.mergeCollected)(updatedSession, extractedData);
720
+ updatedSession = (0, index_js_1.mergeCollected)(updatedSession, extractedData);
714
721
  // Also update agent's collected data
715
722
  await this.updateCollectedData(extractedData);
716
723
  }
@@ -728,13 +735,14 @@ class ResponsePipeline {
728
735
  selectedStep: stepResult.nextStep, // Use the determined next step
729
736
  responseDirectives: routingResult.responseDirectives,
730
737
  session: stepResult.session,
731
- // If a branch changed the flow, the original isFlowComplete no longer applies
732
- isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
738
+ // determineNextStep owns the verdict: a branch that resolved a position
739
+ // (new flow, or a step of this one) overrides the router's proposal.
740
+ isFlowComplete: stepResult.isFlowComplete,
733
741
  endedFlows: routingResult.endedFlows,
734
742
  };
735
743
  }
736
744
  catch (error) {
737
- throw ResponseGenerationError_1.ResponseGenerationError.fromError(error, 'routing_optimization', params);
745
+ throw ResponseGenerationError_js_1.ResponseGenerationError.fromError(error, 'routing_optimization', params);
738
746
  }
739
747
  }
740
748
  /**
@@ -762,7 +770,7 @@ class ResponsePipeline {
762
770
  const currentStep = isInSameFlow && session.currentStep
763
771
  ? selectedFlow.getStep(session.currentStep.id)
764
772
  : undefined;
765
- utils_1.logger.debug(`[ResponsePipeline] Step determination: flow match=${isInSameFlow}, currentFlow=${session.currentFlow?.id}, selectedFlow=${selectedFlow.id}, currentStep=${currentStep?.id || 'none'}`);
773
+ index_js_1.logger.debug(`[ResponsePipeline] Step determination: flow match=${isInSameFlow}, currentFlow=${session.currentFlow?.id}, selectedFlow=${selectedFlow.id}, currentStep=${currentStep?.id || 'none'}`);
766
774
  // STEP 1 (Algorithm 1): branches win over linear chain
767
775
  if (currentStep?.branches && currentStep.branches.length > 0) {
768
776
  const branchResult = await this.evaluateStepBranches(currentStep, selectedFlow, session, context);
@@ -780,16 +788,16 @@ class ResponsePipeline {
780
788
  if (!nextStep) {
781
789
  // Get candidate steps based on current position in the flow
782
790
  const candidates = await this.flowRouter.getCandidateStepsWithConditions(selectedFlow, currentStep, // Pass current step instead of undefined to maintain progression
783
- (0, template_1.createTemplateContext)({ data: session.data, session, context }));
784
- utils_1.logger.debug(`[ResponsePipeline] Found ${candidates.length} candidate steps${currentStep ? ' from current step ' + currentStep.id : ' (new flow entry)'}`);
791
+ (0, template_js_1.createTemplateContext)({ data: session.data, session, context }));
792
+ index_js_1.logger.debug(`[ResponsePipeline] Found ${candidates.length} candidate steps${currentStep ? ' from current step ' + currentStep.id : ' (new flow entry)'}`);
785
793
  if (candidates.length > 0) {
786
794
  nextStep = candidates[0].step;
787
- utils_1.logger.debug(`[ResponsePipeline] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new flow'}`);
795
+ index_js_1.logger.debug(`[ResponsePipeline] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new flow'}`);
788
796
  }
789
797
  else {
790
798
  // Fallback to initial step even if it should be skipped
791
799
  nextStep = selectedFlow.initialStep;
792
- utils_1.logger.warn(`[FlowConfigurationError] No valid steps found: all candidates were skipped in flow. Falling back to initial step "${nextStep.id}". Review step skip conditions.`);
800
+ index_js_1.logger.warn(`[FlowConfigurationError] No valid steps found: all candidates were skipped in flow. Falling back to initial step "${nextStep.id}". Review step skip conditions.`);
793
801
  }
794
802
  }
795
803
  }
@@ -801,7 +809,7 @@ class ResponsePipeline {
801
809
  if (missingRequires.length > 0) {
802
810
  const warning = `[FlowConfigurationError] Cannot advance to step "${nextStep.description || nextStep.id}": ` +
803
811
  `missing required fields [${missingRequires.join(', ')}]. Staying at current step. Ensure preceding steps collect these fields.`;
804
- utils_1.logger.warn(warning);
812
+ index_js_1.logger.warn(warning);
805
813
  console.warn(warning);
806
814
  // Stay at the current step - don't enter the next one
807
815
  const currentStepId = session.currentStep?.id;
@@ -809,18 +817,18 @@ class ResponsePipeline {
809
817
  const currentStepInstance = selectedFlow.getStep(currentStepId);
810
818
  if (currentStepInstance) {
811
819
  nextStep = currentStepInstance;
812
- utils_1.logger.debug(`[ResponsePipeline] Staying at current step: ${nextStep.id} due to missing requires`);
820
+ index_js_1.logger.debug(`[ResponsePipeline] Staying at current step: ${nextStep.id} due to missing requires`);
813
821
  }
814
822
  }
815
823
  }
816
824
  else {
817
- session = (0, utils_1.enterStep)(session, nextStep.id, nextStep.description);
818
- utils_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
825
+ session = (0, index_js_1.enterStep)(session, nextStep.id, nextStep.description);
826
+ index_js_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
819
827
  }
820
828
  }
821
829
  else {
822
- session = (0, utils_1.enterStep)(session, nextStep.id, nextStep.description);
823
- utils_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
830
+ session = (0, index_js_1.enterStep)(session, nextStep.id, nextStep.description);
831
+ index_js_1.logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
824
832
  }
825
833
  return { nextStep, session, flowTransition: false };
826
834
  }
@@ -901,9 +909,9 @@ class ResponsePipeline {
901
909
  return { extractionRan: true, extractedData };
902
910
  }
903
911
  // ROUTING SKIP: pre-extraction populated collect fields → retain current flow/step
904
- utils_1.logger.debug(`[ResponsePipeline] Routing skip: pre-extraction populated collect fields [${populatedCollectFields.join(', ')}] for step "${currentStep.id}" — skipping FlowRouter`);
912
+ index_js_1.logger.debug(`[ResponsePipeline] Routing skip: pre-extraction populated collect fields [${populatedCollectFields.join(', ')}] for step "${currentStep.id}" — skipping FlowRouter`);
905
913
  // Merge extracted data into session
906
- const updatedSession = (0, utils_1.mergeCollected)(session, extractedData);
914
+ const updatedSession = (0, index_js_1.mergeCollected)(session, extractedData);
907
915
  await this.updateCollectedData(extractedData);
908
916
  // Determine next step using pipeline method for consistency
909
917
  // Pass the current flow/step as the routing result (retained)
@@ -922,7 +930,7 @@ class ResponsePipeline {
922
930
  selectedStep: stepResult.nextStep,
923
931
  responseDirectives: undefined,
924
932
  session: stepResult.session,
925
- isFlowComplete: false,
933
+ isFlowComplete: stepResult.isFlowComplete,
926
934
  },
927
935
  };
928
936
  }
@@ -971,14 +979,14 @@ class ResponsePipeline {
971
979
  // Build a schema for data extraction based on flow's fields
972
980
  const agentSchema = this.getSchema();
973
981
  if (!agentSchema) {
974
- utils_1.logger.warn(`[ResponsePipeline] No schema available for pre-extraction`);
982
+ index_js_1.logger.warn(`[ResponsePipeline] No schema available for pre-extraction`);
975
983
  return {};
976
984
  }
977
985
  const extractionSchema = restrictToFields
978
986
  ? this.buildFieldRestrictedSchema(agentSchema, restrictToFields)
979
987
  : agentSchema;
980
988
  // Get last user message
981
- const lastMessage = (0, utils_1.getLastMessageFromHistory)(history);
989
+ const lastMessage = (0, index_js_1.getLastMessageFromHistory)(history);
982
990
  // Build extraction prompt
983
991
  const extractionPrompt = [
984
992
  `Extract any relevant information from the user's message that matches the following data fields.`,
@@ -1002,7 +1010,7 @@ class ResponsePipeline {
1002
1010
  }
1003
1011
  extractionPrompt.push(``, `Return ONLY the extracted data as JSON. If no data can be extracted, return an empty object {}.`);
1004
1012
  // Convert Event[] to HistoryItem[] for provider call
1005
- const historyItems = (0, utils_1.eventsToHistory)(history);
1013
+ const historyItems = (0, index_js_1.eventsToHistory)(history);
1006
1014
  // Call AI to extract data
1007
1015
  try {
1008
1016
  const result = await this.options.provider.generateMessage({
@@ -1021,7 +1029,7 @@ class ResponsePipeline {
1021
1029
  return result.structured || {};
1022
1030
  }
1023
1031
  catch (error) {
1024
- utils_1.logger.error(`[ResponsePipeline] Pre-extraction failed:`, error);
1032
+ index_js_1.logger.error(`[ResponsePipeline] Pre-extraction failed:`, error);
1025
1033
  return {};
1026
1034
  }
1027
1035
  }