@falai/agent 0.1.0-alpha2

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 +797 -0
  2. package/dist/cjs/package.json +1 -0
  3. package/dist/cjs/src/adapters/MemoryAdapter.d.ts +47 -0
  4. package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
  5. package/dist/cjs/src/adapters/MemoryAdapter.js +202 -0
  6. package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
  7. package/dist/cjs/src/adapters/MongoAdapter.d.ts +97 -0
  8. package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
  9. package/dist/cjs/src/adapters/MongoAdapter.js +168 -0
  10. package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
  11. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts +169 -0
  12. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  13. package/dist/cjs/src/adapters/OpenSearchAdapter.js +458 -0
  14. package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
  15. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts +71 -0
  16. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  17. package/dist/cjs/src/adapters/PostgreSQLAdapter.js +260 -0
  18. package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
  19. package/dist/cjs/src/adapters/PrismaAdapter.d.ts +115 -0
  20. package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
  21. package/dist/cjs/src/adapters/PrismaAdapter.js +366 -0
  22. package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
  23. package/dist/cjs/src/adapters/RedisAdapter.d.ts +71 -0
  24. package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
  25. package/dist/cjs/src/adapters/RedisAdapter.js +231 -0
  26. package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
  27. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts +69 -0
  28. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  29. package/dist/cjs/src/adapters/SQLiteAdapter.js +312 -0
  30. package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
  31. package/dist/cjs/src/adapters/index.d.ts +17 -0
  32. package/dist/cjs/src/adapters/index.d.ts.map +1 -0
  33. package/dist/cjs/src/adapters/index.js +21 -0
  34. package/dist/cjs/src/adapters/index.js.map +1 -0
  35. package/dist/cjs/src/constants/index.d.ts +10 -0
  36. package/dist/cjs/src/constants/index.d.ts.map +1 -0
  37. package/dist/cjs/src/constants/index.js +13 -0
  38. package/dist/cjs/src/constants/index.js.map +1 -0
  39. package/dist/cjs/src/core/Agent.d.ts +232 -0
  40. package/dist/cjs/src/core/Agent.d.ts.map +1 -0
  41. package/dist/cjs/src/core/Agent.js +741 -0
  42. package/dist/cjs/src/core/Agent.js.map +1 -0
  43. package/dist/cjs/src/core/Events.d.ts +26 -0
  44. package/dist/cjs/src/core/Events.d.ts.map +1 -0
  45. package/dist/cjs/src/core/Events.js +144 -0
  46. package/dist/cjs/src/core/Events.js.map +1 -0
  47. package/dist/cjs/src/core/PersistenceManager.d.ts +98 -0
  48. package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
  49. package/dist/cjs/src/core/PersistenceManager.js +261 -0
  50. package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
  51. package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
  52. package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
  53. package/dist/cjs/src/core/PromptComposer.js +194 -0
  54. package/dist/cjs/src/core/PromptComposer.js.map +1 -0
  55. package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
  56. package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
  57. package/dist/cjs/src/core/ResponseEngine.js +202 -0
  58. package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
  59. package/dist/cjs/src/core/ResponseModal.d.ts +222 -0
  60. package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -0
  61. package/dist/cjs/src/core/ResponseModal.js +1588 -0
  62. package/dist/cjs/src/core/ResponseModal.js.map +1 -0
  63. package/dist/cjs/src/core/ResponsePipeline.d.ts +175 -0
  64. package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
  65. package/dist/cjs/src/core/ResponsePipeline.js +549 -0
  66. package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
  67. package/dist/cjs/src/core/Route.d.ts +181 -0
  68. package/dist/cjs/src/core/Route.d.ts.map +1 -0
  69. package/dist/cjs/src/core/Route.js +541 -0
  70. package/dist/cjs/src/core/Route.js.map +1 -0
  71. package/dist/cjs/src/core/RoutingEngine.d.ts +159 -0
  72. package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
  73. package/dist/cjs/src/core/RoutingEngine.js +961 -0
  74. package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
  75. package/dist/cjs/src/core/SessionManager.d.ts +94 -0
  76. package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
  77. package/dist/cjs/src/core/SessionManager.js +239 -0
  78. package/dist/cjs/src/core/SessionManager.js.map +1 -0
  79. package/dist/cjs/src/core/Step.d.ts +170 -0
  80. package/dist/cjs/src/core/Step.d.ts.map +1 -0
  81. package/dist/cjs/src/core/Step.js +448 -0
  82. package/dist/cjs/src/core/Step.js.map +1 -0
  83. package/dist/cjs/src/core/ToolManager.d.ts +234 -0
  84. package/dist/cjs/src/core/ToolManager.d.ts.map +1 -0
  85. package/dist/cjs/src/core/ToolManager.js +1117 -0
  86. package/dist/cjs/src/core/ToolManager.js.map +1 -0
  87. package/dist/cjs/src/index.d.ts +44 -0
  88. package/dist/cjs/src/index.d.ts.map +1 -0
  89. package/dist/cjs/src/index.js +88 -0
  90. package/dist/cjs/src/index.js.map +1 -0
  91. package/dist/cjs/src/providers/AnthropicProvider.d.ts +43 -0
  92. package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
  93. package/dist/cjs/src/providers/AnthropicProvider.js +377 -0
  94. package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
  95. package/dist/cjs/src/providers/GeminiProvider.d.ts +58 -0
  96. package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
  97. package/dist/cjs/src/providers/GeminiProvider.js +489 -0
  98. package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
  99. package/dist/cjs/src/providers/OpenAIProvider.d.ts +52 -0
  100. package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
  101. package/dist/cjs/src/providers/OpenAIProvider.js +395 -0
  102. package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
  103. package/dist/cjs/src/providers/OpenRouterProvider.d.ts +56 -0
  104. package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
  105. package/dist/cjs/src/providers/OpenRouterProvider.js +409 -0
  106. package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
  107. package/dist/cjs/src/providers/index.d.ts +13 -0
  108. package/dist/cjs/src/providers/index.d.ts.map +1 -0
  109. package/dist/cjs/src/providers/index.js +16 -0
  110. package/dist/cjs/src/providers/index.js.map +1 -0
  111. package/dist/cjs/src/types/agent.d.ts +181 -0
  112. package/dist/cjs/src/types/agent.d.ts.map +1 -0
  113. package/dist/cjs/src/types/agent.js +21 -0
  114. package/dist/cjs/src/types/agent.js.map +1 -0
  115. package/dist/cjs/src/types/ai.d.ts +143 -0
  116. package/dist/cjs/src/types/ai.d.ts.map +1 -0
  117. package/dist/cjs/src/types/ai.js +6 -0
  118. package/dist/cjs/src/types/ai.js.map +1 -0
  119. package/dist/cjs/src/types/history.d.ts +178 -0
  120. package/dist/cjs/src/types/history.d.ts.map +1 -0
  121. package/dist/cjs/src/types/history.js +33 -0
  122. package/dist/cjs/src/types/history.js.map +1 -0
  123. package/dist/cjs/src/types/index.d.ts +22 -0
  124. package/dist/cjs/src/types/index.d.ts.map +1 -0
  125. package/dist/cjs/src/types/index.js +37 -0
  126. package/dist/cjs/src/types/index.js.map +1 -0
  127. package/dist/cjs/src/types/persistence.d.ts +209 -0
  128. package/dist/cjs/src/types/persistence.d.ts.map +1 -0
  129. package/dist/cjs/src/types/persistence.js +7 -0
  130. package/dist/cjs/src/types/persistence.js.map +1 -0
  131. package/dist/cjs/src/types/route.d.ts +238 -0
  132. package/dist/cjs/src/types/route.d.ts.map +1 -0
  133. package/dist/cjs/src/types/route.js +6 -0
  134. package/dist/cjs/src/types/route.js.map +1 -0
  135. package/dist/cjs/src/types/routing.d.ts +16 -0
  136. package/dist/cjs/src/types/routing.d.ts.map +1 -0
  137. package/dist/cjs/src/types/routing.js +3 -0
  138. package/dist/cjs/src/types/routing.js.map +1 -0
  139. package/dist/cjs/src/types/schema.d.ts +22 -0
  140. package/dist/cjs/src/types/schema.d.ts.map +1 -0
  141. package/dist/cjs/src/types/schema.js +3 -0
  142. package/dist/cjs/src/types/schema.js.map +1 -0
  143. package/dist/cjs/src/types/session.d.ts +65 -0
  144. package/dist/cjs/src/types/session.d.ts.map +1 -0
  145. package/dist/cjs/src/types/session.js +6 -0
  146. package/dist/cjs/src/types/session.js.map +1 -0
  147. package/dist/cjs/src/types/template.d.ts +88 -0
  148. package/dist/cjs/src/types/template.d.ts.map +1 -0
  149. package/dist/cjs/src/types/template.js +3 -0
  150. package/dist/cjs/src/types/template.js.map +1 -0
  151. package/dist/cjs/src/types/tool.d.ts +130 -0
  152. package/dist/cjs/src/types/tool.d.ts.map +1 -0
  153. package/dist/cjs/src/types/tool.js +19 -0
  154. package/dist/cjs/src/types/tool.js.map +1 -0
  155. package/dist/cjs/src/utils/clone.d.ts +8 -0
  156. package/dist/cjs/src/utils/clone.d.ts.map +1 -0
  157. package/dist/cjs/src/utils/clone.js +32 -0
  158. package/dist/cjs/src/utils/clone.js.map +1 -0
  159. package/dist/cjs/src/utils/condition.d.ts +38 -0
  160. package/dist/cjs/src/utils/condition.d.ts.map +1 -0
  161. package/dist/cjs/src/utils/condition.js +168 -0
  162. package/dist/cjs/src/utils/condition.js.map +1 -0
  163. package/dist/cjs/src/utils/event.d.ts +6 -0
  164. package/dist/cjs/src/utils/event.d.ts.map +1 -0
  165. package/dist/cjs/src/utils/event.js +20 -0
  166. package/dist/cjs/src/utils/event.js.map +1 -0
  167. package/dist/cjs/src/utils/history.d.ts +60 -0
  168. package/dist/cjs/src/utils/history.d.ts.map +1 -0
  169. package/dist/cjs/src/utils/history.js +274 -0
  170. package/dist/cjs/src/utils/history.js.map +1 -0
  171. package/dist/cjs/src/utils/id.d.ts +25 -0
  172. package/dist/cjs/src/utils/id.d.ts.map +1 -0
  173. package/dist/cjs/src/utils/id.js +70 -0
  174. package/dist/cjs/src/utils/id.js.map +1 -0
  175. package/dist/cjs/src/utils/index.d.ts +15 -0
  176. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  177. package/dist/cjs/src/utils/index.js +64 -0
  178. package/dist/cjs/src/utils/index.js.map +1 -0
  179. package/dist/cjs/src/utils/json.d.ts +16 -0
  180. package/dist/cjs/src/utils/json.d.ts.map +1 -0
  181. package/dist/cjs/src/utils/json.js +47 -0
  182. package/dist/cjs/src/utils/json.js.map +1 -0
  183. package/dist/cjs/src/utils/logger.d.ts +10 -0
  184. package/dist/cjs/src/utils/logger.d.ts.map +1 -0
  185. package/dist/cjs/src/utils/logger.js +23 -0
  186. package/dist/cjs/src/utils/logger.js.map +1 -0
  187. package/dist/cjs/src/utils/retry.d.ts +10 -0
  188. package/dist/cjs/src/utils/retry.d.ts.map +1 -0
  189. package/dist/cjs/src/utils/retry.js +76 -0
  190. package/dist/cjs/src/utils/retry.js.map +1 -0
  191. package/dist/cjs/src/utils/session.d.ts +51 -0
  192. package/dist/cjs/src/utils/session.d.ts.map +1 -0
  193. package/dist/cjs/src/utils/session.js +170 -0
  194. package/dist/cjs/src/utils/session.js.map +1 -0
  195. package/dist/cjs/src/utils/template.d.ts +155 -0
  196. package/dist/cjs/src/utils/template.d.ts.map +1 -0
  197. package/dist/cjs/src/utils/template.js +383 -0
  198. package/dist/cjs/src/utils/template.js.map +1 -0
  199. package/dist/src/adapters/MemoryAdapter.d.ts +47 -0
  200. package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
  201. package/dist/src/adapters/MemoryAdapter.js +198 -0
  202. package/dist/src/adapters/MemoryAdapter.js.map +1 -0
  203. package/dist/src/adapters/MongoAdapter.d.ts +97 -0
  204. package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
  205. package/dist/src/adapters/MongoAdapter.js +164 -0
  206. package/dist/src/adapters/MongoAdapter.js.map +1 -0
  207. package/dist/src/adapters/OpenSearchAdapter.d.ts +169 -0
  208. package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  209. package/dist/src/adapters/OpenSearchAdapter.js +454 -0
  210. package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
  211. package/dist/src/adapters/PostgreSQLAdapter.d.ts +71 -0
  212. package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  213. package/dist/src/adapters/PostgreSQLAdapter.js +256 -0
  214. package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
  215. package/dist/src/adapters/PrismaAdapter.d.ts +115 -0
  216. package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
  217. package/dist/src/adapters/PrismaAdapter.js +362 -0
  218. package/dist/src/adapters/PrismaAdapter.js.map +1 -0
  219. package/dist/src/adapters/RedisAdapter.d.ts +71 -0
  220. package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
  221. package/dist/src/adapters/RedisAdapter.js +227 -0
  222. package/dist/src/adapters/RedisAdapter.js.map +1 -0
  223. package/dist/src/adapters/SQLiteAdapter.d.ts +69 -0
  224. package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  225. package/dist/src/adapters/SQLiteAdapter.js +308 -0
  226. package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
  227. package/dist/src/adapters/index.d.ts +17 -0
  228. package/dist/src/adapters/index.d.ts.map +1 -0
  229. package/dist/src/adapters/index.js +11 -0
  230. package/dist/src/adapters/index.js.map +1 -0
  231. package/dist/src/constants/index.d.ts +10 -0
  232. package/dist/src/constants/index.d.ts.map +1 -0
  233. package/dist/src/constants/index.js +10 -0
  234. package/dist/src/constants/index.js.map +1 -0
  235. package/dist/src/core/Agent.d.ts +232 -0
  236. package/dist/src/core/Agent.d.ts.map +1 -0
  237. package/dist/src/core/Agent.js +737 -0
  238. package/dist/src/core/Agent.js.map +1 -0
  239. package/dist/src/core/Events.d.ts +26 -0
  240. package/dist/src/core/Events.d.ts.map +1 -0
  241. package/dist/src/core/Events.js +137 -0
  242. package/dist/src/core/Events.js.map +1 -0
  243. package/dist/src/core/PersistenceManager.d.ts +98 -0
  244. package/dist/src/core/PersistenceManager.d.ts.map +1 -0
  245. package/dist/src/core/PersistenceManager.js +257 -0
  246. package/dist/src/core/PersistenceManager.js.map +1 -0
  247. package/dist/src/core/PromptComposer.d.ts +27 -0
  248. package/dist/src/core/PromptComposer.d.ts.map +1 -0
  249. package/dist/src/core/PromptComposer.js +190 -0
  250. package/dist/src/core/PromptComposer.js.map +1 -0
  251. package/dist/src/core/ResponseEngine.d.ts +32 -0
  252. package/dist/src/core/ResponseEngine.d.ts.map +1 -0
  253. package/dist/src/core/ResponseEngine.js +198 -0
  254. package/dist/src/core/ResponseEngine.js.map +1 -0
  255. package/dist/src/core/ResponseModal.d.ts +222 -0
  256. package/dist/src/core/ResponseModal.d.ts.map +1 -0
  257. package/dist/src/core/ResponseModal.js +1583 -0
  258. package/dist/src/core/ResponseModal.js.map +1 -0
  259. package/dist/src/core/ResponsePipeline.d.ts +175 -0
  260. package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
  261. package/dist/src/core/ResponsePipeline.js +545 -0
  262. package/dist/src/core/ResponsePipeline.js.map +1 -0
  263. package/dist/src/core/Route.d.ts +181 -0
  264. package/dist/src/core/Route.d.ts.map +1 -0
  265. package/dist/src/core/Route.js +537 -0
  266. package/dist/src/core/Route.js.map +1 -0
  267. package/dist/src/core/RoutingEngine.d.ts +159 -0
  268. package/dist/src/core/RoutingEngine.d.ts.map +1 -0
  269. package/dist/src/core/RoutingEngine.js +957 -0
  270. package/dist/src/core/RoutingEngine.js.map +1 -0
  271. package/dist/src/core/SessionManager.d.ts +94 -0
  272. package/dist/src/core/SessionManager.d.ts.map +1 -0
  273. package/dist/src/core/SessionManager.js +235 -0
  274. package/dist/src/core/SessionManager.js.map +1 -0
  275. package/dist/src/core/Step.d.ts +170 -0
  276. package/dist/src/core/Step.d.ts.map +1 -0
  277. package/dist/src/core/Step.js +444 -0
  278. package/dist/src/core/Step.js.map +1 -0
  279. package/dist/src/core/ToolManager.d.ts +234 -0
  280. package/dist/src/core/ToolManager.d.ts.map +1 -0
  281. package/dist/src/core/ToolManager.js +1111 -0
  282. package/dist/src/core/ToolManager.js.map +1 -0
  283. package/dist/src/index.d.ts +44 -0
  284. package/dist/src/index.d.ts.map +1 -0
  285. package/dist/src/index.js +37 -0
  286. package/dist/src/index.js.map +1 -0
  287. package/dist/src/providers/AnthropicProvider.d.ts +43 -0
  288. package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
  289. package/dist/src/providers/AnthropicProvider.js +370 -0
  290. package/dist/src/providers/AnthropicProvider.js.map +1 -0
  291. package/dist/src/providers/GeminiProvider.d.ts +58 -0
  292. package/dist/src/providers/GeminiProvider.d.ts.map +1 -0
  293. package/dist/src/providers/GeminiProvider.js +485 -0
  294. package/dist/src/providers/GeminiProvider.js.map +1 -0
  295. package/dist/src/providers/OpenAIProvider.d.ts +52 -0
  296. package/dist/src/providers/OpenAIProvider.d.ts.map +1 -0
  297. package/dist/src/providers/OpenAIProvider.js +388 -0
  298. package/dist/src/providers/OpenAIProvider.js.map +1 -0
  299. package/dist/src/providers/OpenRouterProvider.d.ts +56 -0
  300. package/dist/src/providers/OpenRouterProvider.d.ts.map +1 -0
  301. package/dist/src/providers/OpenRouterProvider.js +402 -0
  302. package/dist/src/providers/OpenRouterProvider.js.map +1 -0
  303. package/dist/src/providers/index.d.ts +13 -0
  304. package/dist/src/providers/index.d.ts.map +1 -0
  305. package/dist/src/providers/index.js +9 -0
  306. package/dist/src/providers/index.js.map +1 -0
  307. package/dist/src/types/agent.d.ts +181 -0
  308. package/dist/src/types/agent.d.ts.map +1 -0
  309. package/dist/src/types/agent.js +18 -0
  310. package/dist/src/types/agent.js.map +1 -0
  311. package/dist/src/types/ai.d.ts +143 -0
  312. package/dist/src/types/ai.d.ts.map +1 -0
  313. package/dist/src/types/ai.js +5 -0
  314. package/dist/src/types/ai.js.map +1 -0
  315. package/dist/src/types/history.d.ts +178 -0
  316. package/dist/src/types/history.d.ts.map +1 -0
  317. package/dist/src/types/history.js +30 -0
  318. package/dist/src/types/history.js.map +1 -0
  319. package/dist/src/types/index.d.ts +22 -0
  320. package/dist/src/types/index.d.ts.map +1 -0
  321. package/dist/src/types/index.js +12 -0
  322. package/dist/src/types/index.js.map +1 -0
  323. package/dist/src/types/persistence.d.ts +209 -0
  324. package/dist/src/types/persistence.d.ts.map +1 -0
  325. package/dist/src/types/persistence.js +6 -0
  326. package/dist/src/types/persistence.js.map +1 -0
  327. package/dist/src/types/route.d.ts +238 -0
  328. package/dist/src/types/route.d.ts.map +1 -0
  329. package/dist/src/types/route.js +5 -0
  330. package/dist/src/types/route.js.map +1 -0
  331. package/dist/src/types/routing.d.ts +16 -0
  332. package/dist/src/types/routing.d.ts.map +1 -0
  333. package/dist/src/types/routing.js +2 -0
  334. package/dist/src/types/routing.js.map +1 -0
  335. package/dist/src/types/schema.d.ts +22 -0
  336. package/dist/src/types/schema.d.ts.map +1 -0
  337. package/dist/src/types/schema.js +2 -0
  338. package/dist/src/types/schema.js.map +1 -0
  339. package/dist/src/types/session.d.ts +65 -0
  340. package/dist/src/types/session.d.ts.map +1 -0
  341. package/dist/src/types/session.js +5 -0
  342. package/dist/src/types/session.js.map +1 -0
  343. package/dist/src/types/template.d.ts +88 -0
  344. package/dist/src/types/template.d.ts.map +1 -0
  345. package/dist/src/types/template.js +2 -0
  346. package/dist/src/types/template.js.map +1 -0
  347. package/dist/src/types/tool.d.ts +130 -0
  348. package/dist/src/types/tool.d.ts.map +1 -0
  349. package/dist/src/types/tool.js +16 -0
  350. package/dist/src/types/tool.js.map +1 -0
  351. package/dist/src/utils/clone.d.ts +8 -0
  352. package/dist/src/utils/clone.d.ts.map +1 -0
  353. package/dist/src/utils/clone.js +29 -0
  354. package/dist/src/utils/clone.js.map +1 -0
  355. package/dist/src/utils/condition.d.ts +38 -0
  356. package/dist/src/utils/condition.d.ts.map +1 -0
  357. package/dist/src/utils/condition.js +161 -0
  358. package/dist/src/utils/condition.js.map +1 -0
  359. package/dist/src/utils/event.d.ts +6 -0
  360. package/dist/src/utils/event.d.ts.map +1 -0
  361. package/dist/src/utils/event.js +17 -0
  362. package/dist/src/utils/event.js.map +1 -0
  363. package/dist/src/utils/history.d.ts +60 -0
  364. package/dist/src/utils/history.d.ts.map +1 -0
  365. package/dist/src/utils/history.js +263 -0
  366. package/dist/src/utils/history.js.map +1 -0
  367. package/dist/src/utils/id.d.ts +25 -0
  368. package/dist/src/utils/id.d.ts.map +1 -0
  369. package/dist/src/utils/id.js +64 -0
  370. package/dist/src/utils/id.js.map +1 -0
  371. package/dist/src/utils/index.d.ts +15 -0
  372. package/dist/src/utils/index.d.ts.map +1 -0
  373. package/dist/src/utils/index.js +23 -0
  374. package/dist/src/utils/index.js.map +1 -0
  375. package/dist/src/utils/json.d.ts +16 -0
  376. package/dist/src/utils/json.d.ts.map +1 -0
  377. package/dist/src/utils/json.js +43 -0
  378. package/dist/src/utils/json.js.map +1 -0
  379. package/dist/src/utils/logger.d.ts +10 -0
  380. package/dist/src/utils/logger.d.ts.map +1 -0
  381. package/dist/src/utils/logger.js +17 -0
  382. package/dist/src/utils/logger.js.map +1 -0
  383. package/dist/src/utils/retry.d.ts +10 -0
  384. package/dist/src/utils/retry.d.ts.map +1 -0
  385. package/dist/src/utils/retry.js +71 -0
  386. package/dist/src/utils/retry.js.map +1 -0
  387. package/dist/src/utils/session.d.ts +51 -0
  388. package/dist/src/utils/session.d.ts.map +1 -0
  389. package/dist/src/utils/session.js +160 -0
  390. package/dist/src/utils/session.js.map +1 -0
  391. package/dist/src/utils/template.d.ts +155 -0
  392. package/dist/src/utils/template.d.ts.map +1 -0
  393. package/dist/src/utils/template.js +374 -0
  394. package/dist/src/utils/template.js.map +1 -0
  395. package/docs/CONTRIBUTING.md +521 -0
  396. package/docs/README.md +228 -0
  397. package/docs/api/README.md +3258 -0
  398. package/docs/api/overview.md +1134 -0
  399. package/docs/architecture/data-extraction-flow.md +363 -0
  400. package/docs/core/agent/README.md +902 -0
  401. package/docs/core/agent/context-management.md +796 -0
  402. package/docs/core/agent/session-management.md +641 -0
  403. package/docs/core/ai-integration/prompt-composition.md +220 -0
  404. package/docs/core/ai-integration/providers.md +515 -0
  405. package/docs/core/ai-integration/response-processing.md +287 -0
  406. package/docs/core/conversation-flows/data-collection.md +623 -0
  407. package/docs/core/conversation-flows/route-dsl.md +502 -0
  408. package/docs/core/conversation-flows/routes.md +247 -0
  409. package/docs/core/conversation-flows/step-transitions.md +595 -0
  410. package/docs/core/conversation-flows/steps.md +154 -0
  411. package/docs/core/error-handling.md +638 -0
  412. package/docs/core/persistence/adapters.md +255 -0
  413. package/docs/core/persistence/session-storage.md +644 -0
  414. package/docs/core/routing/intelligent-routing.md +466 -0
  415. package/docs/core/tools/tool-definition.md +970 -0
  416. package/docs/core/tools/tool-scoping.md +819 -0
  417. package/docs/guides/advanced-patterns/publishing.md +186 -0
  418. package/docs/guides/error-handling-patterns.md +578 -0
  419. package/docs/guides/getting-started/README.md +696 -0
  420. package/docs/guides/migration/README.md +72 -0
  421. package/docs/guides/migration/flexible-routing-conditions.md +375 -0
  422. package/docs/guides/migration/response-modal-refactor.md +518 -0
  423. package/examples/advanced-patterns/knowledge-based-agent.ts +735 -0
  424. package/examples/advanced-patterns/persistent-onboarding.ts +728 -0
  425. package/examples/advanced-patterns/route-lifecycle-hooks.ts +556 -0
  426. package/examples/advanced-patterns/streaming-responses.ts +578 -0
  427. package/examples/ai-providers/anthropic-integration.ts +388 -0
  428. package/examples/ai-providers/openai-integration.ts +228 -0
  429. package/examples/condition-patterns/function-only-conditions.ts +365 -0
  430. package/examples/condition-patterns/mixed-array-conditions.ts +477 -0
  431. package/examples/condition-patterns/route-skipif-patterns.ts +468 -0
  432. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  433. package/examples/condition-patterns/string-only-conditions.ts +296 -0
  434. package/examples/conversation-flows/completion-transitions.ts +318 -0
  435. package/examples/core-concepts/basic-agent.ts +503 -0
  436. package/examples/core-concepts/modern-streaming-api.ts +309 -0
  437. package/examples/core-concepts/schema-driven-extraction.ts +332 -0
  438. package/examples/core-concepts/session-management.ts +494 -0
  439. package/examples/integrations/database-integration.ts +630 -0
  440. package/examples/integrations/healthcare-integration.ts +595 -0
  441. package/examples/integrations/search-integration.ts +530 -0
  442. package/examples/integrations/server-session-management.ts +307 -0
  443. package/examples/persistence/custom-adapter.ts +529 -0
  444. package/examples/persistence/database-persistence.ts +583 -0
  445. package/examples/persistence/memory-sessions.ts +495 -0
  446. package/examples/persistence/prisma-schema.example.prisma +74 -0
  447. package/examples/persistence/redis-persistence.ts +488 -0
  448. package/examples/tools/basic-tools.ts +765 -0
  449. package/examples/tools/data-enrichment-tools.ts +593 -0
  450. package/package.json +125 -0
  451. package/src/adapters/MemoryAdapter.ts +273 -0
  452. package/src/adapters/MongoAdapter.ts +304 -0
  453. package/src/adapters/OpenSearchAdapter.ts +670 -0
  454. package/src/adapters/PostgreSQLAdapter.ts +428 -0
  455. package/src/adapters/PrismaAdapter.ts +553 -0
  456. package/src/adapters/RedisAdapter.ts +377 -0
  457. package/src/adapters/SQLiteAdapter.ts +459 -0
  458. package/src/adapters/index.ts +43 -0
  459. package/src/constants/index.ts +10 -0
  460. package/src/core/Agent.ts +970 -0
  461. package/src/core/Events.ts +164 -0
  462. package/src/core/PersistenceManager.ts +353 -0
  463. package/src/core/PromptComposer.ts +253 -0
  464. package/src/core/ResponseEngine.ts +306 -0
  465. package/src/core/ResponseModal.ts +2050 -0
  466. package/src/core/ResponsePipeline.ts +864 -0
  467. package/src/core/Route.ts +677 -0
  468. package/src/core/RoutingEngine.ts +1396 -0
  469. package/src/core/SessionManager.ts +297 -0
  470. package/src/core/Step.ts +593 -0
  471. package/src/core/ToolManager.ts +1394 -0
  472. package/src/index.ts +155 -0
  473. package/src/providers/AnthropicProvider.ts +560 -0
  474. package/src/providers/GeminiProvider.ts +683 -0
  475. package/src/providers/OpenAIProvider.ts +602 -0
  476. package/src/providers/OpenRouterProvider.ts +613 -0
  477. package/src/providers/index.ts +16 -0
  478. package/src/types/agent.ts +196 -0
  479. package/src/types/ai.ts +158 -0
  480. package/src/types/history.ts +206 -0
  481. package/src/types/index.ts +119 -0
  482. package/src/types/persistence.ts +251 -0
  483. package/src/types/route.ts +272 -0
  484. package/src/types/routing.ts +18 -0
  485. package/src/types/schema.ts +23 -0
  486. package/src/types/session.ts +74 -0
  487. package/src/types/template.ts +104 -0
  488. package/src/types/tool.ts +174 -0
  489. package/src/utils/clone.ts +34 -0
  490. package/src/utils/condition.ts +190 -0
  491. package/src/utils/event.ts +16 -0
  492. package/src/utils/history.ts +306 -0
  493. package/src/utils/id.ts +73 -0
  494. package/src/utils/index.ts +69 -0
  495. package/src/utils/json.ts +46 -0
  496. package/src/utils/logger.ts +19 -0
  497. package/src/utils/retry.ts +97 -0
  498. package/src/utils/session.ts +204 -0
  499. package/src/utils/template.ts +444 -0
@@ -0,0 +1,549 @@
1
+ "use strict";
2
+ /**
3
+ * Response processing utilities shared between respond() and respondStream() methods
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ResponsePipeline = void 0;
7
+ const history_1 = require("../types/history");
8
+ const utils_1 = require("../utils");
9
+ const template_1 = require("../utils/template");
10
+ const constants_1 = require("../constants");
11
+ /**
12
+ * Shared response processing logic between respond() and respondStream() methods
13
+ */
14
+ class ResponsePipeline {
15
+ constructor(options, getRoutes, tools, routingEngine, updateContext, updateData, updateCollectedData, toolManager) {
16
+ this.options = options;
17
+ this.getRoutes = getRoutes;
18
+ this.tools = tools;
19
+ this.routingEngine = routingEngine;
20
+ this.updateContext = updateContext;
21
+ this.updateData = updateData;
22
+ this.updateCollectedData = updateCollectedData;
23
+ this.toolManager = toolManager;
24
+ }
25
+ /**
26
+ * Prepare context and session for response generation
27
+ */
28
+ async prepareResponseContext(params) {
29
+ const { contextOverride, session } = params;
30
+ // Get current context (may fetch from provider)
31
+ let currentContext = await this.getContext();
32
+ // Call beforeRespond hook if configured
33
+ if (this.options.hooks?.beforeRespond && currentContext !== undefined) {
34
+ currentContext = await this.options.hooks.beforeRespond(currentContext);
35
+ // Update stored context with the result from beforeRespond
36
+ this.context = currentContext;
37
+ }
38
+ // Merge context with override
39
+ const effectiveContext = {
40
+ ...currentContext,
41
+ ...contextOverride,
42
+ };
43
+ // Initialize or get session (use current session if available)
44
+ const targetSession = session || this.currentSession || (0, utils_1.createSession)();
45
+ return {
46
+ effectiveContext,
47
+ session: targetSession,
48
+ };
49
+ }
50
+ /**
51
+ * Handle routing and step selection logic
52
+ */
53
+ async handleRoutingAndStepSelection(params) {
54
+ const { session, history, context, signal } = params;
55
+ // PHASE 2: ROUTING + STEP SELECTION - Determine which route and step to use (combined)
56
+ let selectedRoute;
57
+ let responseDirectives;
58
+ let selectedStep;
59
+ let isRouteComplete = false;
60
+ let completedRoutes = [];
61
+ let targetSession = session;
62
+ // Get routes early since we need them for pending transitions
63
+ const routes = this.getRoutes();
64
+ // Check for pending transition from previous route completion
65
+ if (targetSession.pendingTransition) {
66
+ const targetRoute = routes.find((r) => r.id === targetSession.pendingTransition?.targetRouteId);
67
+ if (targetRoute) {
68
+ utils_1.logger.debug(`[ResponseHandler] Auto-transitioning from pending transition to route: ${targetRoute.title}`);
69
+ // Clear pending transition and enter new route
70
+ targetSession = {
71
+ ...targetSession,
72
+ pendingTransition: undefined,
73
+ };
74
+ targetSession = (0, utils_1.enterRoute)(targetSession, targetRoute.id, targetRoute.title);
75
+ // Merge initial data if available
76
+ if (targetRoute.initialData) {
77
+ targetSession = (0, utils_1.mergeCollected)(targetSession, targetRoute.initialData);
78
+ }
79
+ selectedRoute = targetRoute;
80
+ }
81
+ else {
82
+ utils_1.logger.warn(`[ResponseHandler] Pending transition target route not found: ${targetSession.pendingTransition.targetRouteId}`);
83
+ // Clear invalid transition
84
+ targetSession = {
85
+ ...targetSession,
86
+ pendingTransition: undefined,
87
+ };
88
+ }
89
+ }
90
+ // If no pending transition or transition handled, do normal routing
91
+ if (routes.length > 0 && !selectedRoute) {
92
+ const orchestration = await this.routingEngine.decideRouteAndStep({
93
+ routes: routes,
94
+ session: targetSession,
95
+ history,
96
+ agentOptions: this.options,
97
+ provider: this.options.provider,
98
+ context,
99
+ signal,
100
+ });
101
+ selectedRoute = orchestration.selectedRoute;
102
+ selectedStep = orchestration.selectedStep;
103
+ responseDirectives = orchestration.responseDirectives;
104
+ targetSession = orchestration.session;
105
+ isRouteComplete = orchestration.isRouteComplete || false;
106
+ completedRoutes = orchestration.completedRoutes || [];
107
+ // Log if route is complete
108
+ if (isRouteComplete) {
109
+ utils_1.logger.debug(`[ResponseHandler] Route complete: all required data collected, END_ROUTE reached`);
110
+ }
111
+ }
112
+ return {
113
+ selectedRoute,
114
+ selectedStep,
115
+ responseDirectives,
116
+ session: targetSession,
117
+ isRouteComplete,
118
+ completedRoutes,
119
+ };
120
+ }
121
+ /**
122
+ * Determine next step and update session
123
+ */
124
+ async determineNextStep(params) {
125
+ const { selectedRoute, selectedStep, session, isRouteComplete } = params;
126
+ if (!selectedRoute || isRouteComplete) {
127
+ return { nextStep: undefined, session };
128
+ }
129
+ let nextStep;
130
+ // If we have a selected step from the combined routing decision, use it
131
+ if (selectedStep) {
132
+ nextStep = selectedStep;
133
+ }
134
+ else {
135
+ // Determine current step from session if we're already in this route
136
+ const currentStep = session.currentRoute?.id === selectedRoute.id && session.currentStep
137
+ ? selectedRoute.getStep(session.currentStep.id)
138
+ : undefined;
139
+ const contextToUse = this.getStoredContext();
140
+ // Get candidate steps based on current position in the route
141
+ const candidates = await this.routingEngine.getCandidateStepsWithConditions(selectedRoute, currentStep, // Pass current step instead of undefined to maintain progression
142
+ (0, template_1.createTemplateContext)({ data: session.data, session, context: contextToUse }));
143
+ if (candidates.length > 0) {
144
+ nextStep = candidates[0].step;
145
+ utils_1.logger.debug(`[ResponseHandler] Using first valid step: ${nextStep.id}${currentStep ? ' (progressing from ' + currentStep.id + ')' : ' for new route'}`);
146
+ }
147
+ else {
148
+ // Fallback to initial step even if it should be skipped
149
+ nextStep = selectedRoute.initialStep;
150
+ utils_1.logger.warn(`[ResponseHandler] No valid steps found, using initial step: ${nextStep.id}`);
151
+ }
152
+ }
153
+ // Update session with next step
154
+ const updatedSession = (0, utils_1.enterStep)(session, nextStep.id, nextStep.description);
155
+ utils_1.logger.debug(`[ResponseHandler] Entered step: ${nextStep.id}`);
156
+ return { nextStep, session: updatedSession };
157
+ }
158
+ /**
159
+ * Execute tool calls and handle results
160
+ */
161
+ async executeToolCalls(params) {
162
+ const { toolCalls, selectedRoute, context, session, history, isStreaming = false, } = params;
163
+ if (toolCalls.length === 0) {
164
+ return { session, toolCalls: undefined };
165
+ }
166
+ utils_1.logger.debug(`[ResponseHandler] Executing ${toolCalls.length} ${isStreaming ? "streaming " : ""}tool calls`);
167
+ let updatedSession = session;
168
+ const executedToolCalls = [];
169
+ for (const toolCall of toolCalls) {
170
+ const tool = this.findAvailableTool(toolCall.toolName, selectedRoute);
171
+ if (!tool) {
172
+ utils_1.logger.warn(`[ResponseHandler] Tool not found: ${toolCall.toolName}`);
173
+ continue;
174
+ }
175
+ // Use ToolManager for unified tool execution
176
+ let result;
177
+ if (this.toolManager) {
178
+ result = await this.toolManager.executeTool({
179
+ tool,
180
+ context,
181
+ updateContext: this.updateContext,
182
+ updateData: this.updateCollectedData || (async () => { }),
183
+ history,
184
+ data: updatedSession.data,
185
+ });
186
+ }
187
+ else {
188
+ // Fallback: execute tool directly if ToolManager not available
189
+ throw new Error(`ToolManager not available for tool execution: ${toolCall.toolName}`);
190
+ }
191
+ executedToolCalls.push(toolCall);
192
+ // Update context with tool results
193
+ if (result.contextUpdate) {
194
+ await this.updateContext(result.contextUpdate);
195
+ }
196
+ // Update collected data with tool results
197
+ if (result.dataUpdate) {
198
+ updatedSession = await this.updateData(updatedSession, result.dataUpdate);
199
+ utils_1.logger.debug(`[ResponseHandler] ${isStreaming ? "Streaming " : ""}Tool updated collected data:`, result.dataUpdate);
200
+ }
201
+ utils_1.logger.debug(`[ResponseHandler] Executed ${isStreaming ? "streaming " : ""}tool: ${String(tool.id || tool.name || 'unknown')} (success: ${result.success})`);
202
+ }
203
+ return {
204
+ session: updatedSession,
205
+ toolCalls: executedToolCalls.length > 0 ? executedToolCalls : undefined,
206
+ };
207
+ }
208
+ /**
209
+ * Execute tool loop for follow-up tool calls
210
+ */
211
+ async executeToolLoop(params) {
212
+ const { initialToolCalls, selectedRoute, nextStep, responsePrompt, history, context, session, responseSchema, isStreaming = false, } = params;
213
+ const MAX_TOOL_LOOPS = 5;
214
+ let toolLoopCount = 0;
215
+ let currentToolCalls = initialToolCalls;
216
+ let hasToolCalls = currentToolCalls && currentToolCalls.length > 0;
217
+ let currentSession = session;
218
+ while (hasToolCalls && toolLoopCount < MAX_TOOL_LOOPS) {
219
+ toolLoopCount++;
220
+ utils_1.logger.debug(`[ResponseHandler] Starting ${isStreaming ? "streaming " : ""}tool loop ${toolLoopCount}/${MAX_TOOL_LOOPS}`);
221
+ // Add tool execution results to history so AI knows what happened
222
+ const toolResultsEvents = [];
223
+ for (const toolCall of currentToolCalls || []) {
224
+ const tool = this.findAvailableTool(toolCall.toolName, selectedRoute);
225
+ if (tool) {
226
+ toolResultsEvents.push({
227
+ kind: history_1.EventKind.TOOL,
228
+ source: history_1.MessageRole.AGENT,
229
+ timestamp: new Date().toISOString(),
230
+ data: {
231
+ tool_calls: [
232
+ {
233
+ tool_id: toolCall.toolName,
234
+ arguments: toolCall.arguments,
235
+ result: {
236
+ data: "Tool executed successfully",
237
+ },
238
+ },
239
+ ],
240
+ },
241
+ });
242
+ }
243
+ }
244
+ // Create updated history with tool results
245
+ const updatedHistory = [...history, ...toolResultsEvents];
246
+ // Make follow-up AI call to see if more tools are needed
247
+ const followUpResult = await this.options.provider.generateMessage({
248
+ prompt: responsePrompt,
249
+ history: updatedHistory,
250
+ context,
251
+ tools: this.collectAvailableTools(selectedRoute, nextStep),
252
+ parameters: {
253
+ jsonSchema: responseSchema,
254
+ schemaName: isStreaming ? "tool_followup_streaming" : "tool_followup",
255
+ },
256
+ });
257
+ // Check if follow-up call has more tool calls
258
+ const followUpToolCalls = followUpResult.structured?.toolCalls;
259
+ hasToolCalls = followUpToolCalls && followUpToolCalls.length > 0;
260
+ if (hasToolCalls) {
261
+ utils_1.logger.debug(`[ResponseHandler] Follow-up call produced ${followUpToolCalls.length} additional tool calls`);
262
+ // Execute the follow-up tool calls
263
+ const toolResult = await this.executeToolCalls({
264
+ toolCalls: followUpToolCalls,
265
+ selectedRoute,
266
+ context,
267
+ session: currentSession,
268
+ history: updatedHistory,
269
+ isStreaming,
270
+ });
271
+ currentSession = toolResult.session;
272
+ currentToolCalls = followUpToolCalls;
273
+ }
274
+ else {
275
+ utils_1.logger.debug(`[ResponseHandler] ${isStreaming ? "Streaming " : ""}Tool loop completed after ${toolLoopCount} iterations`);
276
+ // Update final toolCalls from follow-up result if no more tools
277
+ currentToolCalls = followUpToolCalls || [];
278
+ break;
279
+ }
280
+ }
281
+ if (toolLoopCount >= MAX_TOOL_LOOPS) {
282
+ utils_1.logger.warn(`[ResponseHandler] ${isStreaming ? "Streaming " : ""}Tool loop limit reached (${MAX_TOOL_LOOPS}), stopping`);
283
+ }
284
+ return {
285
+ session: currentSession,
286
+ toolCalls: currentToolCalls,
287
+ };
288
+ }
289
+ /**
290
+ * Handle data collection from structured response
291
+ */
292
+ async handleDataCollection(params) {
293
+ const { structured, nextStep, session } = params;
294
+ if (!structured || !nextStep.collect) {
295
+ return { session };
296
+ }
297
+ const collectedData = {};
298
+ // The structured response includes both base fields and collected extraction fields
299
+ const structuredData = structured;
300
+ for (const field of nextStep.collect) {
301
+ const fieldKey = field;
302
+ if (fieldKey in structuredData) {
303
+ collectedData[fieldKey] = structuredData[fieldKey];
304
+ }
305
+ }
306
+ let updatedSession = session;
307
+ if (Object.keys(collectedData).length > 0) {
308
+ // Update agent-level collected data with validation if available
309
+ if (this.updateCollectedData) {
310
+ await this.updateCollectedData(collectedData);
311
+ }
312
+ // Update session with validated data
313
+ updatedSession = await this.updateData(session, collectedData);
314
+ utils_1.logger.debug(`[ResponseHandler] Collected data:`, collectedData);
315
+ }
316
+ return {
317
+ session: updatedSession,
318
+ collectedData,
319
+ };
320
+ }
321
+ /**
322
+ * Handle context updates from structured response
323
+ */
324
+ async handleContextUpdate(structured) {
325
+ if (structured &&
326
+ typeof structured === "object" &&
327
+ "contextUpdate" in structured) {
328
+ await this.updateContext(structured
329
+ .contextUpdate);
330
+ }
331
+ }
332
+ /**
333
+ * Handle route completion logic
334
+ */
335
+ async handleRouteCompletion(params) {
336
+ const { selectedRoute, session, context, history } = params;
337
+ // Check for onComplete transition
338
+ const transitionConfig = await selectedRoute.evaluateOnComplete({ data: session.data }, context);
339
+ if (transitionConfig) {
340
+ // Find target route by ID or title
341
+ const targetRoute = this.getRoutes().find((r) => r.id === transitionConfig.nextStep ||
342
+ r.title === transitionConfig.nextStep);
343
+ if (targetRoute) {
344
+ const templateContext = (0, template_1.createTemplateContext)({
345
+ context,
346
+ session,
347
+ history,
348
+ });
349
+ const renderedCondition = (await (0, utils_1.render)(transitionConfig.condition, templateContext)) ||
350
+ (typeof transitionConfig.condition === "string"
351
+ ? transitionConfig.condition
352
+ : "");
353
+ // Set pending transition in session
354
+ const updatedSession = {
355
+ ...session,
356
+ pendingTransition: {
357
+ targetRouteId: targetRoute.id,
358
+ condition: renderedCondition,
359
+ reason: "route_complete",
360
+ },
361
+ };
362
+ utils_1.logger.debug(`[ResponseHandler] Route ${selectedRoute.title} completed with pending transition to: ${targetRoute.title}`);
363
+ return { session: updatedSession, hasTransition: true };
364
+ }
365
+ else {
366
+ utils_1.logger.warn(`[ResponseHandler] Route ${selectedRoute.title} completed but target route not found: ${transitionConfig.nextStep}`);
367
+ }
368
+ }
369
+ // Set step to END_ROUTE marker
370
+ const updatedSession = (0, utils_1.enterStep)(session, constants_1.END_ROUTE_ID, "Route completed");
371
+ utils_1.logger.debug(`[ResponseHandler] Route ${selectedRoute.title} completed. Entered END_ROUTE step.`);
372
+ return { session: updatedSession, hasTransition: false };
373
+ }
374
+ /**
375
+ * Find an available tool by name for the given route using ToolManager
376
+ * Delegates to ToolManager for unified tool resolution
377
+ */
378
+ findAvailableTool(toolName, route) {
379
+ // Use ToolManager for unified tool resolution if available
380
+ if (this.toolManager) {
381
+ return this.toolManager.find(toolName, undefined, undefined, route);
382
+ }
383
+ // Fallback to legacy resolution if ToolManager not available
384
+ utils_1.logger.warn(`[ResponsePipeline] ToolManager not available, using legacy tool resolution for: ${toolName}`);
385
+ // Check route-level tools first (if route provided)
386
+ if (route) {
387
+ const routeTool = route
388
+ .getTools()
389
+ .find((tool) => tool.id === toolName || tool.name === toolName);
390
+ if (routeTool)
391
+ return routeTool;
392
+ }
393
+ // Fall back to agent-level tools
394
+ return this.tools.find((tool) => tool.id === toolName || tool.name === toolName);
395
+ }
396
+ /**
397
+ * Collect all available tools for the given route and step context using ToolManager
398
+ * Delegates to ToolManager for unified tool resolution and deduplication
399
+ */
400
+ collectAvailableTools(route, step) {
401
+ // Use ToolManager for unified tool collection if available
402
+ if (this.toolManager) {
403
+ const availableTools = this.toolManager.getAvailable(undefined, step, route);
404
+ return availableTools.map((tool) => ({
405
+ id: tool.id,
406
+ description: tool.description,
407
+ parameters: tool.parameters,
408
+ }));
409
+ }
410
+ // Fallback to legacy collection logic if ToolManager not available
411
+ utils_1.logger.warn(`[ResponsePipeline] ToolManager not available, using legacy tool collection`);
412
+ const availableTools = new Map();
413
+ // Add agent-level tools
414
+ this.tools.forEach((tool) => {
415
+ availableTools.set(tool.id, tool);
416
+ });
417
+ // Add route-level tools (these take precedence)
418
+ if (route) {
419
+ route.getTools().forEach((tool) => {
420
+ availableTools.set(tool.id, tool);
421
+ });
422
+ }
423
+ // Filter by step-level allowed tools if specified
424
+ if (step?.tools) {
425
+ const allowedToolIds = new Set();
426
+ const stepTools = [];
427
+ for (const toolRef of step.tools) {
428
+ if (typeof toolRef === "string") {
429
+ // Reference to registered tool
430
+ allowedToolIds.add(toolRef);
431
+ }
432
+ else {
433
+ // Inline tool definition
434
+ if (toolRef.id) {
435
+ allowedToolIds.add(toolRef.id);
436
+ stepTools.push(toolRef);
437
+ }
438
+ }
439
+ }
440
+ // If step specifies tools, only include those
441
+ if (allowedToolIds.size > 0) {
442
+ const filteredTools = new Map();
443
+ for (const toolId of Array.from(allowedToolIds)) {
444
+ const tool = availableTools.get(toolId);
445
+ if (tool) {
446
+ filteredTools.set(toolId, tool);
447
+ }
448
+ }
449
+ // Add inline tools
450
+ stepTools.forEach((tool) => {
451
+ if (tool.id) {
452
+ filteredTools.set(tool.id, tool);
453
+ }
454
+ });
455
+ availableTools.clear();
456
+ filteredTools.forEach((tool, id) => availableTools.set(id, tool));
457
+ }
458
+ }
459
+ // Convert to the format expected by AI providers
460
+ return Array.from(availableTools.values()).map((tool) => ({
461
+ id: tool.id,
462
+ description: tool.description,
463
+ parameters: tool.parameters,
464
+ }));
465
+ }
466
+ /**
467
+ * Get current context (fetches from provider if configured)
468
+ */
469
+ async getContext() {
470
+ // If context provider is configured, use it to fetch fresh context
471
+ if (this.options.contextProvider) {
472
+ return await this.options.contextProvider();
473
+ }
474
+ // Otherwise return the stored context
475
+ return this.context;
476
+ }
477
+ // Setters for context and current session (needed for beforeRespond hook)
478
+ setContext(context) {
479
+ this.context = context;
480
+ }
481
+ setCurrentSession(session) {
482
+ this.currentSession = session;
483
+ }
484
+ getStoredContext() {
485
+ return this.context;
486
+ }
487
+ getCurrentSession() {
488
+ return this.currentSession;
489
+ }
490
+ /**
491
+ * Handle cross-route completion evaluation and notifications
492
+ * This method evaluates all routes for completion and can trigger completion handlers
493
+ */
494
+ async handleCrossRouteCompletion(params) {
495
+ const { routes, session, context } = params;
496
+ // Evaluate all routes for completion
497
+ const completedRoutes = [];
498
+ const pendingTransitions = [];
499
+ for (const route of routes) {
500
+ if (route.isComplete(session.data || {})) {
501
+ completedRoutes.push(route);
502
+ // Check for onComplete transitions
503
+ const transitionConfig = await route.evaluateOnComplete({ data: session.data }, context);
504
+ if (transitionConfig) {
505
+ pendingTransitions.push({ route, transitionConfig });
506
+ }
507
+ utils_1.logger.debug(`[ResponsePipeline] Route completed: ${route.title} ` +
508
+ `(${Math.round(route.getCompletionProgress(session.data || {}) * 100)}%)`);
509
+ }
510
+ }
511
+ // Log completion status for all routes
512
+ if (completedRoutes.length > 0) {
513
+ utils_1.logger.debug(`[ResponsePipeline] Cross-route completion evaluation: ` +
514
+ `${completedRoutes.length}/${routes.length} routes complete`);
515
+ }
516
+ return {
517
+ session,
518
+ completedRoutes,
519
+ pendingTransitions,
520
+ };
521
+ }
522
+ /**
523
+ * Update data flow to ensure agent-level data consistency
524
+ * This method ensures that data updates are properly validated and propagated
525
+ */
526
+ async updateDataFlow(params) {
527
+ const { session, dataUpdate, routes } = params;
528
+ // Update session data
529
+ const updatedSession = await this.updateData(session, dataUpdate);
530
+ // Update agent-level data if handler is available
531
+ if (this.updateCollectedData) {
532
+ await this.updateCollectedData(dataUpdate);
533
+ }
534
+ // Evaluate route completions after data update
535
+ const completionResults = await this.handleCrossRouteCompletion({
536
+ routes,
537
+ session: updatedSession,
538
+ context: this.context,
539
+ history: [],
540
+ });
541
+ // Log any newly completed routes
542
+ if (completionResults.completedRoutes.length > 0) {
543
+ utils_1.logger.debug(`[ResponsePipeline] Data update resulted in ${completionResults.completedRoutes.length} completed routes`);
544
+ }
545
+ return completionResults.session;
546
+ }
547
+ }
548
+ exports.ResponsePipeline = ResponsePipeline;
549
+ //# sourceMappingURL=ResponsePipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsePipeline.js","sourceRoot":"","sources":["../../../../src/core/ResponsePipeline.ts"],"names":[],"mappings":"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"}