@falai/agent 1.2.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) 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/types/agent.d.ts +183 -54
  126. package/dist/cjs/types/agent.d.ts.map +1 -1
  127. package/dist/cjs/types/agent.js +0 -6
  128. package/dist/cjs/types/agent.js.map +1 -1
  129. package/dist/cjs/types/ai.d.ts +3 -3
  130. package/dist/cjs/types/ai.d.ts.map +1 -1
  131. package/dist/cjs/types/errors.d.ts +15 -0
  132. package/dist/cjs/types/errors.d.ts.map +1 -0
  133. package/dist/cjs/types/errors.js +22 -0
  134. package/dist/cjs/types/errors.js.map +1 -0
  135. package/dist/cjs/types/flow.d.ts +513 -0
  136. package/dist/cjs/types/flow.d.ts.map +1 -0
  137. package/dist/cjs/types/{route.js → flow.js} +2 -2
  138. package/dist/cjs/types/flow.js.map +1 -0
  139. package/dist/cjs/types/index.d.ts +7 -6
  140. package/dist/cjs/types/index.d.ts.map +1 -1
  141. package/dist/cjs/types/index.js +6 -2
  142. package/dist/cjs/types/index.js.map +1 -1
  143. package/dist/cjs/types/persistence.d.ts +11 -7
  144. package/dist/cjs/types/persistence.d.ts.map +1 -1
  145. package/dist/cjs/types/routing.d.ts +1 -1
  146. package/dist/cjs/types/routing.d.ts.map +1 -1
  147. package/dist/cjs/types/session.d.ts +24 -23
  148. package/dist/cjs/types/session.d.ts.map +1 -1
  149. package/dist/cjs/types/signals.d.ts +248 -0
  150. package/dist/cjs/types/signals.d.ts.map +1 -0
  151. package/dist/cjs/types/signals.js +11 -0
  152. package/dist/cjs/types/signals.js.map +1 -0
  153. package/dist/cjs/types/template.d.ts +2 -8
  154. package/dist/cjs/types/template.d.ts.map +1 -1
  155. package/dist/cjs/types/tool.d.ts +36 -29
  156. package/dist/cjs/types/tool.d.ts.map +1 -1
  157. package/dist/cjs/types/tool.js +1 -1
  158. package/dist/cjs/types/tool.js.map +1 -1
  159. package/dist/cjs/utils/condition.d.ts +7 -1
  160. package/dist/cjs/utils/condition.d.ts.map +1 -1
  161. package/dist/cjs/utils/condition.js.map +1 -1
  162. package/dist/cjs/utils/id.d.ts +13 -5
  163. package/dist/cjs/utils/id.d.ts.map +1 -1
  164. package/dist/cjs/utils/id.js +24 -10
  165. package/dist/cjs/utils/id.js.map +1 -1
  166. package/dist/cjs/utils/index.d.ts +2 -2
  167. package/dist/cjs/utils/index.d.ts.map +1 -1
  168. package/dist/cjs/utils/index.js +7 -3
  169. package/dist/cjs/utils/index.js.map +1 -1
  170. package/dist/cjs/utils/session.d.ts +44 -5
  171. package/dist/cjs/utils/session.d.ts.map +1 -1
  172. package/dist/cjs/utils/session.js +197 -38
  173. package/dist/cjs/utils/session.js.map +1 -1
  174. package/dist/constants/index.d.ts +0 -9
  175. package/dist/constants/index.d.ts.map +1 -1
  176. package/dist/constants/index.js +3 -9
  177. package/dist/constants/index.js.map +1 -1
  178. package/dist/core/Agent.d.ts +119 -153
  179. package/dist/core/Agent.d.ts.map +1 -1
  180. package/dist/core/Agent.js +472 -325
  181. package/dist/core/Agent.js.map +1 -1
  182. package/dist/core/AutoChainExecutor.d.ts +107 -0
  183. package/dist/core/AutoChainExecutor.d.ts.map +1 -0
  184. package/dist/core/AutoChainExecutor.js +293 -0
  185. package/dist/core/AutoChainExecutor.js.map +1 -0
  186. package/dist/core/BranchEvaluator.d.ts +54 -0
  187. package/dist/core/BranchEvaluator.d.ts.map +1 -0
  188. package/dist/core/BranchEvaluator.js +126 -0
  189. package/dist/core/BranchEvaluator.js.map +1 -0
  190. package/dist/core/DirectiveBus.d.ts +88 -0
  191. package/dist/core/DirectiveBus.d.ts.map +1 -0
  192. package/dist/core/DirectiveBus.js +192 -0
  193. package/dist/core/DirectiveBus.js.map +1 -0
  194. package/dist/core/DirectiveChainTracker.d.ts +49 -0
  195. package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
  196. package/dist/core/DirectiveChainTracker.js +117 -0
  197. package/dist/core/DirectiveChainTracker.js.map +1 -0
  198. package/dist/core/Flow.d.ts +186 -0
  199. package/dist/core/Flow.d.ts.map +1 -0
  200. package/dist/core/Flow.js +546 -0
  201. package/dist/core/Flow.js.map +1 -0
  202. package/dist/core/FlowRouter.d.ts +182 -0
  203. package/dist/core/FlowRouter.d.ts.map +1 -0
  204. package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
  205. package/dist/core/FlowRouter.js.map +1 -0
  206. package/dist/core/PersistenceManager.d.ts +2 -2
  207. package/dist/core/PersistenceManager.d.ts.map +1 -1
  208. package/dist/core/PersistenceManager.js +7 -7
  209. package/dist/core/PersistenceManager.js.map +1 -1
  210. package/dist/core/PromptComposer.d.ts +21 -8
  211. package/dist/core/PromptComposer.d.ts.map +1 -1
  212. package/dist/core/PromptComposer.js +183 -106
  213. package/dist/core/PromptComposer.js.map +1 -1
  214. package/dist/core/PromptSectionCache.d.ts +1 -1
  215. package/dist/core/PromptSectionCache.js +1 -1
  216. package/dist/core/ResponseEngine.d.ts +18 -8
  217. package/dist/core/ResponseEngine.d.ts.map +1 -1
  218. package/dist/core/ResponseEngine.js +38 -36
  219. package/dist/core/ResponseEngine.js.map +1 -1
  220. package/dist/core/ResponseModal.d.ts +73 -56
  221. package/dist/core/ResponseModal.d.ts.map +1 -1
  222. package/dist/core/ResponseModal.js +1193 -1016
  223. package/dist/core/ResponseModal.js.map +1 -1
  224. package/dist/core/ResponsePipeline.d.ts +124 -26
  225. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  226. package/dist/core/ResponsePipeline.js +509 -137
  227. package/dist/core/ResponsePipeline.js.map +1 -1
  228. package/dist/core/SignalEvaluator.d.ts +86 -0
  229. package/dist/core/SignalEvaluator.d.ts.map +1 -0
  230. package/dist/core/SignalEvaluator.js +326 -0
  231. package/dist/core/SignalEvaluator.js.map +1 -0
  232. package/dist/core/SignalProcessor.d.ts +152 -0
  233. package/dist/core/SignalProcessor.d.ts.map +1 -0
  234. package/dist/core/SignalProcessor.js +555 -0
  235. package/dist/core/SignalProcessor.js.map +1 -0
  236. package/dist/core/Step.d.ts +43 -32
  237. package/dist/core/Step.d.ts.map +1 -1
  238. package/dist/core/Step.js +220 -126
  239. package/dist/core/Step.js.map +1 -1
  240. package/dist/core/StreamingToolExecutor.d.ts +2 -2
  241. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  242. package/dist/core/StreamingToolExecutor.js.map +1 -1
  243. package/dist/core/ToolManager.d.ts +44 -13
  244. package/dist/core/ToolManager.d.ts.map +1 -1
  245. package/dist/core/ToolManager.js +174 -91
  246. package/dist/core/ToolManager.js.map +1 -1
  247. package/dist/core/createAgent.d.ts +35 -0
  248. package/dist/core/createAgent.d.ts.map +1 -0
  249. package/dist/core/createAgent.js +36 -0
  250. package/dist/core/createAgent.js.map +1 -0
  251. package/dist/core/flow-namespace.d.ts +49 -0
  252. package/dist/core/flow-namespace.d.ts.map +1 -0
  253. package/dist/core/flow-namespace.js +168 -0
  254. package/dist/core/flow-namespace.js.map +1 -0
  255. package/dist/index.d.ts +11 -14
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +9 -12
  258. package/dist/index.js.map +1 -1
  259. package/dist/types/agent.d.ts +183 -54
  260. package/dist/types/agent.d.ts.map +1 -1
  261. package/dist/types/agent.js +0 -6
  262. package/dist/types/agent.js.map +1 -1
  263. package/dist/types/ai.d.ts +3 -3
  264. package/dist/types/ai.d.ts.map +1 -1
  265. package/dist/types/errors.d.ts +15 -0
  266. package/dist/types/errors.d.ts.map +1 -0
  267. package/dist/types/errors.js +18 -0
  268. package/dist/types/errors.js.map +1 -0
  269. package/dist/types/flow.d.ts +513 -0
  270. package/dist/types/flow.d.ts.map +1 -0
  271. package/dist/types/flow.js +5 -0
  272. package/dist/types/flow.js.map +1 -0
  273. package/dist/types/index.d.ts +7 -6
  274. package/dist/types/index.d.ts.map +1 -1
  275. package/dist/types/index.js +4 -1
  276. package/dist/types/index.js.map +1 -1
  277. package/dist/types/persistence.d.ts +11 -7
  278. package/dist/types/persistence.d.ts.map +1 -1
  279. package/dist/types/routing.d.ts +1 -1
  280. package/dist/types/routing.d.ts.map +1 -1
  281. package/dist/types/session.d.ts +24 -23
  282. package/dist/types/session.d.ts.map +1 -1
  283. package/dist/types/signals.d.ts +248 -0
  284. package/dist/types/signals.d.ts.map +1 -0
  285. package/dist/types/signals.js +10 -0
  286. package/dist/types/signals.js.map +1 -0
  287. package/dist/types/template.d.ts +2 -8
  288. package/dist/types/template.d.ts.map +1 -1
  289. package/dist/types/tool.d.ts +36 -29
  290. package/dist/types/tool.d.ts.map +1 -1
  291. package/dist/types/tool.js +1 -1
  292. package/dist/types/tool.js.map +1 -1
  293. package/dist/utils/condition.d.ts +7 -1
  294. package/dist/utils/condition.d.ts.map +1 -1
  295. package/dist/utils/condition.js.map +1 -1
  296. package/dist/utils/id.d.ts +13 -5
  297. package/dist/utils/id.d.ts.map +1 -1
  298. package/dist/utils/id.js +22 -9
  299. package/dist/utils/id.js.map +1 -1
  300. package/dist/utils/index.d.ts +2 -2
  301. package/dist/utils/index.d.ts.map +1 -1
  302. package/dist/utils/index.js +2 -2
  303. package/dist/utils/index.js.map +1 -1
  304. package/dist/utils/session.d.ts +44 -5
  305. package/dist/utils/session.d.ts.map +1 -1
  306. package/dist/utils/session.js +193 -37
  307. package/dist/utils/session.js.map +1 -1
  308. package/docs/README.md +15 -202
  309. package/docs/concepts/architecture.md +281 -0
  310. package/docs/concepts/directives.md +400 -0
  311. package/docs/concepts/pipeline.md +399 -0
  312. package/docs/guides/branching.md +263 -0
  313. package/docs/guides/compaction.md +163 -0
  314. package/docs/guides/conditions.md +167 -0
  315. package/docs/guides/error-handling.md +176 -0
  316. package/docs/guides/flow-control.md +409 -0
  317. package/docs/guides/instructions.md +210 -0
  318. package/docs/guides/persistence.md +182 -0
  319. package/docs/guides/streaming.md +137 -0
  320. package/docs/migration/README.md +15 -0
  321. package/docs/migration/route-to-flow.md +560 -0
  322. package/docs/migration/v1-to-v2.md +909 -0
  323. package/docs/reference/adapters.md +481 -0
  324. package/docs/reference/branches.md +241 -0
  325. package/docs/reference/create-agent.md +186 -0
  326. package/docs/reference/directive.md +243 -0
  327. package/docs/reference/errors.md +122 -0
  328. package/docs/reference/flow.md +238 -0
  329. package/docs/reference/instruction.md +177 -0
  330. package/docs/reference/pre-directive.md +131 -0
  331. package/docs/reference/providers.md +227 -0
  332. package/docs/reference/signals.md +356 -0
  333. package/docs/reference/step.md +339 -0
  334. package/docs/reference/tool.md +269 -0
  335. package/docs/start/01-install.md +81 -0
  336. package/docs/start/02-first-agent.md +196 -0
  337. package/docs/start/03-collect-data.md +222 -0
  338. package/docs/start/04-add-tools.md +276 -0
  339. package/docs/start/05-go-to-production.md +216 -0
  340. package/examples/01-quickstart.ts +20 -0
  341. package/examples/02-data-extraction.ts +90 -0
  342. package/examples/03-tools.ts +136 -0
  343. package/examples/04-instructions.ts +100 -0
  344. package/examples/05-branching.ts +140 -0
  345. package/examples/06-flow-control.ts +103 -0
  346. package/examples/07-streaming.ts +69 -0
  347. package/examples/08-persistence.ts +98 -0
  348. package/examples/09-signals.ts +144 -0
  349. package/examples/tsconfig.json +30 -0
  350. package/package.json +2 -1
  351. package/src/adapters/MemoryAdapter.ts +3 -3
  352. package/src/adapters/MongoAdapter.ts +3 -3
  353. package/src/adapters/OpenSearchAdapter.ts +10 -8
  354. package/src/adapters/PostgreSQLAdapter.ts +26 -10
  355. package/src/adapters/PrismaAdapter.ts +6 -6
  356. package/src/adapters/RedisAdapter.ts +3 -3
  357. package/src/adapters/SQLiteAdapter.ts +31 -12
  358. package/src/constants/index.ts +2 -10
  359. package/src/core/Agent.ts +585 -374
  360. package/src/core/AutoChainExecutor.ts +440 -0
  361. package/src/core/BranchEvaluator.ts +167 -0
  362. package/src/core/DirectiveBus.ts +248 -0
  363. package/src/core/DirectiveChainTracker.ts +144 -0
  364. package/src/core/Flow.ts +666 -0
  365. package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
  366. package/src/core/PersistenceManager.ts +8 -8
  367. package/src/core/PromptComposer.ts +209 -140
  368. package/src/core/PromptSectionCache.ts +1 -1
  369. package/src/core/ResponseEngine.ts +61 -46
  370. package/src/core/ResponseModal.ts +1453 -1240
  371. package/src/core/ResponsePipeline.ts +655 -175
  372. package/src/core/SignalEvaluator.ts +420 -0
  373. package/src/core/SignalProcessor.ts +723 -0
  374. package/src/core/Step.ts +279 -176
  375. package/src/core/StreamingToolExecutor.ts +4 -4
  376. package/src/core/ToolManager.ts +200 -97
  377. package/src/core/createAgent.ts +40 -0
  378. package/src/core/flow-namespace.ts +219 -0
  379. package/src/index.ts +42 -36
  380. package/src/types/agent.ts +182 -53
  381. package/src/types/ai.ts +3 -3
  382. package/src/types/errors.ts +18 -0
  383. package/src/types/flow.ts +590 -0
  384. package/src/types/index.ts +43 -16
  385. package/src/types/persistence.ts +12 -8
  386. package/src/types/routing.ts +1 -1
  387. package/src/types/session.ts +26 -23
  388. package/src/types/signals.ts +321 -0
  389. package/src/types/template.ts +3 -11
  390. package/src/types/tool.ts +50 -42
  391. package/src/utils/condition.ts +13 -4
  392. package/src/utils/id.ts +27 -9
  393. package/src/utils/index.ts +6 -2
  394. package/src/utils/session.ts +238 -42
  395. package/dist/cjs/core/BatchExecutor.d.ts +0 -359
  396. package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
  397. package/dist/cjs/core/BatchExecutor.js +0 -861
  398. package/dist/cjs/core/BatchExecutor.js.map +0 -1
  399. package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
  400. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
  401. package/dist/cjs/core/BatchPromptBuilder.js +0 -223
  402. package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
  403. package/dist/cjs/core/Route.d.ts +0 -180
  404. package/dist/cjs/core/Route.d.ts.map +0 -1
  405. package/dist/cjs/core/Route.js +0 -542
  406. package/dist/cjs/core/Route.js.map +0 -1
  407. package/dist/cjs/core/RoutingEngine.d.ts +0 -185
  408. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  409. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  410. package/dist/cjs/types/route.d.ts +0 -336
  411. package/dist/cjs/types/route.d.ts.map +0 -1
  412. package/dist/cjs/types/route.js.map +0 -1
  413. package/dist/core/BatchExecutor.d.ts +0 -359
  414. package/dist/core/BatchExecutor.d.ts.map +0 -1
  415. package/dist/core/BatchExecutor.js +0 -856
  416. package/dist/core/BatchExecutor.js.map +0 -1
  417. package/dist/core/BatchPromptBuilder.d.ts +0 -89
  418. package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
  419. package/dist/core/BatchPromptBuilder.js +0 -219
  420. package/dist/core/BatchPromptBuilder.js.map +0 -1
  421. package/dist/core/Route.d.ts +0 -180
  422. package/dist/core/Route.d.ts.map +0 -1
  423. package/dist/core/Route.js +0 -538
  424. package/dist/core/Route.js.map +0 -1
  425. package/dist/core/RoutingEngine.d.ts +0 -185
  426. package/dist/core/RoutingEngine.d.ts.map +0 -1
  427. package/dist/core/RoutingEngine.js.map +0 -1
  428. package/dist/types/route.d.ts +0 -336
  429. package/dist/types/route.d.ts.map +0 -1
  430. package/dist/types/route.js +0 -5
  431. package/dist/types/route.js.map +0 -1
  432. package/docs/CONTRIBUTING.md +0 -521
  433. package/docs/api/README.md +0 -3299
  434. package/docs/api/overview.md +0 -1410
  435. package/docs/architecture/data-extraction-flow.md +0 -360
  436. package/docs/architecture/multi-step-execution.md +0 -277
  437. package/docs/core/agent/README.md +0 -938
  438. package/docs/core/agent/context-management.md +0 -796
  439. package/docs/core/agent/rules-and-prohibitions.md +0 -113
  440. package/docs/core/agent/session-management.md +0 -693
  441. package/docs/core/ai-integration/prompt-composition.md +0 -355
  442. package/docs/core/ai-integration/providers.md +0 -515
  443. package/docs/core/ai-integration/response-processing.md +0 -433
  444. package/docs/core/conversation-flows/data-collection.md +0 -772
  445. package/docs/core/conversation-flows/route-dsl.md +0 -509
  446. package/docs/core/conversation-flows/routes.md +0 -249
  447. package/docs/core/conversation-flows/step-transitions.md +0 -731
  448. package/docs/core/conversation-flows/steps.md +0 -268
  449. package/docs/core/error-handling.md +0 -830
  450. package/docs/core/persistence/adapters.md +0 -255
  451. package/docs/core/persistence/session-storage.md +0 -656
  452. package/docs/core/routing/intelligent-routing.md +0 -470
  453. package/docs/core/tools/enhanced-tool.md +0 -186
  454. package/docs/core/tools/streaming-execution.md +0 -161
  455. package/docs/core/tools/tool-definition.md +0 -970
  456. package/docs/core/tools/tool-scoping.md +0 -819
  457. package/docs/guides/advanced-patterns/publishing.md +0 -186
  458. package/docs/guides/context-compaction.md +0 -96
  459. package/docs/guides/error-handling-patterns.md +0 -578
  460. package/docs/guides/getting-started/README.md +0 -795
  461. package/docs/guides/migration/README.md +0 -101
  462. package/docs/guides/migration/flexible-routing-conditions.md +0 -375
  463. package/docs/guides/migration/multi-step-execution.md +0 -393
  464. package/docs/guides/migration/response-modal-refactor.md +0 -518
  465. package/docs/guides/prompt-optimization.md +0 -164
  466. package/examples/advanced-patterns/context-compaction.ts +0 -223
  467. package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
  468. package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
  469. package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
  470. package/examples/advanced-patterns/streaming-responses.ts +0 -656
  471. package/examples/ai-providers/anthropic-integration.ts +0 -388
  472. package/examples/ai-providers/openai-integration.ts +0 -228
  473. package/examples/condition-patterns/function-only-conditions.ts +0 -365
  474. package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
  475. package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
  476. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  477. package/examples/condition-patterns/string-only-conditions.ts +0 -296
  478. package/examples/conversation-flows/completion-transitions.ts +0 -318
  479. package/examples/core-concepts/basic-agent.ts +0 -503
  480. package/examples/core-concepts/modern-streaming-api.ts +0 -309
  481. package/examples/core-concepts/schema-driven-extraction.ts +0 -332
  482. package/examples/core-concepts/session-management.ts +0 -494
  483. package/examples/integrations/database-integration.ts +0 -631
  484. package/examples/integrations/healthcare-integration.ts +0 -595
  485. package/examples/integrations/search-integration.ts +0 -530
  486. package/examples/integrations/server-session-management.ts +0 -307
  487. package/examples/persistence/custom-adapter.ts +0 -526
  488. package/examples/persistence/database-persistence.ts +0 -583
  489. package/examples/persistence/memory-sessions.ts +0 -495
  490. package/examples/persistence/prisma-schema.example.prisma +0 -74
  491. package/examples/persistence/redis-persistence.ts +0 -488
  492. package/examples/tools/basic-tools.ts +0 -765
  493. package/examples/tools/data-enrichment-tools.ts +0 -593
  494. package/examples/tools/enhanced-tool-metadata.ts +0 -268
  495. package/examples/tools/streaming-tool-execution.ts +0 -283
  496. package/src/core/BatchExecutor.ts +0 -1187
  497. package/src/core/BatchPromptBuilder.ts +0 -299
  498. package/src/core/Route.ts +0 -678
  499. package/src/types/route.ts +0 -392
@@ -1,359 +0,0 @@
1
- /**
2
- * BatchExecutor - Core component for multi-step execution
3
- *
4
- * Responsible for determining which Steps can execute together in a single batch
5
- * and orchestrating their execution with a single LLM call.
6
- */
7
- import type { BatchResult, StepOptions, BatchExecutionError, BatchExecutionResult, BatchExecutionEventListener } from '../types/route';
8
- import type { SessionState } from '../types/session';
9
- import type { Tool } from '../types/tool';
10
- import type { StructuredSchema } from '../types/schema';
11
- import { Step } from './Step';
12
- import { Route } from './Route';
13
- /**
14
- * Step configuration relevant for needs-input detection
15
- */
16
- export interface NeedsInputStep {
17
- /** Required data fields that must be present before entering this step */
18
- requires?: readonly (string | number | symbol)[];
19
- /** Fields to collect from the conversation in this step */
20
- collect?: readonly (string | number | symbol)[];
21
- }
22
- /**
23
- * Determine if a Step needs user input to proceed
24
- *
25
- * IMPORTANT: sessionData MUST already include pre-extracted fields.
26
- * This function is called AFTER pre-extraction has been merged into session data.
27
- *
28
- * A Step needs input when:
29
- * 1. It has `requires` fields and at least one is missing from session data (after pre-extraction)
30
- * 2. It has non-empty `collect` fields and none of those fields have data (after pre-extraction)
31
- *
32
- * @param step - The Step to evaluate (can be Step instance or StepOptions)
33
- * @param sessionDataAfterPreExtraction - Session data with pre-extracted fields already merged
34
- * @returns true if the step needs user input, false otherwise
35
- *
36
- * @example
37
- * ```typescript
38
- * // Step with requires - needs input if any required field is missing
39
- * const step = { requires: ['name', 'email'], collect: [] };
40
- * needsInput(step, { name: 'John' }); // true - email is missing
41
- * needsInput(step, { name: 'John', email: 'john@example.com' }); // false - all present
42
- *
43
- * // Step with collect - needs input if no collect fields have data
44
- * const step2 = { collect: ['preference', 'feedback'] };
45
- * needsInput(step2, {}); // true - no collect fields have data
46
- * needsInput(step2, { preference: 'A' }); // false - at least one has data
47
- * ```
48
- *
49
- * **Validates: Requirements 1.2, 1.3**
50
- */
51
- export declare function needsInput<TData extends Record<string, unknown> = Record<string, unknown>>(step: NeedsInputStep, sessionDataAfterPreExtraction: Partial<TData>): boolean;
52
- /**
53
- * Parameters for batch determination
54
- */
55
- export interface DetermineBatchParams<TContext, TData> {
56
- /** The route containing the steps */
57
- route: Route<TContext, TData>;
58
- /** The current step to start from (undefined means start from initial step) */
59
- currentStep: Step<TContext, TData> | undefined;
60
- /** Session data with pre-extracted fields already merged */
61
- sessionData: Partial<TData>;
62
- /** Agent context for condition evaluation */
63
- context: TContext;
64
- /**
65
- * Maximum number of steps to include in this batch.
66
- * When reached, the batch stops with 'max_steps_reached'.
67
- * Defaults to 1 (single-step execution).
68
- */
69
- maxSteps?: number;
70
- }
71
- /**
72
- * BatchExecutor class - orchestrates multi-step execution
73
- *
74
- * Determines which Steps can execute together in a single batch based on:
75
- * - skipIf conditions (skip steps that evaluate to true)
76
- * - needsInput detection (stop when a step needs user input)
77
- * - END_ROUTE detection (stop when reaching end of route)
78
- *
79
- * Supports event emission for debugging and observability:
80
- * - batch_start: Emitted when batch determination begins
81
- * - step_included: Emitted when a step is included in the batch
82
- * - step_skipped: Emitted when a step is skipped (due to skipIf)
83
- * - batch_stop: Emitted when batch determination stops
84
- * - batch_complete: Emitted when batch execution completes
85
- *
86
- * **Validates: Requirements 1.1, 1.4, 1.5, 7.1, 7.2, 7.3, 11.1, 11.2, 11.3**
87
- */
88
- export declare class BatchExecutor<TContext = unknown, TData = unknown> {
89
- /** Event listeners for batch execution events */
90
- private eventListeners;
91
- /**
92
- * Add an event listener for batch execution events
93
- *
94
- * @param listener - Callback function to receive events
95
- * @returns Function to remove the listener
96
- *
97
- * **Validates: Requirements 11.3**
98
- */
99
- addEventListener(listener: BatchExecutionEventListener): () => void;
100
- /**
101
- * Remove an event listener
102
- *
103
- * @param listener - The listener to remove
104
- */
105
- removeEventListener(listener: BatchExecutionEventListener): void;
106
- /**
107
- * Emit a batch execution event to all listeners
108
- *
109
- * @param event - The event to emit
110
- * @private
111
- */
112
- private emitEvent;
113
- /**
114
- * Create and emit a batch execution event
115
- *
116
- * @param type - Event type
117
- * @param details - Event details
118
- * @private
119
- */
120
- private emitBatchEvent;
121
- /**
122
- * Determine which Steps can execute in the current batch
123
- * starting from the given Step position.
124
- *
125
- * Algorithm:
126
- * 1. Start from currentStep (or initialStep if undefined)
127
- * 2. For each step:
128
- * a. Check if it's END_ROUTE - stop with 'end_route'
129
- * b. Evaluate skipIf condition
130
- * c. If skipIf is true - skip step, continue to next
131
- * d. If skipIf throws error - treat as non-skippable (Requirement 7.3)
132
- * e. Evaluate needsInput
133
- * f. If needsInput is false - include in batch, continue to next
134
- * g. If needsInput is true - stop with 'needs_input'
135
- * 3. If all steps processed - stop with 'route_complete'
136
- *
137
- * @param params - Parameters for batch determination
138
- * @returns BatchResult with steps to execute and stopping reason
139
- *
140
- * **Validates: Requirements 1.1, 1.4, 1.5, 7.1, 7.2, 7.3**
141
- */
142
- determineBatch(params: DetermineBatchParams<TContext, TData>): Promise<BatchResult<TContext, TData>>;
143
- /**
144
- * Execute prepare hooks for all steps in the batch
145
- *
146
- * Executes all prepare hooks in Step order before the LLM call.
147
- * If any prepare hook fails, execution stops immediately and returns an error.
148
- *
149
- * @param params - Parameters for hook execution
150
- * @returns Result indicating success or failure with error details
151
- *
152
- * **Validates: Requirements 5.1, 5.3, 5.4**
153
- */
154
- executePrepareHooks(params: ExecuteHooksParams<TContext, TData>): Promise<HookExecutionResult>;
155
- /**
156
- * Execute finalize hooks for all steps in the batch
157
- *
158
- * Executes all finalize hooks in Step order after the LLM response.
159
- * If a finalize hook fails, the error is logged but execution continues
160
- * with remaining hooks.
161
- *
162
- * @param params - Parameters for hook execution
163
- * @returns Result with any errors that occurred (always succeeds)
164
- *
165
- * **Validates: Requirements 5.2, 5.3, 5.5**
166
- */
167
- executeFinalizeHooks(params: ExecuteHooksParams<TContext, TData>): Promise<HookExecutionResult>;
168
- /**
169
- * Execute all hooks for a batch of steps
170
- *
171
- * This is a convenience method that executes prepare hooks, then allows
172
- * the caller to perform the LLM call, and finally executes finalize hooks.
173
- *
174
- * @param params - Parameters for hook execution
175
- * @returns Object with methods to execute prepare and finalize phases
176
- *
177
- * **Validates: Requirements 5.1, 5.2, 5.3, 5.4, 5.5**
178
- */
179
- createHookExecutor(params: ExecuteHooksParams<TContext, TData>): HookExecutor<TContext, TData>;
180
- /**
181
- * Execute a batch of steps with comprehensive error handling
182
- *
183
- * This method orchestrates the complete batch execution flow:
184
- * 1. Execute prepare hooks (stop on failure)
185
- * 2. Make LLM call (preserve session state on failure)
186
- * 3. Collect and validate data (include errors in response)
187
- * 4. Execute finalize hooks (continue on failure, log errors)
188
- *
189
- * Error handling behavior:
190
- * - LLM call failures: Return error response with last successful session state
191
- * - Validation failures: Include validation errors in response, preserve partial data
192
- * - Prepare hook failures: Stop execution, return error with appropriate stoppedReason
193
- * - Finalize hook failures: Log errors, continue execution (non-fatal)
194
- *
195
- * @param params - Parameters for batch execution
196
- * @returns BatchExecutionResult with message, session, executed steps, and any errors
197
- *
198
- * **Validates: Requirements 9.1, 9.2, 9.3, 2.4**
199
- */
200
- executeBatch(params: ExecuteBatchParams<TContext, TData>): Promise<BatchExecutionResult<TData>>;
201
- /**
202
- * Collect data from LLM response for all steps in the batch
203
- *
204
- * This method:
205
- * 1. Gathers all collect fields from all steps in the batch
206
- * 2. Extracts those fields from the LLM response
207
- * 3. Validates extracted data against the agent schema (if provided)
208
- * 4. Updates session data with all collected values
209
- *
210
- * @param params - Parameters for data collection
211
- * @returns Result with collected data, updated session, and any validation errors
212
- *
213
- * **Validates: Requirements 6.1, 6.2, 6.3**
214
- */
215
- collectBatchData(params: CollectBatchDataParams<TData>): CollectBatchDataResult<TData>;
216
- /**
217
- * Validate data against a JSON schema
218
- *
219
- * Performs basic validation of collected data against the agent schema.
220
- * Checks:
221
- * - Fields exist in schema properties
222
- * - Required fields are present (as warnings)
223
- * - Basic type validation
224
- *
225
- * @param data - Data to validate
226
- * @param schema - JSON schema to validate against
227
- * @returns Validation result with errors
228
- * @private
229
- */
230
- private validateAgainstSchema;
231
- /**
232
- * Validate a single field's type against its schema
233
- * @private
234
- */
235
- private validateFieldType;
236
- }
237
- /**
238
- * Parameters for executing hooks on batched steps
239
- */
240
- export interface ExecuteHooksParams<TContext, TData> {
241
- /** Steps in the batch to execute hooks for */
242
- steps: StepOptions<TContext, TData>[];
243
- /** Agent context */
244
- context: TContext;
245
- /** Current session data */
246
- data?: Partial<TData>;
247
- /**
248
- * Function to execute a single hook (prepare or finalize)
249
- * This allows the caller to provide their own hook execution logic
250
- * (e.g., using ToolManager for tool-based hooks)
251
- */
252
- executeHook: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
253
- }
254
- /**
255
- * Type for the hook execution function
256
- */
257
- export type HookFunction<TContext, TData> = string | Tool<TContext, TData> | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
258
- /**
259
- * Result of hook execution
260
- */
261
- export interface HookExecutionResult {
262
- /** Whether all hooks executed successfully */
263
- success: boolean;
264
- /** IDs of steps whose hooks were executed */
265
- executedSteps: string[];
266
- /** Error details if a hook failed (for prepare hooks) */
267
- error?: BatchExecutionError;
268
- /** Array of errors for finalize hooks (which continue on failure) */
269
- errors?: Array<{
270
- stepId: string;
271
- error: BatchExecutionError;
272
- }>;
273
- }
274
- /**
275
- * Hook executor interface for managing prepare/finalize phases
276
- */
277
- export interface HookExecutor<TContext, TData> {
278
- /** Execute all prepare hooks */
279
- executePrepare: () => Promise<HookExecutionResult>;
280
- /** Execute all finalize hooks */
281
- executeFinalize: () => Promise<HookExecutionResult>;
282
- /** Execute a single hook (used internally) */
283
- executeHook?: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
284
- }
285
- /**
286
- * Parameters for collecting batch data from LLM response
287
- */
288
- export interface CollectBatchDataParams<TData> {
289
- /** Steps in the batch that may have collect fields */
290
- steps: Array<{
291
- collect?: readonly (keyof TData)[];
292
- }>;
293
- /** The LLM response containing collected data */
294
- llmResponse: Record<string, unknown>;
295
- /** Current session state to update */
296
- session: SessionState<TData>;
297
- /** Optional agent schema for validation */
298
- schema?: StructuredSchema;
299
- }
300
- /**
301
- * Result of batch data collection
302
- */
303
- export interface CollectBatchDataResult<TData> {
304
- /** Whether data collection and validation succeeded */
305
- success: boolean;
306
- /** Data collected from the LLM response */
307
- collectedData: Partial<TData>;
308
- /** Updated session with collected data merged */
309
- session: SessionState<TData>;
310
- /** Fields that were successfully collected */
311
- fieldsCollected: string[];
312
- /** Fields that were expected but not found in response */
313
- fieldsMissing?: string[];
314
- /** Validation errors if schema validation failed */
315
- validationErrors?: ValidationError[];
316
- }
317
- /**
318
- * Validation error for schema validation
319
- */
320
- export interface ValidationError {
321
- /** Field that failed validation */
322
- field: string;
323
- /** Value that failed validation */
324
- value: unknown;
325
- /** Error message */
326
- message: string;
327
- /** Path in schema where validation failed */
328
- schemaPath: string;
329
- }
330
- /**
331
- * Parameters for executing a batch of steps
332
- */
333
- export interface ExecuteBatchParams<TContext, TData> {
334
- /** The batch result from determineBatch */
335
- batch: BatchResult<TContext, TData>;
336
- /** Current session state */
337
- session: SessionState<TData>;
338
- /** Agent context */
339
- context: TContext;
340
- /**
341
- * Function to execute a single hook (prepare or finalize)
342
- * This allows the caller to provide their own hook execution logic
343
- */
344
- executeHook: (hook: HookFunction<TContext, TData>, context: TContext, data?: Partial<TData>, step?: StepOptions<TContext, TData>) => Promise<void>;
345
- /**
346
- * Function to generate the LLM message
347
- * This allows the caller to provide their own LLM call logic
348
- * (e.g., using BatchPromptBuilder and AI provider)
349
- */
350
- generateMessage: () => Promise<{
351
- message: string;
352
- structured?: Record<string, unknown>;
353
- }>;
354
- /** Optional agent schema for validation */
355
- schema?: StructuredSchema;
356
- /** Route ID for step references */
357
- routeId?: string;
358
- }
359
- //# sourceMappingURL=BatchExecutor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BatchExecutor.d.ts","sourceRoot":"","sources":["../../src/core/BatchExecutor.ts"],"names":[],"mappings":"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"}