@falai/agent 0.9.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/README.md +281 -42
  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/cjs/{src/core → core}/Agent.d.ts +16 -1
  33. package/dist/cjs/core/Agent.d.ts.map +1 -0
  34. package/dist/cjs/{src/core → core}/Agent.js +63 -2
  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 +850 -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 +217 -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 +211 -0
  52. package/dist/cjs/core/ResponseEngine.js.map +1 -0
  53. package/dist/{src → cjs}/core/ResponseModal.d.ts +45 -0
  54. package/dist/cjs/core/ResponseModal.d.ts.map +1 -0
  55. package/dist/cjs/{src/core → core}/ResponseModal.js +752 -74
  56. package/dist/cjs/core/ResponseModal.js.map +1 -0
  57. package/dist/{src → cjs}/core/ResponsePipeline.d.ts +2 -2
  58. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -0
  59. package/dist/cjs/{src/core → core}/ResponsePipeline.js +13 -6
  60. package/dist/cjs/core/ResponsePipeline.js.map +1 -0
  61. package/dist/{src → cjs}/core/Route.d.ts +34 -5
  62. package/dist/cjs/core/Route.d.ts.map +1 -0
  63. package/dist/cjs/{src/core → core}/Route.js +196 -19
  64. package/dist/cjs/core/Route.js.map +1 -0
  65. package/dist/cjs/{src/core → core}/RoutingEngine.d.ts +30 -5
  66. package/dist/cjs/core/RoutingEngine.d.ts.map +1 -0
  67. package/dist/cjs/{src/core → core}/RoutingEngine.js +330 -80
  68. package/dist/cjs/core/RoutingEngine.js.map +1 -0
  69. package/dist/cjs/core/SessionManager.js.map +1 -0
  70. package/dist/{src → cjs}/core/Step.d.ts +31 -10
  71. package/dist/cjs/core/Step.d.ts.map +1 -0
  72. package/dist/cjs/{src/core → core}/Step.js +105 -10
  73. package/dist/cjs/core/Step.js.map +1 -0
  74. package/dist/cjs/core/ToolManager.js.map +1 -0
  75. package/dist/{src → cjs}/index.d.ts +4 -1
  76. package/dist/cjs/index.d.ts.map +1 -0
  77. package/dist/cjs/{src/index.js → index.js} +12 -1
  78. package/dist/cjs/index.js.map +1 -0
  79. package/dist/cjs/{src/providers → providers}/AnthropicProvider.js +18 -18
  80. package/dist/cjs/providers/AnthropicProvider.js.map +1 -0
  81. package/dist/{src → cjs}/providers/GeminiProvider.d.ts.map +1 -1
  82. package/dist/cjs/{src/providers → providers}/GeminiProvider.js +123 -51
  83. package/dist/cjs/providers/GeminiProvider.js.map +1 -0
  84. package/dist/cjs/{src/providers → providers}/OpenAIProvider.js +19 -19
  85. package/dist/cjs/providers/OpenAIProvider.js.map +1 -0
  86. package/dist/cjs/{src/providers → providers}/OpenRouterProvider.js +19 -19
  87. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -0
  88. package/dist/cjs/providers/index.js.map +1 -0
  89. package/dist/cjs/{src/types → types}/agent.d.ts +15 -3
  90. package/dist/cjs/types/agent.d.ts.map +1 -0
  91. package/dist/cjs/types/agent.js.map +1 -0
  92. package/dist/{src → cjs}/types/ai.js.map +1 -1
  93. package/dist/cjs/types/history.js.map +1 -0
  94. package/dist/cjs/{src/types → types}/index.d.ts +2 -1
  95. package/dist/{src → cjs}/types/index.d.ts.map +1 -1
  96. package/dist/cjs/{src/types → types}/index.js +6 -1
  97. package/dist/cjs/types/index.js.map +1 -0
  98. package/dist/cjs/types/persistence.js.map +1 -0
  99. package/dist/cjs/{src/types → types}/route.d.ts +111 -12
  100. package/dist/cjs/types/route.d.ts.map +1 -0
  101. package/dist/cjs/{src/types → types}/route.js.map +1 -1
  102. package/dist/cjs/types/session.js.map +1 -0
  103. package/dist/cjs/types/template.d.ts +88 -0
  104. package/dist/cjs/types/template.d.ts.map +1 -0
  105. package/dist/cjs/types/tool.js.map +1 -0
  106. package/dist/cjs/utils/clone.js.map +1 -0
  107. package/dist/cjs/utils/condition.d.ts +38 -0
  108. package/dist/cjs/utils/condition.d.ts.map +1 -0
  109. package/dist/cjs/utils/condition.js +168 -0
  110. package/dist/cjs/utils/condition.js.map +1 -0
  111. package/dist/cjs/utils/event.js.map +1 -0
  112. package/dist/cjs/utils/history.js.map +1 -0
  113. package/dist/cjs/utils/id.js.map +1 -0
  114. package/dist/cjs/{src/utils → utils}/index.d.ts +3 -1
  115. package/dist/cjs/utils/index.d.ts.map +1 -0
  116. package/dist/cjs/{src/utils → utils}/index.js +12 -1
  117. package/dist/cjs/utils/index.js.map +1 -0
  118. package/dist/cjs/utils/json.d.ts +16 -0
  119. package/dist/cjs/utils/json.d.ts.map +1 -0
  120. package/dist/cjs/utils/json.js +47 -0
  121. package/dist/cjs/utils/json.js.map +1 -0
  122. package/dist/cjs/utils/logger.js.map +1 -0
  123. package/dist/{src → cjs}/utils/retry.d.ts +0 -3
  124. package/dist/cjs/utils/retry.d.ts.map +1 -0
  125. package/dist/cjs/{src/utils → utils}/retry.js +8 -7
  126. package/dist/cjs/utils/retry.js.map +1 -0
  127. package/dist/cjs/utils/session.js.map +1 -0
  128. package/dist/{src → cjs}/utils/template.d.ts +48 -0
  129. package/dist/cjs/utils/template.d.ts.map +1 -0
  130. package/dist/cjs/{src/utils → utils}/template.js +100 -0
  131. package/dist/cjs/utils/template.js.map +1 -0
  132. package/dist/constants/index.d.ts.map +1 -0
  133. package/dist/constants/index.js.map +1 -0
  134. package/dist/{src/core → core}/Agent.d.ts +16 -1
  135. package/dist/core/Agent.d.ts.map +1 -0
  136. package/dist/{src/core → core}/Agent.js +64 -3
  137. package/dist/core/Agent.js.map +1 -0
  138. package/dist/core/BatchExecutor.d.ts +353 -0
  139. package/dist/core/BatchExecutor.d.ts.map +1 -0
  140. package/dist/core/BatchExecutor.js +845 -0
  141. package/dist/core/BatchExecutor.js.map +1 -0
  142. package/dist/core/BatchPromptBuilder.d.ts +86 -0
  143. package/dist/core/BatchPromptBuilder.d.ts.map +1 -0
  144. package/dist/core/BatchPromptBuilder.js +213 -0
  145. package/dist/core/BatchPromptBuilder.js.map +1 -0
  146. package/dist/core/Events.d.ts.map +1 -0
  147. package/dist/core/Events.js.map +1 -0
  148. package/dist/core/PersistenceManager.d.ts.map +1 -0
  149. package/dist/core/PersistenceManager.js.map +1 -0
  150. package/dist/{cjs/src/core → core}/PromptComposer.d.ts +1 -1
  151. package/dist/core/PromptComposer.d.ts.map +1 -0
  152. package/dist/{src/core → core}/PromptComposer.js +45 -8
  153. package/dist/core/PromptComposer.js.map +1 -0
  154. package/dist/core/ResponseEngine.d.ts.map +1 -0
  155. package/dist/core/ResponseEngine.js +207 -0
  156. package/dist/core/ResponseEngine.js.map +1 -0
  157. package/dist/{cjs/src/core → core}/ResponseModal.d.ts +45 -0
  158. package/dist/core/ResponseModal.d.ts.map +1 -0
  159. package/dist/{src/core → core}/ResponseModal.js +752 -74
  160. package/dist/core/ResponseModal.js.map +1 -0
  161. package/dist/{cjs/src/core → core}/ResponsePipeline.d.ts +2 -2
  162. package/dist/core/ResponsePipeline.d.ts.map +1 -0
  163. package/dist/{src/core → core}/ResponsePipeline.js +13 -6
  164. package/dist/core/ResponsePipeline.js.map +1 -0
  165. package/dist/{cjs/src/core → core}/Route.d.ts +34 -5
  166. package/dist/core/Route.d.ts.map +1 -0
  167. package/dist/{src/core → core}/Route.js +195 -18
  168. package/dist/core/Route.js.map +1 -0
  169. package/dist/{src/core → core}/RoutingEngine.d.ts +30 -5
  170. package/dist/core/RoutingEngine.d.ts.map +1 -0
  171. package/dist/{src/core → core}/RoutingEngine.js +310 -60
  172. package/dist/core/RoutingEngine.js.map +1 -0
  173. package/dist/core/SessionManager.d.ts.map +1 -0
  174. package/dist/core/SessionManager.js.map +1 -0
  175. package/dist/{cjs/src/core → core}/Step.d.ts +31 -10
  176. package/dist/core/Step.d.ts.map +1 -0
  177. package/dist/{src/core → core}/Step.js +104 -9
  178. package/dist/core/Step.js.map +1 -0
  179. package/dist/core/ToolManager.d.ts.map +1 -0
  180. package/dist/core/ToolManager.js.map +1 -0
  181. package/dist/{cjs/src/index.d.ts → index.d.ts} +4 -1
  182. package/dist/index.d.ts.map +1 -0
  183. package/dist/{src/index.js → index.js} +3 -0
  184. package/dist/index.js.map +1 -0
  185. package/dist/providers/AnthropicProvider.d.ts.map +1 -0
  186. package/dist/{src/providers → providers}/AnthropicProvider.js +17 -17
  187. package/dist/providers/AnthropicProvider.js.map +1 -0
  188. package/dist/providers/GeminiProvider.d.ts.map +1 -0
  189. package/dist/{src/providers → providers}/GeminiProvider.js +123 -51
  190. package/dist/providers/GeminiProvider.js.map +1 -0
  191. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  192. package/dist/{src/providers → providers}/OpenAIProvider.js +18 -18
  193. package/dist/providers/OpenAIProvider.js.map +1 -0
  194. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  195. package/dist/{src/providers → providers}/OpenRouterProvider.js +18 -18
  196. package/dist/providers/OpenRouterProvider.js.map +1 -0
  197. package/dist/providers/index.d.ts.map +1 -0
  198. package/dist/providers/index.js.map +1 -0
  199. package/dist/{src/types → types}/agent.d.ts +15 -3
  200. package/dist/types/agent.d.ts.map +1 -0
  201. package/dist/types/agent.js.map +1 -0
  202. package/dist/types/ai.d.ts.map +1 -0
  203. package/dist/types/ai.js.map +1 -0
  204. package/dist/types/history.d.ts.map +1 -0
  205. package/dist/types/history.js.map +1 -0
  206. package/dist/{src/types → types}/index.d.ts +2 -1
  207. package/dist/types/index.d.ts.map +1 -0
  208. package/dist/{src/types → types}/index.js +1 -0
  209. package/dist/types/index.js.map +1 -0
  210. package/dist/types/persistence.d.ts.map +1 -0
  211. package/dist/types/persistence.js.map +1 -0
  212. package/dist/{src/types → types}/route.d.ts +111 -12
  213. package/dist/types/route.d.ts.map +1 -0
  214. package/dist/{src/types → types}/route.js.map +1 -1
  215. package/dist/types/routing.d.ts.map +1 -0
  216. package/dist/{cjs/src/types → types}/routing.js.map +1 -1
  217. package/dist/types/schema.d.ts.map +1 -0
  218. package/dist/{cjs/src/types → types}/schema.js.map +1 -1
  219. package/dist/types/session.d.ts.map +1 -0
  220. package/dist/{src/types → types}/session.js.map +1 -1
  221. package/dist/types/template.d.ts +88 -0
  222. package/dist/types/template.d.ts.map +1 -0
  223. package/dist/{cjs/src/types → types}/template.js.map +1 -1
  224. package/dist/types/tool.d.ts.map +1 -0
  225. package/dist/types/tool.js.map +1 -0
  226. package/dist/utils/clone.d.ts.map +1 -0
  227. package/dist/utils/clone.js.map +1 -0
  228. package/dist/utils/condition.d.ts +38 -0
  229. package/dist/utils/condition.d.ts.map +1 -0
  230. package/dist/utils/condition.js +161 -0
  231. package/dist/utils/condition.js.map +1 -0
  232. package/dist/utils/event.d.ts.map +1 -0
  233. package/dist/utils/event.js.map +1 -0
  234. package/dist/utils/history.d.ts.map +1 -0
  235. package/dist/utils/history.js.map +1 -0
  236. package/dist/utils/id.d.ts.map +1 -0
  237. package/dist/utils/id.js.map +1 -0
  238. package/dist/{src/utils → utils}/index.d.ts +3 -1
  239. package/dist/utils/index.d.ts.map +1 -0
  240. package/dist/{src/utils → utils}/index.js +5 -1
  241. package/dist/utils/index.js.map +1 -0
  242. package/dist/utils/json.d.ts +16 -0
  243. package/dist/utils/json.d.ts.map +1 -0
  244. package/dist/utils/json.js +43 -0
  245. package/dist/utils/json.js.map +1 -0
  246. package/dist/utils/logger.d.ts.map +1 -0
  247. package/dist/utils/logger.js.map +1 -0
  248. package/dist/{cjs/src/utils → utils}/retry.d.ts +0 -3
  249. package/dist/utils/retry.d.ts.map +1 -0
  250. package/dist/{src/utils → utils}/retry.js +5 -4
  251. package/dist/utils/retry.js.map +1 -0
  252. package/dist/utils/session.d.ts.map +1 -0
  253. package/dist/utils/session.js.map +1 -0
  254. package/dist/{cjs/src/utils → utils}/template.d.ts +48 -0
  255. package/dist/utils/template.d.ts.map +1 -0
  256. package/dist/{src/utils → utils}/template.js +98 -0
  257. package/dist/utils/template.js.map +1 -0
  258. package/docs/README.md +1 -0
  259. package/docs/api/README.md +237 -12
  260. package/docs/api/overview.md +206 -3
  261. package/docs/architecture/data-extraction-flow.md +363 -0
  262. package/docs/architecture/multi-step-execution.md +243 -0
  263. package/docs/core/agent/README.md +156 -5
  264. package/docs/core/agent/rules-and-prohibitions.md +113 -0
  265. package/docs/core/agent/session-management.md +1 -1
  266. package/docs/core/ai-integration/prompt-composition.md +135 -0
  267. package/docs/core/ai-integration/response-processing.md +146 -0
  268. package/docs/core/conversation-flows/data-collection.md +143 -0
  269. package/docs/core/conversation-flows/routes.md +2 -2
  270. package/docs/core/conversation-flows/step-transitions.md +132 -0
  271. package/docs/core/conversation-flows/steps.md +112 -0
  272. package/docs/core/error-handling.md +193 -0
  273. package/docs/core/routing/intelligent-routing.md +118 -0
  274. package/docs/guides/getting-started/README.md +284 -3
  275. package/docs/guides/migration/README.md +27 -0
  276. package/docs/guides/migration/flexible-routing-conditions.md +375 -0
  277. package/docs/guides/migration/multi-step-execution.md +373 -0
  278. package/examples/advanced-patterns/knowledge-based-agent.ts +101 -24
  279. package/examples/advanced-patterns/persistent-onboarding.ts +40 -5
  280. package/examples/advanced-patterns/route-lifecycle-hooks.ts +82 -12
  281. package/examples/advanced-patterns/streaming-responses.ts +2 -2
  282. package/examples/ai-providers/anthropic-integration.ts +4 -4
  283. package/examples/ai-providers/openai-integration.ts +1 -1
  284. package/examples/condition-patterns/function-only-conditions.ts +365 -0
  285. package/examples/condition-patterns/mixed-array-conditions.ts +477 -0
  286. package/examples/condition-patterns/route-skipif-patterns.ts +468 -0
  287. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  288. package/examples/condition-patterns/string-only-conditions.ts +296 -0
  289. package/examples/conversation-flows/completion-transitions.ts +48 -7
  290. package/examples/core-concepts/basic-agent.ts +54 -33
  291. package/examples/core-concepts/schema-driven-extraction.ts +33 -9
  292. package/examples/core-concepts/session-management.ts +51 -16
  293. package/examples/integrations/database-integration.ts +6 -6
  294. package/examples/integrations/healthcare-integration.ts +10 -10
  295. package/examples/integrations/search-integration.ts +8 -8
  296. package/examples/integrations/server-session-management.ts +8 -8
  297. package/examples/persistence/database-persistence.ts +15 -15
  298. package/examples/persistence/memory-sessions.ts +3 -3
  299. package/examples/persistence/redis-persistence.ts +7 -9
  300. package/examples/tools/data-enrichment-tools.ts +4 -4
  301. package/package.json +6 -4
  302. package/src/adapters/PrismaAdapter.ts +3 -2
  303. package/src/adapters/RedisAdapter.ts +3 -3
  304. package/src/core/Agent.ts +78 -2
  305. package/src/core/BatchExecutor.ts +1166 -0
  306. package/src/core/BatchPromptBuilder.ts +293 -0
  307. package/src/core/PromptComposer.ts +53 -16
  308. package/src/core/ResponseEngine.ts +168 -29
  309. package/src/core/ResponseModal.ts +954 -74
  310. package/src/core/ResponsePipeline.ts +17 -9
  311. package/src/core/Route.ts +223 -22
  312. package/src/core/RoutingEngine.ts +426 -83
  313. package/src/core/Step.ts +144 -16
  314. package/src/index.ts +19 -0
  315. package/src/providers/AnthropicProvider.ts +17 -17
  316. package/src/providers/GeminiProvider.ts +129 -60
  317. package/src/providers/OpenAIProvider.ts +18 -18
  318. package/src/providers/OpenRouterProvider.ts +18 -18
  319. package/src/types/agent.ts +15 -3
  320. package/src/types/index.ts +12 -1
  321. package/src/types/route.ts +131 -12
  322. package/src/types/template.ts +70 -2
  323. package/src/utils/condition.ts +190 -0
  324. package/src/utils/index.ts +12 -0
  325. package/src/utils/json.ts +46 -0
  326. package/src/utils/retry.ts +5 -4
  327. package/src/utils/template.ts +109 -0
  328. package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +0 -1
  329. package/dist/cjs/src/adapters/MemoryAdapter.js.map +0 -1
  330. package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +0 -1
  331. package/dist/cjs/src/adapters/MongoAdapter.js.map +0 -1
  332. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +0 -1
  333. package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +0 -1
  334. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  335. package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +0 -1
  336. package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +0 -1
  337. package/dist/cjs/src/adapters/PrismaAdapter.js.map +0 -1
  338. package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +0 -1
  339. package/dist/cjs/src/adapters/RedisAdapter.js.map +0 -1
  340. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +0 -1
  341. package/dist/cjs/src/adapters/SQLiteAdapter.js.map +0 -1
  342. package/dist/cjs/src/adapters/index.d.ts.map +0 -1
  343. package/dist/cjs/src/adapters/index.js.map +0 -1
  344. package/dist/cjs/src/constants/index.d.ts.map +0 -1
  345. package/dist/cjs/src/constants/index.js.map +0 -1
  346. package/dist/cjs/src/core/Agent.d.ts.map +0 -1
  347. package/dist/cjs/src/core/Agent.js.map +0 -1
  348. package/dist/cjs/src/core/Events.d.ts.map +0 -1
  349. package/dist/cjs/src/core/Events.js.map +0 -1
  350. package/dist/cjs/src/core/PersistenceManager.d.ts.map +0 -1
  351. package/dist/cjs/src/core/PersistenceManager.js.map +0 -1
  352. package/dist/cjs/src/core/PromptComposer.d.ts.map +0 -1
  353. package/dist/cjs/src/core/PromptComposer.js.map +0 -1
  354. package/dist/cjs/src/core/ResponseEngine.d.ts.map +0 -1
  355. package/dist/cjs/src/core/ResponseEngine.js +0 -84
  356. package/dist/cjs/src/core/ResponseEngine.js.map +0 -1
  357. package/dist/cjs/src/core/ResponseModal.d.ts.map +0 -1
  358. package/dist/cjs/src/core/ResponseModal.js.map +0 -1
  359. package/dist/cjs/src/core/ResponsePipeline.d.ts.map +0 -1
  360. package/dist/cjs/src/core/ResponsePipeline.js.map +0 -1
  361. package/dist/cjs/src/core/Route.d.ts.map +0 -1
  362. package/dist/cjs/src/core/Route.js.map +0 -1
  363. package/dist/cjs/src/core/RoutingEngine.d.ts.map +0 -1
  364. package/dist/cjs/src/core/RoutingEngine.js.map +0 -1
  365. package/dist/cjs/src/core/SessionManager.d.ts.map +0 -1
  366. package/dist/cjs/src/core/SessionManager.js.map +0 -1
  367. package/dist/cjs/src/core/Step.d.ts.map +0 -1
  368. package/dist/cjs/src/core/Step.js.map +0 -1
  369. package/dist/cjs/src/core/ToolManager.d.ts.map +0 -1
  370. package/dist/cjs/src/core/ToolManager.js.map +0 -1
  371. package/dist/cjs/src/index.d.ts.map +0 -1
  372. package/dist/cjs/src/index.js.map +0 -1
  373. package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +0 -1
  374. package/dist/cjs/src/providers/AnthropicProvider.js.map +0 -1
  375. package/dist/cjs/src/providers/GeminiProvider.d.ts.map +0 -1
  376. package/dist/cjs/src/providers/GeminiProvider.js.map +0 -1
  377. package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +0 -1
  378. package/dist/cjs/src/providers/OpenAIProvider.js.map +0 -1
  379. package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +0 -1
  380. package/dist/cjs/src/providers/OpenRouterProvider.js.map +0 -1
  381. package/dist/cjs/src/providers/index.d.ts.map +0 -1
  382. package/dist/cjs/src/providers/index.js.map +0 -1
  383. package/dist/cjs/src/types/agent.d.ts.map +0 -1
  384. package/dist/cjs/src/types/agent.js.map +0 -1
  385. package/dist/cjs/src/types/ai.d.ts.map +0 -1
  386. package/dist/cjs/src/types/ai.js.map +0 -1
  387. package/dist/cjs/src/types/history.d.ts.map +0 -1
  388. package/dist/cjs/src/types/history.js.map +0 -1
  389. package/dist/cjs/src/types/index.d.ts.map +0 -1
  390. package/dist/cjs/src/types/index.js.map +0 -1
  391. package/dist/cjs/src/types/persistence.d.ts.map +0 -1
  392. package/dist/cjs/src/types/persistence.js.map +0 -1
  393. package/dist/cjs/src/types/route.d.ts.map +0 -1
  394. package/dist/cjs/src/types/routing.d.ts.map +0 -1
  395. package/dist/cjs/src/types/schema.d.ts.map +0 -1
  396. package/dist/cjs/src/types/session.d.ts.map +0 -1
  397. package/dist/cjs/src/types/session.js.map +0 -1
  398. package/dist/cjs/src/types/template.d.ts +0 -30
  399. package/dist/cjs/src/types/template.d.ts.map +0 -1
  400. package/dist/cjs/src/types/tool.d.ts.map +0 -1
  401. package/dist/cjs/src/types/tool.js.map +0 -1
  402. package/dist/cjs/src/utils/clone.d.ts.map +0 -1
  403. package/dist/cjs/src/utils/clone.js.map +0 -1
  404. package/dist/cjs/src/utils/event.d.ts.map +0 -1
  405. package/dist/cjs/src/utils/event.js.map +0 -1
  406. package/dist/cjs/src/utils/history.d.ts.map +0 -1
  407. package/dist/cjs/src/utils/history.js.map +0 -1
  408. package/dist/cjs/src/utils/id.d.ts.map +0 -1
  409. package/dist/cjs/src/utils/id.js.map +0 -1
  410. package/dist/cjs/src/utils/index.d.ts.map +0 -1
  411. package/dist/cjs/src/utils/index.js.map +0 -1
  412. package/dist/cjs/src/utils/logger.d.ts.map +0 -1
  413. package/dist/cjs/src/utils/logger.js.map +0 -1
  414. package/dist/cjs/src/utils/retry.d.ts.map +0 -1
  415. package/dist/cjs/src/utils/retry.js.map +0 -1
  416. package/dist/cjs/src/utils/session.d.ts.map +0 -1
  417. package/dist/cjs/src/utils/session.js.map +0 -1
  418. package/dist/cjs/src/utils/template.d.ts.map +0 -1
  419. package/dist/cjs/src/utils/template.js.map +0 -1
  420. package/dist/src/adapters/MemoryAdapter.js.map +0 -1
  421. package/dist/src/adapters/MongoAdapter.js.map +0 -1
  422. package/dist/src/adapters/OpenSearchAdapter.js.map +0 -1
  423. package/dist/src/adapters/PostgreSQLAdapter.js.map +0 -1
  424. package/dist/src/adapters/PrismaAdapter.js.map +0 -1
  425. package/dist/src/adapters/RedisAdapter.js.map +0 -1
  426. package/dist/src/adapters/SQLiteAdapter.js.map +0 -1
  427. package/dist/src/adapters/index.js.map +0 -1
  428. package/dist/src/constants/index.js.map +0 -1
  429. package/dist/src/core/Agent.d.ts.map +0 -1
  430. package/dist/src/core/Agent.js.map +0 -1
  431. package/dist/src/core/Events.js.map +0 -1
  432. package/dist/src/core/PersistenceManager.js.map +0 -1
  433. package/dist/src/core/PromptComposer.d.ts.map +0 -1
  434. package/dist/src/core/PromptComposer.js.map +0 -1
  435. package/dist/src/core/ResponseEngine.js +0 -80
  436. package/dist/src/core/ResponseEngine.js.map +0 -1
  437. package/dist/src/core/ResponseModal.d.ts.map +0 -1
  438. package/dist/src/core/ResponseModal.js.map +0 -1
  439. package/dist/src/core/ResponsePipeline.d.ts.map +0 -1
  440. package/dist/src/core/ResponsePipeline.js.map +0 -1
  441. package/dist/src/core/Route.d.ts.map +0 -1
  442. package/dist/src/core/Route.js.map +0 -1
  443. package/dist/src/core/RoutingEngine.d.ts.map +0 -1
  444. package/dist/src/core/RoutingEngine.js.map +0 -1
  445. package/dist/src/core/SessionManager.js.map +0 -1
  446. package/dist/src/core/Step.d.ts.map +0 -1
  447. package/dist/src/core/Step.js.map +0 -1
  448. package/dist/src/core/ToolManager.js.map +0 -1
  449. package/dist/src/index.d.ts.map +0 -1
  450. package/dist/src/index.js.map +0 -1
  451. package/dist/src/providers/AnthropicProvider.js.map +0 -1
  452. package/dist/src/providers/GeminiProvider.js.map +0 -1
  453. package/dist/src/providers/OpenAIProvider.js.map +0 -1
  454. package/dist/src/providers/OpenRouterProvider.js.map +0 -1
  455. package/dist/src/providers/index.js.map +0 -1
  456. package/dist/src/types/agent.d.ts.map +0 -1
  457. package/dist/src/types/agent.js.map +0 -1
  458. package/dist/src/types/history.js.map +0 -1
  459. package/dist/src/types/index.js.map +0 -1
  460. package/dist/src/types/persistence.js.map +0 -1
  461. package/dist/src/types/route.d.ts.map +0 -1
  462. package/dist/src/types/template.d.ts +0 -30
  463. package/dist/src/types/template.d.ts.map +0 -1
  464. package/dist/src/types/tool.js.map +0 -1
  465. package/dist/src/utils/clone.js.map +0 -1
  466. package/dist/src/utils/event.js.map +0 -1
  467. package/dist/src/utils/history.js.map +0 -1
  468. package/dist/src/utils/id.js.map +0 -1
  469. package/dist/src/utils/index.d.ts.map +0 -1
  470. package/dist/src/utils/index.js.map +0 -1
  471. package/dist/src/utils/logger.js.map +0 -1
  472. package/dist/src/utils/retry.d.ts.map +0 -1
  473. package/dist/src/utils/retry.js.map +0 -1
  474. package/dist/src/utils/session.js.map +0 -1
  475. package/dist/src/utils/template.d.ts.map +0 -1
  476. package/dist/src/utils/template.js.map +0 -1
  477. /package/dist/{cjs/src/adapters → adapters}/MemoryAdapter.d.ts +0 -0
  478. /package/dist/{src/adapters → adapters}/MemoryAdapter.js +0 -0
  479. /package/dist/{cjs/src/adapters → adapters}/MongoAdapter.d.ts +0 -0
  480. /package/dist/{src/adapters → adapters}/MongoAdapter.js +0 -0
  481. /package/dist/{cjs/src/adapters → adapters}/OpenSearchAdapter.d.ts +0 -0
  482. /package/dist/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
  483. /package/dist/{cjs/src/adapters → adapters}/PostgreSQLAdapter.d.ts +0 -0
  484. /package/dist/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
  485. /package/dist/{cjs/src/adapters → adapters}/PrismaAdapter.d.ts +0 -0
  486. /package/dist/{cjs/src/adapters → adapters}/RedisAdapter.d.ts +0 -0
  487. /package/dist/{cjs/src/adapters → adapters}/SQLiteAdapter.d.ts +0 -0
  488. /package/dist/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
  489. /package/dist/{cjs/src/adapters → adapters}/index.d.ts +0 -0
  490. /package/dist/{src/adapters → adapters}/index.js +0 -0
  491. /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts +0 -0
  492. /package/dist/{src → cjs}/adapters/MemoryAdapter.d.ts.map +0 -0
  493. /package/dist/cjs/{src/adapters → adapters}/MemoryAdapter.js +0 -0
  494. /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts +0 -0
  495. /package/dist/{src → cjs}/adapters/MongoAdapter.d.ts.map +0 -0
  496. /package/dist/cjs/{src/adapters → adapters}/MongoAdapter.js +0 -0
  497. /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts +0 -0
  498. /package/dist/{src → cjs}/adapters/OpenSearchAdapter.d.ts.map +0 -0
  499. /package/dist/cjs/{src/adapters → adapters}/OpenSearchAdapter.js +0 -0
  500. /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts +0 -0
  501. /package/dist/{src → cjs}/adapters/PostgreSQLAdapter.d.ts.map +0 -0
  502. /package/dist/cjs/{src/adapters → adapters}/PostgreSQLAdapter.js +0 -0
  503. /package/dist/{src → cjs}/adapters/PrismaAdapter.d.ts +0 -0
  504. /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts +0 -0
  505. /package/dist/{src → cjs}/adapters/RedisAdapter.d.ts.map +0 -0
  506. /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts +0 -0
  507. /package/dist/{src → cjs}/adapters/SQLiteAdapter.d.ts.map +0 -0
  508. /package/dist/cjs/{src/adapters → adapters}/SQLiteAdapter.js +0 -0
  509. /package/dist/{src → cjs}/adapters/index.d.ts +0 -0
  510. /package/dist/{src → cjs}/adapters/index.d.ts.map +0 -0
  511. /package/dist/cjs/{src/adapters → adapters}/index.js +0 -0
  512. /package/dist/cjs/{src/constants → constants}/index.d.ts +0 -0
  513. /package/dist/{src → cjs}/constants/index.d.ts.map +0 -0
  514. /package/dist/cjs/{src/constants → constants}/index.js +0 -0
  515. /package/dist/cjs/{src/core → core}/Events.d.ts +0 -0
  516. /package/dist/{src → cjs}/core/Events.d.ts.map +0 -0
  517. /package/dist/cjs/{src/core → core}/Events.js +0 -0
  518. /package/dist/cjs/{src/core → core}/PersistenceManager.d.ts +0 -0
  519. /package/dist/{src → cjs}/core/PersistenceManager.d.ts.map +0 -0
  520. /package/dist/cjs/{src/core → core}/PersistenceManager.js +0 -0
  521. /package/dist/cjs/{src/core → core}/ResponseEngine.d.ts +0 -0
  522. /package/dist/cjs/{src/core → core}/SessionManager.d.ts +0 -0
  523. /package/dist/{src → cjs}/core/SessionManager.d.ts.map +0 -0
  524. /package/dist/cjs/{src/core → core}/SessionManager.js +0 -0
  525. /package/dist/cjs/{src/core → core}/ToolManager.d.ts +0 -0
  526. /package/dist/{src → cjs}/core/ToolManager.d.ts.map +0 -0
  527. /package/dist/cjs/{src/core → core}/ToolManager.js +0 -0
  528. /package/dist/cjs/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
  529. /package/dist/{src → cjs}/providers/AnthropicProvider.d.ts.map +0 -0
  530. /package/dist/cjs/{src/providers → providers}/GeminiProvider.d.ts +0 -0
  531. /package/dist/cjs/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
  532. /package/dist/{src → cjs}/providers/OpenAIProvider.d.ts.map +0 -0
  533. /package/dist/cjs/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
  534. /package/dist/{src → cjs}/providers/OpenRouterProvider.d.ts.map +0 -0
  535. /package/dist/cjs/{src/providers → providers}/index.d.ts +0 -0
  536. /package/dist/{src → cjs}/providers/index.d.ts.map +0 -0
  537. /package/dist/cjs/{src/providers → providers}/index.js +0 -0
  538. /package/dist/cjs/{src/types → types}/agent.js +0 -0
  539. /package/dist/cjs/{src/types → types}/ai.d.ts +0 -0
  540. /package/dist/{src → cjs}/types/ai.d.ts.map +0 -0
  541. /package/dist/cjs/{src/types → types}/ai.js +0 -0
  542. /package/dist/cjs/{src/types → types}/history.d.ts +0 -0
  543. /package/dist/{src → cjs}/types/history.d.ts.map +0 -0
  544. /package/dist/cjs/{src/types → types}/history.js +0 -0
  545. /package/dist/cjs/{src/types → types}/persistence.d.ts +0 -0
  546. /package/dist/{src → cjs}/types/persistence.d.ts.map +0 -0
  547. /package/dist/cjs/{src/types → types}/persistence.js +0 -0
  548. /package/dist/cjs/{src/types → types}/route.js +0 -0
  549. /package/dist/cjs/{src/types → types}/routing.d.ts +0 -0
  550. /package/dist/{src → cjs}/types/routing.d.ts.map +0 -0
  551. /package/dist/cjs/{src/types → types}/routing.js +0 -0
  552. /package/dist/{src → cjs}/types/routing.js.map +0 -0
  553. /package/dist/cjs/{src/types → types}/schema.d.ts +0 -0
  554. /package/dist/{src → cjs}/types/schema.d.ts.map +0 -0
  555. /package/dist/cjs/{src/types → types}/schema.js +0 -0
  556. /package/dist/{src → cjs}/types/schema.js.map +0 -0
  557. /package/dist/cjs/{src/types → types}/session.d.ts +0 -0
  558. /package/dist/{src → cjs}/types/session.d.ts.map +0 -0
  559. /package/dist/cjs/{src/types → types}/session.js +0 -0
  560. /package/dist/cjs/{src/types → types}/template.js +0 -0
  561. /package/dist/{src → cjs}/types/template.js.map +0 -0
  562. /package/dist/cjs/{src/types → types}/tool.d.ts +0 -0
  563. /package/dist/{src → cjs}/types/tool.d.ts.map +0 -0
  564. /package/dist/cjs/{src/types → types}/tool.js +0 -0
  565. /package/dist/cjs/{src/utils → utils}/clone.d.ts +0 -0
  566. /package/dist/{src → cjs}/utils/clone.d.ts.map +0 -0
  567. /package/dist/cjs/{src/utils → utils}/clone.js +0 -0
  568. /package/dist/cjs/{src/utils → utils}/event.d.ts +0 -0
  569. /package/dist/{src → cjs}/utils/event.d.ts.map +0 -0
  570. /package/dist/cjs/{src/utils → utils}/event.js +0 -0
  571. /package/dist/cjs/{src/utils → utils}/history.d.ts +0 -0
  572. /package/dist/{src → cjs}/utils/history.d.ts.map +0 -0
  573. /package/dist/cjs/{src/utils → utils}/history.js +0 -0
  574. /package/dist/cjs/{src/utils → utils}/id.d.ts +0 -0
  575. /package/dist/{src → cjs}/utils/id.d.ts.map +0 -0
  576. /package/dist/cjs/{src/utils → utils}/id.js +0 -0
  577. /package/dist/cjs/{src/utils → utils}/logger.d.ts +0 -0
  578. /package/dist/{src → cjs}/utils/logger.d.ts.map +0 -0
  579. /package/dist/cjs/{src/utils → utils}/logger.js +0 -0
  580. /package/dist/cjs/{src/utils → utils}/session.d.ts +0 -0
  581. /package/dist/{src → cjs}/utils/session.d.ts.map +0 -0
  582. /package/dist/cjs/{src/utils → utils}/session.js +0 -0
  583. /package/dist/{src/constants → constants}/index.d.ts +0 -0
  584. /package/dist/{src/constants → constants}/index.js +0 -0
  585. /package/dist/{src/core → core}/Events.d.ts +0 -0
  586. /package/dist/{src/core → core}/Events.js +0 -0
  587. /package/dist/{src/core → core}/PersistenceManager.d.ts +0 -0
  588. /package/dist/{src/core → core}/PersistenceManager.js +0 -0
  589. /package/dist/{src/core → core}/ResponseEngine.d.ts +0 -0
  590. /package/dist/{src/core → core}/SessionManager.d.ts +0 -0
  591. /package/dist/{src/core → core}/SessionManager.js +0 -0
  592. /package/dist/{src/core → core}/ToolManager.d.ts +0 -0
  593. /package/dist/{src/core → core}/ToolManager.js +0 -0
  594. /package/dist/{src/providers → providers}/AnthropicProvider.d.ts +0 -0
  595. /package/dist/{src/providers → providers}/GeminiProvider.d.ts +0 -0
  596. /package/dist/{src/providers → providers}/OpenAIProvider.d.ts +0 -0
  597. /package/dist/{src/providers → providers}/OpenRouterProvider.d.ts +0 -0
  598. /package/dist/{src/providers → providers}/index.d.ts +0 -0
  599. /package/dist/{src/providers → providers}/index.js +0 -0
  600. /package/dist/{src/types → types}/agent.js +0 -0
  601. /package/dist/{src/types → types}/ai.d.ts +0 -0
  602. /package/dist/{src/types → types}/ai.js +0 -0
  603. /package/dist/{src/types → types}/history.d.ts +0 -0
  604. /package/dist/{src/types → types}/history.js +0 -0
  605. /package/dist/{src/types → types}/persistence.d.ts +0 -0
  606. /package/dist/{src/types → types}/persistence.js +0 -0
  607. /package/dist/{src/types → types}/route.js +0 -0
  608. /package/dist/{src/types → types}/routing.d.ts +0 -0
  609. /package/dist/{src/types → types}/routing.js +0 -0
  610. /package/dist/{src/types → types}/schema.d.ts +0 -0
  611. /package/dist/{src/types → types}/schema.js +0 -0
  612. /package/dist/{src/types → types}/session.d.ts +0 -0
  613. /package/dist/{src/types → types}/session.js +0 -0
  614. /package/dist/{src/types → types}/template.js +0 -0
  615. /package/dist/{src/types → types}/tool.d.ts +0 -0
  616. /package/dist/{src/types → types}/tool.js +0 -0
  617. /package/dist/{src/utils → utils}/clone.d.ts +0 -0
  618. /package/dist/{src/utils → utils}/clone.js +0 -0
  619. /package/dist/{src/utils → utils}/event.d.ts +0 -0
  620. /package/dist/{src/utils → utils}/event.js +0 -0
  621. /package/dist/{src/utils → utils}/history.d.ts +0 -0
  622. /package/dist/{src/utils → utils}/history.js +0 -0
  623. /package/dist/{src/utils → utils}/id.d.ts +0 -0
  624. /package/dist/{src/utils → utils}/id.js +0 -0
  625. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  626. /package/dist/{src/utils → utils}/logger.js +0 -0
  627. /package/dist/{src/utils → utils}/session.d.ts +0 -0
  628. /package/dist/{src/utils → utils}/session.js +0 -0
@@ -4,8 +4,8 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Route = void 0;
7
+ const utils_1 = require("../utils");
7
8
  const Step_1 = require("./Step");
8
- const id_1 = require("../utils/id");
9
9
  const constants_1 = require("../constants");
10
10
  /**
11
11
  * Represents a conversational route/journey
@@ -17,12 +17,13 @@ class Route {
17
17
  this.tools = [];
18
18
  this.knowledgeBase = {};
19
19
  // Use provided ID or generate a deterministic one from the title
20
- this.id = options.id || (0, id_1.generateRouteId)(options.title);
20
+ this.id = options.id || (0, utils_1.generateRouteId)(options.title);
21
21
  this.title = options.title;
22
22
  this.description = options.description;
23
23
  this.identity = options.identity;
24
24
  this.personality = options.personality;
25
- this.conditions = options.conditions || [];
25
+ this.when = options.when;
26
+ this.skipIf = options.skipIf;
26
27
  this.rules = options.rules || [];
27
28
  this.prohibitions = options.prohibitions || [];
28
29
  // Store reference to parent agent for ToolManager access
@@ -71,8 +72,32 @@ class Route {
71
72
  }
72
73
  // Initialize tools from options
73
74
  if (options.tools) {
74
- options.tools.forEach((tool) => {
75
- this.createTool(tool);
75
+ options.tools.forEach((toolRef) => {
76
+ if (typeof toolRef === 'string') {
77
+ // Tool ID - try to resolve from ToolManager
78
+ if (this.parentAgent?.tool) {
79
+ const registeredTool = this.parentAgent.tool.find(toolRef);
80
+ if (registeredTool) {
81
+ this.createTool(registeredTool);
82
+ }
83
+ else {
84
+ // Tool not found - log warning but don't fail
85
+ utils_1.logger.warn(`[Route] Tool ID '${toolRef}' not found in any scope for route ${this.title}`);
86
+ }
87
+ }
88
+ else {
89
+ utils_1.logger.warn(`[Route] No agent available to resolve tool ID '${toolRef}' for route ${this.title}`);
90
+ }
91
+ }
92
+ else {
93
+ // Inline tool object - validate and use directly
94
+ if (toolRef && toolRef.id && typeof toolRef.handler === 'function') {
95
+ this.createTool(toolRef);
96
+ }
97
+ else {
98
+ utils_1.logger.warn(`[Route] Invalid inline tool object in route ${this.title}:`, toolRef);
99
+ }
100
+ }
76
101
  });
77
102
  }
78
103
  // Build sequential steps if provided
@@ -95,6 +120,38 @@ class Route {
95
120
  }
96
121
  }
97
122
  }
123
+ /**
124
+ * Evaluate the when condition for this route
125
+ * @param templateContext - Context for condition evaluation
126
+ * @returns Evaluation result with programmatic result and AI context strings
127
+ */
128
+ async evaluateWhen(templateContext) {
129
+ if (!this.when) {
130
+ return {
131
+ programmaticResult: true, // No condition means always eligible
132
+ aiContextStrings: [],
133
+ hasProgrammaticConditions: false,
134
+ };
135
+ }
136
+ const evaluator = (0, utils_1.createConditionEvaluator)(templateContext);
137
+ return await evaluator.evaluateCondition(this.when, 'AND');
138
+ }
139
+ /**
140
+ * Evaluate the skipIf condition for this route
141
+ * @param templateContext - Context for condition evaluation
142
+ * @returns Evaluation result with programmatic result and AI context strings
143
+ */
144
+ async evaluateSkipIf(templateContext) {
145
+ if (!this.skipIf) {
146
+ return {
147
+ programmaticResult: false, // No skipIf means never skip
148
+ aiContextStrings: [],
149
+ hasProgrammaticConditions: false,
150
+ };
151
+ }
152
+ const evaluator = (0, utils_1.createConditionEvaluator)(templateContext);
153
+ return await evaluator.evaluateCondition(this.skipIf, 'OR');
154
+ }
98
155
  /**
99
156
  * Create a guideline specific to this route
100
157
  */
@@ -152,6 +209,46 @@ class Route {
152
209
  getGuidelines() {
153
210
  return [...this.guidelines];
154
211
  }
212
+ /**
213
+ * Evaluate and match active guidelines based on their conditions
214
+ * Returns guidelines that should be active given the current context
215
+ */
216
+ async evaluateGuidelines(context, session, history) {
217
+ const templateContext = { context, session, history, data: session?.data };
218
+ const evaluator = (0, utils_1.createConditionEvaluator)(templateContext);
219
+ const matches = [];
220
+ for (const guideline of this.guidelines) {
221
+ // Skip disabled guidelines
222
+ if (guideline.enabled === false) {
223
+ continue;
224
+ }
225
+ if (guideline.condition) {
226
+ const evaluation = await evaluator.evaluateCondition(guideline.condition, 'AND');
227
+ // Include guideline if:
228
+ // 1. No programmatic conditions (only strings) - always active
229
+ // 2. Programmatic conditions evaluate to true
230
+ if (!evaluation.hasProgrammaticConditions || evaluation.programmaticResult) {
231
+ const rationale = evaluation.aiContextStrings.length > 0
232
+ ? `Condition met: ${evaluation.aiContextStrings.join(" AND ")}`
233
+ : evaluation.hasProgrammaticConditions
234
+ ? "Programmatic condition evaluated to true"
235
+ : "Always active (no conditions)";
236
+ matches.push({
237
+ guideline,
238
+ rationale
239
+ });
240
+ }
241
+ }
242
+ else {
243
+ // No condition means always active
244
+ matches.push({
245
+ guideline,
246
+ rationale: "Always active (no conditions)"
247
+ });
248
+ }
249
+ }
250
+ return matches;
251
+ }
155
252
  /**
156
253
  * Get all terms for this route
157
254
  */
@@ -245,7 +342,8 @@ class Route {
245
342
  `Route: ${this.title}`,
246
343
  `ID: ${this.id}`,
247
344
  `Description: ${this.description || "N/A"}`,
248
- `Conditions: ${this.conditions.join(", ") || "None"}`,
345
+ `When: ${this.when ? (typeof this.when === 'string' ? this.when : Array.isArray(this.when) ? '[Array]' : '[Function]') : "None"}`,
346
+ `SkipIf: ${this.skipIf ? (typeof this.skipIf === 'string' ? this.skipIf : Array.isArray(this.skipIf) ? '[Array]' : '[Function]') : "None"}`,
249
347
  "",
250
348
  "Steps:",
251
349
  ];
@@ -284,19 +382,89 @@ class Route {
284
382
  await this.hooks.onContextUpdate(newContext, previousContext);
285
383
  }
286
384
  }
385
+ /**
386
+ * Export route configuration as RouteOptions for copying/cloning
387
+ * @returns RouteOptions that can be used to create a new route with identical configuration
388
+ */
389
+ toOptions() {
390
+ // Convert steps to StepOptions
391
+ const steps = this.getAllSteps()
392
+ .filter(step => step.id !== this.initialStep.id) // Exclude initial step
393
+ .map(step => ({
394
+ id: step.id,
395
+ description: step.description,
396
+ prompt: step.prompt,
397
+ tools: step.tools,
398
+ prepare: step.prepare,
399
+ finalize: step.finalize,
400
+ collect: step.collect,
401
+ skipIf: step.skipIf,
402
+ requires: step.requires,
403
+ when: step.when,
404
+ guidelines: step.getGuidelines(),
405
+ }));
406
+ return {
407
+ id: this.id,
408
+ title: this.title,
409
+ description: this.description,
410
+ identity: this.identity,
411
+ personality: this.personality,
412
+ when: this.when,
413
+ skipIf: this.skipIf,
414
+ guidelines: this.getGuidelines(),
415
+ terms: this.getTerms(),
416
+ tools: this.getTools(),
417
+ rules: this.rules,
418
+ prohibitions: this.prohibitions,
419
+ routingExtrasSchema: this.routingExtrasSchema,
420
+ responseOutputSchema: this.responseOutputSchema,
421
+ requiredFields: this.requiredFields,
422
+ optionalFields: this.optionalFields,
423
+ initialData: this.initialData,
424
+ steps: steps.length > 0 ? steps : undefined,
425
+ initialStep: {
426
+ id: this.initialStep.id,
427
+ description: this.initialStep.description,
428
+ prompt: this.initialStep.prompt,
429
+ tools: this.initialStep.tools,
430
+ prepare: this.initialStep.prepare,
431
+ finalize: this.initialStep.finalize,
432
+ collect: this.initialStep.collect,
433
+ skipIf: this.initialStep.skipIf,
434
+ requires: this.initialStep.requires,
435
+ when: this.initialStep.when,
436
+ guidelines: this.initialStep.getGuidelines(),
437
+ },
438
+ endStep: this.endStepSpec,
439
+ onComplete: this.onComplete,
440
+ hooks: this.hooks,
441
+ knowledgeBase: this.knowledgeBase,
442
+ };
443
+ }
287
444
  /**
288
445
  * Check if this route is complete based on the provided data
289
446
  * @param data - Currently collected agent-level data
290
447
  * @returns true if all required fields are present, false otherwise
448
+ *
449
+ * Note: Routes with no requiredFields AND no optionalFields are never complete
450
+ * based on data (they complete via END_ROUTE). Routes with only optionalFields
451
+ * are always complete (optional data doesn't block completion).
291
452
  */
292
453
  isComplete(data) {
293
- if (!this.requiredFields || this.requiredFields.length === 0) {
294
- return true; // No required fields means route is always complete
454
+ // If route has required fields, check if they're all collected
455
+ if (this.requiredFields && this.requiredFields.length > 0) {
456
+ return this.requiredFields.every(field => {
457
+ const value = data[field];
458
+ return value !== undefined && value !== null && value !== '';
459
+ });
295
460
  }
296
- return this.requiredFields.every(field => {
297
- const value = data[field];
298
- return value !== undefined && value !== null && value !== '';
299
- });
461
+ // If route has optional fields but no required fields, it's always complete
462
+ if (this.optionalFields && this.optionalFields.length > 0) {
463
+ return true;
464
+ }
465
+ // No required or optional fields - route doesn't complete based on data
466
+ // It can only complete by reaching END_ROUTE in step flow
467
+ return false;
300
468
  }
301
469
  /**
302
470
  * Get the list of missing required fields for this route
@@ -316,16 +484,25 @@ class Route {
316
484
  * Get the completion progress for this route as a percentage
317
485
  * @param data - Currently collected agent-level data
318
486
  * @returns Completion progress as a number between 0 and 1
487
+ *
488
+ * Note: Must be consistent with isComplete() logic
319
489
  */
320
490
  getCompletionProgress(data) {
321
- if (!this.requiredFields || this.requiredFields.length === 0) {
322
- return 1; // No required fields means 100% complete
491
+ // If route has required fields, calculate progress
492
+ if (this.requiredFields && this.requiredFields.length > 0) {
493
+ const completedFields = this.requiredFields.filter(field => {
494
+ const value = data[field];
495
+ return value !== undefined && value !== null && value !== '';
496
+ });
497
+ return completedFields.length / this.requiredFields.length;
323
498
  }
324
- const completedFields = this.requiredFields.filter(field => {
325
- const value = data[field];
326
- return value !== undefined && value !== null && value !== '';
327
- });
328
- return completedFields.length / this.requiredFields.length;
499
+ // If route has optional fields but no required fields, it's always complete
500
+ if (this.optionalFields && this.optionalFields.length > 0) {
501
+ return 1;
502
+ }
503
+ // No required or optional fields - route doesn't complete based on data
504
+ // Progress is 0 (must reach END_ROUTE in step flow)
505
+ return 0;
329
506
  }
330
507
  /**
331
508
  * Evaluate the onComplete handler and return transition config
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Route.js","sourceRoot":"","sources":["../../../src/core/Route.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Event, AgentOptions, StructuredSchema, RoutingDecision, SessionState, AiProvider } from "../types";
1
+ import type { Event, AgentOptions, StructuredSchema, RoutingDecision, SessionState, AiProvider, TemplateContext } from "../types";
2
2
  import type { Route } from "./Route";
3
3
  import type { Step } from "./Step";
4
4
  export interface CandidateStep<TContext = unknown, TData = unknown> {
@@ -34,6 +34,7 @@ export interface BuildStepSelectionPromptParams<TContext = unknown, TData = unkn
34
34
  agentOptions?: AgentOptions<TContext, TData>;
35
35
  context?: TContext;
36
36
  session?: SessionState<TData>;
37
+ stepConditionContext?: string[];
37
38
  }
38
39
  export interface BuildRoutingPromptParams<TContext = unknown, TData = unknown> {
39
40
  history: Event[];
@@ -43,6 +44,7 @@ export interface BuildRoutingPromptParams<TContext = unknown, TData = unknown> {
43
44
  session?: SessionState<TData>;
44
45
  activeRouteSteps?: Step<TContext, TData>[];
45
46
  context?: TContext;
47
+ routeConditionContext?: string[];
46
48
  }
47
49
  export declare class RoutingEngine<TContext = unknown, TData = unknown> {
48
50
  private readonly options?;
@@ -59,15 +61,17 @@ export declare class RoutingEngine<TContext = unknown, TData = unknown> {
59
61
  */
60
62
  private decideSingleRouteStep;
61
63
  /**
62
- * Recursively traverse step chain to find first non-skipped step or END_ROUTE
64
+ * Recursively traverse step chain to find first non-skipped step or END_ROUTE using new condition evaluation
63
65
  * @private
64
66
  */
65
- private findFirstValidStepRecursive;
67
+ private findFirstValidStepRecursiveWithConditions;
66
68
  /**
67
- * Identify valid next candidate steps based on current step and collected data
69
+ * Identify valid next candidate steps using new condition evaluation system
68
70
  * Returns step with isRouteComplete flag if route is complete (all steps skipped + has END_ROUTE transition)
71
+ *
72
+ * NEW: Automatically completes route when all required fields are collected
69
73
  */
70
- getCandidateSteps(route: Route<TContext, TData>, currentStep: Step<TContext, TData> | undefined, data: Partial<TData>): CandidateStep<TContext, TData>[];
74
+ getCandidateStepsWithConditions(route: Route<TContext, TData>, currentStep: Step<TContext, TData> | undefined, templateContext: TemplateContext<TContext, TData>): Promise<CandidateStep<TContext, TData>[]>;
71
75
  /**
72
76
  * Full routing orchestration: builds prompt and schema, calls AI, selects route/step,
73
77
  * and updates the session (including initialData merge when entering a new route).
@@ -91,6 +95,26 @@ export declare class RoutingEngine<TContext = unknown, TData = unknown> {
91
95
  isRouteComplete?: boolean;
92
96
  completedRoutes?: Route<TContext, TData>[];
93
97
  }>;
98
+ /**
99
+ * Filter routes based on skipIf conditions
100
+ * @param routes - All available routes
101
+ * @param templateContext - Context for condition evaluation
102
+ * @returns Object with eligible routes and collected AI context strings
103
+ */
104
+ filterRoutesBySkipIf(routes: Route<TContext, TData>[], templateContext: TemplateContext<TContext, TData>): Promise<{
105
+ eligibleRoutes: Route<TContext, TData>[];
106
+ aiContextStrings: string[];
107
+ }>;
108
+ /**
109
+ * Filter routes based on when conditions
110
+ * @param routes - Routes that passed skipIf filtering
111
+ * @param templateContext - Context for condition evaluation
112
+ * @returns Object with eligible routes and collected AI context strings
113
+ */
114
+ filterRoutesByWhen(routes: Route<TContext, TData>[], templateContext: TemplateContext<TContext, TData>): Promise<{
115
+ eligibleRoutes: Route<TContext, TData>[];
116
+ aiContextStrings: string[];
117
+ }>;
94
118
  /**
95
119
  * Evaluate all routes for completion based on collected data
96
120
  * @param routes - All available routes
@@ -108,6 +132,7 @@ export declare class RoutingEngine<TContext = unknown, TData = unknown> {
108
132
  /**
109
133
  * Find the best route to continue based on completion status and user intent
110
134
  * Prioritizes routes that are partially complete but not finished
135
+ * IMPORTANT: Completed routes are excluded to prevent re-entering finished tasks
111
136
  * @param routes - All available routes
112
137
  * @param data - Currently collected agent-level data
113
138
  * @param routeScores - AI-generated route scores from routing decision
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutingEngine.d.ts","sourceRoot":"","sources":["../../../src/core/RoutingEngine.ts"],"names":[],"mappings":"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"}