@falai/agent 2.7.0 → 3.1.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 +32 -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 +33 -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 +42 -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 +102 -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 +32 -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 +33 -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 +41 -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 +102 -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 +11 -8
  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 +46 -548
  515. package/src/providers/DeepSeekProvider.ts +27 -92
  516. package/src/providers/GeminiProvider.ts +44 -680
  517. package/src/providers/GenericOpenAICompatibleProvider.ts +19 -27
  518. package/src/providers/OpenAICompatibleProvider.ts +60 -763
  519. package/src/providers/OpenAIProvider.ts +31 -55
  520. package/src/providers/OpenRouterProvider.ts +40 -70
  521. package/src/providers/ProviderAdapter.ts +377 -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
package/src/core/Flow.ts CHANGED
@@ -13,16 +13,16 @@ import type {
13
13
  TemplateContext,
14
14
  ConditionEvaluationResult,
15
15
  Directive,
16
- } from "../types";
17
- import type { SessionState } from "../types/session";
18
- import type { StepResult } from "../types/flow";
19
- import type { ConditionWhen, ConditionIf } from "../types/flow";
16
+ } from "../types/index.js";
17
+ import type { SessionState } from "../types/session.js";
18
+ import type { StepResult } from "../types/flow.js";
19
+ import type { ConditionWhen, ConditionIf } from "../types/flow.js";
20
20
 
21
- import { generateFlowId, logger } from "../utils";
22
- import { splitWhenConditions } from "../utils/condition";
21
+ import { generateFlowId, logger } from "../utils/index.js";
22
+ import { splitWhenConditions } from "../utils/condition.js";
23
23
 
24
- import { Step, FlowConfigurationError } from "./Step";
25
- import { Agent } from './Agent'
24
+ import { Step, FlowConfigurationError } from "./Step.js";
25
+ import { Agent } from './Agent.js'
26
26
 
27
27
  /**
28
28
  * Represents a conversational flow/journey
@@ -647,7 +647,7 @@ export class Flow<TContext = unknown, TData = unknown> {
647
647
  context: context as TContext,
648
648
  data: session.data ?? {} as Partial<TData>,
649
649
  session: {} as SessionState<TData>,
650
- history: [] as import("../types/history").Event[],
650
+ history: [] as import("../types/history.js").Event[],
651
651
  dispatch: () => { },
652
652
  };
653
653
  const result = await this.hooks.onComplete(hookCtx);
@@ -5,14 +5,14 @@ import type {
5
5
  SessionState,
6
6
  AiProvider,
7
7
  TemplateContext,
8
- } from "../types";
9
- import { MessageRole } from "../types";
10
- import { enterFlow, mergeCollected, isFlowCompletedThisSession } from "../utils";
11
- import type { Flow } from "./Flow";
12
- import type { Step } from "./Step";
13
- import { PromptComposer } from "./PromptComposer";
14
- import { PromptSectionCache } from "./PromptSectionCache";
15
- import { createTemplateContext, getLastMessageFromHistory, logger, eventsToHistory } from "../utils";
8
+ } from "../types/index.js";
9
+ import { MessageRole } from "../types/index.js";
10
+ import { enterFlow, mergeCollected, isFlowCompletedThisSession } from "../utils/index.js";
11
+ import type { Flow } from "./Flow.js";
12
+ import type { Step } from "./Step.js";
13
+ import { PromptComposer } from "./PromptComposer.js";
14
+ import { PromptSectionCache } from "./PromptSectionCache.js";
15
+ import { createTemplateContext, getLastMessageFromHistory, logger, eventsToHistory } from "../utils/index.js";
16
16
 
17
17
  export interface CandidateStep<TContext = unknown, TData = unknown> {
18
18
  step: Step<TContext, TData>;
@@ -17,10 +17,10 @@ import type {
17
17
  History,
18
18
  PersistenceAdapter,
19
19
  CollectedStateData,
20
- } from "../types";
21
- import { createSession, sessionStepToData, sessionDataToStep, logger } from "../utils";
22
- import { SessionConflictError } from "../types/errors";
23
- import { convertMessagesToHistory } from "./Events";
20
+ } from "../types/index.js";
21
+ import { createSession, sessionStepToData, sessionDataToStep, logger } from "../utils/index.js";
22
+ import { SessionConflictError } from "../types/errors.js";
23
+ import { convertMessagesToHistory } from "./Events.js";
24
24
 
25
25
  /**
26
26
  * Manager for handling persistence operations
@@ -1,10 +1,10 @@
1
- import type { Event, Term, Instruction, AgentOptions, ScopedInstructions, AppliedInstruction } from "../types";
2
- import type { Flow } from "./Flow";
3
- import { render, renderMany, formatKnowledgeBase, createTemplateContext } from "../utils/template";
4
- import { TemplateContext } from "../types/template";
5
- import { PromptSectionCache } from "./PromptSectionCache";
6
- import { logger } from "../utils";
7
- import { splitWhenConditions } from "../utils/condition";
1
+ import type { Event, Term, Instruction, AgentOptions, ScopedInstructions, AppliedInstruction } from "../types/index.js";
2
+ import type { Flow } from "./Flow.js";
3
+ import { render, renderMany, formatKnowledgeBase, createTemplateContext } from "../utils/template.js";
4
+ import { TemplateContext } from "../types/template.js";
5
+ import { PromptSectionCache } from "./PromptSectionCache.js";
6
+ import { logger } from "../utils/index.js";
7
+ import { splitWhenConditions } from "../utils/condition.js";
8
8
 
9
9
  export class PromptComposer<TContext = unknown, TData = unknown> {
10
10
  private parts: string[] = [];
@@ -168,7 +168,7 @@ export class PromptComposer<TContext = unknown, TData = unknown> {
168
168
  const result = await predicate({
169
169
  context: (this.renderContext.context ?? {}) as TContext,
170
170
  data: (this.renderContext.data || {}),
171
- session: (this.renderContext.session ?? { id: '', data: {}, history: [], metadata: {} }) as import("../types/session").SessionState<TData>,
171
+ session: (this.renderContext.session ?? { id: '', data: {}, history: [], metadata: {} }) as import("../types/session.js").SessionState<TData>,
172
172
  history: this.renderContext.history || [],
173
173
  });
174
174
  if (!result) return false;
@@ -7,8 +7,8 @@
7
7
  * directives, available tools) are recomputed on every resolveAll() call.
8
8
  */
9
9
 
10
- import type { PromptSectionType, PromptCacheConfig, SectionCompute } from "../types/prompt-cache";
11
- export type { PromptSectionType, PromptCacheConfig, SectionCompute } from "../types/prompt-cache";
10
+ import type { PromptSectionType, PromptCacheConfig, SectionCompute } from "../types/prompt-cache.js";
11
+ export type { PromptSectionType, PromptCacheConfig, SectionCompute } from "../types/prompt-cache.js";
12
12
 
13
13
  /** Internal entry tracking a registered section */
14
14
  interface PromptSectionEntry {
@@ -7,12 +7,12 @@ import type {
7
7
  Template,
8
8
  ScopedInstructions,
9
9
  AppliedInstruction,
10
- } from "../types";
11
- import type { Flow } from "./Flow";
12
- import type { Step } from "./Step";
13
- import { PromptComposer } from "./PromptComposer";
14
- import { PromptSectionCache } from "./PromptSectionCache";
15
- import { createTemplateContext, render } from "../utils/template";
10
+ } from "../types/index.js";
11
+ import type { Flow } from "./Flow.js";
12
+ import type { Step } from "./Step.js";
13
+ import { PromptComposer } from "./PromptComposer.js";
14
+ import { PromptSectionCache } from "./PromptSectionCache.js";
15
+ import { createTemplateContext, render } from "../utils/template.js";
16
16
 
17
17
  export interface BuildResponsePromptParams<
18
18
  TContext = unknown,
@@ -23,30 +23,30 @@ import type {
23
23
  Term,
24
24
  StructuredSchema,
25
25
  CompactionOptions,
26
- } from "../types";
27
- import type { SignalFiring } from "../types/signals";
28
- import type { SessionManager } from "./SessionManager";
29
- import type { SignalProcessor } from "./SignalProcessor";
30
- import type { PromptSectionCache } from "./PromptSectionCache";
31
- import type { FlowRouter } from "./FlowRouter";
32
- import type { PersistenceManager } from "./PersistenceManager";
33
- import type { Flow } from "./Flow";
34
- import { Step } from "./Step";
35
- import { ResponseEngine } from "./ResponseEngine";
36
- import { ResponsePipeline } from "./ResponsePipeline";
37
- import { AutoChainExecutor, type AutoChainResult } from "./AutoChainExecutor";
38
- import { StepLifecycle } from "./StepLifecycle";
39
- import { SessionFinalizer } from "./SessionFinalizer";
40
- import { ToolLoopExecutor } from "./ToolLoopExecutor";
41
- import { flow } from "./flow-namespace";
42
- import { SignalCoordinator } from "./SignalCoordinator";
43
- import { ResponseGenerationError } from "./ResponseGenerationError";
44
- import { ProviderError, SessionConflictError } from "../types/errors";
45
- import { cloneDeep, mergeCollected, logger, historyToEvents, completeCurrentFlow, render, userMessage, assistantMessage } from "../utils";
46
- import { createTemplateContext } from "../utils/template";
47
- import { StreamingMessageDecoder } from "../utils/streamingMessage";
48
- import { tryParseJSONResponse } from "../utils/json";
49
- import type { ToolManager } from "./ToolManager";
26
+ } from "../types/index.js";
27
+ import type { SignalFiring } from "../types/signals.js";
28
+ import type { SessionManager } from "./SessionManager.js";
29
+ import type { SignalProcessor } from "./SignalProcessor.js";
30
+ import type { PromptSectionCache } from "./PromptSectionCache.js";
31
+ import type { FlowRouter } from "./FlowRouter.js";
32
+ import type { PersistenceManager } from "./PersistenceManager.js";
33
+ import type { Flow } from "./Flow.js";
34
+ import { Step } from "./Step.js";
35
+ import { ResponseEngine } from "./ResponseEngine.js";
36
+ import { ResponsePipeline } from "./ResponsePipeline.js";
37
+ import { AutoChainExecutor, type AutoChainResult } from "./AutoChainExecutor.js";
38
+ import { StepLifecycle } from "./StepLifecycle.js";
39
+ import { SessionFinalizer } from "./SessionFinalizer.js";
40
+ import { ToolLoopExecutor } from "./ToolLoopExecutor.js";
41
+ import { flow } from "./flow-namespace.js";
42
+ import { SignalCoordinator } from "./SignalCoordinator.js";
43
+ import { ResponseGenerationError } from "./ResponseGenerationError.js";
44
+ import { ProviderError, SessionConflictError } from "../types/errors.js";
45
+ import { cloneDeep, mergeCollected, logger, historyToEvents, completeCurrentFlow, render, userMessage, assistantMessage } from "../utils/index.js";
46
+ import { createTemplateContext } from "../utils/template.js";
47
+ import { StreamingMessageDecoder } from "../utils/streamingMessage.js";
48
+ import { tryParseJSONResponse } from "../utils/json.js";
49
+ import type { ToolManager } from "./ToolManager.js";
50
50
 
51
51
  /**
52
52
  * The narrow surface ResponseModal (and its collaborators) need from the
@@ -8,8 +8,8 @@ import type { EndedFlow,
8
8
  SessionState,
9
9
  Directive,
10
10
  StructuredSchema,
11
- } from "../types";
12
- import type { SignalFiring } from "../types/signals";
11
+ } from "../types/index.js";
12
+ import type { SignalFiring } from "../types/signals.js";
13
13
  import {
14
14
  createSession,
15
15
  enterStep,
@@ -18,16 +18,16 @@ import {
18
18
  historyToEvents,
19
19
  eventsToHistory,
20
20
  getLastMessageFromHistory,
21
- } from "../utils";
22
- import { enterFlow } from "../utils/session";
23
- import { createTemplateContext } from "../utils/template";
24
- import { Flow } from "./Flow";
25
- import { Step, FlowConfigurationError } from "../core/Step";
26
- import { FlowRouter } from "./FlowRouter";
27
- import { evaluateBranches, createAiConditionEvaluator } from "./BranchEvaluator";
28
- import { DirectiveChainTracker } from "./DirectiveChainTracker";
29
- import { ResponseGenerationError } from "./ResponseGenerationError";
30
- import type { SignalCoordinator } from "./SignalCoordinator";
21
+ } from "../utils/index.js";
22
+ import { enterFlow } from "../utils/session.js";
23
+ import { createTemplateContext } from "../utils/template.js";
24
+ import { Flow } from "./Flow.js";
25
+ import { Step, FlowConfigurationError } from "../core/Step.js";
26
+ import { FlowRouter } from "./FlowRouter.js";
27
+ import { evaluateBranches, createAiConditionEvaluator } from "./BranchEvaluator.js";
28
+ import { DirectiveChainTracker } from "./DirectiveChainTracker.js";
29
+ import { ResponseGenerationError } from "./ResponseGenerationError.js";
30
+ import type { SignalCoordinator } from "./SignalCoordinator.js";
31
31
 
32
32
  /**
33
33
  * Position fields on a Directive that represent a navigation decision.
@@ -454,11 +454,23 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
454
454
  context: TContext;
455
455
  /** Merged directive from the directive bus (pre-LLM + post-LLM phases). */
456
456
  busDirective?: Directive<TContext, TData>;
457
- }): Promise<{ nextStep: Step<TContext, TData> | undefined; session: SessionState<TData>; flowChanged?: Flow<TContext, TData> }> {
457
+ }): Promise<{
458
+ nextStep: Step<TContext, TData> | undefined;
459
+ session: SessionState<TData>;
460
+ flowChanged?: Flow<TContext, TData>;
461
+ /**
462
+ * The turn's authoritative completion verdict — callers must use this, not
463
+ * the `isFlowComplete` they passed in. The router derives its verdict from
464
+ * the LINEAR chain alone (the current step has no successor), before
465
+ * branches run, so what it returns is only a proposal. Branches win over
466
+ * flow completion (Algorithm 1, STEP 1) and this is where that resolves.
467
+ */
468
+ isFlowComplete: boolean;
469
+ }> {
458
470
  const { selectedFlow, selectedStep, session, isFlowComplete, context, busDirective } = params;
459
471
 
460
472
  if (!selectedFlow) {
461
- return { nextStep: undefined, session };
473
+ return { nextStep: undefined, session, isFlowComplete };
462
474
  }
463
475
 
464
476
  // ─── GUARD: directive bus winner with a position field preempts branches ───
@@ -470,7 +482,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
470
482
  logger.debug(
471
483
  `[ResponsePipeline] Directive bus winner has position field — skipping branch evaluation and linear/AI selection`,
472
484
  );
473
- return { nextStep: undefined, session };
485
+ return { nextStep: undefined, session, isFlowComplete };
474
486
  }
475
487
 
476
488
  // STEP 1 (Algorithm 1): branches win over linear chain AND flow completion.
@@ -486,14 +498,21 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
486
498
  currentStep, selectedFlow, session, context
487
499
  );
488
500
  if (branchResult) {
489
- return branchResult;
501
+ // A branch that resolved a position overrides the router's completion
502
+ // proposal. Without this, a branch that parks on a step of its own
503
+ // flow (`then: '<stepId>'`, `then: { reset: true }`) keeps
504
+ // isFlowComplete=true, the caller drops the step it just resolved,
505
+ // and the turn ends as a silent completion — no LLM call, empty
506
+ // reply, flow marked completed for the rest of the session.
507
+ const resolvedPosition = Boolean(branchResult.nextStep || branchResult.flowChanged);
508
+ return { ...branchResult, isFlowComplete: resolvedPosition ? false : isFlowComplete };
490
509
  }
491
510
  // undefined → fall through to linear/AI selection or flow completion
492
511
  }
493
512
  }
494
513
 
495
514
  if (isFlowComplete) {
496
- return { nextStep: undefined, session };
515
+ return { nextStep: undefined, session, isFlowComplete: true };
497
516
  }
498
517
 
499
518
  let nextStep: Step<TContext, TData>;
@@ -546,7 +565,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
546
565
  nextStep = currentStepInstance;
547
566
  }
548
567
  }
549
- return { nextStep, session };
568
+ return { nextStep, session, isFlowComplete: false };
550
569
  }
551
570
  }
552
571
 
@@ -558,7 +577,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
558
577
  );
559
578
  logger.debug(`[ResponsePipeline] Entered step: ${nextStep.id}`);
560
579
 
561
- return { nextStep, session: updatedSession };
580
+ return { nextStep, session: updatedSession, isFlowComplete: false };
562
581
  }
563
582
 
564
583
  /**
@@ -928,7 +947,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
928
947
  selectedStep: stepResult.nextStep,
929
948
  responseDirectives: routingResult.responseDirectives,
930
949
  session: stepResult.session,
931
- isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
950
+ isFlowComplete: stepResult.isFlowComplete,
932
951
  signalFirings: signalResult.firings,
933
952
  signalPreDirective: signalResult.mergedDirective || undefined,
934
953
  endedFlows: routingResult.endedFlows,
@@ -997,8 +1016,9 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
997
1016
  selectedStep: stepResult.nextStep, // Use the determined next step
998
1017
  responseDirectives: routingResult.responseDirectives,
999
1018
  session: stepResult.session,
1000
- // If a branch changed the flow, the original isFlowComplete no longer applies
1001
- isFlowComplete: stepResult.flowChanged ? false : isFlowComplete,
1019
+ // determineNextStep owns the verdict: a branch that resolved a position
1020
+ // (new flow, or a step of this one) overrides the router's proposal.
1021
+ isFlowComplete: stepResult.isFlowComplete,
1002
1022
  endedFlows: routingResult.endedFlows,
1003
1023
  };
1004
1024
  } catch (error) {
@@ -1247,7 +1267,7 @@ export class ResponsePipeline<TContext = unknown, TData = unknown> {
1247
1267
  selectedStep: stepResult.nextStep,
1248
1268
  responseDirectives: undefined,
1249
1269
  session: stepResult.session,
1250
- isFlowComplete: false,
1270
+ isFlowComplete: stepResult.isFlowComplete,
1251
1271
  },
1252
1272
  };
1253
1273
  }
@@ -11,13 +11,13 @@
11
11
  * yield sites.
12
12
  */
13
13
 
14
- import type { AgentOptions, SessionState } from "../types";
15
- import type { CompactionOptions } from "../types/compaction";
16
- import type { PersistenceManager } from "./PersistenceManager";
17
- import type { StepLifecycle } from "./StepLifecycle";
18
- import { flow } from "./flow-namespace";
19
- import { CompactionEngine } from "./CompactionEngine";
20
- import { boundConversationHistory, DEFAULT_MAX_HISTORY_MESSAGES, logger } from "../utils";
14
+ import type { AgentOptions, SessionState } from "../types/index.js";
15
+ import type { CompactionOptions } from "../types/compaction.js";
16
+ import type { PersistenceManager } from "./PersistenceManager.js";
17
+ import type { StepLifecycle } from "./StepLifecycle.js";
18
+ import { flow } from "./flow-namespace.js";
19
+ import { CompactionEngine } from "./CompactionEngine.js";
20
+ import { boundConversationHistory, DEFAULT_MAX_HISTORY_MESSAGES, logger } from "../utils/index.js";
21
21
 
22
22
  export class SessionFinalizer<TContext = unknown, TData = unknown> {
23
23
  constructor(
@@ -6,13 +6,13 @@
6
6
  */
7
7
 
8
8
  import log from "loglevel";
9
- import type { SessionState } from "../types/session";
10
- import type { History, HistoryItem } from "../types/history";
11
- import { PersistenceManager } from "./PersistenceManager";
12
- import { CompactionEngine } from "./CompactionEngine";
13
- import type { PersistenceAdapter } from "../types/persistence";
14
- import type { Agent } from "./Agent";
15
- import { boundConversationHistory, createSession, DEFAULT_MAX_HISTORY_MESSAGES } from "../utils";
9
+ import type { SessionState } from "../types/session.js";
10
+ import type { History, HistoryItem } from "../types/history.js";
11
+ import { PersistenceManager } from "./PersistenceManager.js";
12
+ import { CompactionEngine } from "./CompactionEngine.js";
13
+ import type { PersistenceAdapter } from "../types/persistence.js";
14
+ import type { Agent } from "./Agent.js";
15
+ import { boundConversationHistory, createSession, DEFAULT_MAX_HISTORY_MESSAGES } from "../utils/index.js";
16
16
 
17
17
  /**
18
18
  * SessionManager handles session lifecycle and conversation history
@@ -12,13 +12,13 @@
12
12
  * of the user-visible message.
13
13
  */
14
14
 
15
- import type { Directive, Event, SessionState } from "../types";
16
- import type { SignalFiring } from "../types/signals";
17
- import type { SignalProcessor } from "./SignalProcessor";
18
- import type { Flow } from "./Flow";
19
- import type { Step } from "./Step";
20
- import { hasDirectivePositionField } from "./ResponsePipeline";
21
- import { enterFlow, enterStep, mergeCollected, logger } from "../utils";
15
+ import type { Directive, Event, SessionState } from "../types/index.js";
16
+ import type { SignalFiring } from "../types/signals.js";
17
+ import type { SignalProcessor } from "./SignalProcessor.js";
18
+ import type { Flow } from "./Flow.js";
19
+ import type { Step } from "./Step.js";
20
+ import { hasDirectivePositionField } from "./ResponsePipeline.js";
21
+ import { enterFlow, enterStep, mergeCollected, logger } from "../utils/index.js";
22
22
 
23
23
  /** Result of a signal phase run (pre or post). */
24
24
  export interface SignalPhaseResult<TContext = unknown, TData = unknown> {
@@ -9,16 +9,16 @@
9
9
  * @module SignalEvaluator
10
10
  */
11
11
 
12
- import type { AiProvider } from "../types/ai";
13
- import type { Event } from "../types/history";
14
- import type { SessionState } from "../types/session";
12
+ import type { AiProvider } from "../types/ai.js";
13
+ import type { Event } from "../types/history.js";
14
+ import type { SessionState } from "../types/session.js";
15
15
  import type {
16
16
  Signal,
17
17
  SignalPredicate,
18
18
  SignalPredicateContext,
19
- } from "../types/signals";
20
- import { eventsToHistory, logger } from "../utils";
21
- import { splitWhenConditions, evaluateIfPredicates } from "../utils/condition";
19
+ } from "../types/signals.js";
20
+ import { eventsToHistory, logger } from "../utils/index.js";
21
+ import { splitWhenConditions, evaluateIfPredicates } from "../utils/condition.js";
22
22
 
23
23
  // ──────────────────────────────────────────────────────────────────────────────
24
24
  // Types
@@ -11,11 +11,11 @@
11
11
  * @module SignalProcessor
12
12
  */
13
13
 
14
- import type { AiProvider } from "../types/ai";
15
- import type { Event } from "../types/history";
16
- import { MessageRole as MessageRoleEnum } from "../types/history";
17
- import type { SessionState } from "../types/session";
18
- import type { Directive } from "../types/flow";
14
+ import type { AiProvider } from "../types/ai.js";
15
+ import type { Event } from "../types/history.js";
16
+ import { MessageRole as MessageRoleEnum } from "../types/history.js";
17
+ import type { SessionState } from "../types/session.js";
18
+ import type { Directive } from "../types/flow.js";
19
19
  import type {
20
20
  Signal,
21
21
  SignalContext,
@@ -23,10 +23,10 @@ import type {
23
23
  SignalFiring,
24
24
  SignalPredicateContext,
25
25
  SignalTriggerState,
26
- } from "../types/signals";
27
- import type { SignalEvaluator } from "./SignalEvaluator";
28
- import { flow } from "./flow-namespace";
29
- import { logger } from "../utils";
26
+ } from "../types/signals.js";
27
+ import type { SignalEvaluator } from "./SignalEvaluator.js";
28
+ import { flow } from "./flow-namespace.js";
29
+ import { logger } from "../utils/index.js";
30
30
 
31
31
  /** Recorded on `SignalFiring.extractionError` when a matched extraction-mode
32
32
  * signal yields no payload (model omitted the field or returned null). */
package/src/core/Step.ts CHANGED
@@ -9,15 +9,15 @@ import type {
9
9
  Instruction,
10
10
  Tool,
11
11
  PrepareResult,
12
- } from "../types";
13
- import type { SessionState } from "../types/session";
14
- import type { StepResult, BranchSpec, BranchResult } from "../types/flow";
15
- import { ToolScope, Template, TemplateContext } from "../types";
16
- import type { ConditionWhen, ConditionIf } from "../types/flow";
17
- import { generateStepId, logger } from "../utils";
18
- import { splitWhenConditions } from "../utils/condition";
19
- import { Agent } from './Agent'
20
- import { flow } from "./flow-namespace";
12
+ } from "../types/index.js";
13
+ import type { SessionState } from "../types/session.js";
14
+ import type { StepResult, BranchSpec, BranchResult } from "../types/flow.js";
15
+ import { ToolScope, Template, TemplateContext } from "../types/index.js";
16
+ import type { ConditionWhen, ConditionIf } from "../types/flow.js";
17
+ import { generateStepId, logger } from "../utils/index.js";
18
+ import { splitWhenConditions } from "../utils/condition.js";
19
+ import { Agent } from './Agent.js'
20
+ import { flow } from "./flow-namespace.js";
21
21
 
22
22
  /**
23
23
  * Error thrown when a step's configuration violates auto-step constraints.
@@ -14,12 +14,12 @@
14
14
  * verbatim replies, halts) are returned to the caller to act on.
15
15
  */
16
16
 
17
- import type { Directive, PrepareResult, SessionState, Tool } from "../types";
18
- import type { Flow } from "./Flow";
19
- import type { Step } from "./Step";
20
- import type { ToolManager } from "./ToolManager";
21
- import { flow } from "./flow-namespace";
22
- import { logger } from "../utils";
17
+ import type { Directive, PrepareResult, SessionState, Tool } from "../types/index.js";
18
+ import type { Flow } from "./Flow.js";
19
+ import type { Step } from "./Step.js";
20
+ import type { ToolManager } from "./ToolManager.js";
21
+ import { flow } from "./flow-namespace.js";
22
+ import { logger } from "../utils/index.js";
23
23
 
24
24
  /** Fields a caller can still act on after state writes have been applied. */
25
25
  const CONTROL_FIELDS = [
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import log from "loglevel";
14
- import type { Directive } from "../types";
14
+ import type { Directive } from "../types/index.js";
15
15
  import type {
16
16
  ToolCallRequest,
17
17
  ToolExecutionUpdate,
@@ -19,9 +19,9 @@ import type {
19
19
  ToolContext,
20
20
  Tool,
21
21
  TrackedTool,
22
- } from "../types/tool";
23
- import { evaluateToolGates } from "./toolGates";
24
- import { isToolResultLike, extractResultDirectives } from "../utils";
22
+ } from "../types/tool.js";
23
+ import { evaluateToolGates } from "./toolGates.js";
24
+ import { isToolResultLike, extractResultDirectives } from "../utils/index.js";
25
25
 
26
26
  /** Options for the StreamingToolExecutor */
27
27
  interface StreamingToolExecutorOptions {
@@ -22,13 +22,13 @@ import type {
22
22
  HistoryItem,
23
23
  SessionState,
24
24
  ToolCallRequest,
25
- } from "../types";
26
- import type { Flow } from "./Flow";
27
- import type { Step } from "./Step";
28
- import type { ToolManager } from "./ToolManager";
29
- import { ResponseGenerationError } from "./ResponseGenerationError";
30
- import { flow } from "./flow-namespace";
31
- import { historyToEvents, logger, serializeToolResult, assistantMessage, toolMessage } from "../utils";
25
+ } from "../types/index.js";
26
+ import type { Flow } from "./Flow.js";
27
+ import type { Step } from "./Step.js";
28
+ import type { ToolManager } from "./ToolManager.js";
29
+ import { ResponseGenerationError } from "./ResponseGenerationError.js";
30
+ import { flow } from "./flow-namespace.js";
31
+ import { historyToEvents, logger, serializeToolResult, assistantMessage, toolMessage } from "../utils/index.js";
32
32
 
33
33
  /**
34
34
  * One attempted tool execution, keyed by CALL (not tool name): parallel or
@@ -15,16 +15,16 @@ import type {
15
15
  ToolCallRequest,
16
16
  ToolExecutionUpdate,
17
17
  Event,
18
- } from "../types";
19
- import type { Directive } from "../types/flow";
20
- import { ToolScope } from "../types";
21
- import { logger, isToolResultLike, extractResultDirectives } from "../utils";
18
+ } from "../types/index.js";
19
+ import type { Directive } from "../types/flow.js";
20
+ import { ToolScope } from "../types/index.js";
21
+ import { logger, isToolResultLike, extractResultDirectives } from "../utils/index.js";
22
22
  // Type-only import: ToolManager must not create a runtime cycle with Agent
23
- import type { Agent } from "./Agent";
24
- import { Flow } from "./Flow";
25
- import { Step } from "./Step";
26
- import { StreamingToolExecutor } from "./StreamingToolExecutor";
27
- import { evaluateToolGates } from "./toolGates";
23
+ import type { Agent } from "./Agent.js";
24
+ import { Flow } from "./Flow.js";
25
+ import { Step } from "./Step.js";
26
+ import { StreamingToolExecutor } from "./StreamingToolExecutor.js";
27
+ import { evaluateToolGates } from "./toolGates.js";
28
28
 
29
29
  /**
30
30
  * Error thrown when tool creation fails
@@ -18,8 +18,8 @@
18
18
  * **Validates: Requirements 14.1–14.7**
19
19
  */
20
20
 
21
- import { Agent } from "./Agent";
22
- import type { AgentOptions } from "../types";
21
+ import { Agent } from "./Agent.js";
22
+ import type { AgentOptions } from "../types/index.js";
23
23
 
24
24
  /**
25
25
  * Create an Agent from a single options object.
@@ -5,9 +5,9 @@
5
5
  * Directives are plain object literals; this namespace provides runtime utilities only.
6
6
  */
7
7
 
8
- import type { Directive } from "../types/flow";
9
- import type { SessionState } from "../types/session";
10
- import { FlowConfigurationError } from "./Step";
8
+ import type { Directive } from "../types/flow.js";
9
+ import type { SessionState } from "../types/session.js";
10
+ import { FlowConfigurationError } from "./Step.js";
11
11
 
12
12
  // ─── Position field metadata ─────────────────────────────────────────────────
13
13
 
@@ -9,8 +9,8 @@
9
9
  * ("when denied, handler is NOT invoked") was silently a no-op on one
10
10
  * transport. Centralizing the logic here keeps both executors in lockstep.
11
11
  */
12
- import type { Tool, ToolContext, ToolExecutionResult } from "../types/tool";
13
- import { logger } from "../utils";
12
+ import type { Tool, ToolContext, ToolExecutionResult } from "../types/tool.js";
13
+ import { logger } from "../utils/index.js";
14
14
 
15
15
  /**
16
16
  * Run a tool's pre-execution gates in order: `validateInput`, then