@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,526 +0,0 @@
1
- /**
2
- * Custom Persistence Adapter Example
3
- *
4
- * This example demonstrates how to create a custom persistence adapter
5
- * that implements the PersistenceAdapter interface. It shows a simple
6
- * in-memory implementation that can be extended to use any database.
7
- *
8
- * Key concepts:
9
- * - Implementing PersistenceAdapter interface
10
- * - SessionRepository and MessageRepository interfaces
11
- * - Custom storage backends (database, file system, etc.)
12
- * - Error handling and data validation
13
- * - Async operations and resource management
14
- */
15
-
16
- import type {
17
- PersistenceAdapter,
18
- SessionRepository,
19
- MessageRepository,
20
- SessionData,
21
- MessageData,
22
- SessionStatus,
23
- CollectedStateData,
24
- } from "../../src/types";
25
- import { Agent, GeminiProvider, createSessionId } from "../../src";
26
-
27
- /**
28
- * Simple in-memory storage for demonstration
29
- * In a real implementation, this would be replaced with database calls
30
- */
31
- class InMemoryStorage {
32
- private sessions = new Map<string, SessionData>();
33
- private messages = new Map<string, MessageData>();
34
- private sessionMessages = new Map<string, string[]>(); // sessionId -> messageIds
35
-
36
- // Session operations
37
- createSession(
38
- data: Omit<SessionData, "createdAt" | "updatedAt"> & {
39
- id?: string;
40
- }
41
- ): SessionData {
42
- const id =
43
- data.id || createSessionId();
44
- const session: SessionData = {
45
- ...data,
46
- id,
47
- createdAt: new Date(),
48
- updatedAt: new Date(),
49
- };
50
- this.sessions.set(id, session);
51
- return session;
52
- }
53
-
54
- getSession(id: string): SessionData | null {
55
- return this.sessions.get(id) || null;
56
- }
57
-
58
- getSessionsByUserId(userId: string): SessionData[] {
59
- return Array.from(this.sessions.values()).filter(
60
- (s) => s.userId === userId
61
- );
62
- }
63
-
64
- updateSession(id: string, updates: Partial<SessionData>): SessionData | null {
65
- const existing = this.sessions.get(id);
66
- if (!existing) return null;
67
-
68
- const updated = {
69
- ...existing,
70
- ...updates,
71
- updatedAt: new Date(),
72
- };
73
- this.sessions.set(id, updated);
74
- return updated;
75
- }
76
-
77
- updateSessionStatus(
78
- id: string,
79
- status: SessionStatus,
80
- completedAt?: Date
81
- ): SessionData | null {
82
- const existing = this.sessions.get(id);
83
- if (!existing) return null;
84
-
85
- const updated = {
86
- ...existing,
87
- status,
88
- completedAt:
89
- status === "completed"
90
- ? completedAt || new Date()
91
- : existing.completedAt,
92
- updatedAt: new Date(),
93
- };
94
- this.sessions.set(id, updated);
95
- return updated;
96
- }
97
-
98
- updateCollectedData(
99
- id: string,
100
- collectedData: CollectedStateData<Record<string, unknown>>
101
- ): SessionData<Record<string, unknown>> | null {
102
- const existing = this.sessions.get(id);
103
- if (!existing) return null;
104
-
105
- const updated: SessionData<Record<string, unknown>> = {
106
- ...existing,
107
- collectedData: {
108
- ...(existing.collectedData || {}),
109
- ...collectedData,
110
- },
111
- updatedAt: new Date(),
112
- };
113
- this.sessions.set(id, updated);
114
- return updated;
115
- }
116
-
117
- updateRouteStep(
118
- id: string,
119
- route?: string,
120
- step?: string
121
- ): SessionData | null {
122
- const existing = this.sessions.get(id);
123
- if (!existing) return null;
124
-
125
- const updated = {
126
- ...existing,
127
- currentRoute: route,
128
- currentStep: step,
129
- updatedAt: new Date(),
130
- };
131
- this.sessions.set(id, updated);
132
- return updated;
133
- }
134
-
135
- incrementMessageCount(id: string): SessionData | null {
136
- const existing = this.sessions.get(id);
137
- if (!existing) return null;
138
-
139
- const updated = {
140
- ...existing,
141
- messageCount: (existing.messageCount || 0) + 1,
142
- lastMessageAt: new Date(),
143
- updatedAt: new Date(),
144
- };
145
- this.sessions.set(id, updated);
146
- return updated;
147
- }
148
-
149
- deleteSession(id: string): boolean {
150
- return this.sessions.delete(id);
151
- }
152
-
153
- // Message operations
154
- createMessage(data: Omit<MessageData, "id" | "createdAt">): MessageData {
155
- const id = `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
156
- const message: MessageData = {
157
- ...data,
158
- id,
159
- createdAt: new Date(),
160
- };
161
- this.messages.set(id, message);
162
-
163
- // Track messages by session
164
- const sessionMessages = this.sessionMessages.get(data.sessionId) || [];
165
- sessionMessages.push(id);
166
- this.sessionMessages.set(data.sessionId, sessionMessages);
167
-
168
- return message;
169
- }
170
-
171
- getMessage(id: string): MessageData | null {
172
- return this.messages.get(id) || null;
173
- }
174
-
175
- getMessagesBySessionId(sessionId: string): MessageData[] {
176
- const messageIds = this.sessionMessages.get(sessionId) || [];
177
- return messageIds
178
- .map((id) => this.messages.get(id))
179
- .filter((msg): msg is MessageData => msg !== undefined)
180
- .sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
181
- }
182
-
183
- getMessagesByUserId(userId: string): MessageData[] {
184
- return Array.from(this.messages.values())
185
- .filter((msg) => msg.userId === userId)
186
- .sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
187
- }
188
-
189
- deleteMessage(id: string): boolean {
190
- const message = this.messages.get(id);
191
- if (!message) return false;
192
-
193
- this.messages.delete(id);
194
-
195
- // Remove from session tracking
196
- const sessionMessages = this.sessionMessages.get(message.sessionId) || [];
197
- const filtered = sessionMessages.filter((msgId) => msgId !== id);
198
- if (filtered.length === 0) {
199
- this.sessionMessages.delete(message.sessionId);
200
- } else {
201
- this.sessionMessages.set(message.sessionId, filtered);
202
- }
203
-
204
- return true;
205
- }
206
-
207
- deleteMessagesBySessionId(sessionId: string): number {
208
- const messageIds = this.sessionMessages.get(sessionId) || [];
209
- let deletedCount = 0;
210
-
211
- for (const messageId of messageIds) {
212
- if (this.messages.delete(messageId)) {
213
- deletedCount++;
214
- }
215
- }
216
-
217
- this.sessionMessages.delete(sessionId);
218
- return deletedCount;
219
- }
220
-
221
- deleteMessagesByUserId(userId: string): number {
222
- const messagesToDelete = Array.from(this.messages.values()).filter(
223
- (msg) => msg.userId === userId
224
- );
225
-
226
- let deletedCount = 0;
227
- for (const message of messagesToDelete) {
228
- if (this.messages.delete(message.id)) {
229
- // Remove from session tracking
230
- const sessionMessages =
231
- this.sessionMessages.get(message.sessionId) || [];
232
- const filtered = sessionMessages.filter(
233
- (msgId) => msgId !== message.id
234
- );
235
- if (filtered.length === 0) {
236
- this.sessionMessages.delete(message.sessionId);
237
- } else {
238
- this.sessionMessages.set(message.sessionId, filtered);
239
- }
240
- deletedCount++;
241
- }
242
- }
243
-
244
- return deletedCount;
245
- }
246
- }
247
-
248
- /**
249
- * Custom Session Repository implementation
250
- */
251
- class CustomSessionRepository<TData = Record<string, unknown>>
252
- implements SessionRepository<TData> {
253
- constructor(private storage: InMemoryStorage) { }
254
-
255
- async create(
256
- data: Omit<SessionData<TData>, "createdAt" | "updatedAt"> & {
257
- id?: string;
258
- }
259
- ): Promise<SessionData<TData>> {
260
- return Promise.resolve(
261
- this.storage.createSession({
262
- ...data,
263
- id:
264
- data.id ||
265
- createSessionId(),
266
- }) as SessionData<TData>
267
- );
268
- }
269
-
270
- async findById(id: string): Promise<SessionData<TData> | null> {
271
- return Promise.resolve(
272
- this.storage.getSession(id) as SessionData<TData> | null
273
- );
274
- }
275
-
276
- async findActiveByUserId(userId: string): Promise<SessionData<TData> | null> {
277
- const sessions = this.storage.getSessionsByUserId(userId);
278
- return Promise.resolve(
279
- (sessions.find((s) => s.status === "active") as SessionData<TData>) ||
280
- null
281
- );
282
- }
283
-
284
- async findByUserId(
285
- userId: string,
286
- limit = 50
287
- ): Promise<SessionData<TData>[]> {
288
- const sessions = this.storage.getSessionsByUserId(userId);
289
- return Promise.resolve(
290
- sessions
291
- .sort((a, b) => b.updatedAt.getTime() - a.updatedAt.getTime())
292
- .slice(0, limit) as SessionData<TData>[]
293
- );
294
- }
295
-
296
- async update(
297
- id: string,
298
- data: Partial<Omit<SessionData<TData>, "id" | "createdAt">>
299
- ): Promise<SessionData<TData> | null> {
300
- return Promise.resolve(
301
- this.storage.updateSession(id, data) as SessionData<TData> | null
302
- );
303
- }
304
-
305
- async updateStatus(
306
- id: string,
307
- status: SessionStatus,
308
- completedAt?: Date
309
- ): Promise<SessionData<TData> | null> {
310
- return Promise.resolve(
311
- this.storage.updateSessionStatus(
312
- id,
313
- status,
314
- completedAt
315
- ) as SessionData<TData> | null
316
- );
317
- }
318
-
319
- async updateCollectedData(
320
- id: string,
321
- collectedData: CollectedStateData<TData>
322
- ): Promise<SessionData<TData> | null> {
323
- return Promise.resolve(
324
- this.storage.updateCollectedData(
325
- id,
326
- collectedData
327
- ) as SessionData<TData> | null
328
- );
329
- }
330
-
331
- async updateRouteStep(
332
- id: string,
333
- route?: string,
334
- step?: string
335
- ): Promise<SessionData<TData> | null> {
336
- return Promise.resolve(
337
- this.storage.updateRouteStep(id, route, step) as SessionData<TData> | null
338
- );
339
- }
340
-
341
- async incrementMessageCount(id: string): Promise<SessionData<TData> | null> {
342
- return Promise.resolve(
343
- this.storage.incrementMessageCount(id) as SessionData<TData> | null
344
- );
345
- }
346
-
347
- async delete(id: string): Promise<boolean> {
348
- return Promise.resolve(this.storage.deleteSession(id));
349
- }
350
- }
351
-
352
- /**
353
- * Custom Message Repository implementation
354
- */
355
- class CustomMessageRepository implements MessageRepository {
356
- constructor(private storage: InMemoryStorage) { }
357
-
358
- async create(
359
- data: Omit<MessageData, "id" | "createdAt">
360
- ): Promise<MessageData> {
361
- return Promise.resolve(this.storage.createMessage(data));
362
- }
363
-
364
- async findById(id: string): Promise<MessageData | null> {
365
- return Promise.resolve(this.storage.getMessage(id));
366
- }
367
-
368
- async findBySessionId(
369
- sessionId: string,
370
- limit = 100
371
- ): Promise<MessageData[]> {
372
- const messages = this.storage.getMessagesBySessionId(sessionId);
373
- return Promise.resolve(messages.slice(-limit)); // Get most recent messages
374
- }
375
-
376
- async findByUserId(userId: string, limit = 100): Promise<MessageData[]> {
377
- const messages = this.storage.getMessagesByUserId(userId);
378
- return Promise.resolve(messages.slice(-limit)); // Get most recent messages
379
- }
380
-
381
- async delete(id: string): Promise<boolean> {
382
- return Promise.resolve(this.storage.deleteMessage(id));
383
- }
384
-
385
- async deleteBySessionId(sessionId: string): Promise<number> {
386
- return Promise.resolve(this.storage.deleteMessagesBySessionId(sessionId));
387
- }
388
-
389
- async deleteByUserId(userId: string): Promise<number> {
390
- return Promise.resolve(this.storage.deleteMessagesByUserId(userId));
391
- }
392
- }
393
-
394
- /**
395
- * Custom Persistence Adapter
396
- *
397
- * This adapter demonstrates how to implement a custom persistence layer.
398
- * Replace the InMemoryStorage with actual database calls for production use.
399
- */
400
- export class CustomAdapter<TData = Record<string, unknown>> implements PersistenceAdapter<TData> {
401
- private storage = new InMemoryStorage();
402
-
403
- readonly sessionRepository: SessionRepository<TData>;
404
- readonly messageRepository: MessageRepository;
405
-
406
- constructor() {
407
- this.sessionRepository = new CustomSessionRepository<TData>(this.storage);
408
- this.messageRepository = new CustomMessageRepository(this.storage);
409
- }
410
-
411
- /**
412
- * Initialize the adapter (create tables, indexes, etc.)
413
- */
414
- async initialize(): Promise<void> {
415
- console.log("šŸ”§ Initializing CustomAdapter...");
416
- // In a real implementation, you might:
417
- // - Create database tables
418
- // - Set up indexes
419
- // - Run migrations
420
- // - Establish database connections
421
-
422
- // For this demo, we just log
423
- console.log("āœ… CustomAdapter initialized");
424
- return Promise.resolve();
425
- }
426
-
427
- /**
428
- * Disconnect/cleanup resources
429
- */
430
- async disconnect(): Promise<void> {
431
- console.log("šŸ”Œ Disconnecting CustomAdapter...");
432
- // In a real implementation, you might:
433
- // - Close database connections
434
- // - Clean up resources
435
- // - Flush pending writes
436
-
437
- console.log("āœ… CustomAdapter disconnected");
438
- return Promise.resolve();
439
- }
440
- }
441
-
442
- // ==============================================================================
443
- // USAGE EXAMPLE
444
- // ==============================================================================
445
-
446
- /**
447
- * Example: Using Custom Adapter with Agent
448
- */
449
- async function demonstrateCustomAdapter() {
450
- console.log("šŸ—„ļø Custom Persistence Adapter Demo");
451
- console.log("=".repeat(50));
452
-
453
- // Create custom adapter
454
- const adapter = new CustomAdapter();
455
-
456
- // Initialize adapter
457
- await adapter.initialize();
458
-
459
- // Create agent with custom persistence
460
- const agent = new Agent({
461
- name: "CustomPersistenceAgent",
462
- description: "Agent with custom persistence adapter",
463
- provider: new GeminiProvider({
464
- apiKey: process.env.GEMINI_API_KEY || "demo-key",
465
- model: "models/gemini-2.5-flash",
466
- }),
467
- persistence: {
468
- adapter,
469
- // Optional: configure auto-save behavior
470
- autoSave: true, // Auto-saves session step after each response
471
- },
472
- });
473
-
474
- // Session is automatically managed by the agent
475
- console.log("✨ Session ready:", agent.session.id);
476
-
477
- // First interaction
478
- console.log("\nšŸ’¬ First interaction:");
479
-
480
- await agent.session.addMessage("user", "Hi, I need help booking a flight", "Alice");
481
-
482
- const response1 = await agent.respond({
483
- history: agent.session.getHistory(),
484
- });
485
-
486
- console.log(`Agent: ${response1.message}`);
487
- console.log(`Session ID: ${agent.session.id}`);
488
-
489
- await agent.session.addMessage("assistant", response1.message);
490
-
491
- // Second interaction
492
- console.log("\nšŸ’¬ Second interaction:");
493
-
494
- await agent.session.addMessage("user", "I want to fly to Paris next week", "Alice");
495
-
496
- const response2 = await agent.respond({
497
- history: agent.session.getHistory(),
498
- });
499
-
500
- console.log(`Agent: ${response2.message}`);
501
-
502
- // Check persistence
503
- console.log("\nšŸ’¾ Checking persistence:");
504
- if (response2.session?.id) {
505
- const savedSession = await adapter.sessionRepository.findById(
506
- response2.session.id
507
- );
508
- const messages = await adapter.messageRepository.findBySessionId(
509
- response2.session.id
510
- );
511
-
512
- console.log(`Saved session: ${savedSession?.id}`);
513
- console.log(`Messages in session: ${messages.length}`);
514
- console.log(`Session status: ${savedSession?.status}`);
515
- }
516
-
517
- // Clean up
518
- await adapter.disconnect();
519
-
520
- console.log("\nāœ… Demo complete!");
521
- }
522
-
523
- // Run the demo
524
- if (import.meta.url === `file://${process.argv[1]}`) {
525
- demonstrateCustomAdapter().catch(console.error);
526
- }