@falai/agent 1.2.7 → 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 (508) 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 +1196 -1015
  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 +524 -134
  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/providers/GeminiProvider.d.ts +3 -3
  126. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  127. package/dist/cjs/providers/GeminiProvider.js +16 -14
  128. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  129. package/dist/cjs/types/agent.d.ts +183 -54
  130. package/dist/cjs/types/agent.d.ts.map +1 -1
  131. package/dist/cjs/types/agent.js +0 -6
  132. package/dist/cjs/types/agent.js.map +1 -1
  133. package/dist/cjs/types/ai.d.ts +3 -3
  134. package/dist/cjs/types/ai.d.ts.map +1 -1
  135. package/dist/cjs/types/errors.d.ts +15 -0
  136. package/dist/cjs/types/errors.d.ts.map +1 -0
  137. package/dist/cjs/types/errors.js +22 -0
  138. package/dist/cjs/types/errors.js.map +1 -0
  139. package/dist/cjs/types/flow.d.ts +513 -0
  140. package/dist/cjs/types/flow.d.ts.map +1 -0
  141. package/dist/cjs/types/{route.js → flow.js} +2 -2
  142. package/dist/cjs/types/flow.js.map +1 -0
  143. package/dist/cjs/types/index.d.ts +7 -6
  144. package/dist/cjs/types/index.d.ts.map +1 -1
  145. package/dist/cjs/types/index.js +6 -2
  146. package/dist/cjs/types/index.js.map +1 -1
  147. package/dist/cjs/types/persistence.d.ts +11 -7
  148. package/dist/cjs/types/persistence.d.ts.map +1 -1
  149. package/dist/cjs/types/routing.d.ts +1 -1
  150. package/dist/cjs/types/routing.d.ts.map +1 -1
  151. package/dist/cjs/types/session.d.ts +24 -23
  152. package/dist/cjs/types/session.d.ts.map +1 -1
  153. package/dist/cjs/types/signals.d.ts +248 -0
  154. package/dist/cjs/types/signals.d.ts.map +1 -0
  155. package/dist/cjs/types/signals.js +11 -0
  156. package/dist/cjs/types/signals.js.map +1 -0
  157. package/dist/cjs/types/template.d.ts +2 -8
  158. package/dist/cjs/types/template.d.ts.map +1 -1
  159. package/dist/cjs/types/tool.d.ts +36 -29
  160. package/dist/cjs/types/tool.d.ts.map +1 -1
  161. package/dist/cjs/types/tool.js +1 -1
  162. package/dist/cjs/types/tool.js.map +1 -1
  163. package/dist/cjs/utils/condition.d.ts +7 -1
  164. package/dist/cjs/utils/condition.d.ts.map +1 -1
  165. package/dist/cjs/utils/condition.js.map +1 -1
  166. package/dist/cjs/utils/id.d.ts +13 -5
  167. package/dist/cjs/utils/id.d.ts.map +1 -1
  168. package/dist/cjs/utils/id.js +24 -10
  169. package/dist/cjs/utils/id.js.map +1 -1
  170. package/dist/cjs/utils/index.d.ts +2 -2
  171. package/dist/cjs/utils/index.d.ts.map +1 -1
  172. package/dist/cjs/utils/index.js +7 -3
  173. package/dist/cjs/utils/index.js.map +1 -1
  174. package/dist/cjs/utils/session.d.ts +44 -5
  175. package/dist/cjs/utils/session.d.ts.map +1 -1
  176. package/dist/cjs/utils/session.js +197 -38
  177. package/dist/cjs/utils/session.js.map +1 -1
  178. package/dist/constants/index.d.ts +0 -9
  179. package/dist/constants/index.d.ts.map +1 -1
  180. package/dist/constants/index.js +3 -9
  181. package/dist/constants/index.js.map +1 -1
  182. package/dist/core/Agent.d.ts +119 -153
  183. package/dist/core/Agent.d.ts.map +1 -1
  184. package/dist/core/Agent.js +472 -325
  185. package/dist/core/Agent.js.map +1 -1
  186. package/dist/core/AutoChainExecutor.d.ts +107 -0
  187. package/dist/core/AutoChainExecutor.d.ts.map +1 -0
  188. package/dist/core/AutoChainExecutor.js +293 -0
  189. package/dist/core/AutoChainExecutor.js.map +1 -0
  190. package/dist/core/BranchEvaluator.d.ts +54 -0
  191. package/dist/core/BranchEvaluator.d.ts.map +1 -0
  192. package/dist/core/BranchEvaluator.js +126 -0
  193. package/dist/core/BranchEvaluator.js.map +1 -0
  194. package/dist/core/DirectiveBus.d.ts +88 -0
  195. package/dist/core/DirectiveBus.d.ts.map +1 -0
  196. package/dist/core/DirectiveBus.js +192 -0
  197. package/dist/core/DirectiveBus.js.map +1 -0
  198. package/dist/core/DirectiveChainTracker.d.ts +49 -0
  199. package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
  200. package/dist/core/DirectiveChainTracker.js +117 -0
  201. package/dist/core/DirectiveChainTracker.js.map +1 -0
  202. package/dist/core/Flow.d.ts +186 -0
  203. package/dist/core/Flow.d.ts.map +1 -0
  204. package/dist/core/Flow.js +546 -0
  205. package/dist/core/Flow.js.map +1 -0
  206. package/dist/core/FlowRouter.d.ts +182 -0
  207. package/dist/core/FlowRouter.d.ts.map +1 -0
  208. package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
  209. package/dist/core/FlowRouter.js.map +1 -0
  210. package/dist/core/PersistenceManager.d.ts +2 -2
  211. package/dist/core/PersistenceManager.d.ts.map +1 -1
  212. package/dist/core/PersistenceManager.js +7 -7
  213. package/dist/core/PersistenceManager.js.map +1 -1
  214. package/dist/core/PromptComposer.d.ts +21 -8
  215. package/dist/core/PromptComposer.d.ts.map +1 -1
  216. package/dist/core/PromptComposer.js +183 -106
  217. package/dist/core/PromptComposer.js.map +1 -1
  218. package/dist/core/PromptSectionCache.d.ts +1 -1
  219. package/dist/core/PromptSectionCache.js +1 -1
  220. package/dist/core/ResponseEngine.d.ts +18 -8
  221. package/dist/core/ResponseEngine.d.ts.map +1 -1
  222. package/dist/core/ResponseEngine.js +38 -36
  223. package/dist/core/ResponseEngine.js.map +1 -1
  224. package/dist/core/ResponseModal.d.ts +73 -56
  225. package/dist/core/ResponseModal.d.ts.map +1 -1
  226. package/dist/core/ResponseModal.js +1198 -1017
  227. package/dist/core/ResponseModal.js.map +1 -1
  228. package/dist/core/ResponsePipeline.d.ts +124 -26
  229. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  230. package/dist/core/ResponsePipeline.js +524 -135
  231. package/dist/core/ResponsePipeline.js.map +1 -1
  232. package/dist/core/SignalEvaluator.d.ts +86 -0
  233. package/dist/core/SignalEvaluator.d.ts.map +1 -0
  234. package/dist/core/SignalEvaluator.js +326 -0
  235. package/dist/core/SignalEvaluator.js.map +1 -0
  236. package/dist/core/SignalProcessor.d.ts +152 -0
  237. package/dist/core/SignalProcessor.d.ts.map +1 -0
  238. package/dist/core/SignalProcessor.js +555 -0
  239. package/dist/core/SignalProcessor.js.map +1 -0
  240. package/dist/core/Step.d.ts +43 -32
  241. package/dist/core/Step.d.ts.map +1 -1
  242. package/dist/core/Step.js +220 -126
  243. package/dist/core/Step.js.map +1 -1
  244. package/dist/core/StreamingToolExecutor.d.ts +2 -2
  245. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  246. package/dist/core/StreamingToolExecutor.js.map +1 -1
  247. package/dist/core/ToolManager.d.ts +44 -13
  248. package/dist/core/ToolManager.d.ts.map +1 -1
  249. package/dist/core/ToolManager.js +174 -91
  250. package/dist/core/ToolManager.js.map +1 -1
  251. package/dist/core/createAgent.d.ts +35 -0
  252. package/dist/core/createAgent.d.ts.map +1 -0
  253. package/dist/core/createAgent.js +36 -0
  254. package/dist/core/createAgent.js.map +1 -0
  255. package/dist/core/flow-namespace.d.ts +49 -0
  256. package/dist/core/flow-namespace.d.ts.map +1 -0
  257. package/dist/core/flow-namespace.js +168 -0
  258. package/dist/core/flow-namespace.js.map +1 -0
  259. package/dist/index.d.ts +11 -14
  260. package/dist/index.d.ts.map +1 -1
  261. package/dist/index.js +9 -12
  262. package/dist/index.js.map +1 -1
  263. package/dist/providers/GeminiProvider.d.ts +3 -3
  264. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  265. package/dist/providers/GeminiProvider.js +16 -14
  266. package/dist/providers/GeminiProvider.js.map +1 -1
  267. package/dist/types/agent.d.ts +183 -54
  268. package/dist/types/agent.d.ts.map +1 -1
  269. package/dist/types/agent.js +0 -6
  270. package/dist/types/agent.js.map +1 -1
  271. package/dist/types/ai.d.ts +3 -3
  272. package/dist/types/ai.d.ts.map +1 -1
  273. package/dist/types/errors.d.ts +15 -0
  274. package/dist/types/errors.d.ts.map +1 -0
  275. package/dist/types/errors.js +18 -0
  276. package/dist/types/errors.js.map +1 -0
  277. package/dist/types/flow.d.ts +513 -0
  278. package/dist/types/flow.d.ts.map +1 -0
  279. package/dist/types/flow.js +5 -0
  280. package/dist/types/flow.js.map +1 -0
  281. package/dist/types/index.d.ts +7 -6
  282. package/dist/types/index.d.ts.map +1 -1
  283. package/dist/types/index.js +4 -1
  284. package/dist/types/index.js.map +1 -1
  285. package/dist/types/persistence.d.ts +11 -7
  286. package/dist/types/persistence.d.ts.map +1 -1
  287. package/dist/types/routing.d.ts +1 -1
  288. package/dist/types/routing.d.ts.map +1 -1
  289. package/dist/types/session.d.ts +24 -23
  290. package/dist/types/session.d.ts.map +1 -1
  291. package/dist/types/signals.d.ts +248 -0
  292. package/dist/types/signals.d.ts.map +1 -0
  293. package/dist/types/signals.js +10 -0
  294. package/dist/types/signals.js.map +1 -0
  295. package/dist/types/template.d.ts +2 -8
  296. package/dist/types/template.d.ts.map +1 -1
  297. package/dist/types/tool.d.ts +36 -29
  298. package/dist/types/tool.d.ts.map +1 -1
  299. package/dist/types/tool.js +1 -1
  300. package/dist/types/tool.js.map +1 -1
  301. package/dist/utils/condition.d.ts +7 -1
  302. package/dist/utils/condition.d.ts.map +1 -1
  303. package/dist/utils/condition.js.map +1 -1
  304. package/dist/utils/id.d.ts +13 -5
  305. package/dist/utils/id.d.ts.map +1 -1
  306. package/dist/utils/id.js +22 -9
  307. package/dist/utils/id.js.map +1 -1
  308. package/dist/utils/index.d.ts +2 -2
  309. package/dist/utils/index.d.ts.map +1 -1
  310. package/dist/utils/index.js +2 -2
  311. package/dist/utils/index.js.map +1 -1
  312. package/dist/utils/session.d.ts +44 -5
  313. package/dist/utils/session.d.ts.map +1 -1
  314. package/dist/utils/session.js +193 -37
  315. package/dist/utils/session.js.map +1 -1
  316. package/docs/README.md +15 -202
  317. package/docs/concepts/architecture.md +281 -0
  318. package/docs/concepts/directives.md +400 -0
  319. package/docs/concepts/pipeline.md +399 -0
  320. package/docs/guides/branching.md +263 -0
  321. package/docs/guides/compaction.md +163 -0
  322. package/docs/guides/conditions.md +167 -0
  323. package/docs/guides/error-handling.md +176 -0
  324. package/docs/guides/flow-control.md +409 -0
  325. package/docs/guides/instructions.md +210 -0
  326. package/docs/guides/persistence.md +182 -0
  327. package/docs/guides/streaming.md +137 -0
  328. package/docs/migration/README.md +15 -0
  329. package/docs/migration/route-to-flow.md +560 -0
  330. package/docs/migration/v1-to-v2.md +909 -0
  331. package/docs/reference/adapters.md +481 -0
  332. package/docs/reference/branches.md +241 -0
  333. package/docs/reference/create-agent.md +186 -0
  334. package/docs/reference/directive.md +243 -0
  335. package/docs/reference/errors.md +122 -0
  336. package/docs/reference/flow.md +238 -0
  337. package/docs/reference/instruction.md +177 -0
  338. package/docs/reference/pre-directive.md +131 -0
  339. package/docs/reference/providers.md +227 -0
  340. package/docs/reference/signals.md +356 -0
  341. package/docs/reference/step.md +339 -0
  342. package/docs/reference/tool.md +269 -0
  343. package/docs/start/01-install.md +81 -0
  344. package/docs/start/02-first-agent.md +196 -0
  345. package/docs/start/03-collect-data.md +222 -0
  346. package/docs/start/04-add-tools.md +276 -0
  347. package/docs/start/05-go-to-production.md +216 -0
  348. package/examples/01-quickstart.ts +20 -0
  349. package/examples/02-data-extraction.ts +90 -0
  350. package/examples/03-tools.ts +136 -0
  351. package/examples/04-instructions.ts +100 -0
  352. package/examples/05-branching.ts +140 -0
  353. package/examples/06-flow-control.ts +103 -0
  354. package/examples/07-streaming.ts +69 -0
  355. package/examples/08-persistence.ts +98 -0
  356. package/examples/09-signals.ts +144 -0
  357. package/examples/tsconfig.json +30 -0
  358. package/package.json +2 -1
  359. package/src/adapters/MemoryAdapter.ts +3 -3
  360. package/src/adapters/MongoAdapter.ts +3 -3
  361. package/src/adapters/OpenSearchAdapter.ts +10 -8
  362. package/src/adapters/PostgreSQLAdapter.ts +26 -10
  363. package/src/adapters/PrismaAdapter.ts +6 -6
  364. package/src/adapters/RedisAdapter.ts +3 -3
  365. package/src/adapters/SQLiteAdapter.ts +31 -12
  366. package/src/constants/index.ts +2 -10
  367. package/src/core/Agent.ts +585 -374
  368. package/src/core/AutoChainExecutor.ts +440 -0
  369. package/src/core/BranchEvaluator.ts +167 -0
  370. package/src/core/DirectiveBus.ts +248 -0
  371. package/src/core/DirectiveChainTracker.ts +144 -0
  372. package/src/core/Flow.ts +666 -0
  373. package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
  374. package/src/core/PersistenceManager.ts +8 -8
  375. package/src/core/PromptComposer.ts +209 -140
  376. package/src/core/PromptSectionCache.ts +1 -1
  377. package/src/core/ResponseEngine.ts +61 -46
  378. package/src/core/ResponseModal.ts +1458 -1241
  379. package/src/core/ResponsePipeline.ts +675 -173
  380. package/src/core/SignalEvaluator.ts +420 -0
  381. package/src/core/SignalProcessor.ts +723 -0
  382. package/src/core/Step.ts +279 -176
  383. package/src/core/StreamingToolExecutor.ts +4 -4
  384. package/src/core/ToolManager.ts +200 -97
  385. package/src/core/createAgent.ts +40 -0
  386. package/src/core/flow-namespace.ts +219 -0
  387. package/src/index.ts +42 -36
  388. package/src/providers/GeminiProvider.ts +17 -15
  389. package/src/types/agent.ts +182 -53
  390. package/src/types/ai.ts +3 -3
  391. package/src/types/errors.ts +18 -0
  392. package/src/types/flow.ts +590 -0
  393. package/src/types/index.ts +43 -16
  394. package/src/types/persistence.ts +12 -8
  395. package/src/types/routing.ts +1 -1
  396. package/src/types/session.ts +26 -23
  397. package/src/types/signals.ts +321 -0
  398. package/src/types/template.ts +3 -11
  399. package/src/types/tool.ts +50 -42
  400. package/src/utils/condition.ts +13 -4
  401. package/src/utils/id.ts +27 -9
  402. package/src/utils/index.ts +6 -2
  403. package/src/utils/session.ts +238 -42
  404. package/dist/cjs/core/BatchExecutor.d.ts +0 -359
  405. package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
  406. package/dist/cjs/core/BatchExecutor.js +0 -861
  407. package/dist/cjs/core/BatchExecutor.js.map +0 -1
  408. package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
  409. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
  410. package/dist/cjs/core/BatchPromptBuilder.js +0 -223
  411. package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
  412. package/dist/cjs/core/Route.d.ts +0 -180
  413. package/dist/cjs/core/Route.d.ts.map +0 -1
  414. package/dist/cjs/core/Route.js +0 -542
  415. package/dist/cjs/core/Route.js.map +0 -1
  416. package/dist/cjs/core/RoutingEngine.d.ts +0 -185
  417. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  418. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  419. package/dist/cjs/types/route.d.ts +0 -336
  420. package/dist/cjs/types/route.d.ts.map +0 -1
  421. package/dist/cjs/types/route.js.map +0 -1
  422. package/dist/core/BatchExecutor.d.ts +0 -359
  423. package/dist/core/BatchExecutor.d.ts.map +0 -1
  424. package/dist/core/BatchExecutor.js +0 -856
  425. package/dist/core/BatchExecutor.js.map +0 -1
  426. package/dist/core/BatchPromptBuilder.d.ts +0 -89
  427. package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
  428. package/dist/core/BatchPromptBuilder.js +0 -219
  429. package/dist/core/BatchPromptBuilder.js.map +0 -1
  430. package/dist/core/Route.d.ts +0 -180
  431. package/dist/core/Route.d.ts.map +0 -1
  432. package/dist/core/Route.js +0 -538
  433. package/dist/core/Route.js.map +0 -1
  434. package/dist/core/RoutingEngine.d.ts +0 -185
  435. package/dist/core/RoutingEngine.d.ts.map +0 -1
  436. package/dist/core/RoutingEngine.js.map +0 -1
  437. package/dist/types/route.d.ts +0 -336
  438. package/dist/types/route.d.ts.map +0 -1
  439. package/dist/types/route.js +0 -5
  440. package/dist/types/route.js.map +0 -1
  441. package/docs/CONTRIBUTING.md +0 -521
  442. package/docs/api/README.md +0 -3299
  443. package/docs/api/overview.md +0 -1410
  444. package/docs/architecture/data-extraction-flow.md +0 -360
  445. package/docs/architecture/multi-step-execution.md +0 -277
  446. package/docs/core/agent/README.md +0 -938
  447. package/docs/core/agent/context-management.md +0 -796
  448. package/docs/core/agent/rules-and-prohibitions.md +0 -113
  449. package/docs/core/agent/session-management.md +0 -693
  450. package/docs/core/ai-integration/prompt-composition.md +0 -355
  451. package/docs/core/ai-integration/providers.md +0 -515
  452. package/docs/core/ai-integration/response-processing.md +0 -433
  453. package/docs/core/conversation-flows/data-collection.md +0 -772
  454. package/docs/core/conversation-flows/route-dsl.md +0 -509
  455. package/docs/core/conversation-flows/routes.md +0 -249
  456. package/docs/core/conversation-flows/step-transitions.md +0 -731
  457. package/docs/core/conversation-flows/steps.md +0 -268
  458. package/docs/core/error-handling.md +0 -830
  459. package/docs/core/persistence/adapters.md +0 -255
  460. package/docs/core/persistence/session-storage.md +0 -656
  461. package/docs/core/routing/intelligent-routing.md +0 -470
  462. package/docs/core/tools/enhanced-tool.md +0 -186
  463. package/docs/core/tools/streaming-execution.md +0 -161
  464. package/docs/core/tools/tool-definition.md +0 -970
  465. package/docs/core/tools/tool-scoping.md +0 -819
  466. package/docs/guides/advanced-patterns/publishing.md +0 -186
  467. package/docs/guides/context-compaction.md +0 -96
  468. package/docs/guides/error-handling-patterns.md +0 -578
  469. package/docs/guides/getting-started/README.md +0 -795
  470. package/docs/guides/migration/README.md +0 -101
  471. package/docs/guides/migration/flexible-routing-conditions.md +0 -375
  472. package/docs/guides/migration/multi-step-execution.md +0 -393
  473. package/docs/guides/migration/response-modal-refactor.md +0 -518
  474. package/docs/guides/prompt-optimization.md +0 -164
  475. package/examples/advanced-patterns/context-compaction.ts +0 -223
  476. package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
  477. package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
  478. package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
  479. package/examples/advanced-patterns/streaming-responses.ts +0 -656
  480. package/examples/ai-providers/anthropic-integration.ts +0 -388
  481. package/examples/ai-providers/openai-integration.ts +0 -228
  482. package/examples/condition-patterns/function-only-conditions.ts +0 -365
  483. package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
  484. package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
  485. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  486. package/examples/condition-patterns/string-only-conditions.ts +0 -296
  487. package/examples/conversation-flows/completion-transitions.ts +0 -318
  488. package/examples/core-concepts/basic-agent.ts +0 -503
  489. package/examples/core-concepts/modern-streaming-api.ts +0 -309
  490. package/examples/core-concepts/schema-driven-extraction.ts +0 -332
  491. package/examples/core-concepts/session-management.ts +0 -494
  492. package/examples/integrations/database-integration.ts +0 -631
  493. package/examples/integrations/healthcare-integration.ts +0 -595
  494. package/examples/integrations/search-integration.ts +0 -530
  495. package/examples/integrations/server-session-management.ts +0 -307
  496. package/examples/persistence/custom-adapter.ts +0 -526
  497. package/examples/persistence/database-persistence.ts +0 -583
  498. package/examples/persistence/memory-sessions.ts +0 -495
  499. package/examples/persistence/prisma-schema.example.prisma +0 -74
  500. package/examples/persistence/redis-persistence.ts +0 -488
  501. package/examples/tools/basic-tools.ts +0 -765
  502. package/examples/tools/data-enrichment-tools.ts +0 -593
  503. package/examples/tools/enhanced-tool-metadata.ts +0 -268
  504. package/examples/tools/streaming-tool-execution.ts +0 -283
  505. package/src/core/BatchExecutor.ts +0 -1187
  506. package/src/core/BatchPromptBuilder.ts +0 -299
  507. package/src/core/Route.ts +0 -678
  508. package/src/types/route.ts +0 -392
@@ -1,488 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
2
- /**
3
- * Example: Using Redis for Persistence with Session Step
4
- *
5
- * Fast, in-memory persistence perfect for:
6
- * - High-throughput applications
7
- * - Session caching with collected data
8
- * - Real-time chat applications
9
- * - Temporary conversation storage
10
- */
11
-
12
- import {
13
- Agent,
14
- GeminiProvider,
15
- RedisAdapter,
16
- END_ROUTE,
17
- } from "../../src";
18
- // @ts-expect-error - Redis is not typed
19
- import Redis from "ioredis";
20
-
21
- /**
22
- * Setup Steps:
23
- *
24
- * 1. Install Redis and client:
25
- * brew install redis (macOS) or apt-get install redis (Linux)
26
- * npm install ioredis
27
- *
28
- * 2. Start Redis:
29
- * redis-server
30
- *
31
- * 3. Run this example
32
- */
33
-
34
- interface ChatContext {
35
- userId: string;
36
- userName: string;
37
- chatType: "support" | "sales" | "general";
38
- }
39
-
40
- interface SupportTicketData {
41
- issue: string;
42
- category: "technical" | "billing" | "account" | "other";
43
- priority: "low" | "medium" | "high";
44
- description: string;
45
- }
46
-
47
- interface QuickChatData {
48
- topic: string;
49
- sentiment: "positive" | "neutral" | "negative";
50
- }
51
-
52
- interface OrderData {
53
- productId: string;
54
- quantity: number;
55
- shippingAddress: string;
56
- }
57
-
58
- async function example() {
59
- // Initialize Redis client
60
-
61
- const redis = new Redis();
62
-
63
- const userId = "user_123";
64
-
65
- // Define support ticket schema
66
- const supportTicketSchema = {
67
- type: "object",
68
- properties: {
69
- issue: { type: "string" },
70
- category: { type: "string", enum: ["technical", "billing", "account", "other"] },
71
- priority: { type: "string", enum: ["low", "medium", "high"] },
72
- description: { type: "string" },
73
- },
74
- required: ["issue", "category", "priority", "description"],
75
- };
76
-
77
- // Create agent with Redis persistence
78
- const agent = new Agent<ChatContext, SupportTicketData>({
79
- name: "Support Assistant",
80
- description: "Fast, real-time support assistant",
81
- goal: "Help users resolve issues quickly",
82
- provider: new GeminiProvider({
83
- apiKey: process.env.GEMINI_API_KEY!,
84
- model: "models/gemini-2.5-flash",
85
- }),
86
- context: {
87
- userId,
88
- userName: "Alice",
89
- chatType: "support",
90
- },
91
- // NEW: Agent-level schema
92
- schema: supportTicketSchema,
93
- // ✨ Redis adapter with custom options
94
- persistence: {
95
- adapter: new RedisAdapter({
96
- redis,
97
- keyPrefix: "support:", // Custom prefix
98
- sessionTTL: 24 * 60 * 60, // 24 hours
99
- messageTTL: 7 * 24 * 60 * 60, // 7 days
100
- }),
101
- autoSave: true, // Auto-save session step
102
- userId,
103
- },
104
- });
105
-
106
- // Create support ticket route with data collecting
107
- const ticketRoute = agent.createRoute({
108
- title: "Create Support Ticket",
109
- description: "Help user create and track support tickets",
110
- when: [
111
- "User needs help with an issue",
112
- "User wants to report a problem",
113
- "User mentions support, help, or issue",
114
- ],
115
- // NEW: Required fields for route completion
116
- requiredFields: ["issue", "category", "description"],
117
- // NEW: Optional fields that enhance the experience
118
- optionalFields: ["priority"],
119
- });
120
-
121
- // Step flow
122
- ticketRoute.initialStep
123
- .nextStep({
124
- prompt: "Ask what the issue is",
125
- collect: ["issue", "category"],
126
- skipIf: (ctx) => !!ctx.data?.issue && !!ctx.data.category,
127
- })
128
- .nextStep({
129
- prompt: "Ask for priority",
130
- collect: ["priority"],
131
- skipIf: (ctx) => !!ctx.data?.priority,
132
- requires: ["issue", "category"],
133
- })
134
- .nextStep({
135
- prompt: "Ask for detailed description",
136
- collect: ["description"],
137
- skipIf: (ctx) => !!ctx.data?.description,
138
- requires: ["issue", "category"],
139
- })
140
- .nextStep({
141
- prompt: "Confirm and create ticket",
142
- requires: ["issue", "category", "description"],
143
- })
144
- .nextStep({ step: END_ROUTE });
145
-
146
- // Session is automatically managed by the agent with Redis persistence
147
- console.log("✨ Session ready:", agent.session.id);
148
-
149
- // Set initial data
150
- await agent.session.setData({ priority: "medium" });
151
-
152
- console.log("📊 Initial data:", agent.session.getData());
153
-
154
- // Turn 1: User provides issue
155
- console.log("\n--- Turn 1 ---");
156
-
157
- await agent.session.addMessage(
158
- "user",
159
- "I can't log into my account, it's a technical issue and it's urgent!",
160
- "Alice"
161
- );
162
- const history = agent.session.getHistory();
163
-
164
- const response1 = await agent.respond({
165
- history,
166
- });
167
-
168
- console.log("🤖 Agent:", response1.message);
169
-
170
- await agent.session.addMessage("assistant", response1.message);
171
- console.log("📊 Collected data:", agent.session.getData());
172
-
173
- // Turn 2: Provide more details
174
- console.log("\n--- Turn 2 ---");
175
-
176
- await agent.session.addMessage(
177
- "user",
178
- "I keep getting 'Invalid credentials' error even though I reset my password",
179
- "Alice"
180
- );
181
-
182
- const response2 = await agent.respond({
183
- history: agent.session.getHistory(),
184
- });
185
-
186
- console.log("🤖 Agent:", response2.message);
187
- console.log("📊 Collected data:", agent.session.getData());
188
-
189
- await agent.session.addMessage("assistant", response2.message);
190
-
191
- if (response2.isRouteComplete) {
192
- console.log("\n✅ Support ticket route complete!");
193
- await fileSupportTicket(agent.session.getData() as SupportTicketData);
194
- }
195
-
196
- // Demonstrate session recovery with new agent instance
197
- console.log("\n--- Session Recovery Example ---");
198
- const sessionId = agent.session.id;
199
-
200
- const recoveredAgent = new Agent<ChatContext, SupportTicketData>({
201
- name: "Support Assistant",
202
- provider: new GeminiProvider({
203
- apiKey: process.env.GEMINI_API_KEY!,
204
- model: "models/gemini-2.5-flash",
205
- }),
206
- context: {
207
- userId,
208
- userName: "Alice",
209
- chatType: "support",
210
- },
211
- // NEW: Agent-level schema (same as original agent)
212
- schema: supportTicketSchema,
213
- persistence: {
214
- adapter: new RedisAdapter({
215
- redis,
216
- keyPrefix: "support:",
217
- sessionTTL: 24 * 60 * 60,
218
- messageTTL: 7 * 24 * 60 * 60,
219
- }),
220
- autoSave: true,
221
- },
222
- sessionId, // Same sessionId - will load existing session
223
- });
224
-
225
- // Recreate the same route on recovered agent
226
- recoveredAgent.createRoute({
227
- title: "Create Support Ticket",
228
- description: "Help user create and track support tickets",
229
- when: [
230
- "User needs help with an issue",
231
- "User wants to report a problem",
232
- "User mentions support, help, or issue",
233
- ],
234
- // NEW: Required fields for route completion
235
- requiredFields: ["issue", "category", "description"],
236
- // NEW: Optional fields that enhance the experience
237
- optionalFields: ["priority"],
238
- });
239
-
240
- console.log("📥 Recovered session:", {
241
- sessionId: recoveredAgent.session.id,
242
- historyLength: recoveredAgent.session.getHistory().length,
243
- data: recoveredAgent.session.getData(),
244
- });
245
-
246
- console.log("✅ Session recovery complete!");
247
-
248
- // Cleanup
249
-
250
- await redis.quit();
251
- }
252
-
253
- /**
254
- * Advanced Example: High-Throughput Chat with Session Step
255
- */
256
- async function highThroughputExample() {
257
- const redis = new Redis();
258
-
259
- // Define quick chat schema
260
- const quickChatSchema = {
261
- type: "object",
262
- properties: {
263
- topic: { type: "string" },
264
- sentiment: { type: "string", enum: ["positive", "neutral", "negative"] },
265
- },
266
- required: ["topic", "sentiment"],
267
- };
268
-
269
- const agent = new Agent<unknown, QuickChatData>({
270
- name: "Chat Bot",
271
- description: "Fast chat responses",
272
- provider: new GeminiProvider({
273
- apiKey: process.env.GEMINI_API_KEY!,
274
- model: "models/gemini-2.5-flash",
275
- }),
276
- // NEW: Agent-level schema
277
- schema: quickChatSchema,
278
- persistence: {
279
- adapter: new RedisAdapter<unknown>({
280
- redis,
281
- keyPrefix: "chat:",
282
- sessionTTL: 60 * 60, // 1 hour for quick chats
283
- }),
284
- autoSave: true,
285
- userId: "user_456",
286
- },
287
- });
288
-
289
- // Simple chat route that extracts topic and sentiment
290
- const chatRoute = agent.createRoute({
291
- title: "General Chat",
292
- // NEW: Required fields for route completion
293
- requiredFields: ["topic", "sentiment"],
294
- });
295
-
296
- chatRoute.initialStep
297
- .nextStep({
298
- prompt: "Chat and extract topic/sentiment",
299
- collect: ["topic", "sentiment"],
300
- })
301
- .nextStep({ step: END_ROUTE });
302
-
303
- // Session is automatically managed by the agent
304
- console.log("✨ Session ready:", agent.session.id);
305
-
306
- // Quick chat interaction
307
- await agent.session.addMessage("user", "I'm loving the new features you added!", "User");
308
-
309
- const response = await agent.respond({
310
- history: agent.session.getHistory(),
311
- });
312
-
313
- console.log("🤖 Response:", response.message);
314
- console.log("📊 Data:", agent.session.getData());
315
-
316
- await agent.session.addMessage("assistant", response.message);
317
-
318
- if (response.isRouteComplete) {
319
- console.log("\n✅ Chat analytics route complete!");
320
- await logChatAnalytics(agent.session.getData() as QuickChatData);
321
- }
322
-
323
- console.log("💾 Session automatically saved to Redis!");
324
-
325
- await redis.quit();
326
- }
327
-
328
- /**
329
- * Session Recovery Example
330
- * Shows how to resume conversations from Redis
331
- */
332
- async function sessionRecoveryExample() {
333
- const redis = new Redis();
334
-
335
- // Define order schema
336
- const orderSchema = {
337
- type: "object",
338
- properties: {
339
- productId: { type: "string" },
340
- quantity: { type: "number", minimum: 1 },
341
- shippingAddress: { type: "string" },
342
- },
343
- required: ["productId", "quantity", "shippingAddress"],
344
- };
345
-
346
- const agent = new Agent<unknown, OrderData>({
347
- name: "Order Assistant",
348
- provider: new GeminiProvider({
349
- apiKey: process.env.GEMINI_API_KEY!,
350
- model: "models/gemini-2.5-flash",
351
- }),
352
- // NEW: Agent-level schema
353
- schema: orderSchema,
354
- persistence: {
355
- adapter: new RedisAdapter<unknown>({ redis }),
356
- autoSave: true,
357
- userId: "user_789",
358
- },
359
- });
360
-
361
- const orderRoute = agent.createRoute({
362
- title: "Place Order",
363
- // NEW: Required fields for route completion
364
- requiredFields: ["productId", "quantity", "shippingAddress"],
365
- });
366
-
367
- orderRoute.initialStep
368
- .nextStep({
369
- prompt: "Ask what to order",
370
- collect: ["productId", "quantity"],
371
- })
372
- .nextStep({
373
- prompt: "Ask for shipping address",
374
- collect: ["shippingAddress"],
375
- })
376
- .nextStep({ step: END_ROUTE });
377
-
378
- // Session is automatically managed by the agent
379
- const sessionId = agent.session.id;
380
- console.log("✨ New order session:", sessionId);
381
-
382
- // First interaction
383
- await agent.session.addMessage("user", "I want to order product ABC123, 2 units", "User");
384
-
385
- const response1 = await agent.respond({
386
- history: agent.session.getHistory(),
387
- });
388
-
389
- console.log("🤖 Response:", response1.message);
390
- console.log("📊 Data so far:", agent.session.getData());
391
-
392
- await agent.session.addMessage("assistant", response1.message);
393
-
394
- // --- Simulate user disconnecting and reconnecting ---
395
- console.log("\n--- User Reconnects ---");
396
-
397
- // Create new agent instance with same sessionId (simulates reconnection)
398
- const reconnectedAgent = new Agent<unknown, OrderData>({
399
- name: "Order Assistant",
400
- provider: new GeminiProvider({
401
- apiKey: process.env.GEMINI_API_KEY!,
402
- model: "models/gemini-2.5-flash",
403
- }),
404
- // NEW: Agent-level schema (same as original agent)
405
- schema: orderSchema,
406
- persistence: {
407
- adapter: new RedisAdapter<unknown>({ redis }),
408
- autoSave: true,
409
- },
410
- sessionId, // Same sessionId - will load existing session
411
- });
412
-
413
- console.log("📥 Recovered session:", {
414
- sessionId: reconnectedAgent.session.id,
415
- historyLength: reconnectedAgent.session.getHistory().length,
416
- data: reconnectedAgent.session.getData(),
417
- });
418
-
419
- // Continue conversation
420
- await reconnectedAgent.session.addMessage("user", "Ship to 123 Main St, New York", "User");
421
-
422
- const response2 = await reconnectedAgent.respond({
423
- history: reconnectedAgent.session.getHistory(),
424
- });
425
-
426
- console.log("🤖 Response:", response2.message);
427
- console.log("📊 Final collected data:", reconnectedAgent.session.getData());
428
-
429
- await reconnectedAgent.session.addMessage("assistant", response2.message);
430
-
431
- if (response2.isRouteComplete) {
432
- console.log("\n✅ Order placement complete!");
433
- await processOrder(reconnectedAgent.session.getData() as OrderData);
434
- }
435
-
436
- console.log("✅ Order complete with recovered session!");
437
-
438
- await redis.quit();
439
- }
440
-
441
- /**
442
- * Mock function to file a support ticket.
443
- */
444
- async function fileSupportTicket(data: SupportTicketData | undefined) {
445
- console.log("\n" + "=".repeat(60));
446
- console.log("🎫 Filing Support Ticket...");
447
- console.log("=".repeat(60));
448
- console.log("Ticket Details:", JSON.stringify(data, null, 2));
449
- console.log(
450
- ` - Filing ticket for issue: ${data?.issue} with priority: ${data?.priority}`
451
- );
452
- await new Promise((resolve) => setTimeout(resolve, 1000));
453
- console.log("✨ Ticket filed successfully!");
454
- }
455
-
456
- /**
457
- * Mock function to log chat analytics.
458
- * @param data - The chat data.
459
- */
460
- async function logChatAnalytics(data: QuickChatData) {
461
- console.log("\n" + "=".repeat(60));
462
- console.log("📊 Logging Chat Analytics...");
463
- console.log("=".repeat(60));
464
- console.log("Chat Details:", JSON.stringify(data, null, 2));
465
- console.log(` - Logging chat with topic: ${data.topic}`);
466
- await new Promise((resolve) => setTimeout(resolve, 500));
467
- console.log("✨ Analytics logged!");
468
- }
469
-
470
- /**
471
- * Mock function to process an order.
472
- */
473
- async function processOrder(data: OrderData | undefined) {
474
- console.log("\n" + "=".repeat(60));
475
- console.log("📦 Processing Order...");
476
- console.log("=".repeat(60));
477
- console.log("Order Details:", JSON.stringify(data, null, 2));
478
- console.log(` - Processing order for product: ${data?.productId}`);
479
- await new Promise((resolve) => setTimeout(resolve, 1000));
480
- console.log("✨ Order processed successfully!");
481
- }
482
-
483
- // Run the example
484
- if (require.main === module) {
485
- example().catch(console.error);
486
- }
487
-
488
- export { example, highThroughputExample, sessionRecoveryExample };