@falai/agent 0.9.0 → 1.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 (654) hide show
  1. package/README.md +304 -72
  2. package/dist/adapters/MemoryAdapter.d.ts.map +1 -0
  3. package/dist/adapters/MemoryAdapter.js.map +1 -0
  4. package/dist/adapters/MongoAdapter.d.ts.map +1 -0
  5. package/dist/adapters/MongoAdapter.js.map +1 -0
  6. package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -0
  7. package/dist/adapters/OpenSearchAdapter.js.map +1 -0
  8. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  9. package/dist/adapters/PostgreSQLAdapter.js.map +1 -0
  10. package/dist/adapters/PrismaAdapter.d.ts.map +1 -0
  11. package/dist/{src/adapters → adapters}/PrismaAdapter.js +3 -2
  12. package/dist/adapters/PrismaAdapter.js.map +1 -0
  13. package/dist/adapters/RedisAdapter.d.ts.map +1 -0
  14. package/dist/{src/adapters → adapters}/RedisAdapter.js +3 -3
  15. package/dist/adapters/RedisAdapter.js.map +1 -0
  16. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -0
  17. package/dist/adapters/SQLiteAdapter.js.map +1 -0
  18. package/dist/adapters/index.d.ts.map +1 -0
  19. package/dist/adapters/index.js.map +1 -0
  20. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -0
  21. package/dist/cjs/adapters/MongoAdapter.js.map +1 -0
  22. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -0
  23. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -0
  24. package/dist/{src → cjs}/adapters/PrismaAdapter.d.ts.map +1 -1
  25. package/dist/cjs/{src/adapters → adapters}/PrismaAdapter.js +3 -2
  26. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -0
  27. package/dist/cjs/{src/adapters → adapters}/RedisAdapter.js +2 -2
  28. package/dist/cjs/adapters/RedisAdapter.js.map +1 -0
  29. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -0
  30. package/dist/cjs/adapters/index.js.map +1 -0
  31. package/dist/cjs/constants/index.js.map +1 -0
  32. package/dist/{src → cjs}/core/Agent.d.ts +25 -6
  33. package/dist/cjs/core/Agent.d.ts.map +1 -0
  34. package/dist/cjs/{src/core → core}/Agent.js +121 -37
  35. package/dist/cjs/core/Agent.js.map +1 -0
  36. package/dist/cjs/core/BatchExecutor.d.ts +353 -0
  37. package/dist/cjs/core/BatchExecutor.d.ts.map +1 -0
  38. package/dist/cjs/core/BatchExecutor.js +842 -0
  39. package/dist/cjs/core/BatchExecutor.js.map +1 -0
  40. package/dist/cjs/core/BatchPromptBuilder.d.ts +86 -0
  41. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +1 -0
  42. package/dist/cjs/core/BatchPromptBuilder.js +201 -0
  43. package/dist/cjs/core/BatchPromptBuilder.js.map +1 -0
  44. package/dist/cjs/core/Events.js.map +1 -0
  45. package/dist/cjs/core/PersistenceManager.js.map +1 -0
  46. package/dist/{src → cjs}/core/PromptComposer.d.ts +1 -1
  47. package/dist/cjs/core/PromptComposer.d.ts.map +1 -0
  48. package/dist/cjs/{src/core → core}/PromptComposer.js +44 -7
  49. package/dist/cjs/core/PromptComposer.js.map +1 -0
  50. package/dist/{src → cjs}/core/ResponseEngine.d.ts.map +1 -1
  51. package/dist/cjs/core/ResponseEngine.js +202 -0
  52. package/dist/cjs/core/ResponseEngine.js.map +1 -0
  53. package/dist/{src → cjs}/core/ResponseModal.d.ts +54 -3
  54. package/dist/cjs/core/ResponseModal.d.ts.map +1 -0
  55. package/dist/cjs/{src/core → core}/ResponseModal.js +807 -121
  56. package/dist/cjs/core/ResponseModal.js.map +1 -0
  57. package/dist/{src → cjs}/core/ResponsePipeline.d.ts +10 -6
  58. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -0
  59. package/dist/cjs/{src/core → core}/ResponsePipeline.js +60 -25
  60. package/dist/cjs/core/ResponsePipeline.js.map +1 -0
  61. package/dist/{src → cjs}/core/Route.d.ts +46 -10
  62. package/dist/cjs/core/Route.d.ts.map +1 -0
  63. package/dist/cjs/core/Route.js +541 -0
  64. package/dist/cjs/core/Route.js.map +1 -0
  65. package/dist/cjs/{src/core → core}/RoutingEngine.d.ts +35 -5
  66. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -0
  67. package/dist/cjs/{src/core → core}/RoutingEngine.js +360 -98
  68. package/dist/cjs/core/RoutingEngine.js.map +1 -0
  69. package/dist/{src → cjs}/core/SessionManager.d.ts +9 -1
  70. package/dist/cjs/core/SessionManager.d.ts.map +1 -0
  71. package/dist/cjs/{src/core → core}/SessionManager.js +27 -5
  72. package/dist/cjs/core/SessionManager.js.map +1 -0
  73. package/dist/cjs/core/Step.d.ts +170 -0
  74. package/dist/cjs/core/Step.d.ts.map +1 -0
  75. package/dist/cjs/core/Step.js +448 -0
  76. package/dist/cjs/core/Step.js.map +1 -0
  77. package/dist/cjs/core/ToolManager.d.ts +234 -0
  78. package/dist/cjs/core/ToolManager.d.ts.map +1 -0
  79. package/dist/cjs/core/ToolManager.js +1117 -0
  80. package/dist/cjs/core/ToolManager.js.map +1 -0
  81. package/dist/{src → cjs}/index.d.ts +5 -3
  82. package/dist/cjs/index.d.ts.map +1 -0
  83. package/dist/cjs/{src/index.js → index.js} +16 -3
  84. package/dist/cjs/index.js.map +1 -0
  85. package/dist/cjs/{src/providers → providers}/AnthropicProvider.js +18 -18
  86. package/dist/cjs/providers/AnthropicProvider.js.map +1 -0
  87. package/dist/{src → cjs}/providers/GeminiProvider.d.ts.map +1 -1
  88. package/dist/cjs/{src/providers → providers}/GeminiProvider.js +123 -51
  89. package/dist/cjs/providers/GeminiProvider.js.map +1 -0
  90. package/dist/cjs/{src/providers → providers}/OpenAIProvider.js +19 -19
  91. package/dist/cjs/providers/OpenAIProvider.js.map +1 -0
  92. package/dist/cjs/{src/providers → providers}/OpenRouterProvider.js +19 -19
  93. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -0
  94. package/dist/cjs/providers/index.js.map +1 -0
  95. package/dist/cjs/{src/types → types}/agent.d.ts +12 -4
  96. package/dist/cjs/types/agent.d.ts.map +1 -0
  97. package/dist/cjs/types/agent.js.map +1 -0
  98. package/dist/{src → cjs}/types/ai.js.map +1 -1
  99. package/dist/cjs/types/history.js.map +1 -0
  100. package/dist/cjs/{src/types → types}/index.d.ts +5 -3
  101. package/dist/{src → cjs}/types/index.d.ts.map +1 -1
  102. package/dist/cjs/{src/types → types}/index.js +8 -1
  103. package/dist/cjs/types/index.js.map +1 -0
  104. package/dist/cjs/types/persistence.js.map +1 -0
  105. package/dist/cjs/{src/types → types}/route.d.ts +116 -15
  106. package/dist/cjs/types/route.d.ts.map +1 -0
  107. package/dist/cjs/{src/types → types}/route.js.map +1 -1
  108. package/dist/cjs/types/session.js.map +1 -0
  109. package/dist/cjs/types/template.d.ts +88 -0
  110. package/dist/cjs/types/template.d.ts.map +1 -0
  111. package/dist/cjs/types/tool.d.ts +130 -0
  112. package/dist/cjs/types/tool.d.ts.map +1 -0
  113. package/dist/cjs/types/tool.js +19 -0
  114. package/dist/cjs/types/tool.js.map +1 -0
  115. package/dist/cjs/utils/clone.js.map +1 -0
  116. package/dist/cjs/utils/condition.d.ts +38 -0
  117. package/dist/cjs/utils/condition.d.ts.map +1 -0
  118. package/dist/cjs/utils/condition.js +168 -0
  119. package/dist/cjs/utils/condition.js.map +1 -0
  120. package/dist/cjs/utils/event.js.map +1 -0
  121. package/dist/cjs/utils/history.js.map +1 -0
  122. package/dist/cjs/utils/id.js.map +1 -0
  123. package/dist/cjs/{src/utils → utils}/index.d.ts +3 -1
  124. package/dist/cjs/utils/index.d.ts.map +1 -0
  125. package/dist/cjs/{src/utils → utils}/index.js +12 -1
  126. package/dist/cjs/utils/index.js.map +1 -0
  127. package/dist/cjs/utils/json.d.ts +16 -0
  128. package/dist/cjs/utils/json.d.ts.map +1 -0
  129. package/dist/cjs/utils/json.js +47 -0
  130. package/dist/cjs/utils/json.js.map +1 -0
  131. package/dist/cjs/utils/logger.js.map +1 -0
  132. package/dist/{src → cjs}/utils/retry.d.ts +0 -3
  133. package/dist/cjs/utils/retry.d.ts.map +1 -0
  134. package/dist/cjs/{src/utils → utils}/retry.js +8 -7
  135. package/dist/cjs/utils/retry.js.map +1 -0
  136. package/dist/cjs/utils/session.js.map +1 -0
  137. package/dist/{src → cjs}/utils/template.d.ts +48 -0
  138. package/dist/cjs/utils/template.d.ts.map +1 -0
  139. package/dist/cjs/{src/utils → utils}/template.js +100 -0
  140. package/dist/cjs/utils/template.js.map +1 -0
  141. package/dist/constants/index.d.ts.map +1 -0
  142. package/dist/constants/index.js.map +1 -0
  143. package/dist/{cjs/src/core → core}/Agent.d.ts +25 -6
  144. package/dist/core/Agent.d.ts.map +1 -0
  145. package/dist/{src/core → core}/Agent.js +122 -38
  146. package/dist/core/Agent.js.map +1 -0
  147. package/dist/core/BatchExecutor.d.ts +353 -0
  148. package/dist/core/BatchExecutor.d.ts.map +1 -0
  149. package/dist/core/BatchExecutor.js +837 -0
  150. package/dist/core/BatchExecutor.js.map +1 -0
  151. package/dist/core/BatchPromptBuilder.d.ts +86 -0
  152. package/dist/core/BatchPromptBuilder.d.ts.map +1 -0
  153. package/dist/core/BatchPromptBuilder.js +197 -0
  154. package/dist/core/BatchPromptBuilder.js.map +1 -0
  155. package/dist/core/Events.d.ts.map +1 -0
  156. package/dist/core/Events.js.map +1 -0
  157. package/dist/core/PersistenceManager.d.ts.map +1 -0
  158. package/dist/core/PersistenceManager.js.map +1 -0
  159. package/dist/{cjs/src/core → core}/PromptComposer.d.ts +1 -1
  160. package/dist/core/PromptComposer.d.ts.map +1 -0
  161. package/dist/{src/core → core}/PromptComposer.js +45 -8
  162. package/dist/core/PromptComposer.js.map +1 -0
  163. package/dist/core/ResponseEngine.d.ts.map +1 -0
  164. package/dist/core/ResponseEngine.js +198 -0
  165. package/dist/core/ResponseEngine.js.map +1 -0
  166. package/dist/{cjs/src/core → core}/ResponseModal.d.ts +54 -3
  167. package/dist/core/ResponseModal.d.ts.map +1 -0
  168. package/dist/{src/core → core}/ResponseModal.js +807 -121
  169. package/dist/core/ResponseModal.js.map +1 -0
  170. package/dist/{cjs/src/core → core}/ResponsePipeline.d.ts +10 -6
  171. package/dist/core/ResponsePipeline.d.ts.map +1 -0
  172. package/dist/{src/core → core}/ResponsePipeline.js +60 -25
  173. package/dist/core/ResponsePipeline.js.map +1 -0
  174. package/dist/{cjs/src/core → core}/Route.d.ts +46 -10
  175. package/dist/core/Route.d.ts.map +1 -0
  176. package/dist/core/Route.js +537 -0
  177. package/dist/core/Route.js.map +1 -0
  178. package/dist/{src/core → core}/RoutingEngine.d.ts +35 -5
  179. package/dist/core/RoutingEngine.d.ts.map +1 -0
  180. package/dist/{src/core → core}/RoutingEngine.js +343 -81
  181. package/dist/core/RoutingEngine.js.map +1 -0
  182. package/dist/{cjs/src/core → core}/SessionManager.d.ts +9 -1
  183. package/dist/core/SessionManager.d.ts.map +1 -0
  184. package/dist/{src/core → core}/SessionManager.js +27 -5
  185. package/dist/core/SessionManager.js.map +1 -0
  186. package/dist/core/Step.d.ts +170 -0
  187. package/dist/core/Step.d.ts.map +1 -0
  188. package/dist/core/Step.js +444 -0
  189. package/dist/core/Step.js.map +1 -0
  190. package/dist/core/ToolManager.d.ts +234 -0
  191. package/dist/core/ToolManager.d.ts.map +1 -0
  192. package/dist/core/ToolManager.js +1111 -0
  193. package/dist/core/ToolManager.js.map +1 -0
  194. package/dist/{cjs/src/index.d.ts → index.d.ts} +5 -3
  195. package/dist/index.d.ts.map +1 -0
  196. package/dist/{src/index.js → index.js} +4 -1
  197. package/dist/index.js.map +1 -0
  198. package/dist/providers/AnthropicProvider.d.ts.map +1 -0
  199. package/dist/{src/providers → providers}/AnthropicProvider.js +17 -17
  200. package/dist/providers/AnthropicProvider.js.map +1 -0
  201. package/dist/providers/GeminiProvider.d.ts.map +1 -0
  202. package/dist/{src/providers → providers}/GeminiProvider.js +123 -51
  203. package/dist/providers/GeminiProvider.js.map +1 -0
  204. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  205. package/dist/{src/providers → providers}/OpenAIProvider.js +18 -18
  206. package/dist/providers/OpenAIProvider.js.map +1 -0
  207. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  208. package/dist/{src/providers → providers}/OpenRouterProvider.js +18 -18
  209. package/dist/providers/OpenRouterProvider.js.map +1 -0
  210. package/dist/providers/index.d.ts.map +1 -0
  211. package/dist/providers/index.js.map +1 -0
  212. package/dist/{src/types → types}/agent.d.ts +12 -4
  213. package/dist/types/agent.d.ts.map +1 -0
  214. package/dist/types/agent.js.map +1 -0
  215. package/dist/types/ai.d.ts.map +1 -0
  216. package/dist/types/ai.js.map +1 -0
  217. package/dist/types/history.d.ts.map +1 -0
  218. package/dist/types/history.js.map +1 -0
  219. package/dist/{src/types → types}/index.d.ts +5 -3
  220. package/dist/types/index.d.ts.map +1 -0
  221. package/dist/{src/types → types}/index.js +2 -0
  222. package/dist/types/index.js.map +1 -0
  223. package/dist/types/persistence.d.ts.map +1 -0
  224. package/dist/types/persistence.js.map +1 -0
  225. package/dist/{src/types → types}/route.d.ts +116 -15
  226. package/dist/types/route.d.ts.map +1 -0
  227. package/dist/{src/types → types}/route.js.map +1 -1
  228. package/dist/types/routing.d.ts.map +1 -0
  229. package/dist/{cjs/src/types → types}/routing.js.map +1 -1
  230. package/dist/types/schema.d.ts.map +1 -0
  231. package/dist/{cjs/src/types → types}/schema.js.map +1 -1
  232. package/dist/types/session.d.ts.map +1 -0
  233. package/dist/{src/types → types}/session.js.map +1 -1
  234. package/dist/types/template.d.ts +88 -0
  235. package/dist/types/template.d.ts.map +1 -0
  236. package/dist/{cjs/src/types → types}/template.js.map +1 -1
  237. package/dist/types/tool.d.ts +130 -0
  238. package/dist/types/tool.d.ts.map +1 -0
  239. package/dist/types/tool.js +16 -0
  240. package/dist/types/tool.js.map +1 -0
  241. package/dist/utils/clone.d.ts.map +1 -0
  242. package/dist/utils/clone.js.map +1 -0
  243. package/dist/utils/condition.d.ts +38 -0
  244. package/dist/utils/condition.d.ts.map +1 -0
  245. package/dist/utils/condition.js +161 -0
  246. package/dist/utils/condition.js.map +1 -0
  247. package/dist/utils/event.d.ts.map +1 -0
  248. package/dist/utils/event.js.map +1 -0
  249. package/dist/utils/history.d.ts.map +1 -0
  250. package/dist/utils/history.js.map +1 -0
  251. package/dist/utils/id.d.ts.map +1 -0
  252. package/dist/utils/id.js.map +1 -0
  253. package/dist/{src/utils → utils}/index.d.ts +3 -1
  254. package/dist/utils/index.d.ts.map +1 -0
  255. package/dist/{src/utils → utils}/index.js +5 -1
  256. package/dist/utils/index.js.map +1 -0
  257. package/dist/utils/json.d.ts +16 -0
  258. package/dist/utils/json.d.ts.map +1 -0
  259. package/dist/utils/json.js +43 -0
  260. package/dist/utils/json.js.map +1 -0
  261. package/dist/utils/logger.d.ts.map +1 -0
  262. package/dist/utils/logger.js.map +1 -0
  263. package/dist/{cjs/src/utils → utils}/retry.d.ts +0 -3
  264. package/dist/utils/retry.d.ts.map +1 -0
  265. package/dist/{src/utils → utils}/retry.js +5 -4
  266. package/dist/utils/retry.js.map +1 -0
  267. package/dist/utils/session.d.ts.map +1 -0
  268. package/dist/utils/session.js.map +1 -0
  269. package/dist/{cjs/src/utils → utils}/template.d.ts +48 -0
  270. package/dist/utils/template.d.ts.map +1 -0
  271. package/dist/{src/utils → utils}/template.js +98 -0
  272. package/dist/utils/template.js.map +1 -0
  273. package/docs/CONTRIBUTING.md +40 -0
  274. package/docs/README.md +12 -5
  275. package/docs/api/README.md +295 -56
  276. package/docs/api/overview.md +272 -31
  277. package/docs/architecture/data-extraction-flow.md +363 -0
  278. package/docs/architecture/multi-step-execution.md +243 -0
  279. package/docs/core/agent/README.md +120 -5
  280. package/docs/core/agent/session-management.md +153 -6
  281. package/docs/core/ai-integration/prompt-composition.md +135 -0
  282. package/docs/core/ai-integration/response-processing.md +261 -4
  283. package/docs/core/conversation-flows/data-collection.md +143 -0
  284. package/docs/core/conversation-flows/routes.md +132 -2
  285. package/docs/core/conversation-flows/step-transitions.md +132 -0
  286. package/docs/core/conversation-flows/steps.md +112 -0
  287. package/docs/core/error-handling.md +831 -0
  288. package/docs/core/routing/intelligent-routing.md +118 -0
  289. package/docs/core/tools/tool-definition.md +684 -60
  290. package/docs/core/tools/tool-scoping.md +244 -53
  291. package/docs/guides/error-handling-patterns.md +578 -0
  292. package/docs/guides/getting-started/README.md +423 -31
  293. package/docs/guides/migration/README.md +23 -0
  294. package/docs/guides/migration/flexible-routing-conditions.md +375 -0
  295. package/docs/guides/migration/multi-step-execution.md +303 -0
  296. package/examples/advanced-patterns/knowledge-based-agent.ts +107 -30
  297. package/examples/advanced-patterns/persistent-onboarding.ts +70 -48
  298. package/examples/advanced-patterns/route-lifecycle-hooks.ts +82 -12
  299. package/examples/advanced-patterns/streaming-responses.ts +2 -2
  300. package/examples/ai-providers/anthropic-integration.ts +13 -9
  301. package/examples/ai-providers/openai-integration.ts +12 -8
  302. package/examples/condition-patterns/function-only-conditions.ts +365 -0
  303. package/examples/condition-patterns/mixed-array-conditions.ts +477 -0
  304. package/examples/condition-patterns/route-skipif-patterns.ts +468 -0
  305. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  306. package/examples/condition-patterns/string-only-conditions.ts +296 -0
  307. package/examples/conversation-flows/completion-transitions.ts +48 -7
  308. package/examples/core-concepts/basic-agent.ts +158 -98
  309. package/examples/core-concepts/schema-driven-extraction.ts +43 -16
  310. package/examples/core-concepts/session-management.ts +117 -29
  311. package/examples/integrations/database-integration.ts +6 -6
  312. package/examples/integrations/healthcare-integration.ts +25 -39
  313. package/examples/integrations/search-integration.ts +8 -8
  314. package/examples/integrations/server-session-management.ts +11 -11
  315. package/examples/persistence/database-persistence.ts +15 -15
  316. package/examples/persistence/memory-sessions.ts +6 -6
  317. package/examples/persistence/redis-persistence.ts +7 -9
  318. package/examples/tools/basic-tools.ts +293 -89
  319. package/examples/tools/data-enrichment-tools.ts +189 -79
  320. package/package.json +6 -4
  321. package/src/adapters/PrismaAdapter.ts +3 -2
  322. package/src/adapters/RedisAdapter.ts +3 -3
  323. package/src/core/Agent.ts +152 -46
  324. package/src/core/BatchExecutor.ts +1156 -0
  325. package/src/core/BatchPromptBuilder.ts +275 -0
  326. package/src/core/PromptComposer.ts +53 -16
  327. package/src/core/ResponseEngine.ts +143 -4
  328. package/src/core/ResponseModal.ts +1035 -137
  329. package/src/core/ResponsePipeline.ts +99 -65
  330. package/src/core/Route.ts +262 -34
  331. package/src/core/RoutingEngine.ts +467 -120
  332. package/src/core/SessionManager.ts +39 -7
  333. package/src/core/Step.ts +338 -32
  334. package/src/core/ToolManager.ts +1394 -0
  335. package/src/index.ts +27 -3
  336. package/src/providers/AnthropicProvider.ts +17 -17
  337. package/src/providers/GeminiProvider.ts +129 -60
  338. package/src/providers/OpenAIProvider.ts +18 -18
  339. package/src/providers/OpenRouterProvider.ts +18 -18
  340. package/src/types/agent.ts +12 -4
  341. package/src/types/index.ts +25 -3
  342. package/src/types/route.ts +136 -15
  343. package/src/types/template.ts +70 -2
  344. package/src/types/tool.ts +116 -25
  345. package/src/utils/condition.ts +190 -0
  346. package/src/utils/index.ts +12 -0
  347. package/src/utils/json.ts +46 -0
  348. package/src/utils/retry.ts +5 -4
  349. package/src/utils/template.ts +109 -0
  350. package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +0 -1
  351. package/dist/cjs/src/adapters/MemoryAdapter.js.map +0 -1
  352. package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +0 -1
  353. package/dist/cjs/src/adapters/MongoAdapter.js.map +0 -1
  354. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +0 -1
  355. package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +0 -1
  356. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  357. package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +0 -1
  358. package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +0 -1
  359. package/dist/cjs/src/adapters/PrismaAdapter.js.map +0 -1
  360. package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +0 -1
  361. package/dist/cjs/src/adapters/RedisAdapter.js.map +0 -1
  362. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +0 -1
  363. package/dist/cjs/src/adapters/SQLiteAdapter.js.map +0 -1
  364. package/dist/cjs/src/adapters/index.d.ts.map +0 -1
  365. package/dist/cjs/src/adapters/index.js.map +0 -1
  366. package/dist/cjs/src/constants/index.d.ts.map +0 -1
  367. package/dist/cjs/src/constants/index.js.map +0 -1
  368. package/dist/cjs/src/core/Agent.d.ts.map +0 -1
  369. package/dist/cjs/src/core/Agent.js.map +0 -1
  370. package/dist/cjs/src/core/Events.d.ts.map +0 -1
  371. package/dist/cjs/src/core/Events.js.map +0 -1
  372. package/dist/cjs/src/core/PersistenceManager.d.ts.map +0 -1
  373. package/dist/cjs/src/core/PersistenceManager.js.map +0 -1
  374. package/dist/cjs/src/core/PromptComposer.d.ts.map +0 -1
  375. package/dist/cjs/src/core/PromptComposer.js.map +0 -1
  376. package/dist/cjs/src/core/ResponseEngine.d.ts.map +0 -1
  377. package/dist/cjs/src/core/ResponseEngine.js +0 -84
  378. package/dist/cjs/src/core/ResponseEngine.js.map +0 -1
  379. package/dist/cjs/src/core/ResponseModal.d.ts.map +0 -1
  380. package/dist/cjs/src/core/ResponseModal.js.map +0 -1
  381. package/dist/cjs/src/core/ResponsePipeline.d.ts.map +0 -1
  382. package/dist/cjs/src/core/ResponsePipeline.js.map +0 -1
  383. package/dist/cjs/src/core/Route.d.ts.map +0 -1
  384. package/dist/cjs/src/core/Route.js +0 -343
  385. package/dist/cjs/src/core/Route.js.map +0 -1
  386. package/dist/cjs/src/core/RoutingEngine.d.ts.map +0 -1
  387. package/dist/cjs/src/core/RoutingEngine.js.map +0 -1
  388. package/dist/cjs/src/core/SessionManager.d.ts.map +0 -1
  389. package/dist/cjs/src/core/SessionManager.js.map +0 -1
  390. package/dist/cjs/src/core/Step.d.ts +0 -96
  391. package/dist/cjs/src/core/Step.d.ts.map +0 -1
  392. package/dist/cjs/src/core/Step.js +0 -206
  393. package/dist/cjs/src/core/Step.js.map +0 -1
  394. package/dist/cjs/src/core/ToolExecutor.d.ts +0 -45
  395. package/dist/cjs/src/core/ToolExecutor.d.ts.map +0 -1
  396. package/dist/cjs/src/core/ToolExecutor.js +0 -84
  397. package/dist/cjs/src/core/ToolExecutor.js.map +0 -1
  398. package/dist/cjs/src/index.d.ts.map +0 -1
  399. package/dist/cjs/src/index.js.map +0 -1
  400. package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +0 -1
  401. package/dist/cjs/src/providers/AnthropicProvider.js.map +0 -1
  402. package/dist/cjs/src/providers/GeminiProvider.d.ts.map +0 -1
  403. package/dist/cjs/src/providers/GeminiProvider.js.map +0 -1
  404. package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +0 -1
  405. package/dist/cjs/src/providers/OpenAIProvider.js.map +0 -1
  406. package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +0 -1
  407. package/dist/cjs/src/providers/OpenRouterProvider.js.map +0 -1
  408. package/dist/cjs/src/providers/index.d.ts.map +0 -1
  409. package/dist/cjs/src/providers/index.js.map +0 -1
  410. package/dist/cjs/src/types/agent.d.ts.map +0 -1
  411. package/dist/cjs/src/types/agent.js.map +0 -1
  412. package/dist/cjs/src/types/ai.d.ts.map +0 -1
  413. package/dist/cjs/src/types/ai.js.map +0 -1
  414. package/dist/cjs/src/types/history.d.ts.map +0 -1
  415. package/dist/cjs/src/types/history.js.map +0 -1
  416. package/dist/cjs/src/types/index.d.ts.map +0 -1
  417. package/dist/cjs/src/types/index.js.map +0 -1
  418. package/dist/cjs/src/types/persistence.d.ts.map +0 -1
  419. package/dist/cjs/src/types/persistence.js.map +0 -1
  420. package/dist/cjs/src/types/route.d.ts.map +0 -1
  421. package/dist/cjs/src/types/routing.d.ts.map +0 -1
  422. package/dist/cjs/src/types/schema.d.ts.map +0 -1
  423. package/dist/cjs/src/types/session.d.ts.map +0 -1
  424. package/dist/cjs/src/types/session.js.map +0 -1
  425. package/dist/cjs/src/types/template.d.ts +0 -30
  426. package/dist/cjs/src/types/template.d.ts.map +0 -1
  427. package/dist/cjs/src/types/tool.d.ts +0 -60
  428. package/dist/cjs/src/types/tool.d.ts.map +0 -1
  429. package/dist/cjs/src/types/tool.js +0 -6
  430. package/dist/cjs/src/types/tool.js.map +0 -1
  431. package/dist/cjs/src/utils/clone.d.ts.map +0 -1
  432. package/dist/cjs/src/utils/clone.js.map +0 -1
  433. package/dist/cjs/src/utils/event.d.ts.map +0 -1
  434. package/dist/cjs/src/utils/event.js.map +0 -1
  435. package/dist/cjs/src/utils/history.d.ts.map +0 -1
  436. package/dist/cjs/src/utils/history.js.map +0 -1
  437. package/dist/cjs/src/utils/id.d.ts.map +0 -1
  438. package/dist/cjs/src/utils/id.js.map +0 -1
  439. package/dist/cjs/src/utils/index.d.ts.map +0 -1
  440. package/dist/cjs/src/utils/index.js.map +0 -1
  441. package/dist/cjs/src/utils/logger.d.ts.map +0 -1
  442. package/dist/cjs/src/utils/logger.js.map +0 -1
  443. package/dist/cjs/src/utils/retry.d.ts.map +0 -1
  444. package/dist/cjs/src/utils/retry.js.map +0 -1
  445. package/dist/cjs/src/utils/session.d.ts.map +0 -1
  446. package/dist/cjs/src/utils/session.js.map +0 -1
  447. package/dist/cjs/src/utils/template.d.ts.map +0 -1
  448. package/dist/cjs/src/utils/template.js.map +0 -1
  449. package/dist/src/adapters/MemoryAdapter.js.map +0 -1
  450. package/dist/src/adapters/MongoAdapter.js.map +0 -1
  451. package/dist/src/adapters/OpenSearchAdapter.js.map +0 -1
  452. package/dist/src/adapters/PostgreSQLAdapter.js.map +0 -1
  453. package/dist/src/adapters/PrismaAdapter.js.map +0 -1
  454. package/dist/src/adapters/RedisAdapter.js.map +0 -1
  455. package/dist/src/adapters/SQLiteAdapter.js.map +0 -1
  456. package/dist/src/adapters/index.js.map +0 -1
  457. package/dist/src/constants/index.js.map +0 -1
  458. package/dist/src/core/Agent.d.ts.map +0 -1
  459. package/dist/src/core/Agent.js.map +0 -1
  460. package/dist/src/core/Events.js.map +0 -1
  461. package/dist/src/core/PersistenceManager.js.map +0 -1
  462. package/dist/src/core/PromptComposer.d.ts.map +0 -1
  463. package/dist/src/core/PromptComposer.js.map +0 -1
  464. package/dist/src/core/ResponseEngine.js +0 -80
  465. package/dist/src/core/ResponseEngine.js.map +0 -1
  466. package/dist/src/core/ResponseModal.d.ts.map +0 -1
  467. package/dist/src/core/ResponseModal.js.map +0 -1
  468. package/dist/src/core/ResponsePipeline.d.ts.map +0 -1
  469. package/dist/src/core/ResponsePipeline.js.map +0 -1
  470. package/dist/src/core/Route.d.ts.map +0 -1
  471. package/dist/src/core/Route.js +0 -339
  472. package/dist/src/core/Route.js.map +0 -1
  473. package/dist/src/core/RoutingEngine.d.ts.map +0 -1
  474. package/dist/src/core/RoutingEngine.js.map +0 -1
  475. package/dist/src/core/SessionManager.d.ts.map +0 -1
  476. package/dist/src/core/SessionManager.js.map +0 -1
  477. package/dist/src/core/Step.d.ts +0 -96
  478. package/dist/src/core/Step.d.ts.map +0 -1
  479. package/dist/src/core/Step.js +0 -202
  480. package/dist/src/core/Step.js.map +0 -1
  481. package/dist/src/core/ToolExecutor.d.ts +0 -45
  482. package/dist/src/core/ToolExecutor.d.ts.map +0 -1
  483. package/dist/src/core/ToolExecutor.js +0 -80
  484. package/dist/src/core/ToolExecutor.js.map +0 -1
  485. package/dist/src/index.d.ts.map +0 -1
  486. package/dist/src/index.js.map +0 -1
  487. package/dist/src/providers/AnthropicProvider.js.map +0 -1
  488. package/dist/src/providers/GeminiProvider.js.map +0 -1
  489. package/dist/src/providers/OpenAIProvider.js.map +0 -1
  490. package/dist/src/providers/OpenRouterProvider.js.map +0 -1
  491. package/dist/src/providers/index.js.map +0 -1
  492. package/dist/src/types/agent.d.ts.map +0 -1
  493. package/dist/src/types/agent.js.map +0 -1
  494. package/dist/src/types/history.js.map +0 -1
  495. package/dist/src/types/index.js.map +0 -1
  496. package/dist/src/types/persistence.js.map +0 -1
  497. package/dist/src/types/route.d.ts.map +0 -1
  498. package/dist/src/types/template.d.ts +0 -30
  499. package/dist/src/types/template.d.ts.map +0 -1
  500. package/dist/src/types/tool.d.ts +0 -60
  501. package/dist/src/types/tool.d.ts.map +0 -1
  502. package/dist/src/types/tool.js +0 -5
  503. package/dist/src/types/tool.js.map +0 -1
  504. package/dist/src/utils/clone.js.map +0 -1
  505. package/dist/src/utils/event.js.map +0 -1
  506. package/dist/src/utils/history.js.map +0 -1
  507. package/dist/src/utils/id.js.map +0 -1
  508. package/dist/src/utils/index.d.ts.map +0 -1
  509. package/dist/src/utils/index.js.map +0 -1
  510. package/dist/src/utils/logger.js.map +0 -1
  511. package/dist/src/utils/retry.d.ts.map +0 -1
  512. package/dist/src/utils/retry.js.map +0 -1
  513. package/dist/src/utils/session.js.map +0 -1
  514. package/dist/src/utils/template.d.ts.map +0 -1
  515. package/dist/src/utils/template.js.map +0 -1
  516. package/docs/core/tools/tool-execution.md +0 -815
  517. package/src/core/ToolExecutor.ts +0 -126
  518. /package/dist/{cjs/src/adapters → adapters}/MemoryAdapter.d.ts +0 -0
  519. /package/dist/{src/adapters → adapters}/MemoryAdapter.js +0 -0
  520. /package/dist/{cjs/src/adapters → adapters}/MongoAdapter.d.ts +0 -0
  521. /package/dist/{src/adapters → adapters}/MongoAdapter.js +0 -0
  522. /package/dist/{cjs/src/adapters → adapters}/OpenSearchAdapter.d.ts +0 -0
  523. /package/dist/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
  524. /package/dist/{cjs/src/adapters → adapters}/PostgreSQLAdapter.d.ts +0 -0
  525. /package/dist/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
  526. /package/dist/{cjs/src/adapters → adapters}/PrismaAdapter.d.ts +0 -0
  527. /package/dist/{cjs/src/adapters → adapters}/RedisAdapter.d.ts +0 -0
  528. /package/dist/{cjs/src/adapters → adapters}/SQLiteAdapter.d.ts +0 -0
  529. /package/dist/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
  530. /package/dist/{cjs/src/adapters → adapters}/index.d.ts +0 -0
  531. /package/dist/{src/adapters → adapters}/index.js +0 -0
  532. /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts +0 -0
  533. /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts.map +0 -0
  534. /package/dist/cjs/{src/adapters → adapters}/MemoryAdapter.js +0 -0
  535. /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts +0 -0
  536. /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts.map +0 -0
  537. /package/dist/cjs/{src/adapters → adapters}/MongoAdapter.js +0 -0
  538. /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts +0 -0
  539. /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts.map +0 -0
  540. /package/dist/cjs/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
  541. /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts +0 -0
  542. /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts.map +0 -0
  543. /package/dist/cjs/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
  544. /package/dist/{src → cjs}/adapters/PrismaAdapter.d.ts +0 -0
  545. /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts +0 -0
  546. /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts.map +0 -0
  547. /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts +0 -0
  548. /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts.map +0 -0
  549. /package/dist/cjs/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
  550. /package/dist/{src → cjs}/adapters/index.d.ts +0 -0
  551. /package/dist/{src → cjs}/adapters/index.d.ts.map +0 -0
  552. /package/dist/cjs/{src/adapters → adapters}/index.js +0 -0
  553. /package/dist/cjs/{src/constants → constants}/index.d.ts +0 -0
  554. /package/dist/{src → cjs}/constants/index.d.ts.map +0 -0
  555. /package/dist/cjs/{src/constants → constants}/index.js +0 -0
  556. /package/dist/cjs/{src/core → core}/Events.d.ts +0 -0
  557. /package/dist/{src → cjs}/core/Events.d.ts.map +0 -0
  558. /package/dist/cjs/{src/core → core}/Events.js +0 -0
  559. /package/dist/cjs/{src/core → core}/PersistenceManager.d.ts +0 -0
  560. /package/dist/{src → cjs}/core/PersistenceManager.d.ts.map +0 -0
  561. /package/dist/cjs/{src/core → core}/PersistenceManager.js +0 -0
  562. /package/dist/cjs/{src/core → core}/ResponseEngine.d.ts +0 -0
  563. /package/dist/cjs/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
  564. /package/dist/{src → cjs}/providers/AnthropicProvider.d.ts.map +0 -0
  565. /package/dist/cjs/{src/providers → providers}/GeminiProvider.d.ts +0 -0
  566. /package/dist/cjs/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
  567. /package/dist/{src → cjs}/providers/OpenAIProvider.d.ts.map +0 -0
  568. /package/dist/cjs/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
  569. /package/dist/{src → cjs}/providers/OpenRouterProvider.d.ts.map +0 -0
  570. /package/dist/cjs/{src/providers → providers}/index.d.ts +0 -0
  571. /package/dist/{src → cjs}/providers/index.d.ts.map +0 -0
  572. /package/dist/cjs/{src/providers → providers}/index.js +0 -0
  573. /package/dist/cjs/{src/types → types}/agent.js +0 -0
  574. /package/dist/cjs/{src/types → types}/ai.d.ts +0 -0
  575. /package/dist/{src → cjs}/types/ai.d.ts.map +0 -0
  576. /package/dist/cjs/{src/types → types}/ai.js +0 -0
  577. /package/dist/cjs/{src/types → types}/history.d.ts +0 -0
  578. /package/dist/{src → cjs}/types/history.d.ts.map +0 -0
  579. /package/dist/cjs/{src/types → types}/history.js +0 -0
  580. /package/dist/cjs/{src/types → types}/persistence.d.ts +0 -0
  581. /package/dist/{src → cjs}/types/persistence.d.ts.map +0 -0
  582. /package/dist/cjs/{src/types → types}/persistence.js +0 -0
  583. /package/dist/cjs/{src/types → types}/route.js +0 -0
  584. /package/dist/cjs/{src/types → types}/routing.d.ts +0 -0
  585. /package/dist/{src → cjs}/types/routing.d.ts.map +0 -0
  586. /package/dist/cjs/{src/types → types}/routing.js +0 -0
  587. /package/dist/{src → cjs}/types/routing.js.map +0 -0
  588. /package/dist/cjs/{src/types → types}/schema.d.ts +0 -0
  589. /package/dist/{src → cjs}/types/schema.d.ts.map +0 -0
  590. /package/dist/cjs/{src/types → types}/schema.js +0 -0
  591. /package/dist/{src → cjs}/types/schema.js.map +0 -0
  592. /package/dist/cjs/{src/types → types}/session.d.ts +0 -0
  593. /package/dist/{src → cjs}/types/session.d.ts.map +0 -0
  594. /package/dist/cjs/{src/types → types}/session.js +0 -0
  595. /package/dist/cjs/{src/types → types}/template.js +0 -0
  596. /package/dist/{src → cjs}/types/template.js.map +0 -0
  597. /package/dist/cjs/{src/utils → utils}/clone.d.ts +0 -0
  598. /package/dist/{src → cjs}/utils/clone.d.ts.map +0 -0
  599. /package/dist/cjs/{src/utils → utils}/clone.js +0 -0
  600. /package/dist/cjs/{src/utils → utils}/event.d.ts +0 -0
  601. /package/dist/{src → cjs}/utils/event.d.ts.map +0 -0
  602. /package/dist/cjs/{src/utils → utils}/event.js +0 -0
  603. /package/dist/cjs/{src/utils → utils}/history.d.ts +0 -0
  604. /package/dist/{src → cjs}/utils/history.d.ts.map +0 -0
  605. /package/dist/cjs/{src/utils → utils}/history.js +0 -0
  606. /package/dist/cjs/{src/utils → utils}/id.d.ts +0 -0
  607. /package/dist/{src → cjs}/utils/id.d.ts.map +0 -0
  608. /package/dist/cjs/{src/utils → utils}/id.js +0 -0
  609. /package/dist/cjs/{src/utils → utils}/logger.d.ts +0 -0
  610. /package/dist/{src → cjs}/utils/logger.d.ts.map +0 -0
  611. /package/dist/cjs/{src/utils → utils}/logger.js +0 -0
  612. /package/dist/cjs/{src/utils → utils}/session.d.ts +0 -0
  613. /package/dist/{src → cjs}/utils/session.d.ts.map +0 -0
  614. /package/dist/cjs/{src/utils → utils}/session.js +0 -0
  615. /package/dist/{src/constants → constants}/index.d.ts +0 -0
  616. /package/dist/{src/constants → constants}/index.js +0 -0
  617. /package/dist/{src/core → core}/Events.d.ts +0 -0
  618. /package/dist/{src/core → core}/Events.js +0 -0
  619. /package/dist/{src/core → core}/PersistenceManager.d.ts +0 -0
  620. /package/dist/{src/core → core}/PersistenceManager.js +0 -0
  621. /package/dist/{src/core → core}/ResponseEngine.d.ts +0 -0
  622. /package/dist/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
  623. /package/dist/{src/providers → providers}/GeminiProvider.d.ts +0 -0
  624. /package/dist/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
  625. /package/dist/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
  626. /package/dist/{src/providers → providers}/index.d.ts +0 -0
  627. /package/dist/{src/providers → providers}/index.js +0 -0
  628. /package/dist/{src/types → types}/agent.js +0 -0
  629. /package/dist/{src/types → types}/ai.d.ts +0 -0
  630. /package/dist/{src/types → types}/ai.js +0 -0
  631. /package/dist/{src/types → types}/history.d.ts +0 -0
  632. /package/dist/{src/types → types}/history.js +0 -0
  633. /package/dist/{src/types → types}/persistence.d.ts +0 -0
  634. /package/dist/{src/types → types}/persistence.js +0 -0
  635. /package/dist/{src/types → types}/route.js +0 -0
  636. /package/dist/{src/types → types}/routing.d.ts +0 -0
  637. /package/dist/{src/types → types}/routing.js +0 -0
  638. /package/dist/{src/types → types}/schema.d.ts +0 -0
  639. /package/dist/{src/types → types}/schema.js +0 -0
  640. /package/dist/{src/types → types}/session.d.ts +0 -0
  641. /package/dist/{src/types → types}/session.js +0 -0
  642. /package/dist/{src/types → types}/template.js +0 -0
  643. /package/dist/{src/utils → utils}/clone.d.ts +0 -0
  644. /package/dist/{src/utils → utils}/clone.js +0 -0
  645. /package/dist/{src/utils → utils}/event.d.ts +0 -0
  646. /package/dist/{src/utils → utils}/event.js +0 -0
  647. /package/dist/{src/utils → utils}/history.d.ts +0 -0
  648. /package/dist/{src/utils → utils}/history.js +0 -0
  649. /package/dist/{src/utils → utils}/id.d.ts +0 -0
  650. /package/dist/{src/utils → utils}/id.js +0 -0
  651. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  652. /package/dist/{src/utils → utils}/logger.js +0 -0
  653. /package/dist/{src/utils → utils}/session.d.ts +0 -0
  654. /package/dist/{src/utils → utils}/session.js +0 -0
package/src/index.ts CHANGED
@@ -18,8 +18,9 @@ export type {
18
18
  export { adaptEvent, convertHistoryToEvents } from "./core/Events";
19
19
  export { PersistenceManager } from "./core/PersistenceManager";
20
20
  export { SessionManager } from "./core/SessionManager";
21
- export { ToolExecutor } from "./core/ToolExecutor";
22
- export type { ToolExecutionResult } from "./core/ToolExecutor";
21
+ 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";
23
24
 
24
25
  // Providers
25
26
  export { GeminiProvider } from "./providers/GeminiProvider";
@@ -72,6 +73,12 @@ export { END_ROUTE, END_ROUTE_ID } from "./constants";
72
73
  // Utils
73
74
  export { generateRouteId, generateStepId, generateToolId } from "./utils/id";
74
75
  export { formatKnowledgeBase } from "./utils/template";
76
+ export {
77
+ ConditionEvaluator,
78
+ createConditionEvaluator,
79
+ extractAIContextStrings,
80
+ hasProgrammaticConditions
81
+ } from "./utils/condition";
75
82
  export {
76
83
  normalizeHistory,
77
84
  historyItemToEvent,
@@ -87,6 +94,7 @@ export {
87
94
  // Types
88
95
  export type {
89
96
  AgentOptions,
97
+ AgentResponse,
90
98
  Term,
91
99
  Guideline,
92
100
  GuidelineMatch,
@@ -102,7 +110,6 @@ export type {
102
110
  StepRef,
103
111
  RouteOptions,
104
112
  StepOptions,
105
- StepResult,
106
113
  RouteTransitionConfig,
107
114
  RouteCompletionHandler,
108
115
  SessionState,
@@ -111,6 +118,13 @@ export type {
111
118
  ToolResult,
112
119
  ToolHandler,
113
120
  Tool,
121
+
122
+ DataEnrichmentConfig,
123
+ ValidationConfig,
124
+ ValidationError,
125
+ ApiCallConfig,
126
+ ComputationConfig,
127
+ ToolScope,
114
128
  AiProvider,
115
129
  GenerateMessageInput,
116
130
  GenerateMessageOutput,
@@ -133,10 +147,20 @@ export type {
133
147
  PersistenceAdapter,
134
148
  Template,
135
149
  TemplateContext,
150
+ ConditionTemplate,
151
+ ConditionEvaluationResult,
136
152
  UserHistoryItem,
137
153
  AssistantHistoryItem,
138
154
  ToolHistoryItem,
139
155
  SystemHistoryItem,
156
+ // Multi-step execution types
157
+ StoppedReason,
158
+ BatchResult,
159
+ BatchExecutionResult,
160
+ BatchExecutionEvent,
161
+ BatchExecutionEventType,
162
+ BatchExecutionTiming,
163
+ BatchExecutionError,
140
164
  } from "./types";
141
165
  export { CompositionMode, EventKind, MessageRole } from "./types";
142
166
  export { createSession, enterRoute, enterStep, mergeCollected } from "./utils";
@@ -15,7 +15,7 @@ import type {
15
15
  GenerateMessageStreamChunk,
16
16
  AgentStructuredResponse,
17
17
  } from "../types";
18
- import { withTimeoutAndRetry } from "../utils/retry";
18
+ import { withTimeoutAndRetry, logger } from "../utils";
19
19
 
20
20
  const DEFAULT_RETRY_CONFIG = {
21
21
  timeout: 60000,
@@ -184,7 +184,7 @@ export class AnthropicProvider implements AiProvider {
184
184
  );
185
185
  } catch (primaryError: unknown) {
186
186
  const primaryErrMsg = getErrorMessage(primaryError);
187
- console.warn(
187
+ logger.warn(
188
188
  `[ANTHROPIC] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
189
189
  );
190
190
 
@@ -192,13 +192,13 @@ export class AnthropicProvider implements AiProvider {
192
192
  throw primaryError;
193
193
  }
194
194
 
195
- console.log(`[ANTHROPIC] Trying backup models`);
195
+ logger.debug(`[ANTHROPIC] Trying backup models`);
196
196
 
197
197
  let lastBackupError: unknown = primaryError;
198
198
 
199
199
  for (let i = 0; i < this.backupModels.length; i++) {
200
200
  const backupModel = this.backupModels[i];
201
- console.log(
201
+ logger.debug(
202
202
  `[ANTHROPIC] Trying backup model ${i + 1}/${
203
203
  this.backupModels.length
204
204
  }: ${backupModel}`
@@ -209,11 +209,11 @@ export class AnthropicProvider implements AiProvider {
209
209
  backupModel,
210
210
  input
211
211
  );
212
- console.log(`[ANTHROPIC] Backup model ${backupModel} succeeded`);
212
+ logger.debug(`[ANTHROPIC] Backup model ${backupModel} succeeded`);
213
213
  return result;
214
214
  } catch (backupError: unknown) {
215
215
  const backupErrMsg = getErrorMessage(backupError);
216
- console.warn(
216
+ logger.warn(
217
217
  `[ANTHROPIC] Backup model ${backupModel} failed: ${backupErrMsg}`
218
218
  );
219
219
  lastBackupError = backupError;
@@ -222,7 +222,7 @@ export class AnthropicProvider implements AiProvider {
222
222
  !shouldUseBackupModel(backupError) &&
223
223
  i < this.backupModels.length - 1
224
224
  ) {
225
- console.log(
225
+ logger.debug(
226
226
  `[ANTHROPIC] Backup model error doesn't qualify for further attempts`
227
227
  );
228
228
  break;
@@ -231,7 +231,7 @@ export class AnthropicProvider implements AiProvider {
231
231
  }
232
232
 
233
233
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
234
- console.error(
234
+ logger.error(
235
235
  `[ANTHROPIC] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
236
236
  );
237
237
  throw lastBackupError;
@@ -325,7 +325,7 @@ export class AnthropicProvider implements AiProvider {
325
325
  try {
326
326
  structured = JSON.parse(message) as AgentStructuredResponse;
327
327
  } catch (error) {
328
- console.warn("[ANTHROPIC] Failed to parse JSON response:", error);
328
+ logger.warn("[ANTHROPIC] Failed to parse JSON response:", error);
329
329
  // Fall back to treating the message as plain text
330
330
  }
331
331
  }
@@ -375,7 +375,7 @@ export class AnthropicProvider implements AiProvider {
375
375
  );
376
376
  } catch (primaryError: unknown) {
377
377
  const primaryErrMsg = getErrorMessage(primaryError);
378
- console.warn(
378
+ logger.warn(
379
379
  `[ANTHROPIC] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
380
380
  );
381
381
 
@@ -383,13 +383,13 @@ export class AnthropicProvider implements AiProvider {
383
383
  throw primaryError;
384
384
  }
385
385
 
386
- console.log(`[ANTHROPIC] Trying backup models for streaming`);
386
+ logger.debug(`[ANTHROPIC] Trying backup models for streaming`);
387
387
 
388
388
  let lastBackupError: unknown = primaryError;
389
389
 
390
390
  for (let i = 0; i < this.backupModels.length; i++) {
391
391
  const backupModel = this.backupModels[i];
392
- console.log(
392
+ logger.debug(
393
393
  `[ANTHROPIC] Trying backup model ${i + 1}/${
394
394
  this.backupModels.length
395
395
  }: ${backupModel}`
@@ -400,11 +400,11 @@ export class AnthropicProvider implements AiProvider {
400
400
  backupModel,
401
401
  input
402
402
  );
403
- console.log(`[ANTHROPIC] Backup model ${backupModel} succeeded`);
403
+ logger.debug(`[ANTHROPIC] Backup model ${backupModel} succeeded`);
404
404
  return;
405
405
  } catch (backupError: unknown) {
406
406
  const backupErrMsg = getErrorMessage(backupError);
407
- console.warn(
407
+ logger.warn(
408
408
  `[ANTHROPIC] Backup model ${backupModel} failed: ${backupErrMsg}`
409
409
  );
410
410
  lastBackupError = backupError;
@@ -413,7 +413,7 @@ export class AnthropicProvider implements AiProvider {
413
413
  !shouldUseBackupModel(backupError) &&
414
414
  i < this.backupModels.length - 1
415
415
  ) {
416
- console.log(
416
+ logger.debug(
417
417
  `[ANTHROPIC] Backup model error doesn't qualify for further attempts`
418
418
  );
419
419
  break;
@@ -422,7 +422,7 @@ export class AnthropicProvider implements AiProvider {
422
422
  }
423
423
 
424
424
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
425
- console.error(
425
+ logger.error(
426
426
  `[ANTHROPIC] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
427
427
  );
428
428
  throw lastBackupError;
@@ -526,7 +526,7 @@ export class AnthropicProvider implements AiProvider {
526
526
  try {
527
527
  structured = JSON.parse(accumulated) as AgentStructuredResponse;
528
528
  } catch (error) {
529
- console.warn(
529
+ logger.warn(
530
530
  "[ANTHROPIC] Failed to parse JSON response in stream:",
531
531
  error
532
532
  );
@@ -20,6 +20,8 @@ import type {
20
20
  StructuredSchema,
21
21
  } from "../types";
22
22
  import { withTimeoutAndRetry } from "../utils/retry";
23
+ import { tryParseJSONResponse } from "../utils/json";
24
+ import { logger } from "../utils/logger";
23
25
 
24
26
  const DEFAULT_RETRY_CONFIG = {
25
27
  timeout: 60000,
@@ -194,7 +196,7 @@ export class GeminiProvider implements AiProvider {
194
196
  (Array.isArray(schema.type) && schema.type.includes("object"))
195
197
  ) {
196
198
  if (!schema.properties || Object.keys(schema.properties).length === 0) {
197
- console.warn(
199
+ logger.warn(
198
200
  "[GeminiProvider] Gemini requires OBJECT types to have non-empty properties. Converting empty object to STRING."
199
201
  );
200
202
  geminiSchema.type = Type.STRING;
@@ -246,7 +248,7 @@ export class GeminiProvider implements AiProvider {
246
248
  case "object":
247
249
  return Type.OBJECT;
248
250
  default:
249
- console.warn(
251
+ logger.warn(
250
252
  `[GeminiProvider] Unknown type "${type}", defaulting to STRING`
251
253
  );
252
254
  return Type.STRING;
@@ -282,7 +284,7 @@ export class GeminiProvider implements AiProvider {
282
284
  return await this.generateWithModel(this.primaryModel, input);
283
285
  } catch (primaryError: unknown) {
284
286
  const primaryErrMsg = getErrorMessage(primaryError);
285
- console.warn(
287
+ logger.warn(
286
288
  `[GEMINI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
287
289
  );
288
290
 
@@ -290,25 +292,24 @@ export class GeminiProvider implements AiProvider {
290
292
  throw primaryError;
291
293
  }
292
294
 
293
- console.log(`[GEMINI] Trying backup models`);
295
+ logger.debug(`[GEMINI] Trying backup models`);
294
296
 
295
297
  let lastBackupError: unknown = primaryError;
296
298
 
297
299
  for (let i = 0; i < this.backupModels.length; i++) {
298
300
  const backupModel = this.backupModels[i];
299
- console.log(
300
- `[GEMINI] Trying backup model ${i + 1}/${
301
- this.backupModels.length
301
+ logger.debug(
302
+ `[GEMINI] Trying backup model ${i + 1}/${this.backupModels.length
302
303
  }: ${backupModel}`
303
304
  );
304
305
 
305
306
  try {
306
307
  const result = await this.generateWithModel(backupModel, input);
307
- console.log(`[GEMINI] Backup model ${backupModel} succeeded`);
308
+ logger.debug(`[GEMINI] Backup model ${backupModel} succeeded`);
308
309
  return result as GenerateMessageOutput<TStructured>;
309
310
  } catch (backupError: unknown) {
310
311
  const backupErrMsg = getErrorMessage(backupError);
311
- console.warn(
312
+ logger.warn(
312
313
  `[GEMINI] Backup model ${backupModel} failed: ${backupErrMsg}`
313
314
  );
314
315
  lastBackupError = backupError;
@@ -317,7 +318,7 @@ export class GeminiProvider implements AiProvider {
317
318
  !shouldUseBackupModel(backupError) &&
318
319
  i < this.backupModels.length - 1
319
320
  ) {
320
- console.log(
321
+ logger.debug(
321
322
  `[GEMINI] Backup model error doesn't qualify for further attempts`
322
323
  );
323
324
  break;
@@ -326,7 +327,7 @@ export class GeminiProvider implements AiProvider {
326
327
  }
327
328
 
328
329
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
329
- console.error(
330
+ logger.error(
330
331
  `[GEMINI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
331
332
  );
332
333
  throw lastBackupError;
@@ -344,40 +345,49 @@ export class GeminiProvider implements AiProvider {
344
345
  // Schema-required: configure response schema
345
346
  const configOverride: Partial<GenerateContentConfig> = { ...this.config };
346
347
 
347
- // Add tools if provided
348
- if (input.tools && input.tools.length > 0) {
348
+ // Handle tools and JSON schema - Gemini doesn't support both simultaneously
349
+ const hasTools = input.tools && input.tools.length > 0;
350
+ const hasJsonSchema = input.parameters?.jsonSchema;
351
+
352
+ if (hasTools && hasJsonSchema) {
353
+ logger.debug(`[GeminiProvider] Both tools and JSON schema provided. Prioritizing function calling - JSON schema will be ignored.`);
354
+ }
355
+
356
+ if (hasTools) {
357
+ const toolNames = input.tools?.map((tool) => tool.name || tool.id) || [];
358
+ logger.debug(`[GeminiProvider] Configuring ${toolNames.length} tools for model ${model}:`, toolNames);
349
359
  configOverride.tools = [
350
360
  {
351
- functionDeclarations: input.tools.map((tool) => ({
361
+ functionDeclarations: input.tools?.map((tool) => ({
352
362
  name: tool.name || tool.id,
353
363
  description: tool.description || "",
354
364
  parameters: tool.parameters as FunctionDeclaration["parameters"], // JSON schema
355
365
  })),
356
366
  },
357
367
  ];
358
- }
359
368
 
360
- if (input.parameters?.jsonSchema) {
369
+ } else if (hasJsonSchema) {
370
+ // Only set JSON schema if no tools are present
361
371
  configOverride.responseMimeType = "application/json";
362
372
  // Adapt common schema format to Gemini's specific requirements
363
- configOverride.responseSchema = this.adaptSchemaForGemini(
373
+ configOverride.responseSchema = input.parameters ? this.adaptSchemaForGemini(
364
374
  input.parameters.jsonSchema
365
- );
375
+ ) : {};
366
376
  }
367
377
 
368
- const response: GenerateContentResponse =
369
- await this.genAI.models.generateContent({
378
+ let response: GenerateContentResponse;
379
+ try {
380
+ response = await this.genAI.models.generateContent({
370
381
  model,
371
382
  contents: input.prompt,
372
383
  config: configOverride,
373
384
  });
374
-
375
- const message = response.text;
376
- if (!message) {
377
- throw new Error("No response from Gemini");
385
+ } catch (error: unknown) {
386
+ logger.error(`[GeminiProvider] API call failed:`, error);
387
+ throw error;
378
388
  }
379
389
 
380
- // Extract tool calls from response
390
+ // Extract tool calls from response first
381
391
  const toolCalls: Array<{
382
392
  toolName: string;
383
393
  arguments: Record<string, unknown>;
@@ -395,21 +405,68 @@ export class GeminiProvider implements AiProvider {
395
405
  }
396
406
  }
397
407
 
408
+ // Debug logging for response structure
409
+ if (!response.text && toolCalls.length === 0) {
410
+ logger.debug(`[GeminiProvider] Debug - Response structure:`, {
411
+ hasText: !!response.text,
412
+ candidatesCount: response.candidates?.length || 0,
413
+ firstCandidateContent: response.candidates?.[0]?.content,
414
+ firstCandidateParts: response.candidates?.[0]?.content?.parts?.length || 0,
415
+ });
416
+ }
417
+ // Try to get text from response, handling function calls properly
418
+ let message = "";
419
+ try {
420
+ message = response.text || "";
421
+ } catch (textError) {
422
+ // Sometimes response.text throws when there are function calls
423
+ logger.debug(`[GeminiProvider] Could not get response.text (likely due to function calls):`, textError);
424
+
425
+ // Try to extract text parts manually
426
+ if (response.candidates && response.candidates[0]?.content?.parts) {
427
+ const textParts = response.candidates[0].content.parts
428
+ .filter(part => part.text)
429
+ .map(part => part.text)
430
+ .join('');
431
+ message = textParts;
432
+ logger.debug(`[GeminiProvider] Extracted text from parts:`, message);
433
+ }
434
+ }
435
+
436
+ // Only throw error if we have no text AND no function calls
437
+ if (!message && toolCalls.length === 0) {
438
+ logger.error(`[GeminiProvider] Empty response - no text or function calls`);
439
+ logger.error(`[GeminiProvider] Response candidates:`, response.candidates);
440
+ throw new Error("No response from Gemini");
441
+ }
442
+
443
+ // Log when we have function calls but no text (this is normal)
444
+ if (toolCalls.length > 0 && !message) {
445
+ logger.debug(`[GeminiProvider] Function calls detected without text message:`, toolCalls.map(tc => tc.toolName));
446
+ } else if (toolCalls.length > 0 && message) {
447
+ logger.debug(`[GeminiProvider] Response has both text and function calls:`, {
448
+ messageLength: message.length,
449
+ toolCalls: toolCalls.map(tc => tc.toolName),
450
+ });
451
+ }
452
+
453
+
454
+
398
455
  // Parse JSON response if schema was provided
399
456
  let structured: AgentStructuredResponse | undefined;
400
457
  if (input.parameters?.jsonSchema) {
401
- try {
402
- structured = JSON.parse(message) as AgentStructuredResponse;
403
- } catch (error) {
404
- console.warn("[GEMINI] Failed to parse JSON response:", error);
405
- // Fall back to treating the message as plain text
458
+ const parsed = tryParseJSONResponse(message);
459
+ if (parsed) {
460
+ structured = parsed as AgentStructuredResponse;
461
+ } else {
462
+ logger.warn("[GeminiProvider] Failed to parse JSON response, treating as plain text");
406
463
  }
407
464
  }
408
465
 
409
466
  // If tools were used, include them in structured response
410
467
  if (toolCalls.length > 0) {
411
468
  structured = {
412
- message,
469
+ message: structured?.message || message,
413
470
  toolCalls,
414
471
  ...structured,
415
472
  } as AgentStructuredResponse;
@@ -446,7 +503,7 @@ export class GeminiProvider implements AiProvider {
446
503
  yield* this.generateStreamWithModel(this.primaryModel, input);
447
504
  } catch (primaryError: unknown) {
448
505
  const primaryErrMsg = getErrorMessage(primaryError);
449
- console.warn(
506
+ logger.warn(
450
507
  `[GEMINI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
451
508
  );
452
509
 
@@ -454,25 +511,24 @@ export class GeminiProvider implements AiProvider {
454
511
  throw primaryError;
455
512
  }
456
513
 
457
- console.log(`[GEMINI] Trying backup models for streaming`);
514
+ logger.debug(`[GEMINI] Trying backup models for streaming`);
458
515
 
459
516
  let lastBackupError: unknown = primaryError;
460
517
 
461
518
  for (let i = 0; i < this.backupModels.length; i++) {
462
519
  const backupModel = this.backupModels[i];
463
- console.log(
464
- `[GEMINI] Trying backup model ${i + 1}/${
465
- this.backupModels.length
520
+ logger.debug(
521
+ `[GEMINI] Trying backup model ${i + 1}/${this.backupModels.length
466
522
  }: ${backupModel}`
467
523
  );
468
524
 
469
525
  try {
470
526
  yield* this.generateStreamWithModel(backupModel, input);
471
- console.log(`[GEMINI] Backup model ${backupModel} succeeded`);
527
+ logger.debug(`[GEMINI] Backup model ${backupModel} succeeded`);
472
528
  return;
473
529
  } catch (backupError: unknown) {
474
530
  const backupErrMsg = getErrorMessage(backupError);
475
- console.warn(
531
+ logger.warn(
476
532
  `[GEMINI] Backup model ${backupModel} failed: ${backupErrMsg}`
477
533
  );
478
534
  lastBackupError = backupError;
@@ -481,7 +537,7 @@ export class GeminiProvider implements AiProvider {
481
537
  !shouldUseBackupModel(backupError) &&
482
538
  i < this.backupModels.length - 1
483
539
  ) {
484
- console.log(
540
+ logger.debug(
485
541
  `[GEMINI] Backup model error doesn't qualify for further attempts`
486
542
  );
487
543
  break;
@@ -490,7 +546,7 @@ export class GeminiProvider implements AiProvider {
490
546
  }
491
547
 
492
548
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
493
- console.error(
549
+ logger.error(
494
550
  `[GEMINI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
495
551
  );
496
552
  throw lastBackupError;
@@ -507,32 +563,47 @@ export class GeminiProvider implements AiProvider {
507
563
  // Streaming: request JSON if schema provided
508
564
  const configOverride: Partial<GenerateContentConfig> = { ...this.config };
509
565
 
510
- // Add tools if provided
511
- if (input.tools && input.tools.length > 0) {
566
+ // Handle tools and JSON schema - Gemini doesn't support both simultaneously
567
+ const hasTools = input.tools && input.tools.length > 0;
568
+ const hasJsonSchema = input.parameters?.jsonSchema;
569
+
570
+ if (hasTools && hasJsonSchema) {
571
+ logger.debug(`[GeminiProvider] Both tools and JSON schema provided. Prioritizing function calling - JSON schema will be ignored.`);
572
+ }
573
+
574
+ if (hasTools) {
575
+ const toolNames = input.tools?.map((tool) => tool.name || tool.id) || [];
576
+ logger.debug(`[GeminiProvider] Configuring ${toolNames.length} tools for streaming:`, toolNames);
512
577
  configOverride.tools = [
513
578
  {
514
- functionDeclarations: input.tools.map((tool) => ({
579
+ functionDeclarations: input.tools?.map((tool) => ({
515
580
  name: tool.name || tool.id,
516
581
  description: tool.description || "",
517
582
  parameters: tool.parameters as FunctionDeclaration["parameters"],
518
583
  })),
519
584
  },
520
585
  ];
521
- }
522
586
 
523
- if (input.parameters?.jsonSchema) {
587
+ } else if (hasJsonSchema) {
588
+ // Only set JSON schema if no tools are present
524
589
  configOverride.responseMimeType = "application/json";
525
590
  // Adapt common schema format to Gemini's specific requirements
526
- configOverride.responseSchema = this.adaptSchemaForGemini(
591
+ configOverride.responseSchema = input.parameters ? this.adaptSchemaForGemini(
527
592
  input.parameters.jsonSchema
528
- );
593
+ ) : {};
529
594
  }
530
595
 
531
- const stream = await this.genAI.models.generateContentStream({
532
- model,
533
- contents: input.prompt,
534
- config: configOverride,
535
- });
596
+ let stream;
597
+ try {
598
+ stream = await this.genAI.models.generateContentStream({
599
+ model,
600
+ contents: input.prompt,
601
+ config: configOverride,
602
+ });
603
+ } catch (error: unknown) {
604
+ logger.error(`[GeminiProvider] Streaming API call failed:`, error);
605
+ throw error;
606
+ }
536
607
 
537
608
  let accumulated = "";
538
609
  let promptTokenCount = 0;
@@ -578,20 +649,18 @@ export class GeminiProvider implements AiProvider {
578
649
  // Parse JSON response if schema was provided
579
650
  let structured: AgentStructuredResponse | undefined;
580
651
  if (input.parameters?.jsonSchema && accumulated) {
581
- try {
582
- structured = JSON.parse(accumulated) as AgentStructuredResponse;
583
- } catch (error) {
584
- console.warn(
585
- "[GEMINI] Failed to parse JSON response in stream:",
586
- error
587
- );
652
+ const parsed = tryParseJSONResponse(accumulated);
653
+ if (parsed) {
654
+ structured = parsed as AgentStructuredResponse;
655
+ } else {
656
+ logger.warn("[GeminiProvider] Failed to parse JSON response in stream, treating as plain text");
588
657
  }
589
658
  }
590
659
 
591
660
  // If tools were used, include them in structured response
592
661
  if (toolCalls.length > 0) {
593
662
  structured = {
594
- message: accumulated,
663
+ message: structured?.message || accumulated,
595
664
  toolCalls,
596
665
  ...structured,
597
666
  } as AgentStructuredResponse;