@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
@@ -13,7 +13,7 @@ import type {
13
13
  AgentStructuredResponse,
14
14
  StructuredSchema,
15
15
  } from "../types";
16
- import { withTimeoutAndRetry } from "../utils/retry";
16
+ import { withTimeoutAndRetry, logger } from "../utils";
17
17
  import { FunctionParameters } from "openai/resources/shared.mjs";
18
18
 
19
19
  const DEFAULT_RETRY_CONFIG = {
@@ -207,7 +207,7 @@ export class OpenAIProvider implements AiProvider {
207
207
  );
208
208
  } catch (primaryError: unknown) {
209
209
  const primaryErrMsg = getErrorMessage(primaryError);
210
- console.warn(
210
+ logger.warn(
211
211
  `[OPENAI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
212
212
  );
213
213
 
@@ -215,13 +215,13 @@ export class OpenAIProvider implements AiProvider {
215
215
  throw primaryError;
216
216
  }
217
217
 
218
- console.log(`[OPENAI] Trying backup models`);
218
+ logger.debug(`[OPENAI] Trying backup models`);
219
219
 
220
220
  let lastBackupError: unknown = primaryError;
221
221
 
222
222
  for (let i = 0; i < this.backupModels.length; i++) {
223
223
  const backupModel = this.backupModels[i];
224
- console.log(
224
+ logger.debug(
225
225
  `[OPENAI] Trying backup model ${i + 1}/${
226
226
  this.backupModels.length
227
227
  }: ${backupModel}`
@@ -229,11 +229,11 @@ export class OpenAIProvider implements AiProvider {
229
229
 
230
230
  try {
231
231
  const result = await this.generateWithModel(backupModel, input);
232
- console.log(`[OPENAI] Backup model ${backupModel} succeeded`);
232
+ logger.debug(`[OPENAI] Backup model ${backupModel} succeeded`);
233
233
  return result as GenerateMessageOutput<TStructured>;
234
234
  } catch (backupError: unknown) {
235
235
  const backupErrMsg = getErrorMessage(backupError);
236
- console.warn(
236
+ logger.warn(
237
237
  `[OPENAI] Backup model ${backupModel} failed: ${backupErrMsg}`
238
238
  );
239
239
  lastBackupError = backupError;
@@ -242,7 +242,7 @@ export class OpenAIProvider implements AiProvider {
242
242
  !shouldUseBackupModel(backupError) &&
243
243
  i < this.backupModels.length - 1
244
244
  ) {
245
- console.log(
245
+ logger.debug(
246
246
  `[OPENAI] Backup model error doesn't qualify for further attempts`
247
247
  );
248
248
  break;
@@ -251,7 +251,7 @@ export class OpenAIProvider implements AiProvider {
251
251
  }
252
252
 
253
253
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
254
- console.error(
254
+ logger.error(
255
255
  `[OPENAI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
256
256
  );
257
257
  throw lastBackupError;
@@ -355,7 +355,7 @@ export class OpenAIProvider implements AiProvider {
355
355
  toolCall.function.arguments
356
356
  ) as Record<string, unknown>;
357
357
  } catch (error) {
358
- console.warn(
358
+ logger.warn(
359
359
  `[OPENAI] Failed to parse tool call arguments: ${getErrorMessage(
360
360
  error
361
361
  )}`
@@ -408,7 +408,7 @@ export class OpenAIProvider implements AiProvider {
408
408
  );
409
409
  } catch (primaryError: unknown) {
410
410
  const primaryErrMsg = getErrorMessage(primaryError);
411
- console.warn(
411
+ logger.warn(
412
412
  `[OPENAI] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
413
413
  );
414
414
 
@@ -416,13 +416,13 @@ export class OpenAIProvider implements AiProvider {
416
416
  throw primaryError;
417
417
  }
418
418
 
419
- console.log(`[OPENAI] Trying backup models for streaming`);
419
+ logger.debug(`[OPENAI] Trying backup models for streaming`);
420
420
 
421
421
  let lastBackupError: unknown = primaryError;
422
422
 
423
423
  for (let i = 0; i < this.backupModels.length; i++) {
424
424
  const backupModel = this.backupModels[i];
425
- console.log(
425
+ logger.debug(
426
426
  `[OPENAI] Trying backup model ${i + 1}/${
427
427
  this.backupModels.length
428
428
  }: ${backupModel}`
@@ -433,11 +433,11 @@ export class OpenAIProvider implements AiProvider {
433
433
  backupModel,
434
434
  input
435
435
  );
436
- console.log(`[OPENAI] Backup model ${backupModel} succeeded`);
436
+ logger.debug(`[OPENAI] Backup model ${backupModel} succeeded`);
437
437
  return;
438
438
  } catch (backupError: unknown) {
439
439
  const backupErrMsg = getErrorMessage(backupError);
440
- console.warn(
440
+ logger.warn(
441
441
  `[OPENAI] Backup model ${backupModel} failed: ${backupErrMsg}`
442
442
  );
443
443
  lastBackupError = backupError;
@@ -446,7 +446,7 @@ export class OpenAIProvider implements AiProvider {
446
446
  !shouldUseBackupModel(backupError) &&
447
447
  i < this.backupModels.length - 1
448
448
  ) {
449
- console.log(
449
+ logger.debug(
450
450
  `[OPENAI] Backup model error doesn't qualify for further attempts`
451
451
  );
452
452
  break;
@@ -455,7 +455,7 @@ export class OpenAIProvider implements AiProvider {
455
455
  }
456
456
 
457
457
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
458
- console.error(
458
+ logger.error(
459
459
  `[OPENAI] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
460
460
  );
461
461
  throw lastBackupError;
@@ -535,7 +535,7 @@ export class OpenAIProvider implements AiProvider {
535
535
  >)
536
536
  : {};
537
537
  } catch (error) {
538
- console.warn(
538
+ logger.warn(
539
539
  `[OPENAI] Failed to parse tool call arguments in stream: ${getErrorMessage(
540
540
  error
541
541
  )}`
@@ -577,7 +577,7 @@ export class OpenAIProvider implements AiProvider {
577
577
  try {
578
578
  structured = JSON.parse(accumulated) as TStructured;
579
579
  } catch (error) {
580
- console.warn(
580
+ logger.warn(
581
581
  "[OPENAI] Failed to parse JSON response in stream:",
582
582
  error
583
583
  );
@@ -15,7 +15,7 @@ import type {
15
15
  GenerateMessageStreamChunk,
16
16
  StructuredSchema,
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,
@@ -214,7 +214,7 @@ export class OpenRouterProvider implements AiProvider {
214
214
  return await this.generateWithModel(this.primaryModel, input);
215
215
  } catch (primaryError: unknown) {
216
216
  const primaryErrMsg = getErrorMessage(primaryError);
217
- console.warn(
217
+ logger.warn(
218
218
  `[OPENROUTER] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
219
219
  );
220
220
 
@@ -222,13 +222,13 @@ export class OpenRouterProvider implements AiProvider {
222
222
  throw primaryError;
223
223
  }
224
224
 
225
- console.log(`[OPENROUTER] Trying backup models`);
225
+ logger.debug(`[OPENROUTER] Trying backup models`);
226
226
 
227
227
  let lastBackupError: unknown = primaryError;
228
228
 
229
229
  for (let i = 0; i < this.backupModels.length; i++) {
230
230
  const backupModel = this.backupModels[i];
231
- console.log(
231
+ logger.debug(
232
232
  `[OPENROUTER] Trying backup model ${i + 1}/${
233
233
  this.backupModels.length
234
234
  }: ${backupModel}`
@@ -236,11 +236,11 @@ export class OpenRouterProvider implements AiProvider {
236
236
 
237
237
  try {
238
238
  const result = await this.generateWithModel(backupModel, input);
239
- console.log(`[OPENROUTER] Backup model ${backupModel} succeeded`);
239
+ logger.debug(`[OPENROUTER] Backup model ${backupModel} succeeded`);
240
240
  return result as GenerateMessageOutput<TStructured>;
241
241
  } catch (backupError: unknown) {
242
242
  const backupErrMsg = getErrorMessage(backupError);
243
- console.warn(
243
+ logger.warn(
244
244
  `[OPENROUTER] Backup model ${backupModel} failed: ${backupErrMsg}`
245
245
  );
246
246
  lastBackupError = backupError;
@@ -249,7 +249,7 @@ export class OpenRouterProvider implements AiProvider {
249
249
  !shouldUseBackupModel(backupError) &&
250
250
  i < this.backupModels.length - 1
251
251
  ) {
252
- console.log(
252
+ logger.debug(
253
253
  `[OPENROUTER] Backup model error doesn't qualify for further attempts`
254
254
  );
255
255
  break;
@@ -258,7 +258,7 @@ export class OpenRouterProvider implements AiProvider {
258
258
  }
259
259
 
260
260
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
261
- console.error(
261
+ logger.error(
262
262
  `[OPENROUTER] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
263
263
  );
264
264
  throw lastBackupError;
@@ -364,7 +364,7 @@ export class OpenRouterProvider implements AiProvider {
364
364
  toolCall.function.arguments
365
365
  ) as Record<string, unknown>;
366
366
  } catch (error) {
367
- console.warn(
367
+ logger.warn(
368
368
  `[OPENROUTER] Failed to parse tool call arguments: ${getErrorMessage(
369
369
  error
370
370
  )}`
@@ -413,7 +413,7 @@ export class OpenRouterProvider implements AiProvider {
413
413
  yield* this.generateStreamWithModel(this.primaryModel, input);
414
414
  } catch (primaryError: unknown) {
415
415
  const primaryErrMsg = getErrorMessage(primaryError);
416
- console.warn(
416
+ logger.warn(
417
417
  `[OPENROUTER] Primary model ${this.primaryModel} failed: ${primaryErrMsg}`
418
418
  );
419
419
 
@@ -421,13 +421,13 @@ export class OpenRouterProvider implements AiProvider {
421
421
  throw primaryError;
422
422
  }
423
423
 
424
- console.log(`[OPENROUTER] Trying backup models for streaming`);
424
+ logger.debug(`[OPENROUTER] Trying backup models for streaming`);
425
425
 
426
426
  let lastBackupError: unknown = primaryError;
427
427
 
428
428
  for (let i = 0; i < this.backupModels.length; i++) {
429
429
  const backupModel = this.backupModels[i];
430
- console.log(
430
+ logger.debug(
431
431
  `[OPENROUTER] Trying backup model ${i + 1}/${
432
432
  this.backupModels.length
433
433
  }: ${backupModel}`
@@ -435,11 +435,11 @@ export class OpenRouterProvider implements AiProvider {
435
435
 
436
436
  try {
437
437
  yield* this.generateStreamWithModel(backupModel, input);
438
- console.log(`[OPENROUTER] Backup model ${backupModel} succeeded`);
438
+ logger.debug(`[OPENROUTER] Backup model ${backupModel} succeeded`);
439
439
  return;
440
440
  } catch (backupError: unknown) {
441
441
  const backupErrMsg = getErrorMessage(backupError);
442
- console.warn(
442
+ logger.warn(
443
443
  `[OPENROUTER] Backup model ${backupModel} failed: ${backupErrMsg}`
444
444
  );
445
445
  lastBackupError = backupError;
@@ -448,7 +448,7 @@ export class OpenRouterProvider implements AiProvider {
448
448
  !shouldUseBackupModel(backupError) &&
449
449
  i < this.backupModels.length - 1
450
450
  ) {
451
- console.log(
451
+ logger.debug(
452
452
  `[OPENROUTER] Backup model error doesn't qualify for further attempts`
453
453
  );
454
454
  break;
@@ -457,7 +457,7 @@ export class OpenRouterProvider implements AiProvider {
457
457
  }
458
458
 
459
459
  const lastBackupErrMsg = getErrorMessage(lastBackupError);
460
- console.error(
460
+ logger.error(
461
461
  `[OPENROUTER] All models failed. Primary: ${primaryErrMsg}, Last backup: ${lastBackupErrMsg}`
462
462
  );
463
463
  throw lastBackupError;
@@ -537,7 +537,7 @@ export class OpenRouterProvider implements AiProvider {
537
537
  >)
538
538
  : {};
539
539
  } catch (error) {
540
- console.warn(
540
+ logger.warn(
541
541
  `[OPENROUTER] Failed to parse tool call arguments in stream: ${getErrorMessage(
542
542
  error
543
543
  )}`
@@ -579,7 +579,7 @@ export class OpenRouterProvider implements AiProvider {
579
579
  try {
580
580
  structured = JSON.parse(accumulated) as TStructured;
581
581
  } catch (error) {
582
- console.warn(
582
+ logger.warn(
583
583
  "[OPENROUTER] Failed to parse JSON response in stream:",
584
584
  error
585
585
  );
@@ -4,11 +4,11 @@
4
4
 
5
5
  import type { AgentStructuredResponse, AiProvider } from "./ai";
6
6
  import type { Tool } from "./tool";
7
- import type { RouteOptions } from "./route";
7
+ import type { RouteOptions, StepRef, StoppedReason } from "./route";
8
8
  import type { PersistenceConfig } from "./persistence";
9
9
  import type { SessionState } from "./session";
10
10
  import type { StructuredSchema } from "./schema";
11
- import { Template } from "./template";
11
+ import { Template, ConditionTemplate } from "./template";
12
12
 
13
13
  /**
14
14
  * Composition mode determines how the agent processes and structures responses
@@ -99,7 +99,7 @@ export interface AgentOptions<TContext = unknown, TData = unknown> {
99
99
  /** Initial guidelines for agent behavior */
100
100
  guidelines?: Guideline<TContext, TData>[];
101
101
  /** Global tools available to all routes */
102
- tools?: Tool<TContext, TData, unknown[], unknown>[];
102
+ tools?: Tool<TContext, TData, unknown>[];
103
103
  /** Initial routes (will be instantiated as Route objects) */
104
104
  routes?: RouteOptions<TContext, TData>[];
105
105
  /** Optional persistence configuration for auto-saving sessions and messages */
@@ -131,7 +131,7 @@ export interface Guideline<TContext = unknown, TData = unknown> {
131
131
  /** Unique identifier */
132
132
  id?: string;
133
133
  /** Condition that triggers this guideline (optional for always-active guidelines) */
134
- condition?: Template<TContext, TData>;
134
+ condition?: ConditionTemplate<TContext, TData>;
135
135
  /** Action the agent should take when the condition is met */
136
136
  action: Template<TContext, TData>;
137
137
  /** Whether this guideline is currently enabled */
@@ -157,6 +157,10 @@ export interface AgentResponse<TData = Record<string, unknown>> {
157
157
  session?: SessionState<TData>;
158
158
  toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
159
159
  isRouteComplete?: boolean;
160
+ /** Steps executed in this response (for multi-step execution) */
161
+ executedSteps?: StepRef[];
162
+ /** Why execution stopped (for multi-step execution) */
163
+ stoppedReason?: StoppedReason;
160
164
  }
161
165
 
162
166
  export interface AgentResponseStreamChunk<TData = Record<string, unknown>> {
@@ -166,6 +170,10 @@ export interface AgentResponseStreamChunk<TData = Record<string, unknown>> {
166
170
  session?: SessionState<TData>;
167
171
  toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
168
172
  isRouteComplete?: boolean;
173
+ /** Steps executed in this response (for multi-step execution) */
174
+ executedSteps?: StepRef[];
175
+ /** Why execution stopped (for multi-step execution) */
176
+ stoppedReason?: StoppedReason;
169
177
  metadata?: {
170
178
  model?: string;
171
179
  tokensUsed?: number;
@@ -45,8 +45,8 @@ export type {
45
45
  RouteRef,
46
46
  StepRef,
47
47
  StepOptions,
48
- StepResult,
49
48
  BranchSpec,
49
+ StepResult,
50
50
  BranchResult,
51
51
  RouteCompletionHandler,
52
52
  RouteTransitionConfig,
@@ -58,7 +58,18 @@ export * from "./route";
58
58
  export type { SessionState, PendingTransition } from "./session";
59
59
 
60
60
  // Tool types
61
- export type { Tool, ToolContext, ToolResult, ToolHandler } from "./tool";
61
+ export type {
62
+ Tool,
63
+ ToolContext,
64
+ ToolResult,
65
+ ToolHandler,
66
+ ToolExecutionResult,
67
+ DataEnrichmentConfig,
68
+ ValidationConfig,
69
+ ApiCallConfig,
70
+ ComputationConfig
71
+ } from "./tool";
72
+ export { ToolScope } from "./tool";
62
73
 
63
74
  // AI provider types
64
75
  export type {
@@ -94,4 +105,15 @@ export type {
94
105
  export * from "./persistence";
95
106
 
96
107
  // Template types
97
- export type { Template, TemplateContext } from "./template";
108
+ export type {
109
+ Template,
110
+ TemplateContext,
111
+ ConditionTemplate,
112
+ ConditionEvaluationResult
113
+ } from "./template";
114
+ export {
115
+ ConditionEvaluator,
116
+ createConditionEvaluator,
117
+ extractAIContextStrings,
118
+ hasProgrammaticConditions
119
+ } from "../utils/condition";
@@ -4,7 +4,79 @@
4
4
 
5
5
  import type { Tool } from "./tool";
6
6
  import type { StructuredSchema } from "./schema";
7
- import { Template } from "./template";
7
+ import type { Guideline, Term } from "./agent";
8
+ import { Template, ConditionTemplate } from "./template";
9
+
10
+ /**
11
+ * Reason why batch execution stopped
12
+ * Used to indicate the stopping condition for multi-step execution
13
+ */
14
+ export type StoppedReason =
15
+ | 'needs_input' // Step requires uncollected data
16
+ | 'end_route' // Reached END_ROUTE
17
+ | 'route_complete' // All Steps processed
18
+ | 'prepare_error' // Error in prepare hook
19
+ | 'llm_error' // Error during LLM call
20
+ | 'validation_error' // Error validating collected data
21
+ | 'finalize_error'; // Error in finalize hook (non-fatal, logged)
22
+
23
+ /**
24
+ * Event types for batch execution observability
25
+ */
26
+ export type BatchExecutionEventType =
27
+ | 'batch_start'
28
+ | 'step_included'
29
+ | 'step_skipped'
30
+ | 'batch_stop'
31
+ | 'batch_complete';
32
+
33
+ /**
34
+ * Event emitted during batch execution for debugging and observability
35
+ *
36
+ * **Validates: Requirements 11.3**
37
+ */
38
+ export interface BatchExecutionEvent {
39
+ /** Type of batch execution event */
40
+ type: BatchExecutionEventType;
41
+ /** Timestamp when the event occurred */
42
+ timestamp: Date;
43
+ /** Event-specific details */
44
+ details: {
45
+ /** Step ID related to this event (for step_included, step_skipped) */
46
+ stepId?: string;
47
+ /** Reason for the event (e.g., why step was skipped or batch stopped) */
48
+ reason?: string;
49
+ /** Current batch size (for batch_start, batch_complete) */
50
+ batchSize?: number;
51
+ /** Stopped reason (for batch_stop, batch_complete) */
52
+ stoppedReason?: StoppedReason;
53
+ /** Phase timing information (for batch_complete) */
54
+ timing?: BatchExecutionTiming;
55
+ };
56
+ }
57
+
58
+ /**
59
+ * Timing information for batch execution phases
60
+ */
61
+ export interface BatchExecutionTiming {
62
+ /** Total batch execution time in milliseconds */
63
+ totalMs: number;
64
+ /** Time spent in batch determination phase */
65
+ determinationMs?: number;
66
+ /** Time spent executing prepare hooks */
67
+ prepareHooksMs?: number;
68
+ /** Time spent in LLM call */
69
+ llmCallMs?: number;
70
+ /** Time spent collecting data */
71
+ dataCollectionMs?: number;
72
+ /** Time spent executing finalize hooks */
73
+ finalizeHooksMs?: number;
74
+ }
75
+
76
+ /**
77
+ * Callback type for batch execution event listeners
78
+ */
79
+ export type BatchExecutionEventListener = (event: BatchExecutionEvent) => void;
8
80
 
9
81
  /**
10
82
  * Reference to a route
@@ -25,9 +97,52 @@ export interface StepRef {
25
97
  }
26
98
 
27
99
  /**
28
- * Forward declare Guideline and Term for circular dependency
100
+ * Result of batch determination - which steps can execute together
101
+ * @template TContext - Type of context data
102
+ * @template TData - Type of collected data
29
103
  */
30
- import type { Guideline, Term } from "./agent";
104
+ export interface BatchResult<TContext = unknown, TData = unknown> {
105
+ /** Steps included in this batch */
106
+ steps: StepOptions<TContext, TData>[];
107
+ /** Why the batch stopped */
108
+ stoppedReason: StoppedReason;
109
+ /** The Step that caused the stop (if applicable) */
110
+ stoppedAtStep?: StepOptions<TContext, TData>;
111
+ }
112
+
113
+ /**
114
+ * Error details for batch execution failures
115
+ */
116
+ export interface BatchExecutionError {
117
+ /** Type of error that occurred */
118
+ type: 'pre_extraction' | 'skipif_evaluation' | 'prepare_hook' |
119
+ 'llm_call' | 'data_validation' | 'finalize_hook';
120
+ /** Error message */
121
+ message: string;
122
+ /** Step where error occurred (if applicable) */
123
+ stepId?: string;
124
+ /** Additional error details */
125
+ details?: unknown;
126
+ }
127
+
128
+ /**
129
+ * Result of executing a batch of steps
130
+ * @template TData - Type of collected data
131
+ */
132
+ export interface BatchExecutionResult<TData = unknown> {
133
+ /** The generated message */
134
+ message: string;
135
+ /** Updated session state */
136
+ session: import('./session').SessionState<TData>;
137
+ /** Steps that were executed */
138
+ executedSteps: StepRef[];
139
+ /** Why execution stopped */
140
+ stoppedReason: StoppedReason;
141
+ /** Collected data from the batch */
142
+ collectedData?: Partial<TData>;
143
+ /** Any errors that occurred */
144
+ error?: BatchExecutionError;
145
+ }
31
146
 
32
147
  /**
33
148
  * Route lifecycle hooks for managing route-specific data and behavior
@@ -98,13 +213,15 @@ export interface RouteOptions<TContext = unknown, TData = unknown> {
98
213
  /** Optional personality prompt defining the agent's communication style for this route */
99
214
  personality?: Template<TContext, TData>;
100
215
  /** Conditions that activate this route */
101
- conditions?: Template<TContext, TData>[];
216
+ when?: ConditionTemplate<TContext, TData>;
217
+ /** Conditions that prevent this route from being considered */
218
+ skipIf?: ConditionTemplate<TContext, TData>;
102
219
  /** Initial guidelines for this route */
103
- guidelines?: Guideline<TContext>[];
220
+ guidelines?: Guideline<TContext, TData>[];
104
221
  /** Initial terms for the route's domain glossary */
105
222
  terms?: Term<TContext>[];
106
223
  /** Tools available in this route */
107
- tools?: Tool<TContext, TData, unknown[], unknown>[];
224
+ tools?: (string | Tool<TContext, TData>)[];
108
225
  /** Absolute rules the agent must follow in this route */
109
226
  rules?: Template<TContext, TData>[];
110
227
  /** Absolute prohibitions the agent must never do in this route */
@@ -197,16 +314,16 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
197
314
  /** Transition to a chat state with this description */
198
315
  prompt?: Template<TContext, TData>;
199
316
  /** Tools available for AI to call in this step (by ID reference or inline definition) */
200
- tools?: (string | Tool<TContext, TData, unknown[], unknown>)[];
317
+ tools?: (string | Tool<TContext, TData>)[];
201
318
  /** Programmatic function or tool to run before AI responds */
202
319
  prepare?:
203
320
  | string
204
- | Tool<TContext, TData, unknown[], unknown>
321
+ | Tool<TContext, TData>
205
322
  | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
206
323
  /** Programmatic function or tool to run after AI responds */
207
324
  finalize?:
208
325
  | string
209
- | Tool<TContext, TData, unknown[], unknown>
326
+ | Tool<TContext, TData>
210
327
  | ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
211
328
  /** Transition to a specific step or end marker */
212
329
  step?: StepRef | symbol;
@@ -216,12 +333,11 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
216
333
  */
217
334
  collect?: (keyof TData)[];
218
335
  /**
219
- * Function to determine if this step should be skipped
220
- * If returns true, the step will be bypassed
221
- * @param data - Currently collected agent-level data
222
- * @returns true if step should be skipped, false otherwise
336
+ * Condition to determine if this step should be skipped
337
+ * If evaluates to true, the step will be bypassed
338
+ * Supports strings (AI context), functions (programmatic), and arrays
223
339
  */
224
- skipIf?: (data: Partial<TData>) => boolean;
340
+ skipIf?: ConditionTemplate<TContext, TData>;
225
341
  /**
226
342
  * Required data fields that must be present before entering this step
227
343
  * If any required field is missing, step cannot be entered
@@ -231,8 +347,11 @@ export interface StepOptions<TContext = unknown, TData = unknown> {
231
347
  /**
232
348
  * Optional condition for this transition
233
349
  * Description of when this transition should be taken
350
+ * Supports strings (AI context), functions (programmatic), and arrays
234
351
  */
235
- when?: Template<TContext, TData>;
352
+ when?: ConditionTemplate<TContext, TData>;
353
+ /** Initial guidelines for this step */
354
+ guidelines?: Guideline<TContext, TData>[];
236
355
  }
237
356
 
238
357
  /**
@@ -267,4 +386,6 @@ export interface StepResult<TContext = unknown, TData = unknown>
267
386
  branch: (
268
387
  branches: BranchSpec<TContext, TData>[]
269
388
  ) => BranchResult<TContext, TData>;
389
+ /** Shortcut to end the current route */
390
+ endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
270
391
  }