@falai/agent 1.2.8 → 2.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 (522) 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/providers/AnthropicProvider.d.ts +1 -1
  126. package/dist/cjs/providers/AnthropicProvider.js +1 -1
  127. package/dist/cjs/providers/GeminiProvider.d.ts +1 -1
  128. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  129. package/dist/cjs/providers/GeminiProvider.js +1 -1
  130. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  131. package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
  132. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
  133. package/dist/cjs/providers/OpenAIProvider.js +1 -1
  134. package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
  135. package/dist/cjs/types/agent.d.ts +183 -54
  136. package/dist/cjs/types/agent.d.ts.map +1 -1
  137. package/dist/cjs/types/agent.js +0 -6
  138. package/dist/cjs/types/agent.js.map +1 -1
  139. package/dist/cjs/types/ai.d.ts +3 -3
  140. package/dist/cjs/types/ai.d.ts.map +1 -1
  141. package/dist/cjs/types/errors.d.ts +15 -0
  142. package/dist/cjs/types/errors.d.ts.map +1 -0
  143. package/dist/cjs/types/errors.js +22 -0
  144. package/dist/cjs/types/errors.js.map +1 -0
  145. package/dist/cjs/types/flow.d.ts +513 -0
  146. package/dist/cjs/types/flow.d.ts.map +1 -0
  147. package/dist/cjs/types/{route.js → flow.js} +2 -2
  148. package/dist/cjs/types/flow.js.map +1 -0
  149. package/dist/cjs/types/index.d.ts +7 -6
  150. package/dist/cjs/types/index.d.ts.map +1 -1
  151. package/dist/cjs/types/index.js +6 -2
  152. package/dist/cjs/types/index.js.map +1 -1
  153. package/dist/cjs/types/persistence.d.ts +11 -7
  154. package/dist/cjs/types/persistence.d.ts.map +1 -1
  155. package/dist/cjs/types/routing.d.ts +1 -1
  156. package/dist/cjs/types/routing.d.ts.map +1 -1
  157. package/dist/cjs/types/session.d.ts +24 -23
  158. package/dist/cjs/types/session.d.ts.map +1 -1
  159. package/dist/cjs/types/signals.d.ts +248 -0
  160. package/dist/cjs/types/signals.d.ts.map +1 -0
  161. package/dist/cjs/types/signals.js +11 -0
  162. package/dist/cjs/types/signals.js.map +1 -0
  163. package/dist/cjs/types/template.d.ts +2 -8
  164. package/dist/cjs/types/template.d.ts.map +1 -1
  165. package/dist/cjs/types/tool.d.ts +36 -29
  166. package/dist/cjs/types/tool.d.ts.map +1 -1
  167. package/dist/cjs/types/tool.js +1 -1
  168. package/dist/cjs/types/tool.js.map +1 -1
  169. package/dist/cjs/utils/condition.d.ts +7 -1
  170. package/dist/cjs/utils/condition.d.ts.map +1 -1
  171. package/dist/cjs/utils/condition.js.map +1 -1
  172. package/dist/cjs/utils/id.d.ts +13 -5
  173. package/dist/cjs/utils/id.d.ts.map +1 -1
  174. package/dist/cjs/utils/id.js +24 -10
  175. package/dist/cjs/utils/id.js.map +1 -1
  176. package/dist/cjs/utils/index.d.ts +2 -2
  177. package/dist/cjs/utils/index.d.ts.map +1 -1
  178. package/dist/cjs/utils/index.js +7 -3
  179. package/dist/cjs/utils/index.js.map +1 -1
  180. package/dist/cjs/utils/session.d.ts +44 -5
  181. package/dist/cjs/utils/session.d.ts.map +1 -1
  182. package/dist/cjs/utils/session.js +197 -38
  183. package/dist/cjs/utils/session.js.map +1 -1
  184. package/dist/constants/index.d.ts +0 -9
  185. package/dist/constants/index.d.ts.map +1 -1
  186. package/dist/constants/index.js +3 -9
  187. package/dist/constants/index.js.map +1 -1
  188. package/dist/core/Agent.d.ts +119 -153
  189. package/dist/core/Agent.d.ts.map +1 -1
  190. package/dist/core/Agent.js +472 -325
  191. package/dist/core/Agent.js.map +1 -1
  192. package/dist/core/AutoChainExecutor.d.ts +107 -0
  193. package/dist/core/AutoChainExecutor.d.ts.map +1 -0
  194. package/dist/core/AutoChainExecutor.js +293 -0
  195. package/dist/core/AutoChainExecutor.js.map +1 -0
  196. package/dist/core/BranchEvaluator.d.ts +54 -0
  197. package/dist/core/BranchEvaluator.d.ts.map +1 -0
  198. package/dist/core/BranchEvaluator.js +126 -0
  199. package/dist/core/BranchEvaluator.js.map +1 -0
  200. package/dist/core/DirectiveBus.d.ts +88 -0
  201. package/dist/core/DirectiveBus.d.ts.map +1 -0
  202. package/dist/core/DirectiveBus.js +192 -0
  203. package/dist/core/DirectiveBus.js.map +1 -0
  204. package/dist/core/DirectiveChainTracker.d.ts +49 -0
  205. package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
  206. package/dist/core/DirectiveChainTracker.js +117 -0
  207. package/dist/core/DirectiveChainTracker.js.map +1 -0
  208. package/dist/core/Flow.d.ts +186 -0
  209. package/dist/core/Flow.d.ts.map +1 -0
  210. package/dist/core/Flow.js +546 -0
  211. package/dist/core/Flow.js.map +1 -0
  212. package/dist/core/FlowRouter.d.ts +182 -0
  213. package/dist/core/FlowRouter.d.ts.map +1 -0
  214. package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
  215. package/dist/core/FlowRouter.js.map +1 -0
  216. package/dist/core/PersistenceManager.d.ts +2 -2
  217. package/dist/core/PersistenceManager.d.ts.map +1 -1
  218. package/dist/core/PersistenceManager.js +7 -7
  219. package/dist/core/PersistenceManager.js.map +1 -1
  220. package/dist/core/PromptComposer.d.ts +21 -8
  221. package/dist/core/PromptComposer.d.ts.map +1 -1
  222. package/dist/core/PromptComposer.js +183 -106
  223. package/dist/core/PromptComposer.js.map +1 -1
  224. package/dist/core/PromptSectionCache.d.ts +1 -1
  225. package/dist/core/PromptSectionCache.js +1 -1
  226. package/dist/core/ResponseEngine.d.ts +18 -8
  227. package/dist/core/ResponseEngine.d.ts.map +1 -1
  228. package/dist/core/ResponseEngine.js +38 -36
  229. package/dist/core/ResponseEngine.js.map +1 -1
  230. package/dist/core/ResponseModal.d.ts +73 -56
  231. package/dist/core/ResponseModal.d.ts.map +1 -1
  232. package/dist/core/ResponseModal.js +1193 -1016
  233. package/dist/core/ResponseModal.js.map +1 -1
  234. package/dist/core/ResponsePipeline.d.ts +124 -26
  235. package/dist/core/ResponsePipeline.d.ts.map +1 -1
  236. package/dist/core/ResponsePipeline.js +509 -137
  237. package/dist/core/ResponsePipeline.js.map +1 -1
  238. package/dist/core/SignalEvaluator.d.ts +86 -0
  239. package/dist/core/SignalEvaluator.d.ts.map +1 -0
  240. package/dist/core/SignalEvaluator.js +326 -0
  241. package/dist/core/SignalEvaluator.js.map +1 -0
  242. package/dist/core/SignalProcessor.d.ts +152 -0
  243. package/dist/core/SignalProcessor.d.ts.map +1 -0
  244. package/dist/core/SignalProcessor.js +555 -0
  245. package/dist/core/SignalProcessor.js.map +1 -0
  246. package/dist/core/Step.d.ts +43 -32
  247. package/dist/core/Step.d.ts.map +1 -1
  248. package/dist/core/Step.js +220 -126
  249. package/dist/core/Step.js.map +1 -1
  250. package/dist/core/StreamingToolExecutor.d.ts +2 -2
  251. package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
  252. package/dist/core/StreamingToolExecutor.js.map +1 -1
  253. package/dist/core/ToolManager.d.ts +44 -13
  254. package/dist/core/ToolManager.d.ts.map +1 -1
  255. package/dist/core/ToolManager.js +174 -91
  256. package/dist/core/ToolManager.js.map +1 -1
  257. package/dist/core/createAgent.d.ts +35 -0
  258. package/dist/core/createAgent.d.ts.map +1 -0
  259. package/dist/core/createAgent.js +36 -0
  260. package/dist/core/createAgent.js.map +1 -0
  261. package/dist/core/flow-namespace.d.ts +49 -0
  262. package/dist/core/flow-namespace.d.ts.map +1 -0
  263. package/dist/core/flow-namespace.js +168 -0
  264. package/dist/core/flow-namespace.js.map +1 -0
  265. package/dist/index.d.ts +11 -14
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +9 -12
  268. package/dist/index.js.map +1 -1
  269. package/dist/providers/AnthropicProvider.d.ts +1 -1
  270. package/dist/providers/AnthropicProvider.js +1 -1
  271. package/dist/providers/GeminiProvider.d.ts +1 -1
  272. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  273. package/dist/providers/GeminiProvider.js +1 -1
  274. package/dist/providers/GeminiProvider.js.map +1 -1
  275. package/dist/providers/OpenAIProvider.d.ts +1 -1
  276. package/dist/providers/OpenAIProvider.d.ts.map +1 -1
  277. package/dist/providers/OpenAIProvider.js +1 -1
  278. package/dist/providers/OpenAIProvider.js.map +1 -1
  279. package/dist/types/agent.d.ts +183 -54
  280. package/dist/types/agent.d.ts.map +1 -1
  281. package/dist/types/agent.js +0 -6
  282. package/dist/types/agent.js.map +1 -1
  283. package/dist/types/ai.d.ts +3 -3
  284. package/dist/types/ai.d.ts.map +1 -1
  285. package/dist/types/errors.d.ts +15 -0
  286. package/dist/types/errors.d.ts.map +1 -0
  287. package/dist/types/errors.js +18 -0
  288. package/dist/types/errors.js.map +1 -0
  289. package/dist/types/flow.d.ts +513 -0
  290. package/dist/types/flow.d.ts.map +1 -0
  291. package/dist/types/flow.js +5 -0
  292. package/dist/types/flow.js.map +1 -0
  293. package/dist/types/index.d.ts +7 -6
  294. package/dist/types/index.d.ts.map +1 -1
  295. package/dist/types/index.js +4 -1
  296. package/dist/types/index.js.map +1 -1
  297. package/dist/types/persistence.d.ts +11 -7
  298. package/dist/types/persistence.d.ts.map +1 -1
  299. package/dist/types/routing.d.ts +1 -1
  300. package/dist/types/routing.d.ts.map +1 -1
  301. package/dist/types/session.d.ts +24 -23
  302. package/dist/types/session.d.ts.map +1 -1
  303. package/dist/types/signals.d.ts +248 -0
  304. package/dist/types/signals.d.ts.map +1 -0
  305. package/dist/types/signals.js +10 -0
  306. package/dist/types/signals.js.map +1 -0
  307. package/dist/types/template.d.ts +2 -8
  308. package/dist/types/template.d.ts.map +1 -1
  309. package/dist/types/tool.d.ts +36 -29
  310. package/dist/types/tool.d.ts.map +1 -1
  311. package/dist/types/tool.js +1 -1
  312. package/dist/types/tool.js.map +1 -1
  313. package/dist/utils/condition.d.ts +7 -1
  314. package/dist/utils/condition.d.ts.map +1 -1
  315. package/dist/utils/condition.js.map +1 -1
  316. package/dist/utils/id.d.ts +13 -5
  317. package/dist/utils/id.d.ts.map +1 -1
  318. package/dist/utils/id.js +22 -9
  319. package/dist/utils/id.js.map +1 -1
  320. package/dist/utils/index.d.ts +2 -2
  321. package/dist/utils/index.d.ts.map +1 -1
  322. package/dist/utils/index.js +2 -2
  323. package/dist/utils/index.js.map +1 -1
  324. package/dist/utils/session.d.ts +44 -5
  325. package/dist/utils/session.d.ts.map +1 -1
  326. package/dist/utils/session.js +193 -37
  327. package/dist/utils/session.js.map +1 -1
  328. package/docs/README.md +22 -200
  329. package/docs/concepts/architecture.md +281 -0
  330. package/docs/concepts/directives.md +400 -0
  331. package/docs/concepts/pipeline.md +399 -0
  332. package/docs/guides/branching.md +263 -0
  333. package/docs/guides/compaction.md +163 -0
  334. package/docs/guides/conditions.md +167 -0
  335. package/docs/guides/error-handling.md +176 -0
  336. package/docs/guides/flow-control.md +409 -0
  337. package/docs/guides/instructions.md +210 -0
  338. package/docs/guides/persistence.md +182 -0
  339. package/docs/guides/streaming.md +137 -0
  340. package/docs/migration/README.md +14 -0
  341. package/docs/migration/route-to-flow.md +561 -0
  342. package/docs/migration/v1-to-v2.md +909 -0
  343. package/docs/reference/adapters.md +481 -0
  344. package/docs/reference/branches.md +241 -0
  345. package/docs/reference/create-agent.md +186 -0
  346. package/docs/reference/directive.md +243 -0
  347. package/docs/reference/errors.md +122 -0
  348. package/docs/reference/flow.md +238 -0
  349. package/docs/reference/instruction.md +177 -0
  350. package/docs/reference/pre-directive.md +131 -0
  351. package/docs/reference/providers.md +227 -0
  352. package/docs/reference/signals.md +356 -0
  353. package/docs/reference/step.md +339 -0
  354. package/docs/reference/tool.md +269 -0
  355. package/docs/start/01-install.md +81 -0
  356. package/docs/start/02-first-agent.md +196 -0
  357. package/docs/start/03-collect-data.md +222 -0
  358. package/docs/start/04-add-tools.md +276 -0
  359. package/docs/start/05-go-to-production.md +216 -0
  360. package/examples/01-quickstart.ts +20 -0
  361. package/examples/02-data-extraction.ts +90 -0
  362. package/examples/03-tools.ts +136 -0
  363. package/examples/04-instructions.ts +100 -0
  364. package/examples/05-branching.ts +140 -0
  365. package/examples/06-flow-control.ts +103 -0
  366. package/examples/07-streaming.ts +69 -0
  367. package/examples/08-persistence.ts +98 -0
  368. package/examples/09-signals.ts +144 -0
  369. package/examples/tsconfig.json +30 -0
  370. package/package.json +2 -1
  371. package/src/adapters/MemoryAdapter.ts +3 -3
  372. package/src/adapters/MongoAdapter.ts +3 -3
  373. package/src/adapters/OpenSearchAdapter.ts +10 -8
  374. package/src/adapters/PostgreSQLAdapter.ts +26 -10
  375. package/src/adapters/PrismaAdapter.ts +6 -6
  376. package/src/adapters/RedisAdapter.ts +3 -3
  377. package/src/adapters/SQLiteAdapter.ts +31 -12
  378. package/src/constants/index.ts +2 -10
  379. package/src/core/Agent.ts +585 -374
  380. package/src/core/AutoChainExecutor.ts +440 -0
  381. package/src/core/BranchEvaluator.ts +167 -0
  382. package/src/core/DirectiveBus.ts +248 -0
  383. package/src/core/DirectiveChainTracker.ts +144 -0
  384. package/src/core/Flow.ts +666 -0
  385. package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
  386. package/src/core/PersistenceManager.ts +8 -8
  387. package/src/core/PromptComposer.ts +209 -140
  388. package/src/core/PromptSectionCache.ts +1 -1
  389. package/src/core/ResponseEngine.ts +61 -46
  390. package/src/core/ResponseModal.ts +1453 -1240
  391. package/src/core/ResponsePipeline.ts +655 -175
  392. package/src/core/SignalEvaluator.ts +420 -0
  393. package/src/core/SignalProcessor.ts +723 -0
  394. package/src/core/Step.ts +279 -176
  395. package/src/core/StreamingToolExecutor.ts +4 -4
  396. package/src/core/ToolManager.ts +200 -97
  397. package/src/core/createAgent.ts +40 -0
  398. package/src/core/flow-namespace.ts +219 -0
  399. package/src/index.ts +42 -36
  400. package/src/providers/AnthropicProvider.ts +2 -2
  401. package/src/providers/GeminiProvider.ts +2 -2
  402. package/src/providers/OpenAIProvider.ts +2 -2
  403. package/src/types/agent.ts +182 -53
  404. package/src/types/ai.ts +3 -3
  405. package/src/types/errors.ts +18 -0
  406. package/src/types/flow.ts +590 -0
  407. package/src/types/index.ts +43 -16
  408. package/src/types/persistence.ts +12 -8
  409. package/src/types/routing.ts +1 -1
  410. package/src/types/session.ts +26 -23
  411. package/src/types/signals.ts +321 -0
  412. package/src/types/template.ts +3 -11
  413. package/src/types/tool.ts +50 -42
  414. package/src/utils/condition.ts +13 -4
  415. package/src/utils/id.ts +27 -9
  416. package/src/utils/index.ts +6 -2
  417. package/src/utils/session.ts +238 -42
  418. package/dist/cjs/core/BatchExecutor.d.ts +0 -359
  419. package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
  420. package/dist/cjs/core/BatchExecutor.js +0 -861
  421. package/dist/cjs/core/BatchExecutor.js.map +0 -1
  422. package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
  423. package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
  424. package/dist/cjs/core/BatchPromptBuilder.js +0 -223
  425. package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
  426. package/dist/cjs/core/Route.d.ts +0 -180
  427. package/dist/cjs/core/Route.d.ts.map +0 -1
  428. package/dist/cjs/core/Route.js +0 -542
  429. package/dist/cjs/core/Route.js.map +0 -1
  430. package/dist/cjs/core/RoutingEngine.d.ts +0 -185
  431. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  432. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  433. package/dist/cjs/types/route.d.ts +0 -336
  434. package/dist/cjs/types/route.d.ts.map +0 -1
  435. package/dist/cjs/types/route.js.map +0 -1
  436. package/dist/core/BatchExecutor.d.ts +0 -359
  437. package/dist/core/BatchExecutor.d.ts.map +0 -1
  438. package/dist/core/BatchExecutor.js +0 -856
  439. package/dist/core/BatchExecutor.js.map +0 -1
  440. package/dist/core/BatchPromptBuilder.d.ts +0 -89
  441. package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
  442. package/dist/core/BatchPromptBuilder.js +0 -219
  443. package/dist/core/BatchPromptBuilder.js.map +0 -1
  444. package/dist/core/Route.d.ts +0 -180
  445. package/dist/core/Route.d.ts.map +0 -1
  446. package/dist/core/Route.js +0 -538
  447. package/dist/core/Route.js.map +0 -1
  448. package/dist/core/RoutingEngine.d.ts +0 -185
  449. package/dist/core/RoutingEngine.d.ts.map +0 -1
  450. package/dist/core/RoutingEngine.js.map +0 -1
  451. package/dist/types/route.d.ts +0 -336
  452. package/dist/types/route.d.ts.map +0 -1
  453. package/dist/types/route.js +0 -5
  454. package/dist/types/route.js.map +0 -1
  455. package/docs/CONTRIBUTING.md +0 -521
  456. package/docs/api/README.md +0 -3299
  457. package/docs/api/overview.md +0 -1410
  458. package/docs/architecture/data-extraction-flow.md +0 -360
  459. package/docs/architecture/multi-step-execution.md +0 -277
  460. package/docs/core/agent/README.md +0 -938
  461. package/docs/core/agent/context-management.md +0 -796
  462. package/docs/core/agent/rules-and-prohibitions.md +0 -113
  463. package/docs/core/agent/session-management.md +0 -693
  464. package/docs/core/ai-integration/prompt-composition.md +0 -355
  465. package/docs/core/ai-integration/providers.md +0 -515
  466. package/docs/core/ai-integration/response-processing.md +0 -433
  467. package/docs/core/conversation-flows/data-collection.md +0 -772
  468. package/docs/core/conversation-flows/route-dsl.md +0 -509
  469. package/docs/core/conversation-flows/routes.md +0 -249
  470. package/docs/core/conversation-flows/step-transitions.md +0 -731
  471. package/docs/core/conversation-flows/steps.md +0 -268
  472. package/docs/core/error-handling.md +0 -830
  473. package/docs/core/persistence/adapters.md +0 -255
  474. package/docs/core/persistence/session-storage.md +0 -656
  475. package/docs/core/routing/intelligent-routing.md +0 -470
  476. package/docs/core/tools/enhanced-tool.md +0 -186
  477. package/docs/core/tools/streaming-execution.md +0 -161
  478. package/docs/core/tools/tool-definition.md +0 -970
  479. package/docs/core/tools/tool-scoping.md +0 -819
  480. package/docs/guides/advanced-patterns/publishing.md +0 -186
  481. package/docs/guides/context-compaction.md +0 -96
  482. package/docs/guides/error-handling-patterns.md +0 -578
  483. package/docs/guides/getting-started/README.md +0 -795
  484. package/docs/guides/migration/README.md +0 -101
  485. package/docs/guides/migration/flexible-routing-conditions.md +0 -375
  486. package/docs/guides/migration/multi-step-execution.md +0 -393
  487. package/docs/guides/migration/response-modal-refactor.md +0 -518
  488. package/docs/guides/prompt-optimization.md +0 -164
  489. package/examples/advanced-patterns/context-compaction.ts +0 -223
  490. package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
  491. package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
  492. package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
  493. package/examples/advanced-patterns/streaming-responses.ts +0 -656
  494. package/examples/ai-providers/anthropic-integration.ts +0 -388
  495. package/examples/ai-providers/openai-integration.ts +0 -228
  496. package/examples/condition-patterns/function-only-conditions.ts +0 -365
  497. package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
  498. package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
  499. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  500. package/examples/condition-patterns/string-only-conditions.ts +0 -296
  501. package/examples/conversation-flows/completion-transitions.ts +0 -318
  502. package/examples/core-concepts/basic-agent.ts +0 -503
  503. package/examples/core-concepts/modern-streaming-api.ts +0 -309
  504. package/examples/core-concepts/schema-driven-extraction.ts +0 -332
  505. package/examples/core-concepts/session-management.ts +0 -494
  506. package/examples/integrations/database-integration.ts +0 -631
  507. package/examples/integrations/healthcare-integration.ts +0 -595
  508. package/examples/integrations/search-integration.ts +0 -530
  509. package/examples/integrations/server-session-management.ts +0 -307
  510. package/examples/persistence/custom-adapter.ts +0 -526
  511. package/examples/persistence/database-persistence.ts +0 -583
  512. package/examples/persistence/memory-sessions.ts +0 -495
  513. package/examples/persistence/prisma-schema.example.prisma +0 -74
  514. package/examples/persistence/redis-persistence.ts +0 -488
  515. package/examples/tools/basic-tools.ts +0 -765
  516. package/examples/tools/data-enrichment-tools.ts +0 -593
  517. package/examples/tools/enhanced-tool-metadata.ts +0 -268
  518. package/examples/tools/streaming-tool-execution.ts +0 -283
  519. package/src/core/BatchExecutor.ts +0 -1187
  520. package/src/core/BatchPromptBuilder.ts +0 -299
  521. package/src/core/Route.ts +0 -678
  522. 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 };