@falai/agent 1.2.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +40 -886
  2. package/dist/adapters/MemoryAdapter.js +2 -2
  3. package/dist/adapters/MemoryAdapter.js.map +1 -1
  4. package/dist/adapters/MongoAdapter.js +2 -2
  5. package/dist/adapters/MongoAdapter.js.map +1 -1
  6. package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
  7. package/dist/adapters/OpenSearchAdapter.js +9 -7
  8. package/dist/adapters/OpenSearchAdapter.js.map +1 -1
  9. package/dist/adapters/PostgreSQLAdapter.d.ts +14 -0
  10. package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  11. package/dist/adapters/PostgreSQLAdapter.js +25 -9
  12. package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
  13. package/dist/adapters/PrismaAdapter.js +5 -5
  14. package/dist/adapters/PrismaAdapter.js.map +1 -1
  15. package/dist/adapters/RedisAdapter.js +2 -2
  16. package/dist/adapters/RedisAdapter.js.map +1 -1
  17. package/dist/adapters/SQLiteAdapter.d.ts +17 -0
  18. package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
  19. package/dist/adapters/SQLiteAdapter.js +30 -11
  20. package/dist/adapters/SQLiteAdapter.js.map +1 -1
  21. package/dist/cjs/adapters/MemoryAdapter.js +2 -2
  22. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
  23. package/dist/cjs/adapters/MongoAdapter.js +2 -2
  24. package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
  25. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
  26. package/dist/cjs/adapters/OpenSearchAdapter.js +9 -7
  27. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
  28. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +14 -0
  29. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
  30. package/dist/cjs/adapters/PostgreSQLAdapter.js +25 -9
  31. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
  32. package/dist/cjs/adapters/PrismaAdapter.js +5 -5
  33. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
  34. package/dist/cjs/adapters/RedisAdapter.js +2 -2
  35. package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
  36. package/dist/cjs/adapters/SQLiteAdapter.d.ts +17 -0
  37. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
  38. package/dist/cjs/adapters/SQLiteAdapter.js +30 -11
  39. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
  40. package/dist/cjs/constants/index.d.ts +0 -9
  41. package/dist/cjs/constants/index.d.ts.map +1 -1
  42. package/dist/cjs/constants/index.js +2 -11
  43. package/dist/cjs/constants/index.js.map +1 -1
  44. package/dist/cjs/core/Agent.d.ts +119 -153
  45. package/dist/cjs/core/Agent.d.ts.map +1 -1
  46. package/dist/cjs/core/Agent.js +471 -324
  47. package/dist/cjs/core/Agent.js.map +1 -1
  48. package/dist/cjs/core/AutoChainExecutor.d.ts +107 -0
  49. package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -0
  50. package/dist/cjs/core/AutoChainExecutor.js +297 -0
  51. package/dist/cjs/core/AutoChainExecutor.js.map +1 -0
  52. package/dist/cjs/core/BranchEvaluator.d.ts +54 -0
  53. package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -0
  54. package/dist/cjs/core/BranchEvaluator.js +130 -0
  55. package/dist/cjs/core/BranchEvaluator.js.map +1 -0
  56. package/dist/cjs/core/DirectiveBus.d.ts +88 -0
  57. package/dist/cjs/core/DirectiveBus.d.ts.map +1 -0
  58. package/dist/cjs/core/DirectiveBus.js +196 -0
  59. package/dist/cjs/core/DirectiveBus.js.map +1 -0
  60. package/dist/cjs/core/DirectiveChainTracker.d.ts +49 -0
  61. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -0
  62. package/dist/cjs/core/DirectiveChainTracker.js +121 -0
  63. package/dist/cjs/core/DirectiveChainTracker.js.map +1 -0
  64. package/dist/cjs/core/Flow.d.ts +186 -0
  65. package/dist/cjs/core/Flow.d.ts.map +1 -0
  66. package/dist/cjs/core/Flow.js +550 -0
  67. package/dist/cjs/core/Flow.js.map +1 -0
  68. package/dist/cjs/core/FlowRouter.d.ts +182 -0
  69. package/dist/cjs/core/FlowRouter.d.ts.map +1 -0
  70. package/dist/cjs/core/{RoutingEngine.js → FlowRouter.js} +323 -306
  71. package/dist/cjs/core/FlowRouter.js.map +1 -0
  72. package/dist/cjs/core/PersistenceManager.d.ts +2 -2
  73. package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
  74. package/dist/cjs/core/PersistenceManager.js +7 -7
  75. package/dist/cjs/core/PersistenceManager.js.map +1 -1
  76. package/dist/cjs/core/PromptComposer.d.ts +21 -8
  77. package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
  78. package/dist/cjs/core/PromptComposer.js +182 -105
  79. package/dist/cjs/core/PromptComposer.js.map +1 -1
  80. package/dist/cjs/core/PromptSectionCache.d.ts +1 -1
  81. package/dist/cjs/core/PromptSectionCache.js +1 -1
  82. package/dist/cjs/core/ResponseEngine.d.ts +18 -8
  83. package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
  84. package/dist/cjs/core/ResponseEngine.js +38 -36
  85. package/dist/cjs/core/ResponseEngine.js.map +1 -1
  86. package/dist/cjs/core/ResponseModal.d.ts +73 -56
  87. package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
  88. package/dist/cjs/core/ResponseModal.js +1191 -1014
  89. package/dist/cjs/core/ResponseModal.js.map +1 -1
  90. package/dist/cjs/core/ResponsePipeline.d.ts +124 -26
  91. package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
  92. package/dist/cjs/core/ResponsePipeline.js +509 -136
  93. package/dist/cjs/core/ResponsePipeline.js.map +1 -1
  94. package/dist/cjs/core/SignalEvaluator.d.ts +86 -0
  95. package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -0
  96. package/dist/cjs/core/SignalEvaluator.js +333 -0
  97. package/dist/cjs/core/SignalEvaluator.js.map +1 -0
  98. package/dist/cjs/core/SignalProcessor.d.ts +152 -0
  99. package/dist/cjs/core/SignalProcessor.d.ts.map +1 -0
  100. package/dist/cjs/core/SignalProcessor.js +562 -0
  101. package/dist/cjs/core/SignalProcessor.js.map +1 -0
  102. package/dist/cjs/core/Step.d.ts +43 -32
  103. package/dist/cjs/core/Step.d.ts.map +1 -1
  104. package/dist/cjs/core/Step.js +221 -126
  105. package/dist/cjs/core/Step.js.map +1 -1
  106. package/dist/cjs/core/StreamingToolExecutor.d.ts +2 -2
  107. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
  108. package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
  109. package/dist/cjs/core/ToolManager.d.ts +44 -13
  110. package/dist/cjs/core/ToolManager.d.ts.map +1 -1
  111. package/dist/cjs/core/ToolManager.js +174 -91
  112. package/dist/cjs/core/ToolManager.js.map +1 -1
  113. package/dist/cjs/core/createAgent.d.ts +35 -0
  114. package/dist/cjs/core/createAgent.d.ts.map +1 -0
  115. package/dist/cjs/core/createAgent.js +39 -0
  116. package/dist/cjs/core/createAgent.js.map +1 -0
  117. package/dist/cjs/core/flow-namespace.d.ts +49 -0
  118. package/dist/cjs/core/flow-namespace.d.ts.map +1 -0
  119. package/dist/cjs/core/flow-namespace.js +171 -0
  120. package/dist/cjs/core/flow-namespace.js.map +1 -0
  121. package/dist/cjs/index.d.ts +11 -14
  122. package/dist/cjs/index.d.ts.map +1 -1
  123. package/dist/cjs/index.js +18 -22
  124. package/dist/cjs/index.js.map +1 -1
  125. package/dist/cjs/types/agent.d.ts +183 -54
  126. package/dist/cjs/types/agent.d.ts.map +1 -1
  127. package/dist/cjs/types/agent.js +0 -6
  128. package/dist/cjs/types/agent.js.map +1 -1
  129. package/dist/cjs/types/ai.d.ts +3 -3
  130. package/dist/cjs/types/ai.d.ts.map +1 -1
  131. package/dist/cjs/types/errors.d.ts +15 -0
  132. package/dist/cjs/types/errors.d.ts.map +1 -0
  133. package/dist/cjs/types/errors.js +22 -0
  134. package/dist/cjs/types/errors.js.map +1 -0
  135. package/dist/cjs/types/flow.d.ts +513 -0
  136. package/dist/cjs/types/flow.d.ts.map +1 -0
  137. package/dist/cjs/types/{route.js → flow.js} +2 -2
  138. package/dist/cjs/types/flow.js.map +1 -0
  139. package/dist/cjs/types/index.d.ts +7 -6
  140. package/dist/cjs/types/index.d.ts.map +1 -1
  141. package/dist/cjs/types/index.js +6 -2
  142. package/dist/cjs/types/index.js.map +1 -1
  143. package/dist/cjs/types/persistence.d.ts +11 -7
  144. package/dist/cjs/types/persistence.d.ts.map +1 -1
  145. package/dist/cjs/types/routing.d.ts +1 -1
  146. package/dist/cjs/types/routing.d.ts.map +1 -1
  147. package/dist/cjs/types/session.d.ts +24 -23
  148. package/dist/cjs/types/session.d.ts.map +1 -1
  149. package/dist/cjs/types/signals.d.ts +248 -0
  150. package/dist/cjs/types/signals.d.ts.map +1 -0
  151. package/dist/cjs/types/signals.js +11 -0
  152. package/dist/cjs/types/signals.js.map +1 -0
  153. package/dist/cjs/types/template.d.ts +2 -8
  154. package/dist/cjs/types/template.d.ts.map +1 -1
  155. package/dist/cjs/types/tool.d.ts +36 -29
  156. package/dist/cjs/types/tool.d.ts.map +1 -1
  157. package/dist/cjs/types/tool.js +1 -1
  158. package/dist/cjs/types/tool.js.map +1 -1
  159. package/dist/cjs/utils/condition.d.ts +7 -1
  160. package/dist/cjs/utils/condition.d.ts.map +1 -1
  161. package/dist/cjs/utils/condition.js.map +1 -1
  162. package/dist/cjs/utils/id.d.ts +13 -5
  163. package/dist/cjs/utils/id.d.ts.map +1 -1
  164. package/dist/cjs/utils/id.js +24 -10
  165. package/dist/cjs/utils/id.js.map +1 -1
  166. package/dist/cjs/utils/index.d.ts +2 -2
  167. package/dist/cjs/utils/index.d.ts.map +1 -1
  168. package/dist/cjs/utils/index.js +7 -3
  169. package/dist/cjs/utils/index.js.map +1 -1
  170. package/dist/cjs/utils/session.d.ts +44 -5
  171. package/dist/cjs/utils/session.d.ts.map +1 -1
  172. package/dist/cjs/utils/session.js +197 -38
  173. package/dist/cjs/utils/session.js.map +1 -1
  174. package/dist/constants/index.d.ts +0 -9
  175. package/dist/constants/index.d.ts.map +1 -1
  176. package/dist/constants/index.js +3 -9
  177. package/dist/constants/index.js.map +1 -1
  178. package/dist/core/Agent.d.ts +119 -153
  179. package/dist/core/Agent.d.ts.map +1 -1
  180. package/dist/core/Agent.js +472 -325
  181. package/dist/core/Agent.js.map +1 -1
  182. package/dist/core/AutoChainExecutor.d.ts +107 -0
  183. package/dist/core/AutoChainExecutor.d.ts.map +1 -0
  184. package/dist/core/AutoChainExecutor.js +293 -0
  185. package/dist/core/AutoChainExecutor.js.map +1 -0
  186. package/dist/core/BranchEvaluator.d.ts +54 -0
  187. package/dist/core/BranchEvaluator.d.ts.map +1 -0
  188. package/dist/core/BranchEvaluator.js +126 -0
  189. package/dist/core/BranchEvaluator.js.map +1 -0
  190. package/dist/core/DirectiveBus.d.ts +88 -0
  191. package/dist/core/DirectiveBus.d.ts.map +1 -0
  192. package/dist/core/DirectiveBus.js +192 -0
  193. package/dist/core/DirectiveBus.js.map +1 -0
  194. package/dist/core/DirectiveChainTracker.d.ts +49 -0
  195. package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
  196. package/dist/core/DirectiveChainTracker.js +117 -0
  197. package/dist/core/DirectiveChainTracker.js.map +1 -0
  198. package/dist/core/Flow.d.ts +186 -0
  199. package/dist/core/Flow.d.ts.map +1 -0
  200. package/dist/core/Flow.js +546 -0
  201. package/dist/core/Flow.js.map +1 -0
  202. package/dist/core/FlowRouter.d.ts +182 -0
  203. package/dist/core/FlowRouter.d.ts.map +1 -0
  204. package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
  205. package/dist/core/FlowRouter.js.map +1 -0
  206. package/dist/core/PersistenceManager.d.ts +2 -2
  207. package/dist/core/PersistenceManager.d.ts.map +1 -1
  208. package/dist/core/PersistenceManager.js +7 -7
  209. package/dist/core/PersistenceManager.js.map +1 -1
  210. package/dist/core/PromptComposer.d.ts +21 -8
  211. package/dist/core/PromptComposer.d.ts.map +1 -1
  212. package/dist/core/PromptComposer.js +183 -106
  213. package/dist/core/PromptComposer.js.map +1 -1
  214. package/dist/core/PromptSectionCache.d.ts +1 -1
  215. package/dist/core/PromptSectionCache.js +1 -1
  216. package/dist/core/ResponseEngine.d.ts +18 -8
  217. package/dist/core/ResponseEngine.d.ts.map +1 -1
  218. package/dist/core/ResponseEngine.js +38 -36
  219. package/dist/core/ResponseEngine.js.map +1 -1
  220. package/dist/core/ResponseModal.d.ts +73 -56
  221. package/dist/core/ResponseModal.d.ts.map +1 -1
  222. package/dist/core/ResponseModal.js +1193 -1016
  223. package/dist/core/ResponseModal.js.map +1 -1
  224. package/dist/core/ResponsePipeline.d.ts +124 -26
  225. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  226. package/dist/core/ResponsePipeline.js +509 -137
  227. package/dist/core/ResponsePipeline.js.map +1 -1
  228. package/dist/core/SignalEvaluator.d.ts +86 -0
  229. package/dist/core/SignalEvaluator.d.ts.map +1 -0
  230. package/dist/core/SignalEvaluator.js +326 -0
  231. package/dist/core/SignalEvaluator.js.map +1 -0
  232. package/dist/core/SignalProcessor.d.ts +152 -0
  233. package/dist/core/SignalProcessor.d.ts.map +1 -0
  234. package/dist/core/SignalProcessor.js +555 -0
  235. package/dist/core/SignalProcessor.js.map +1 -0
  236. package/dist/core/Step.d.ts +43 -32
  237. package/dist/core/Step.d.ts.map +1 -1
  238. package/dist/core/Step.js +220 -126
  239. package/dist/core/Step.js.map +1 -1
  240. package/dist/core/StreamingToolExecutor.d.ts +2 -2
  241. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  242. package/dist/core/StreamingToolExecutor.js.map +1 -1
  243. package/dist/core/ToolManager.d.ts +44 -13
  244. package/dist/core/ToolManager.d.ts.map +1 -1
  245. package/dist/core/ToolManager.js +174 -91
  246. package/dist/core/ToolManager.js.map +1 -1
  247. package/dist/core/createAgent.d.ts +35 -0
  248. package/dist/core/createAgent.d.ts.map +1 -0
  249. package/dist/core/createAgent.js +36 -0
  250. package/dist/core/createAgent.js.map +1 -0
  251. package/dist/core/flow-namespace.d.ts +49 -0
  252. package/dist/core/flow-namespace.d.ts.map +1 -0
  253. package/dist/core/flow-namespace.js +168 -0
  254. package/dist/core/flow-namespace.js.map +1 -0
  255. package/dist/index.d.ts +11 -14
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +9 -12
  258. package/dist/index.js.map +1 -1
  259. package/dist/types/agent.d.ts +183 -54
  260. package/dist/types/agent.d.ts.map +1 -1
  261. package/dist/types/agent.js +0 -6
  262. package/dist/types/agent.js.map +1 -1
  263. package/dist/types/ai.d.ts +3 -3
  264. package/dist/types/ai.d.ts.map +1 -1
  265. package/dist/types/errors.d.ts +15 -0
  266. package/dist/types/errors.d.ts.map +1 -0
  267. package/dist/types/errors.js +18 -0
  268. package/dist/types/errors.js.map +1 -0
  269. package/dist/types/flow.d.ts +513 -0
  270. package/dist/types/flow.d.ts.map +1 -0
  271. package/dist/types/flow.js +5 -0
  272. package/dist/types/flow.js.map +1 -0
  273. package/dist/types/index.d.ts +7 -6
  274. package/dist/types/index.d.ts.map +1 -1
  275. package/dist/types/index.js +4 -1
  276. package/dist/types/index.js.map +1 -1
  277. package/dist/types/persistence.d.ts +11 -7
  278. package/dist/types/persistence.d.ts.map +1 -1
  279. package/dist/types/routing.d.ts +1 -1
  280. package/dist/types/routing.d.ts.map +1 -1
  281. package/dist/types/session.d.ts +24 -23
  282. package/dist/types/session.d.ts.map +1 -1
  283. package/dist/types/signals.d.ts +248 -0
  284. package/dist/types/signals.d.ts.map +1 -0
  285. package/dist/types/signals.js +10 -0
  286. package/dist/types/signals.js.map +1 -0
  287. package/dist/types/template.d.ts +2 -8
  288. package/dist/types/template.d.ts.map +1 -1
  289. package/dist/types/tool.d.ts +36 -29
  290. package/dist/types/tool.d.ts.map +1 -1
  291. package/dist/types/tool.js +1 -1
  292. package/dist/types/tool.js.map +1 -1
  293. package/dist/utils/condition.d.ts +7 -1
  294. package/dist/utils/condition.d.ts.map +1 -1
  295. package/dist/utils/condition.js.map +1 -1
  296. package/dist/utils/id.d.ts +13 -5
  297. package/dist/utils/id.d.ts.map +1 -1
  298. package/dist/utils/id.js +22 -9
  299. package/dist/utils/id.js.map +1 -1
  300. package/dist/utils/index.d.ts +2 -2
  301. package/dist/utils/index.d.ts.map +1 -1
  302. package/dist/utils/index.js +2 -2
  303. package/dist/utils/index.js.map +1 -1
  304. package/dist/utils/session.d.ts +44 -5
  305. package/dist/utils/session.d.ts.map +1 -1
  306. package/dist/utils/session.js +193 -37
  307. package/dist/utils/session.js.map +1 -1
  308. package/docs/README.md +15 -202
  309. package/docs/concepts/architecture.md +281 -0
  310. package/docs/concepts/directives.md +400 -0
  311. package/docs/concepts/pipeline.md +399 -0
  312. package/docs/guides/branching.md +263 -0
  313. package/docs/guides/compaction.md +163 -0
  314. package/docs/guides/conditions.md +167 -0
  315. package/docs/guides/error-handling.md +176 -0
  316. package/docs/guides/flow-control.md +409 -0
  317. package/docs/guides/instructions.md +210 -0
  318. package/docs/guides/persistence.md +182 -0
  319. package/docs/guides/streaming.md +137 -0
  320. package/docs/migration/README.md +15 -0
  321. package/docs/migration/route-to-flow.md +560 -0
  322. package/docs/migration/v1-to-v2.md +909 -0
  323. package/docs/reference/adapters.md +481 -0
  324. package/docs/reference/branches.md +241 -0
  325. package/docs/reference/create-agent.md +186 -0
  326. package/docs/reference/directive.md +243 -0
  327. package/docs/reference/errors.md +122 -0
  328. package/docs/reference/flow.md +238 -0
  329. package/docs/reference/instruction.md +177 -0
  330. package/docs/reference/pre-directive.md +131 -0
  331. package/docs/reference/providers.md +227 -0
  332. package/docs/reference/signals.md +356 -0
  333. package/docs/reference/step.md +339 -0
  334. package/docs/reference/tool.md +269 -0
  335. package/docs/start/01-install.md +81 -0
  336. package/docs/start/02-first-agent.md +196 -0
  337. package/docs/start/03-collect-data.md +222 -0
  338. package/docs/start/04-add-tools.md +276 -0
  339. package/docs/start/05-go-to-production.md +216 -0
  340. package/examples/01-quickstart.ts +20 -0
  341. package/examples/02-data-extraction.ts +90 -0
  342. package/examples/03-tools.ts +136 -0
  343. package/examples/04-instructions.ts +100 -0
  344. package/examples/05-branching.ts +140 -0
  345. package/examples/06-flow-control.ts +103 -0
  346. package/examples/07-streaming.ts +69 -0
  347. package/examples/08-persistence.ts +98 -0
  348. package/examples/09-signals.ts +144 -0
  349. package/examples/tsconfig.json +30 -0
  350. package/package.json +2 -1
  351. package/src/adapters/MemoryAdapter.ts +3 -3
  352. package/src/adapters/MongoAdapter.ts +3 -3
  353. package/src/adapters/OpenSearchAdapter.ts +10 -8
  354. package/src/adapters/PostgreSQLAdapter.ts +26 -10
  355. package/src/adapters/PrismaAdapter.ts +6 -6
  356. package/src/adapters/RedisAdapter.ts +3 -3
  357. package/src/adapters/SQLiteAdapter.ts +31 -12
  358. package/src/constants/index.ts +2 -10
  359. package/src/core/Agent.ts +585 -374
  360. package/src/core/AutoChainExecutor.ts +440 -0
  361. package/src/core/BranchEvaluator.ts +167 -0
  362. package/src/core/DirectiveBus.ts +248 -0
  363. package/src/core/DirectiveChainTracker.ts +144 -0
  364. package/src/core/Flow.ts +666 -0
  365. package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
  366. package/src/core/PersistenceManager.ts +8 -8
  367. package/src/core/PromptComposer.ts +209 -140
  368. package/src/core/PromptSectionCache.ts +1 -1
  369. package/src/core/ResponseEngine.ts +61 -46
  370. package/src/core/ResponseModal.ts +1453 -1240
  371. package/src/core/ResponsePipeline.ts +655 -175
  372. package/src/core/SignalEvaluator.ts +420 -0
  373. package/src/core/SignalProcessor.ts +723 -0
  374. package/src/core/Step.ts +279 -176
  375. package/src/core/StreamingToolExecutor.ts +4 -4
  376. package/src/core/ToolManager.ts +200 -97
  377. package/src/core/createAgent.ts +40 -0
  378. package/src/core/flow-namespace.ts +219 -0
  379. package/src/index.ts +42 -36
  380. package/src/types/agent.ts +182 -53
  381. package/src/types/ai.ts +3 -3
  382. package/src/types/errors.ts +18 -0
  383. package/src/types/flow.ts +590 -0
  384. package/src/types/index.ts +43 -16
  385. package/src/types/persistence.ts +12 -8
  386. package/src/types/routing.ts +1 -1
  387. package/src/types/session.ts +26 -23
  388. package/src/types/signals.ts +321 -0
  389. package/src/types/template.ts +3 -11
  390. package/src/types/tool.ts +50 -42
  391. package/src/utils/condition.ts +13 -4
  392. package/src/utils/id.ts +27 -9
  393. package/src/utils/index.ts +6 -2
  394. package/src/utils/session.ts +238 -42
  395. package/dist/cjs/core/BatchExecutor.d.ts +0 -359
  396. package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
  397. package/dist/cjs/core/BatchExecutor.js +0 -861
  398. package/dist/cjs/core/BatchExecutor.js.map +0 -1
  399. package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
  400. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
  401. package/dist/cjs/core/BatchPromptBuilder.js +0 -223
  402. package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
  403. package/dist/cjs/core/Route.d.ts +0 -180
  404. package/dist/cjs/core/Route.d.ts.map +0 -1
  405. package/dist/cjs/core/Route.js +0 -542
  406. package/dist/cjs/core/Route.js.map +0 -1
  407. package/dist/cjs/core/RoutingEngine.d.ts +0 -185
  408. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  409. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  410. package/dist/cjs/types/route.d.ts +0 -336
  411. package/dist/cjs/types/route.d.ts.map +0 -1
  412. package/dist/cjs/types/route.js.map +0 -1
  413. package/dist/core/BatchExecutor.d.ts +0 -359
  414. package/dist/core/BatchExecutor.d.ts.map +0 -1
  415. package/dist/core/BatchExecutor.js +0 -856
  416. package/dist/core/BatchExecutor.js.map +0 -1
  417. package/dist/core/BatchPromptBuilder.d.ts +0 -89
  418. package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
  419. package/dist/core/BatchPromptBuilder.js +0 -219
  420. package/dist/core/BatchPromptBuilder.js.map +0 -1
  421. package/dist/core/Route.d.ts +0 -180
  422. package/dist/core/Route.d.ts.map +0 -1
  423. package/dist/core/Route.js +0 -538
  424. package/dist/core/Route.js.map +0 -1
  425. package/dist/core/RoutingEngine.d.ts +0 -185
  426. package/dist/core/RoutingEngine.d.ts.map +0 -1
  427. package/dist/core/RoutingEngine.js.map +0 -1
  428. package/dist/types/route.d.ts +0 -336
  429. package/dist/types/route.d.ts.map +0 -1
  430. package/dist/types/route.js +0 -5
  431. package/dist/types/route.js.map +0 -1
  432. package/docs/CONTRIBUTING.md +0 -521
  433. package/docs/api/README.md +0 -3299
  434. package/docs/api/overview.md +0 -1410
  435. package/docs/architecture/data-extraction-flow.md +0 -360
  436. package/docs/architecture/multi-step-execution.md +0 -277
  437. package/docs/core/agent/README.md +0 -938
  438. package/docs/core/agent/context-management.md +0 -796
  439. package/docs/core/agent/rules-and-prohibitions.md +0 -113
  440. package/docs/core/agent/session-management.md +0 -693
  441. package/docs/core/ai-integration/prompt-composition.md +0 -355
  442. package/docs/core/ai-integration/providers.md +0 -515
  443. package/docs/core/ai-integration/response-processing.md +0 -433
  444. package/docs/core/conversation-flows/data-collection.md +0 -772
  445. package/docs/core/conversation-flows/route-dsl.md +0 -509
  446. package/docs/core/conversation-flows/routes.md +0 -249
  447. package/docs/core/conversation-flows/step-transitions.md +0 -731
  448. package/docs/core/conversation-flows/steps.md +0 -268
  449. package/docs/core/error-handling.md +0 -830
  450. package/docs/core/persistence/adapters.md +0 -255
  451. package/docs/core/persistence/session-storage.md +0 -656
  452. package/docs/core/routing/intelligent-routing.md +0 -470
  453. package/docs/core/tools/enhanced-tool.md +0 -186
  454. package/docs/core/tools/streaming-execution.md +0 -161
  455. package/docs/core/tools/tool-definition.md +0 -970
  456. package/docs/core/tools/tool-scoping.md +0 -819
  457. package/docs/guides/advanced-patterns/publishing.md +0 -186
  458. package/docs/guides/context-compaction.md +0 -96
  459. package/docs/guides/error-handling-patterns.md +0 -578
  460. package/docs/guides/getting-started/README.md +0 -795
  461. package/docs/guides/migration/README.md +0 -101
  462. package/docs/guides/migration/flexible-routing-conditions.md +0 -375
  463. package/docs/guides/migration/multi-step-execution.md +0 -393
  464. package/docs/guides/migration/response-modal-refactor.md +0 -518
  465. package/docs/guides/prompt-optimization.md +0 -164
  466. package/examples/advanced-patterns/context-compaction.ts +0 -223
  467. package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
  468. package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
  469. package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
  470. package/examples/advanced-patterns/streaming-responses.ts +0 -656
  471. package/examples/ai-providers/anthropic-integration.ts +0 -388
  472. package/examples/ai-providers/openai-integration.ts +0 -228
  473. package/examples/condition-patterns/function-only-conditions.ts +0 -365
  474. package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
  475. package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
  476. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  477. package/examples/condition-patterns/string-only-conditions.ts +0 -296
  478. package/examples/conversation-flows/completion-transitions.ts +0 -318
  479. package/examples/core-concepts/basic-agent.ts +0 -503
  480. package/examples/core-concepts/modern-streaming-api.ts +0 -309
  481. package/examples/core-concepts/schema-driven-extraction.ts +0 -332
  482. package/examples/core-concepts/session-management.ts +0 -494
  483. package/examples/integrations/database-integration.ts +0 -631
  484. package/examples/integrations/healthcare-integration.ts +0 -595
  485. package/examples/integrations/search-integration.ts +0 -530
  486. package/examples/integrations/server-session-management.ts +0 -307
  487. package/examples/persistence/custom-adapter.ts +0 -526
  488. package/examples/persistence/database-persistence.ts +0 -583
  489. package/examples/persistence/memory-sessions.ts +0 -495
  490. package/examples/persistence/prisma-schema.example.prisma +0 -74
  491. package/examples/persistence/redis-persistence.ts +0 -488
  492. package/examples/tools/basic-tools.ts +0 -765
  493. package/examples/tools/data-enrichment-tools.ts +0 -593
  494. package/examples/tools/enhanced-tool-metadata.ts +0 -268
  495. package/examples/tools/streaming-tool-execution.ts +0 -283
  496. package/src/core/BatchExecutor.ts +0 -1187
  497. package/src/core/BatchPromptBuilder.ts +0 -299
  498. package/src/core/Route.ts +0 -678
  499. package/src/types/route.ts +0 -392
@@ -1,468 +0,0 @@
1
- /**
2
- * Route skipIf Patterns Example
3
- *
4
- * This example demonstrates using skipIf conditions on routes for dynamic
5
- * route exclusion. Route skipIf allows you to prevent entire routes from
6
- * being considered based on context, data, or business logic.
7
- *
8
- * Key concepts:
9
- * - Route skipIf prevents routes from being activated
10
- * - Uses OR logic (skip if ANY condition is true)
11
- * - Can use strings, functions, or mixed arrays
12
- * - Perfect for business rules and access control
13
- * - Evaluated before route when conditions
14
- */
15
-
16
- import {
17
- Agent,
18
- GeminiProvider,
19
- } from "../../src/index";
20
-
21
- // Context for a banking system
22
- interface BankingContext {
23
- customerId: string;
24
- accountType: "basic" | "premium" | "business" | "private";
25
- accountStatus: "active" | "suspended" | "closed" | "pending";
26
- creditScore: number;
27
- accountBalance: number;
28
- hasActiveLoans: boolean;
29
- region: string;
30
- kycVerified: boolean;
31
- }
32
-
33
- // Banking transaction data
34
- interface BankingData {
35
- transactionType?: "transfer" | "loan" | "investment" | "card" | "mortgage";
36
- amount?: number;
37
- recipientAccount?: string;
38
- loanAmount?: number;
39
- investmentType?: string;
40
- approved?: boolean;
41
- requiresApproval?: boolean;
42
- }
43
-
44
- const bankingSchema = {
45
- type: "object",
46
- properties: {
47
- transactionType: { type: "string", enum: ["transfer", "loan", "investment", "card", "mortgage"] },
48
- amount: { type: "number", minimum: 0 },
49
- recipientAccount: { type: "string" },
50
- loanAmount: { type: "number", minimum: 0 },
51
- investmentType: { type: "string" },
52
- approved: { type: "boolean" },
53
- requiresApproval: { type: "boolean" },
54
- },
55
- };
56
-
57
- // Create agent with route skipIf examples
58
- const agent = new Agent<BankingContext, BankingData>({
59
- name: "BankingBot",
60
- description: "A banking bot demonstrating route skipIf patterns",
61
- provider: new GeminiProvider({
62
- apiKey: process.env.GEMINI_API_KEY || "demo-key",
63
- model: "models/gemini-2.5-flash",
64
- }),
65
- context: {
66
- customerId: "cust_12345",
67
- accountType: "premium",
68
- accountStatus: "active",
69
- creditScore: 750,
70
- accountBalance: 15000,
71
- hasActiveLoans: false,
72
- region: "US",
73
- kycVerified: true,
74
- },
75
- schema: bankingSchema,
76
- });
77
-
78
- // Route 1: Premium Services - String-only skipIf
79
- agent.createRoute({
80
- title: "Premium Banking Services",
81
- description: "Exclusive services for premium customers",
82
- when: "Customer asks about premium services, investment options, or wealth management",
83
- // String-only skipIf - AI understands account restrictions
84
- skipIf: "Customer account is not premium or has restrictions that prevent premium services",
85
- steps: [
86
- {
87
- id: "premium_welcome",
88
- description: "Welcome premium customer",
89
- prompt: "Welcome to our premium banking services! I can help you with investments, wealth management, and exclusive products.",
90
- },
91
- ],
92
- });
93
-
94
- // Route 2: Loan Services - Function-only skipIf
95
- agent.createRoute({
96
- title: "Loan Services",
97
- description: "Handle loan applications and inquiries",
98
- when: "Customer wants to apply for a loan or asks about lending options",
99
- // Function-only skipIf - programmatic eligibility check
100
- skipIf: (ctx) => {
101
- // Skip if account is not active, credit score too low, or already has active loans
102
- return ctx.context?.accountStatus !== "active" ||
103
- (ctx.context?.creditScore || 0) < 600 ||
104
- ctx.context?.hasActiveLoans === true;
105
- },
106
- requiredFields: ["loanAmount"],
107
- steps: [
108
- {
109
- id: "loan_application",
110
- description: "Process loan application",
111
- prompt: "I'd be happy to help you with a loan application. What amount are you looking to borrow?",
112
- collect: ["loanAmount"],
113
- },
114
- ],
115
- });
116
-
117
- // Route 3: Investment Services - Mixed array skipIf
118
- agent.createRoute({
119
- title: "Investment Services",
120
- description: "Investment and wealth management services",
121
- when: [
122
- "Customer asks about investments, stocks, bonds, or portfolio management",
123
- (ctx) => ctx.context?.accountType === "premium" || ctx.context?.accountType === "private"
124
- ],
125
- // Mixed array skipIf - AI context + multiple programmatic checks
126
- skipIf: [
127
- "Customer account has restrictions or insufficient funds for investments",
128
- (ctx) => ctx.context?.accountStatus !== "active",
129
- (ctx) => (ctx.context?.accountBalance || 0) < 10000,
130
- (ctx) => ctx.context?.kycVerified !== true
131
- ],
132
- optionalFields: ["investmentType", "amount"],
133
- steps: [
134
- {
135
- id: "investment_consultation",
136
- description: "Provide investment consultation",
137
- prompt: "I can help you explore investment opportunities. What type of investments interest you?",
138
- collect: ["investmentType"],
139
- },
140
- ],
141
- });
142
-
143
- // Route 4: Large Transfers - Complex mixed skipIf
144
- agent.createRoute({
145
- title: "Large Money Transfers",
146
- description: "Handle large money transfers with enhanced security",
147
- when: [
148
- "Customer wants to make a large money transfer",
149
- (ctx) => (ctx.data?.amount || 0) > 10000
150
- ],
151
- // Complex mixed skipIf with multiple business rules
152
- skipIf: [
153
- "Account has restrictions, insufficient funds, or compliance issues",
154
- (ctx) => ctx.context?.accountStatus === "suspended" || ctx.context?.accountStatus === "closed",
155
- (ctx) => (ctx.context?.accountBalance || 0) < (ctx.data?.amount || 0),
156
- (ctx) => ctx.context?.kycVerified !== true,
157
- (ctx) => ctx.context?.region === "restricted_region" // Compliance restriction
158
- ],
159
- requiredFields: ["amount", "recipientAccount"],
160
- steps: [
161
- {
162
- id: "verify_transfer",
163
- description: "Verify large transfer details",
164
- prompt: "For large transfers, I need to verify some details for security. What's the recipient account and transfer amount?",
165
- collect: ["amount", "recipientAccount"],
166
- },
167
- {
168
- id: "security_check",
169
- description: "Perform additional security checks",
170
- prompt: "I'm performing additional security verification for this large transfer. This may take a moment.",
171
- requires: ["amount", "recipientAccount"],
172
- },
173
- ],
174
- });
175
-
176
- // Route 5: Business Banking - Account type skipIf
177
- agent.createRoute({
178
- title: "Business Banking Services",
179
- description: "Services specifically for business accounts",
180
- when: "Customer asks about business banking, commercial loans, or business services",
181
- // Function-only skipIf - account type restriction
182
- skipIf: (ctx) => ctx.context?.accountType !== "business",
183
- steps: [
184
- {
185
- id: "business_services",
186
- description: "Present business banking options",
187
- prompt: "I can help you with business banking services including commercial loans, merchant services, and business accounts.",
188
- },
189
- ],
190
- });
191
-
192
- // Route 6: Credit Card Services - Multiple restriction skipIf
193
- agent.createRoute({
194
- title: "Credit Card Services",
195
- description: "Credit card applications and management",
196
- when: "Customer asks about credit cards, card applications, or card services",
197
- // Mixed skipIf with multiple eligibility criteria
198
- skipIf: [
199
- "Customer not eligible for credit card services due to account or credit restrictions",
200
- (ctx) => ctx.context?.accountStatus !== "active",
201
- (ctx) => (ctx.context?.creditScore || 0) < 650,
202
- (ctx) => ctx.context?.kycVerified !== true,
203
- (ctx) => ctx.context?.hasActiveLoans === true && (ctx.context?.creditScore || 0) < 700
204
- ],
205
- steps: [
206
- {
207
- id: "card_application",
208
- description: "Process credit card application",
209
- prompt: "I can help you apply for a credit card. Based on your account, you're eligible for our premium card options.",
210
- },
211
- ],
212
- });
213
-
214
- // Route 7: Mortgage Services - Complex eligibility skipIf
215
- agent.createRoute({
216
- title: "Mortgage Services",
217
- description: "Mortgage applications and home loan services",
218
- when: [
219
- "Customer asks about mortgages, home loans, or property financing",
220
- (ctx) => ctx.helpers.lastMessageContains(["mortgage", "home loan", "property", "house"])
221
- ],
222
- // Complex skipIf with comprehensive eligibility check
223
- skipIf: [
224
- "Customer not eligible for mortgage services due to various restrictions",
225
- (ctx) => ctx.context?.accountStatus !== "active",
226
- (ctx) => (ctx.context?.creditScore || 0) < 620, // Minimum credit score for mortgages
227
- (ctx) => (ctx.context?.accountBalance || 0) < 50000, // Minimum down payment capability
228
- (ctx) => ctx.context?.hasActiveLoans === true && (ctx.context?.creditScore || 0) < 720,
229
- (ctx) => ctx.context?.kycVerified !== true,
230
- (ctx) => ctx.context?.region === "restricted_mortgage_region"
231
- ],
232
- requiredFields: ["loanAmount"],
233
- steps: [
234
- {
235
- id: "mortgage_consultation",
236
- description: "Provide mortgage consultation",
237
- prompt: "I can help you with mortgage options. What's your target loan amount for your home purchase?",
238
- collect: ["loanAmount"],
239
- },
240
- ],
241
- });
242
-
243
- // Route 8: Account Recovery - Status-based skipIf
244
- agent.createRoute({
245
- title: "Account Recovery",
246
- description: "Help customers recover suspended or restricted accounts",
247
- when: "Customer has account issues, restrictions, or needs account recovery help",
248
- // Function-only skipIf - only for accounts that need recovery
249
- skipIf: (ctx) => ctx.context?.accountStatus === "active" && ctx.context?.kycVerified === true,
250
- steps: [
251
- {
252
- id: "recovery_assistance",
253
- description: "Provide account recovery assistance",
254
- prompt: "I can help you resolve account issues. Let me check what steps are needed to restore full access to your account.",
255
- },
256
- ],
257
- });
258
-
259
- // Route 9: General Banking - Fallback with minimal skipIf
260
- agent.createRoute({
261
- title: "General Banking Support",
262
- description: "General banking questions and support",
263
- when: "Customer has general banking questions or needs basic support",
264
- // Minimal skipIf - only skip if account is completely closed
265
- skipIf: (ctx) => ctx.context?.accountStatus === "closed",
266
- steps: [
267
- {
268
- id: "general_support",
269
- description: "Provide general banking support",
270
- prompt: "I'm here to help with your banking needs. What can I assist you with today?",
271
- },
272
- ],
273
- });
274
-
275
- // Demonstration function
276
- async function demonstrateRouteSkipIfPatterns() {
277
- console.log("=== Route skipIf Patterns Demo ===\n");
278
- console.log("This demo shows how route skipIf conditions prevent routes from being activated.\n");
279
-
280
- const testScenarios = [
281
- {
282
- name: "Premium Customer - Premium Services",
283
- context: {
284
- accountType: "premium" as const,
285
- accountStatus: "active" as const,
286
- creditScore: 800,
287
- kycVerified: true
288
- },
289
- message: "I'm interested in your premium investment services",
290
- expectedRoute: "Premium Banking Services",
291
- shouldSkip: false
292
- },
293
- {
294
- name: "Basic Customer - Premium Services (Should Skip)",
295
- context: {
296
- accountType: "basic" as const,
297
- accountStatus: "active" as const,
298
- creditScore: 700,
299
- kycVerified: true
300
- },
301
- message: "I want premium investment services",
302
- expectedRoute: "General Banking Support", // Should fallback
303
- shouldSkip: true
304
- },
305
- {
306
- name: "Good Credit - Loan Services",
307
- context: {
308
- accountType: "basic" as const,
309
- accountStatus: "active" as const,
310
- creditScore: 750,
311
- hasActiveLoans: false,
312
- kycVerified: true
313
- },
314
- message: "I'd like to apply for a personal loan",
315
- expectedRoute: "Loan Services",
316
- shouldSkip: false
317
- },
318
- {
319
- name: "Poor Credit - Loan Services (Should Skip)",
320
- context: {
321
- accountType: "basic" as const,
322
- accountStatus: "active" as const,
323
- creditScore: 550,
324
- hasActiveLoans: false,
325
- kycVerified: true
326
- },
327
- message: "I need a loan",
328
- expectedRoute: "General Banking Support", // Should fallback
329
- shouldSkip: true
330
- },
331
- {
332
- name: "High Balance - Investment Services",
333
- context: {
334
- accountType: "premium" as const,
335
- accountStatus: "active" as const,
336
- accountBalance: 50000,
337
- kycVerified: true
338
- },
339
- message: "I want to invest in stocks",
340
- expectedRoute: "Investment Services",
341
- shouldSkip: false
342
- },
343
- {
344
- name: "Low Balance - Investment Services (Should Skip)",
345
- context: {
346
- accountType: "premium" as const,
347
- accountStatus: "active" as const,
348
- accountBalance: 5000,
349
- kycVerified: true
350
- },
351
- message: "I want to invest in stocks",
352
- expectedRoute: "General Banking Support", // Should fallback
353
- shouldSkip: true
354
- },
355
- {
356
- name: "Business Account - Business Services",
357
- context: {
358
- accountType: "business" as const,
359
- accountStatus: "active" as const,
360
- kycVerified: true
361
- },
362
- message: "I need business banking services",
363
- expectedRoute: "Business Banking Services",
364
- shouldSkip: false
365
- },
366
- {
367
- name: "Personal Account - Business Services (Should Skip)",
368
- context: {
369
- accountType: "basic" as const,
370
- accountStatus: "active" as const,
371
- kycVerified: true
372
- },
373
- message: "I need business banking services",
374
- expectedRoute: "General Banking Support", // Should fallback
375
- shouldSkip: true
376
- },
377
- {
378
- name: "Suspended Account - Account Recovery",
379
- context: {
380
- accountType: "basic" as const,
381
- accountStatus: "suspended" as const,
382
- kycVerified: false
383
- },
384
- message: "My account is suspended, I need help",
385
- expectedRoute: "Account Recovery",
386
- shouldSkip: false
387
- },
388
- ];
389
-
390
- for (const scenario of testScenarios) {
391
- console.log(`🔍 Testing: ${scenario.name}`);
392
- console.log(`📝 Message: "${scenario.message}"`);
393
- console.log(`🎯 Should Skip Target Route: ${scenario.shouldSkip}`);
394
-
395
- // Create agent with specific context for this scenario
396
- const testAgent = new Agent<BankingContext, BankingData>({
397
- name: "TestBankBot",
398
- description: "Test bot for route skipIf patterns",
399
- provider: new GeminiProvider({
400
- apiKey: process.env.GEMINI_API_KEY || "demo-key",
401
- model: "models/gemini-2.5-flash",
402
- }),
403
- context: {
404
- customerId: "test_customer",
405
- accountBalance: 10000,
406
- hasActiveLoans: false,
407
- region: "US",
408
- ...scenario.context,
409
- } as BankingContext,
410
- schema: bankingSchema,
411
- });
412
-
413
- // Copy routes from main agent using the new toOptions() method
414
- agent.getRoutes().forEach(route => {
415
- testAgent.createRoute(route.toOptions());
416
- });
417
-
418
- try {
419
- const response = await testAgent.respond({
420
- history: [
421
- {
422
- role: "user",
423
- content: scenario.message,
424
- name: "Customer",
425
- },
426
- ],
427
- });
428
-
429
- const actualRoute = response.session?.currentRoute?.title || "No route";
430
- console.log(`🎯 Routed to: ${actualRoute}`);
431
- console.log(`✅ Expected: ${scenario.expectedRoute}`);
432
-
433
- if (scenario.shouldSkip) {
434
- console.log(`✅ Skip Logic: Route was correctly skipped`);
435
- } else {
436
- console.log(`✅ Skip Logic: Route was correctly allowed`);
437
- }
438
-
439
- console.log(`🤖 Response: ${response.message.substring(0, 100)}...`);
440
- console.log();
441
- } catch (error) {
442
- console.log(`❌ Error: ${error}`);
443
- console.log();
444
- }
445
- }
446
-
447
- console.log("💡 Key Benefits of Route skipIf Patterns:");
448
- console.log(" - Dynamic route exclusion based on business rules");
449
- console.log(" - Access control and eligibility enforcement");
450
- console.log(" - Prevents inappropriate routes from being considered");
451
- console.log(" - Supports complex business logic with mixed conditions");
452
- console.log(" - Evaluated before route when conditions for efficiency");
453
- }
454
-
455
- // Run demonstration
456
- async function main() {
457
- try {
458
- await demonstrateRouteSkipIfPatterns();
459
- } catch (error) {
460
- console.error("Error:", error);
461
- }
462
- }
463
-
464
- if (import.meta.url === `file://${process.argv[1]}`) {
465
- main().catch(console.error);
466
- }
467
-
468
- export { agent, demonstrateRouteSkipIfPatterns };