@falai/agent 1.2.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +40 -886
  2. package/dist/adapters/MemoryAdapter.js +2 -2
  3. package/dist/adapters/MemoryAdapter.js.map +1 -1
  4. package/dist/adapters/MongoAdapter.js +2 -2
  5. package/dist/adapters/MongoAdapter.js.map +1 -1
  6. package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
  7. package/dist/adapters/OpenSearchAdapter.js +9 -7
  8. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  9. package/dist/adapters/PostgreSQLAdapter.d.ts +14 -0
  10. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  11. package/dist/adapters/PostgreSQLAdapter.js +25 -9
  12. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  13. package/dist/adapters/PrismaAdapter.js +5 -5
  14. package/dist/adapters/PrismaAdapter.js.map +1 -1
  15. package/dist/adapters/RedisAdapter.js +2 -2
  16. package/dist/adapters/RedisAdapter.js.map +1 -1
  17. package/dist/adapters/SQLiteAdapter.d.ts +17 -0
  18. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  19. package/dist/adapters/SQLiteAdapter.js +30 -11
  20. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  21. package/dist/cjs/adapters/MemoryAdapter.js +2 -2
  22. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  23. package/dist/cjs/adapters/MongoAdapter.js +2 -2
  24. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  25. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
  26. package/dist/cjs/adapters/OpenSearchAdapter.js +9 -7
  27. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  28. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +14 -0
  29. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  30. package/dist/cjs/adapters/PostgreSQLAdapter.js +25 -9
  31. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  32. package/dist/cjs/adapters/PrismaAdapter.js +5 -5
  33. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  34. package/dist/cjs/adapters/RedisAdapter.js +2 -2
  35. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  36. package/dist/cjs/adapters/SQLiteAdapter.d.ts +17 -0
  37. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  38. package/dist/cjs/adapters/SQLiteAdapter.js +30 -11
  39. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  40. package/dist/cjs/constants/index.d.ts +0 -9
  41. package/dist/cjs/constants/index.d.ts.map +1 -1
  42. package/dist/cjs/constants/index.js +2 -11
  43. package/dist/cjs/constants/index.js.map +1 -1
  44. package/dist/cjs/core/Agent.d.ts +119 -153
  45. package/dist/cjs/core/Agent.d.ts.map +1 -1
  46. package/dist/cjs/core/Agent.js +471 -324
  47. package/dist/cjs/core/Agent.js.map +1 -1
  48. package/dist/cjs/core/AutoChainExecutor.d.ts +107 -0
  49. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -0
  50. package/dist/cjs/core/AutoChainExecutor.js +297 -0
  51. package/dist/cjs/core/AutoChainExecutor.js.map +1 -0
  52. package/dist/cjs/core/BranchEvaluator.d.ts +54 -0
  53. package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -0
  54. package/dist/cjs/core/BranchEvaluator.js +130 -0
  55. package/dist/cjs/core/BranchEvaluator.js.map +1 -0
  56. package/dist/cjs/core/DirectiveBus.d.ts +88 -0
  57. package/dist/cjs/core/DirectiveBus.d.ts.map +1 -0
  58. package/dist/cjs/core/DirectiveBus.js +196 -0
  59. package/dist/cjs/core/DirectiveBus.js.map +1 -0
  60. package/dist/cjs/core/DirectiveChainTracker.d.ts +49 -0
  61. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -0
  62. package/dist/cjs/core/DirectiveChainTracker.js +121 -0
  63. package/dist/cjs/core/DirectiveChainTracker.js.map +1 -0
  64. package/dist/cjs/core/Flow.d.ts +186 -0
  65. package/dist/cjs/core/Flow.d.ts.map +1 -0
  66. package/dist/cjs/core/Flow.js +550 -0
  67. package/dist/cjs/core/Flow.js.map +1 -0
  68. package/dist/cjs/core/FlowRouter.d.ts +182 -0
  69. package/dist/cjs/core/FlowRouter.d.ts.map +1 -0
  70. package/dist/cjs/core/{RoutingEngine.js → FlowRouter.js} +323 -306
  71. package/dist/cjs/core/FlowRouter.js.map +1 -0
  72. package/dist/cjs/core/PersistenceManager.d.ts +2 -2
  73. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  74. package/dist/cjs/core/PersistenceManager.js +7 -7
  75. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  76. package/dist/cjs/core/PromptComposer.d.ts +21 -8
  77. package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
  78. package/dist/cjs/core/PromptComposer.js +182 -105
  79. package/dist/cjs/core/PromptComposer.js.map +1 -1
  80. package/dist/cjs/core/PromptSectionCache.d.ts +1 -1
  81. package/dist/cjs/core/PromptSectionCache.js +1 -1
  82. package/dist/cjs/core/ResponseEngine.d.ts +18 -8
  83. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  84. package/dist/cjs/core/ResponseEngine.js +38 -36
  85. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  86. package/dist/cjs/core/ResponseModal.d.ts +73 -56
  87. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  88. package/dist/cjs/core/ResponseModal.js +1191 -1014
  89. package/dist/cjs/core/ResponseModal.js.map +1 -1
  90. package/dist/cjs/core/ResponsePipeline.d.ts +124 -26
  91. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  92. package/dist/cjs/core/ResponsePipeline.js +509 -136
  93. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  94. package/dist/cjs/core/SignalEvaluator.d.ts +86 -0
  95. package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -0
  96. package/dist/cjs/core/SignalEvaluator.js +333 -0
  97. package/dist/cjs/core/SignalEvaluator.js.map +1 -0
  98. package/dist/cjs/core/SignalProcessor.d.ts +152 -0
  99. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -0
  100. package/dist/cjs/core/SignalProcessor.js +562 -0
  101. package/dist/cjs/core/SignalProcessor.js.map +1 -0
  102. package/dist/cjs/core/Step.d.ts +43 -32
  103. package/dist/cjs/core/Step.d.ts.map +1 -1
  104. package/dist/cjs/core/Step.js +221 -126
  105. package/dist/cjs/core/Step.js.map +1 -1
  106. package/dist/cjs/core/StreamingToolExecutor.d.ts +2 -2
  107. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  108. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  109. package/dist/cjs/core/ToolManager.d.ts +44 -13
  110. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  111. package/dist/cjs/core/ToolManager.js +174 -91
  112. package/dist/cjs/core/ToolManager.js.map +1 -1
  113. package/dist/cjs/core/createAgent.d.ts +35 -0
  114. package/dist/cjs/core/createAgent.d.ts.map +1 -0
  115. package/dist/cjs/core/createAgent.js +39 -0
  116. package/dist/cjs/core/createAgent.js.map +1 -0
  117. package/dist/cjs/core/flow-namespace.d.ts +49 -0
  118. package/dist/cjs/core/flow-namespace.d.ts.map +1 -0
  119. package/dist/cjs/core/flow-namespace.js +171 -0
  120. package/dist/cjs/core/flow-namespace.js.map +1 -0
  121. package/dist/cjs/index.d.ts +11 -14
  122. package/dist/cjs/index.d.ts.map +1 -1
  123. package/dist/cjs/index.js +18 -22
  124. package/dist/cjs/index.js.map +1 -1
  125. package/dist/cjs/providers/AnthropicProvider.d.ts +1 -1
  126. package/dist/cjs/providers/AnthropicProvider.js +1 -1
  127. package/dist/cjs/providers/GeminiProvider.d.ts +1 -1
  128. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  129. package/dist/cjs/providers/GeminiProvider.js +1 -1
  130. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  131. package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
  132. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  133. package/dist/cjs/providers/OpenAIProvider.js +1 -1
  134. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  135. package/dist/cjs/types/agent.d.ts +183 -54
  136. package/dist/cjs/types/agent.d.ts.map +1 -1
  137. package/dist/cjs/types/agent.js +0 -6
  138. package/dist/cjs/types/agent.js.map +1 -1
  139. package/dist/cjs/types/ai.d.ts +3 -3
  140. package/dist/cjs/types/ai.d.ts.map +1 -1
  141. package/dist/cjs/types/errors.d.ts +15 -0
  142. package/dist/cjs/types/errors.d.ts.map +1 -0
  143. package/dist/cjs/types/errors.js +22 -0
  144. package/dist/cjs/types/errors.js.map +1 -0
  145. package/dist/cjs/types/flow.d.ts +513 -0
  146. package/dist/cjs/types/flow.d.ts.map +1 -0
  147. package/dist/cjs/types/{route.js → flow.js} +2 -2
  148. package/dist/cjs/types/flow.js.map +1 -0
  149. package/dist/cjs/types/index.d.ts +7 -6
  150. package/dist/cjs/types/index.d.ts.map +1 -1
  151. package/dist/cjs/types/index.js +6 -2
  152. package/dist/cjs/types/index.js.map +1 -1
  153. package/dist/cjs/types/persistence.d.ts +11 -7
  154. package/dist/cjs/types/persistence.d.ts.map +1 -1
  155. package/dist/cjs/types/routing.d.ts +1 -1
  156. package/dist/cjs/types/routing.d.ts.map +1 -1
  157. package/dist/cjs/types/session.d.ts +24 -23
  158. package/dist/cjs/types/session.d.ts.map +1 -1
  159. package/dist/cjs/types/signals.d.ts +248 -0
  160. package/dist/cjs/types/signals.d.ts.map +1 -0
  161. package/dist/cjs/types/signals.js +11 -0
  162. package/dist/cjs/types/signals.js.map +1 -0
  163. package/dist/cjs/types/template.d.ts +2 -8
  164. package/dist/cjs/types/template.d.ts.map +1 -1
  165. package/dist/cjs/types/tool.d.ts +36 -29
  166. package/dist/cjs/types/tool.d.ts.map +1 -1
  167. package/dist/cjs/types/tool.js +1 -1
  168. package/dist/cjs/types/tool.js.map +1 -1
  169. package/dist/cjs/utils/condition.d.ts +7 -1
  170. package/dist/cjs/utils/condition.d.ts.map +1 -1
  171. package/dist/cjs/utils/condition.js.map +1 -1
  172. package/dist/cjs/utils/id.d.ts +13 -5
  173. package/dist/cjs/utils/id.d.ts.map +1 -1
  174. package/dist/cjs/utils/id.js +24 -10
  175. package/dist/cjs/utils/id.js.map +1 -1
  176. package/dist/cjs/utils/index.d.ts +2 -2
  177. package/dist/cjs/utils/index.d.ts.map +1 -1
  178. package/dist/cjs/utils/index.js +7 -3
  179. package/dist/cjs/utils/index.js.map +1 -1
  180. package/dist/cjs/utils/session.d.ts +44 -5
  181. package/dist/cjs/utils/session.d.ts.map +1 -1
  182. package/dist/cjs/utils/session.js +197 -38
  183. package/dist/cjs/utils/session.js.map +1 -1
  184. package/dist/constants/index.d.ts +0 -9
  185. package/dist/constants/index.d.ts.map +1 -1
  186. package/dist/constants/index.js +3 -9
  187. package/dist/constants/index.js.map +1 -1
  188. package/dist/core/Agent.d.ts +119 -153
  189. package/dist/core/Agent.d.ts.map +1 -1
  190. package/dist/core/Agent.js +472 -325
  191. package/dist/core/Agent.js.map +1 -1
  192. package/dist/core/AutoChainExecutor.d.ts +107 -0
  193. package/dist/core/AutoChainExecutor.d.ts.map +1 -0
  194. package/dist/core/AutoChainExecutor.js +293 -0
  195. package/dist/core/AutoChainExecutor.js.map +1 -0
  196. package/dist/core/BranchEvaluator.d.ts +54 -0
  197. package/dist/core/BranchEvaluator.d.ts.map +1 -0
  198. package/dist/core/BranchEvaluator.js +126 -0
  199. package/dist/core/BranchEvaluator.js.map +1 -0
  200. package/dist/core/DirectiveBus.d.ts +88 -0
  201. package/dist/core/DirectiveBus.d.ts.map +1 -0
  202. package/dist/core/DirectiveBus.js +192 -0
  203. package/dist/core/DirectiveBus.js.map +1 -0
  204. package/dist/core/DirectiveChainTracker.d.ts +49 -0
  205. package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
  206. package/dist/core/DirectiveChainTracker.js +117 -0
  207. package/dist/core/DirectiveChainTracker.js.map +1 -0
  208. package/dist/core/Flow.d.ts +186 -0
  209. package/dist/core/Flow.d.ts.map +1 -0
  210. package/dist/core/Flow.js +546 -0
  211. package/dist/core/Flow.js.map +1 -0
  212. package/dist/core/FlowRouter.d.ts +182 -0
  213. package/dist/core/FlowRouter.d.ts.map +1 -0
  214. package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
  215. package/dist/core/FlowRouter.js.map +1 -0
  216. package/dist/core/PersistenceManager.d.ts +2 -2
  217. package/dist/core/PersistenceManager.d.ts.map +1 -1
  218. package/dist/core/PersistenceManager.js +7 -7
  219. package/dist/core/PersistenceManager.js.map +1 -1
  220. package/dist/core/PromptComposer.d.ts +21 -8
  221. package/dist/core/PromptComposer.d.ts.map +1 -1
  222. package/dist/core/PromptComposer.js +183 -106
  223. package/dist/core/PromptComposer.js.map +1 -1
  224. package/dist/core/PromptSectionCache.d.ts +1 -1
  225. package/dist/core/PromptSectionCache.js +1 -1
  226. package/dist/core/ResponseEngine.d.ts +18 -8
  227. package/dist/core/ResponseEngine.d.ts.map +1 -1
  228. package/dist/core/ResponseEngine.js +38 -36
  229. package/dist/core/ResponseEngine.js.map +1 -1
  230. package/dist/core/ResponseModal.d.ts +73 -56
  231. package/dist/core/ResponseModal.d.ts.map +1 -1
  232. package/dist/core/ResponseModal.js +1193 -1016
  233. package/dist/core/ResponseModal.js.map +1 -1
  234. package/dist/core/ResponsePipeline.d.ts +124 -26
  235. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  236. package/dist/core/ResponsePipeline.js +509 -137
  237. package/dist/core/ResponsePipeline.js.map +1 -1
  238. package/dist/core/SignalEvaluator.d.ts +86 -0
  239. package/dist/core/SignalEvaluator.d.ts.map +1 -0
  240. package/dist/core/SignalEvaluator.js +326 -0
  241. package/dist/core/SignalEvaluator.js.map +1 -0
  242. package/dist/core/SignalProcessor.d.ts +152 -0
  243. package/dist/core/SignalProcessor.d.ts.map +1 -0
  244. package/dist/core/SignalProcessor.js +555 -0
  245. package/dist/core/SignalProcessor.js.map +1 -0
  246. package/dist/core/Step.d.ts +43 -32
  247. package/dist/core/Step.d.ts.map +1 -1
  248. package/dist/core/Step.js +220 -126
  249. package/dist/core/Step.js.map +1 -1
  250. package/dist/core/StreamingToolExecutor.d.ts +2 -2
  251. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  252. package/dist/core/StreamingToolExecutor.js.map +1 -1
  253. package/dist/core/ToolManager.d.ts +44 -13
  254. package/dist/core/ToolManager.d.ts.map +1 -1
  255. package/dist/core/ToolManager.js +174 -91
  256. package/dist/core/ToolManager.js.map +1 -1
  257. package/dist/core/createAgent.d.ts +35 -0
  258. package/dist/core/createAgent.d.ts.map +1 -0
  259. package/dist/core/createAgent.js +36 -0
  260. package/dist/core/createAgent.js.map +1 -0
  261. package/dist/core/flow-namespace.d.ts +49 -0
  262. package/dist/core/flow-namespace.d.ts.map +1 -0
  263. package/dist/core/flow-namespace.js +168 -0
  264. package/dist/core/flow-namespace.js.map +1 -0
  265. package/dist/index.d.ts +11 -14
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +9 -12
  268. package/dist/index.js.map +1 -1
  269. package/dist/providers/AnthropicProvider.d.ts +1 -1
  270. package/dist/providers/AnthropicProvider.js +1 -1
  271. package/dist/providers/GeminiProvider.d.ts +1 -1
  272. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  273. package/dist/providers/GeminiProvider.js +1 -1
  274. package/dist/providers/GeminiProvider.js.map +1 -1
  275. package/dist/providers/OpenAIProvider.d.ts +1 -1
  276. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  277. package/dist/providers/OpenAIProvider.js +1 -1
  278. package/dist/providers/OpenAIProvider.js.map +1 -1
  279. package/dist/types/agent.d.ts +183 -54
  280. package/dist/types/agent.d.ts.map +1 -1
  281. package/dist/types/agent.js +0 -6
  282. package/dist/types/agent.js.map +1 -1
  283. package/dist/types/ai.d.ts +3 -3
  284. package/dist/types/ai.d.ts.map +1 -1
  285. package/dist/types/errors.d.ts +15 -0
  286. package/dist/types/errors.d.ts.map +1 -0
  287. package/dist/types/errors.js +18 -0
  288. package/dist/types/errors.js.map +1 -0
  289. package/dist/types/flow.d.ts +513 -0
  290. package/dist/types/flow.d.ts.map +1 -0
  291. package/dist/types/flow.js +5 -0
  292. package/dist/types/flow.js.map +1 -0
  293. package/dist/types/index.d.ts +7 -6
  294. package/dist/types/index.d.ts.map +1 -1
  295. package/dist/types/index.js +4 -1
  296. package/dist/types/index.js.map +1 -1
  297. package/dist/types/persistence.d.ts +11 -7
  298. package/dist/types/persistence.d.ts.map +1 -1
  299. package/dist/types/routing.d.ts +1 -1
  300. package/dist/types/routing.d.ts.map +1 -1
  301. package/dist/types/session.d.ts +24 -23
  302. package/dist/types/session.d.ts.map +1 -1
  303. package/dist/types/signals.d.ts +248 -0
  304. package/dist/types/signals.d.ts.map +1 -0
  305. package/dist/types/signals.js +10 -0
  306. package/dist/types/signals.js.map +1 -0
  307. package/dist/types/template.d.ts +2 -8
  308. package/dist/types/template.d.ts.map +1 -1
  309. package/dist/types/tool.d.ts +36 -29
  310. package/dist/types/tool.d.ts.map +1 -1
  311. package/dist/types/tool.js +1 -1
  312. package/dist/types/tool.js.map +1 -1
  313. package/dist/utils/condition.d.ts +7 -1
  314. package/dist/utils/condition.d.ts.map +1 -1
  315. package/dist/utils/condition.js.map +1 -1
  316. package/dist/utils/id.d.ts +13 -5
  317. package/dist/utils/id.d.ts.map +1 -1
  318. package/dist/utils/id.js +22 -9
  319. package/dist/utils/id.js.map +1 -1
  320. package/dist/utils/index.d.ts +2 -2
  321. package/dist/utils/index.d.ts.map +1 -1
  322. package/dist/utils/index.js +2 -2
  323. package/dist/utils/index.js.map +1 -1
  324. package/dist/utils/session.d.ts +44 -5
  325. package/dist/utils/session.d.ts.map +1 -1
  326. package/dist/utils/session.js +193 -37
  327. package/dist/utils/session.js.map +1 -1
  328. package/docs/README.md +22 -200
  329. package/docs/concepts/architecture.md +281 -0
  330. package/docs/concepts/directives.md +400 -0
  331. package/docs/concepts/pipeline.md +399 -0
  332. package/docs/guides/branching.md +263 -0
  333. package/docs/guides/compaction.md +163 -0
  334. package/docs/guides/conditions.md +167 -0
  335. package/docs/guides/error-handling.md +176 -0
  336. package/docs/guides/flow-control.md +409 -0
  337. package/docs/guides/instructions.md +210 -0
  338. package/docs/guides/persistence.md +182 -0
  339. package/docs/guides/streaming.md +137 -0
  340. package/docs/migration/README.md +14 -0
  341. package/docs/migration/route-to-flow.md +561 -0
  342. package/docs/migration/v1-to-v2.md +909 -0
  343. package/docs/reference/adapters.md +481 -0
  344. package/docs/reference/branches.md +241 -0
  345. package/docs/reference/create-agent.md +186 -0
  346. package/docs/reference/directive.md +243 -0
  347. package/docs/reference/errors.md +122 -0
  348. package/docs/reference/flow.md +238 -0
  349. package/docs/reference/instruction.md +177 -0
  350. package/docs/reference/pre-directive.md +131 -0
  351. package/docs/reference/providers.md +227 -0
  352. package/docs/reference/signals.md +356 -0
  353. package/docs/reference/step.md +339 -0
  354. package/docs/reference/tool.md +269 -0
  355. package/docs/start/01-install.md +81 -0
  356. package/docs/start/02-first-agent.md +196 -0
  357. package/docs/start/03-collect-data.md +222 -0
  358. package/docs/start/04-add-tools.md +276 -0
  359. package/docs/start/05-go-to-production.md +216 -0
  360. package/examples/01-quickstart.ts +20 -0
  361. package/examples/02-data-extraction.ts +90 -0
  362. package/examples/03-tools.ts +136 -0
  363. package/examples/04-instructions.ts +100 -0
  364. package/examples/05-branching.ts +140 -0
  365. package/examples/06-flow-control.ts +103 -0
  366. package/examples/07-streaming.ts +69 -0
  367. package/examples/08-persistence.ts +98 -0
  368. package/examples/09-signals.ts +144 -0
  369. package/examples/tsconfig.json +30 -0
  370. package/package.json +2 -1
  371. package/src/adapters/MemoryAdapter.ts +3 -3
  372. package/src/adapters/MongoAdapter.ts +3 -3
  373. package/src/adapters/OpenSearchAdapter.ts +10 -8
  374. package/src/adapters/PostgreSQLAdapter.ts +26 -10
  375. package/src/adapters/PrismaAdapter.ts +6 -6
  376. package/src/adapters/RedisAdapter.ts +3 -3
  377. package/src/adapters/SQLiteAdapter.ts +31 -12
  378. package/src/constants/index.ts +2 -10
  379. package/src/core/Agent.ts +585 -374
  380. package/src/core/AutoChainExecutor.ts +440 -0
  381. package/src/core/BranchEvaluator.ts +167 -0
  382. package/src/core/DirectiveBus.ts +248 -0
  383. package/src/core/DirectiveChainTracker.ts +144 -0
  384. package/src/core/Flow.ts +666 -0
  385. package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
  386. package/src/core/PersistenceManager.ts +8 -8
  387. package/src/core/PromptComposer.ts +209 -140
  388. package/src/core/PromptSectionCache.ts +1 -1
  389. package/src/core/ResponseEngine.ts +61 -46
  390. package/src/core/ResponseModal.ts +1453 -1240
  391. package/src/core/ResponsePipeline.ts +655 -175
  392. package/src/core/SignalEvaluator.ts +420 -0
  393. package/src/core/SignalProcessor.ts +723 -0
  394. package/src/core/Step.ts +279 -176
  395. package/src/core/StreamingToolExecutor.ts +4 -4
  396. package/src/core/ToolManager.ts +200 -97
  397. package/src/core/createAgent.ts +40 -0
  398. package/src/core/flow-namespace.ts +219 -0
  399. package/src/index.ts +42 -36
  400. package/src/providers/AnthropicProvider.ts +2 -2
  401. package/src/providers/GeminiProvider.ts +2 -2
  402. package/src/providers/OpenAIProvider.ts +2 -2
  403. package/src/types/agent.ts +182 -53
  404. package/src/types/ai.ts +3 -3
  405. package/src/types/errors.ts +18 -0
  406. package/src/types/flow.ts +590 -0
  407. package/src/types/index.ts +43 -16
  408. package/src/types/persistence.ts +12 -8
  409. package/src/types/routing.ts +1 -1
  410. package/src/types/session.ts +26 -23
  411. package/src/types/signals.ts +321 -0
  412. package/src/types/template.ts +3 -11
  413. package/src/types/tool.ts +50 -42
  414. package/src/utils/condition.ts +13 -4
  415. package/src/utils/id.ts +27 -9
  416. package/src/utils/index.ts +6 -2
  417. package/src/utils/session.ts +238 -42
  418. package/dist/cjs/core/BatchExecutor.d.ts +0 -359
  419. package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
  420. package/dist/cjs/core/BatchExecutor.js +0 -861
  421. package/dist/cjs/core/BatchExecutor.js.map +0 -1
  422. package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
  423. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
  424. package/dist/cjs/core/BatchPromptBuilder.js +0 -223
  425. package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
  426. package/dist/cjs/core/Route.d.ts +0 -180
  427. package/dist/cjs/core/Route.d.ts.map +0 -1
  428. package/dist/cjs/core/Route.js +0 -542
  429. package/dist/cjs/core/Route.js.map +0 -1
  430. package/dist/cjs/core/RoutingEngine.d.ts +0 -185
  431. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  432. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  433. package/dist/cjs/types/route.d.ts +0 -336
  434. package/dist/cjs/types/route.d.ts.map +0 -1
  435. package/dist/cjs/types/route.js.map +0 -1
  436. package/dist/core/BatchExecutor.d.ts +0 -359
  437. package/dist/core/BatchExecutor.d.ts.map +0 -1
  438. package/dist/core/BatchExecutor.js +0 -856
  439. package/dist/core/BatchExecutor.js.map +0 -1
  440. package/dist/core/BatchPromptBuilder.d.ts +0 -89
  441. package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
  442. package/dist/core/BatchPromptBuilder.js +0 -219
  443. package/dist/core/BatchPromptBuilder.js.map +0 -1
  444. package/dist/core/Route.d.ts +0 -180
  445. package/dist/core/Route.d.ts.map +0 -1
  446. package/dist/core/Route.js +0 -538
  447. package/dist/core/Route.js.map +0 -1
  448. package/dist/core/RoutingEngine.d.ts +0 -185
  449. package/dist/core/RoutingEngine.d.ts.map +0 -1
  450. package/dist/core/RoutingEngine.js.map +0 -1
  451. package/dist/types/route.d.ts +0 -336
  452. package/dist/types/route.d.ts.map +0 -1
  453. package/dist/types/route.js +0 -5
  454. package/dist/types/route.js.map +0 -1
  455. package/docs/CONTRIBUTING.md +0 -521
  456. package/docs/api/README.md +0 -3299
  457. package/docs/api/overview.md +0 -1410
  458. package/docs/architecture/data-extraction-flow.md +0 -360
  459. package/docs/architecture/multi-step-execution.md +0 -277
  460. package/docs/core/agent/README.md +0 -938
  461. package/docs/core/agent/context-management.md +0 -796
  462. package/docs/core/agent/rules-and-prohibitions.md +0 -113
  463. package/docs/core/agent/session-management.md +0 -693
  464. package/docs/core/ai-integration/prompt-composition.md +0 -355
  465. package/docs/core/ai-integration/providers.md +0 -515
  466. package/docs/core/ai-integration/response-processing.md +0 -433
  467. package/docs/core/conversation-flows/data-collection.md +0 -772
  468. package/docs/core/conversation-flows/route-dsl.md +0 -509
  469. package/docs/core/conversation-flows/routes.md +0 -249
  470. package/docs/core/conversation-flows/step-transitions.md +0 -731
  471. package/docs/core/conversation-flows/steps.md +0 -268
  472. package/docs/core/error-handling.md +0 -830
  473. package/docs/core/persistence/adapters.md +0 -255
  474. package/docs/core/persistence/session-storage.md +0 -656
  475. package/docs/core/routing/intelligent-routing.md +0 -470
  476. package/docs/core/tools/enhanced-tool.md +0 -186
  477. package/docs/core/tools/streaming-execution.md +0 -161
  478. package/docs/core/tools/tool-definition.md +0 -970
  479. package/docs/core/tools/tool-scoping.md +0 -819
  480. package/docs/guides/advanced-patterns/publishing.md +0 -186
  481. package/docs/guides/context-compaction.md +0 -96
  482. package/docs/guides/error-handling-patterns.md +0 -578
  483. package/docs/guides/getting-started/README.md +0 -795
  484. package/docs/guides/migration/README.md +0 -101
  485. package/docs/guides/migration/flexible-routing-conditions.md +0 -375
  486. package/docs/guides/migration/multi-step-execution.md +0 -393
  487. package/docs/guides/migration/response-modal-refactor.md +0 -518
  488. package/docs/guides/prompt-optimization.md +0 -164
  489. package/examples/advanced-patterns/context-compaction.ts +0 -223
  490. package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
  491. package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
  492. package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
  493. package/examples/advanced-patterns/streaming-responses.ts +0 -656
  494. package/examples/ai-providers/anthropic-integration.ts +0 -388
  495. package/examples/ai-providers/openai-integration.ts +0 -228
  496. package/examples/condition-patterns/function-only-conditions.ts +0 -365
  497. package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
  498. package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
  499. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  500. package/examples/condition-patterns/string-only-conditions.ts +0 -296
  501. package/examples/conversation-flows/completion-transitions.ts +0 -318
  502. package/examples/core-concepts/basic-agent.ts +0 -503
  503. package/examples/core-concepts/modern-streaming-api.ts +0 -309
  504. package/examples/core-concepts/schema-driven-extraction.ts +0 -332
  505. package/examples/core-concepts/session-management.ts +0 -494
  506. package/examples/integrations/database-integration.ts +0 -631
  507. package/examples/integrations/healthcare-integration.ts +0 -595
  508. package/examples/integrations/search-integration.ts +0 -530
  509. package/examples/integrations/server-session-management.ts +0 -307
  510. package/examples/persistence/custom-adapter.ts +0 -526
  511. package/examples/persistence/database-persistence.ts +0 -583
  512. package/examples/persistence/memory-sessions.ts +0 -495
  513. package/examples/persistence/prisma-schema.example.prisma +0 -74
  514. package/examples/persistence/redis-persistence.ts +0 -488
  515. package/examples/tools/basic-tools.ts +0 -765
  516. package/examples/tools/data-enrichment-tools.ts +0 -593
  517. package/examples/tools/enhanced-tool-metadata.ts +0 -268
  518. package/examples/tools/streaming-tool-execution.ts +0 -283
  519. package/src/core/BatchExecutor.ts +0 -1187
  520. package/src/core/BatchPromptBuilder.ts +0 -299
  521. package/src/core/Route.ts +0 -678
  522. package/src/types/route.ts +0 -392
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Level-1 factory for constructing an Agent from a single options object.
3
+ *
4
+ * `createAgent` is syntactic sugar over `new Agent(options)` and is the
5
+ * recommended entry point in docs and examples. Generic inference flows
6
+ * from `schema` through `flows[].steps[].collect` identically to `new Agent`.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const agent = createAgent({
11
+ * name: 'BookingBot',
12
+ * provider: new GeminiProvider({ apiKey }),
13
+ * schema: { type: 'object', properties: { name: { type: 'string' }, email: { type: 'string' } } },
14
+ * flows: [{ title: 'Onboarding', steps: [{ collect: ['name', 'email'] }] }],
15
+ * });
16
+ * ```
17
+ *
18
+ * **Validates: Requirements 14.1–14.7**
19
+ */
20
+
21
+ import { Agent } from "./Agent";
22
+ import type { AgentOptions } from "../types";
23
+
24
+ /**
25
+ * Create an Agent from a single options object.
26
+ *
27
+ * This is the recommended entry point for constructing agents in v2.
28
+ * Accepts the same options as `new Agent(options)` — `schema`, `provider`,
29
+ * `instructions`, `flows`, and everything else `AgentOptions` carries.
30
+ *
31
+ * Generic inference flows from `schema` through `flows[].steps[].collect`.
32
+ * Invalid `collect` references throw `FlowConfigurationError` at construction time.
33
+ *
34
+ * Post-construction flow registration is still available via `agent.createFlow(...)`.
35
+ */
36
+ export function createAgent<TContext = unknown, TData = unknown>(
37
+ options: AgentOptions<TContext, TData>
38
+ ): Agent<TContext, TData> {
39
+ return new Agent<TContext, TData>(options);
40
+ }
@@ -0,0 +1,219 @@
1
+ /**
2
+ * `flow` namespace — type guards, merge, and validation helpers for Directives.
3
+ *
4
+ * No builder constructors live here (no `flow.goTo(...)`, `flow.complete(...)` etc.).
5
+ * Directives are plain object literals; this namespace provides runtime utilities only.
6
+ */
7
+
8
+ import type { Directive } from "../types/flow";
9
+ import { FlowConfigurationError } from "./Step";
10
+
11
+ // ─── Position field metadata ─────────────────────────────────────────────────
12
+
13
+ /** Position fields in precedence order (highest first). */
14
+ const POSITION_FIELDS = ["abort", "complete", "goTo", "goToStep", "reset"] as const;
15
+ type PositionField = (typeof POSITION_FIELDS)[number];
16
+
17
+ /** Precedence map: lower number = higher priority. */
18
+ const POSITION_PRECEDENCE: Record<PositionField, number> = {
19
+ abort: 0,
20
+ complete: 1,
21
+ goTo: 2,
22
+ goToStep: 2,
23
+ reset: 3,
24
+ };
25
+
26
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
27
+
28
+ function getSetPositionFields(d: Directive): PositionField[] {
29
+ return POSITION_FIELDS.filter((f) => d[f] !== undefined && d[f] !== null);
30
+ }
31
+
32
+ /**
33
+ * Determines whether `candidate` beats `current` by precedence.
34
+ * Lower precedence number wins. On tie, candidate wins (last-emission-wins).
35
+ */
36
+ function beatsCurrent(
37
+ candidate: PositionField,
38
+ current: PositionField | null
39
+ ): boolean {
40
+ if (current === null) return true;
41
+ return POSITION_PRECEDENCE[candidate] <= POSITION_PRECEDENCE[current];
42
+ }
43
+
44
+ // ─── Public API ──────────────────────────────────────────────────────────────
45
+
46
+ /**
47
+ * Type guard: is `x` a Directive (or any subtype like PreDirective)?
48
+ *
49
+ * A value is considered a Directive if it is a non-null object. The Directive
50
+ * interface has all-optional fields, so any plain object qualifies structurally.
51
+ * This guard filters out primitives, null, undefined, arrays, and functions.
52
+ */
53
+ function isDirective(x: unknown): x is Directive {
54
+ return (
55
+ x !== null &&
56
+ x !== undefined &&
57
+ typeof x === "object" &&
58
+ !Array.isArray(x)
59
+ );
60
+ }
61
+
62
+ /**
63
+ * Merge two directives by Algorithm 4's rules:
64
+ * - Position fields: precedence (abort > complete > goTo/goToStep > reset);
65
+ * ties broken by emission order (b wins over a — last wins).
66
+ * - reply: last-wins (b.reply overrides a.reply if set).
67
+ * - dataUpdate / contextUpdate: shallow-merge (b overrides a on key collision).
68
+ * - appendPrompt / injectTools (PreDirective fields): concatenate then dedupe.
69
+ * - halt: logical-OR.
70
+ */
71
+ function merge<T extends Directive>(a: T, b: T): T {
72
+ const result = {} as Record<string, unknown>;
73
+
74
+ // ── Position field: winner-takes-all by precedence, b wins ties ──
75
+ const aPos = getSetPositionFields(a as Directive);
76
+ const bPos = getSetPositionFields(b as Directive);
77
+
78
+ // Pick the highest-priority position field across both directives.
79
+ // b's fields are evaluated after a's, so b wins on same precedence (last-wins).
80
+ let winnerField: PositionField | null = null;
81
+ let winnerSource: Directive | null = null;
82
+
83
+ for (const field of aPos) {
84
+ if (beatsCurrent(field, winnerField)) {
85
+ winnerField = field;
86
+ winnerSource = a as Directive;
87
+ }
88
+ }
89
+ for (const field of bPos) {
90
+ if (beatsCurrent(field, winnerField)) {
91
+ winnerField = field;
92
+ winnerSource = b as Directive;
93
+ }
94
+ }
95
+
96
+ if (winnerField !== null && winnerSource !== null) {
97
+ result[winnerField] = (winnerSource as Record<string, unknown>)[winnerField];
98
+ }
99
+
100
+ // ── reply: last-wins ──
101
+ if ((b as Directive).reply !== undefined) {
102
+ result.reply = (b as Directive).reply;
103
+ } else if ((a as Directive).reply !== undefined) {
104
+ result.reply = (a as Directive).reply;
105
+ }
106
+
107
+ // ── dataUpdate: shallow merge ──
108
+ const aData = (a as Record<string, unknown>).dataUpdate as
109
+ | Record<string, unknown>
110
+ | undefined;
111
+ const bData = (b as Record<string, unknown>).dataUpdate as
112
+ | Record<string, unknown>
113
+ | undefined;
114
+ if (aData || bData) {
115
+ result.dataUpdate = { ...aData, ...bData };
116
+ }
117
+
118
+ // ── contextUpdate: shallow merge ──
119
+ const aCtx = (a as Record<string, unknown>).contextUpdate as
120
+ | Record<string, unknown>
121
+ | undefined;
122
+ const bCtx = (b as Record<string, unknown>).contextUpdate as
123
+ | Record<string, unknown>
124
+ | undefined;
125
+ if (aCtx || bCtx) {
126
+ result.contextUpdate = { ...aCtx, ...bCtx };
127
+ }
128
+
129
+ // ── appendPrompt (PreDirective): concatenate ──
130
+ const aPrompt = (a as Record<string, unknown>).appendPrompt as
131
+ | string[]
132
+ | undefined;
133
+ const bPrompt = (b as Record<string, unknown>).appendPrompt as
134
+ | string[]
135
+ | undefined;
136
+ if (aPrompt || bPrompt) {
137
+ result.appendPrompt = [...(aPrompt ?? []), ...(bPrompt ?? [])];
138
+ }
139
+
140
+ // ── injectTools (PreDirective): concatenate then dedupe by id (last wins) ──
141
+ const aTools = (a as Record<string, unknown>).injectTools as
142
+ | Array<{ id: string;[k: string]: unknown }>
143
+ | undefined;
144
+ const bTools = (b as Record<string, unknown>).injectTools as
145
+ | Array<{ id: string;[k: string]: unknown }>
146
+ | undefined;
147
+ if (aTools || bTools) {
148
+ const combined = [...(aTools ?? []), ...(bTools ?? [])];
149
+ // Dedupe by id — last definition wins
150
+ const seen = new Map<string, (typeof combined)[number]>();
151
+ for (const tool of combined) {
152
+ seen.set(tool.id, tool);
153
+ }
154
+ result.injectTools = Array.from(seen.values());
155
+ }
156
+
157
+ // ── halt (PreDirective): logical OR ──
158
+ const aHalt = (a as Record<string, unknown>).halt as boolean | undefined;
159
+ const bHalt = (b as Record<string, unknown>).halt as boolean | undefined;
160
+ if (aHalt || bHalt) {
161
+ result.halt = true;
162
+ }
163
+
164
+ return result as T;
165
+ }
166
+
167
+ /**
168
+ * Runtime validator. Throws FlowConfigurationError for invalid combinations:
169
+ * - Multiple position fields set.
170
+ * - `goTo` set as empty object `{}` (no flow target).
171
+ * - `reply` co-existing with `abort` (abort ends the conversation; a reply is nonsensical).
172
+ */
173
+ function validate(d: Directive): void {
174
+ // ── Multiple position fields ──
175
+ const setFields = getSetPositionFields(d);
176
+ if (setFields.length > 1) {
177
+ throw new FlowConfigurationError(
178
+ `[FlowConfigurationError] Invalid directive: multiple position fields set (${setFields.join(", ")}). ` +
179
+ `A directive may have at most one position field. Remove the extras.`
180
+ );
181
+ }
182
+
183
+ // ── Empty goTo object ──
184
+ if (d.goTo !== undefined && d.goTo !== null) {
185
+ if (typeof d.goTo === "object") {
186
+ const goToObj = d.goTo as { flow?: string; step?: string };
187
+ if (!goToObj.flow && !goToObj.step) {
188
+ throw new FlowConfigurationError(
189
+ `[FlowConfigurationError] Invalid directive: goTo is set as an empty object. ` +
190
+ `goTo requires a flow id or title. Provide { flow: "<id>" } or use the string shorthand.`
191
+ );
192
+ }
193
+ }
194
+ }
195
+
196
+ // ── reply co-existing with abort ──
197
+ if (d.reply !== undefined && d.abort !== undefined) {
198
+ throw new FlowConfigurationError(
199
+ `[FlowConfigurationError] Invalid directive: reply cannot co-exist with abort. ` +
200
+ `An aborted conversation cannot deliver a reply. Remove one of the fields.`
201
+ );
202
+ }
203
+ }
204
+
205
+ /**
206
+ * The `flow` namespace object. Exported as a single const for ergonomic usage:
207
+ *
208
+ * ```ts
209
+ * import { flow } from '@falai/agent';
210
+ * if (flow.isDirective(x)) { ... }
211
+ * const merged = flow.merge(a, b);
212
+ * flow.validate(d);
213
+ * ```
214
+ */
215
+ export const flow = {
216
+ isDirective,
217
+ merge,
218
+ validate,
219
+ } as const;
package/src/index.ts CHANGED
@@ -1,30 +1,26 @@
1
1
  /**
2
2
  * @falai/agent - Standalone AI Agent framework
3
3
  *
4
- * A strongly-typed, modular agent framework with route DSL and AI provider strategy
4
+ * A strongly-typed, modular agent framework with flow DSL and AI provider strategy
5
5
  */
6
6
 
7
7
  // Core
8
8
  export { Agent } from "./core/Agent";
9
- export { Route } from "./core/Route";
10
- export { Step } from "./core/Step";
11
- export { ResponseModal } from "./core/ResponseModal";
12
- export type {
13
- ResponseModalOptions,
14
- RespondParams,
15
- StreamOptions,
16
- GenerateOptions
17
- } from "./core/ResponseModal";
9
+ export { createAgent } from "./core/createAgent";
10
+ export { Flow } from "./core/Flow";
11
+ export { Step, FlowConfigurationError } from "./core/Step";
12
+ export { flow } from "./core/flow-namespace";
13
+ export { DirectiveChainTracker } from "./core/DirectiveChainTracker";
14
+ export type { DirectiveChainEntry } from "./core/DirectiveChainTracker";
15
+
18
16
  export { adaptEvent, convertHistoryToEvents } from "./core/Events";
19
17
  export { PersistenceManager } from "./core/PersistenceManager";
20
18
  export { SessionManager } from "./core/SessionManager";
21
19
  export { ToolManager, ToolCreationError, ToolExecutionError } from "./core/ToolManager";
22
- export { BatchExecutor, needsInput, type NeedsInputStep, type DetermineBatchParams } from "./core/BatchExecutor";
23
- export { BatchPromptBuilder, type BuildBatchPromptParams, type BatchPromptResult } from "./core/BatchPromptBuilder";
24
- export { CompactionEngine } from "./core/CompactionEngine";
20
+ export { NotImplementedError } from "./types/errors";
21
+
25
22
  export { StreamingToolExecutor } from "./core/StreamingToolExecutor";
26
- export { PromptSectionCache } from "./core/PromptSectionCache";
27
- export type { PromptSectionType, PromptCacheConfig, SectionCompute } from "./core/PromptSectionCache";
23
+
28
24
 
29
25
  // Providers
30
26
  export { GeminiProvider } from "./providers/GeminiProvider";
@@ -71,11 +67,8 @@ export type {
71
67
  OpenSearchAdapterOptions,
72
68
  } from "./adapters/OpenSearchAdapter";
73
69
 
74
- // Constants
75
- export { END_ROUTE, END_ROUTE_ID } from "./constants";
76
-
77
70
  // Utils
78
- export { generateRouteId, generateStepId, generateToolId } from "./utils/id";
71
+ export { generateFlowId, generateStepId, generateToolId } from "./utils/id";
79
72
  export { formatKnowledgeBase } from "./utils/template";
80
73
  export {
81
74
  ConditionEvaluator,
@@ -101,30 +94,40 @@ export type {
101
94
  AgentCompactionConfig,
102
95
  AgentResponse,
103
96
  Term,
104
- Guideline,
105
- GuidelineMatch,
97
+ Instruction,
98
+ ScopedInstructions,
99
+ AppliedInstruction,
106
100
  ContextLifecycleHooks,
107
101
  ContextProvider,
102
+ HookContext,
103
+ ExitReason,
108
104
  Event,
109
105
  EmittedEvent,
110
106
  MessageEventData,
111
107
  ToolEventData,
112
108
  StatusEventData,
113
109
  Participant,
114
- RouteRef,
110
+ FlowRef,
115
111
  StepRef,
116
- RouteOptions,
112
+ FlowOptions,
117
113
  StepOptions,
118
- RouteTransitionConfig,
119
- RouteCompletionHandler,
114
+ FlowLifecycleHooks,
115
+ StepLifecycleHooks,
120
116
  SessionState,
121
- PendingTransition,
117
+ SignalsState,
118
+ SignalTriggerState,
119
+ Signal,
120
+ SignalContext,
121
+ SignalDirective,
122
+ SignalPredicate,
123
+ SignalPredicateContext,
124
+ SignalFiring,
125
+ SignalSchema,
122
126
  ToolContext,
123
127
  ToolResult,
124
128
  ToolHandler,
125
129
  Tool,
126
130
 
127
- EnhancedTool,
128
131
  ToolValidationResult,
129
132
  ToolPermissionResult,
130
133
  ToolCallRequest,
@@ -161,20 +164,23 @@ export type {
161
164
  PersistenceAdapter,
162
165
  Template,
163
166
  TemplateContext,
164
- ConditionTemplate,
165
167
  ConditionEvaluationResult,
166
168
  UserHistoryItem,
167
169
  AssistantHistoryItem,
168
170
  ToolHistoryItem,
169
171
  SystemHistoryItem,
170
- // Multi-step execution types
172
+ // Flow execution types
171
173
  StoppedReason,
172
- BatchResult,
173
- BatchExecutionResult,
174
- BatchExecutionEvent,
175
- BatchExecutionEventType,
176
- BatchExecutionTiming,
177
- BatchExecutionError,
174
+ PrepareResult,
175
+ Directive,
176
+ PreDirective,
177
+ BranchEntry,
178
+ BranchMap,
179
+ BranchPredicate,
180
+ BranchPredicateContext,
181
+ ConditionPredicate,
182
+ ConditionIf,
183
+ ConditionWhen,
178
184
  } from "./types";
179
185
  export { CompositionMode, EventKind, MessageRole } from "./types";
180
- export { createSession, createSessionId, enterRoute, enterStep, mergeCollected } from "./utils";
186
+ export { createSession, createSessionId, enterFlow, enterStep, completeCurrentFlow, isFlowCompletedThisSession, mergeCollected } from "./utils";
@@ -30,7 +30,7 @@ const DEFAULT_RETRY_CONFIG = {
30
30
  export interface AnthropicProviderOptions {
31
31
  /** Anthropic API key */
32
32
  apiKey: string;
33
- /** Model to use (required) - e.g., "claude-sonnet-4-5", "claude-opus-4-1" */
33
+ /** Model to use (required) - e.g., "claude-sonnet-4-6", "claude-opus-4-7" */
34
34
  model: string;
35
35
  /** Backup models to try if primary fails (default: []) */
36
36
  backupModels?: string[];
@@ -138,7 +138,7 @@ export class AnthropicProvider implements AiProvider {
138
138
  }
139
139
 
140
140
  if (!model) {
141
- throw new Error("Model is required. Example: 'claude-sonnet-4-5'");
141
+ throw new Error("Model is required. Example: 'claude-sonnet-4-6'");
142
142
  }
143
143
 
144
144
  this.client = new Anthropic({
@@ -36,7 +36,7 @@ const DEFAULT_RETRY_CONFIG = {
36
36
  export interface GeminiProviderOptions {
37
37
  /** Gemini API key */
38
38
  apiKey: string;
39
- /** Model to use (required) - e.g., "models/gemini-2.5-pro" */
39
+ /** Model to use (required) - e.g., "gemini-3.1-pro-preview" */
40
40
  model: string;
41
41
  /** Backup models to try if primary fails (default: []) */
42
42
  backupModels?: string[];
@@ -140,7 +140,7 @@ export class GeminiProvider implements AiProvider {
140
140
  }
141
141
 
142
142
  if (!model) {
143
- throw new Error("Model is required. Example: 'models/gemini-2.5-pro'");
143
+ throw new Error("Model is required. Example: 'gemini-3.1-pro-preview'");
144
144
  }
145
145
 
146
146
  this.genAI = new GoogleGenAI({ apiKey });
@@ -31,7 +31,7 @@ export interface OpenAIProviderOptions {
31
31
  apiKey: string;
32
32
  /** Organization ID (optional) */
33
33
  organization?: string;
34
- /** Model to use (required) - e.g., "gpt-5", "gpt-5-mini" */
34
+ /** Model to use (required) - e.g., "gpt-5.5", "gpt-5.4" */
35
35
  model: string;
36
36
  /** Backup models to try if primary fails (default: []) */
37
37
  backupModels?: string[];
@@ -144,7 +144,7 @@ export class OpenAIProvider implements AiProvider {
144
144
  }
145
145
 
146
146
  if (!model) {
147
- throw new Error("Model is required. Example: 'gpt-5' or 'gpt-5-mini'");
147
+ throw new Error("Model is required. Example: 'gpt-5.5' or 'gpt-5.4'");
148
148
  }
149
149
 
150
150
  // Dynamic import to avoid bundling issues