@falai/agent 0.1.0-alpha2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/README.md +797 -0
  2. package/dist/cjs/package.json +1 -0
  3. package/dist/cjs/src/adapters/MemoryAdapter.d.ts +47 -0
  4. package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
  5. package/dist/cjs/src/adapters/MemoryAdapter.js +202 -0
  6. package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
  7. package/dist/cjs/src/adapters/MongoAdapter.d.ts +97 -0
  8. package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
  9. package/dist/cjs/src/adapters/MongoAdapter.js +168 -0
  10. package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
  11. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts +169 -0
  12. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  13. package/dist/cjs/src/adapters/OpenSearchAdapter.js +458 -0
  14. package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
  15. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts +71 -0
  16. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  17. package/dist/cjs/src/adapters/PostgreSQLAdapter.js +260 -0
  18. package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
  19. package/dist/cjs/src/adapters/PrismaAdapter.d.ts +115 -0
  20. package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
  21. package/dist/cjs/src/adapters/PrismaAdapter.js +366 -0
  22. package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
  23. package/dist/cjs/src/adapters/RedisAdapter.d.ts +71 -0
  24. package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
  25. package/dist/cjs/src/adapters/RedisAdapter.js +231 -0
  26. package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
  27. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts +69 -0
  28. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  29. package/dist/cjs/src/adapters/SQLiteAdapter.js +312 -0
  30. package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
  31. package/dist/cjs/src/adapters/index.d.ts +17 -0
  32. package/dist/cjs/src/adapters/index.d.ts.map +1 -0
  33. package/dist/cjs/src/adapters/index.js +21 -0
  34. package/dist/cjs/src/adapters/index.js.map +1 -0
  35. package/dist/cjs/src/constants/index.d.ts +10 -0
  36. package/dist/cjs/src/constants/index.d.ts.map +1 -0
  37. package/dist/cjs/src/constants/index.js +13 -0
  38. package/dist/cjs/src/constants/index.js.map +1 -0
  39. package/dist/cjs/src/core/Agent.d.ts +232 -0
  40. package/dist/cjs/src/core/Agent.d.ts.map +1 -0
  41. package/dist/cjs/src/core/Agent.js +741 -0
  42. package/dist/cjs/src/core/Agent.js.map +1 -0
  43. package/dist/cjs/src/core/Events.d.ts +26 -0
  44. package/dist/cjs/src/core/Events.d.ts.map +1 -0
  45. package/dist/cjs/src/core/Events.js +144 -0
  46. package/dist/cjs/src/core/Events.js.map +1 -0
  47. package/dist/cjs/src/core/PersistenceManager.d.ts +98 -0
  48. package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
  49. package/dist/cjs/src/core/PersistenceManager.js +261 -0
  50. package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
  51. package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
  52. package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
  53. package/dist/cjs/src/core/PromptComposer.js +194 -0
  54. package/dist/cjs/src/core/PromptComposer.js.map +1 -0
  55. package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
  56. package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
  57. package/dist/cjs/src/core/ResponseEngine.js +202 -0
  58. package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
  59. package/dist/cjs/src/core/ResponseModal.d.ts +222 -0
  60. package/dist/cjs/src/core/ResponseModal.d.ts.map +1 -0
  61. package/dist/cjs/src/core/ResponseModal.js +1588 -0
  62. package/dist/cjs/src/core/ResponseModal.js.map +1 -0
  63. package/dist/cjs/src/core/ResponsePipeline.d.ts +175 -0
  64. package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
  65. package/dist/cjs/src/core/ResponsePipeline.js +549 -0
  66. package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
  67. package/dist/cjs/src/core/Route.d.ts +181 -0
  68. package/dist/cjs/src/core/Route.d.ts.map +1 -0
  69. package/dist/cjs/src/core/Route.js +541 -0
  70. package/dist/cjs/src/core/Route.js.map +1 -0
  71. package/dist/cjs/src/core/RoutingEngine.d.ts +159 -0
  72. package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
  73. package/dist/cjs/src/core/RoutingEngine.js +961 -0
  74. package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
  75. package/dist/cjs/src/core/SessionManager.d.ts +94 -0
  76. package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
  77. package/dist/cjs/src/core/SessionManager.js +239 -0
  78. package/dist/cjs/src/core/SessionManager.js.map +1 -0
  79. package/dist/cjs/src/core/Step.d.ts +170 -0
  80. package/dist/cjs/src/core/Step.d.ts.map +1 -0
  81. package/dist/cjs/src/core/Step.js +448 -0
  82. package/dist/cjs/src/core/Step.js.map +1 -0
  83. package/dist/cjs/src/core/ToolManager.d.ts +234 -0
  84. package/dist/cjs/src/core/ToolManager.d.ts.map +1 -0
  85. package/dist/cjs/src/core/ToolManager.js +1117 -0
  86. package/dist/cjs/src/core/ToolManager.js.map +1 -0
  87. package/dist/cjs/src/index.d.ts +44 -0
  88. package/dist/cjs/src/index.d.ts.map +1 -0
  89. package/dist/cjs/src/index.js +88 -0
  90. package/dist/cjs/src/index.js.map +1 -0
  91. package/dist/cjs/src/providers/AnthropicProvider.d.ts +43 -0
  92. package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
  93. package/dist/cjs/src/providers/AnthropicProvider.js +377 -0
  94. package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
  95. package/dist/cjs/src/providers/GeminiProvider.d.ts +58 -0
  96. package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
  97. package/dist/cjs/src/providers/GeminiProvider.js +489 -0
  98. package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
  99. package/dist/cjs/src/providers/OpenAIProvider.d.ts +52 -0
  100. package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
  101. package/dist/cjs/src/providers/OpenAIProvider.js +395 -0
  102. package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
  103. package/dist/cjs/src/providers/OpenRouterProvider.d.ts +56 -0
  104. package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
  105. package/dist/cjs/src/providers/OpenRouterProvider.js +409 -0
  106. package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
  107. package/dist/cjs/src/providers/index.d.ts +13 -0
  108. package/dist/cjs/src/providers/index.d.ts.map +1 -0
  109. package/dist/cjs/src/providers/index.js +16 -0
  110. package/dist/cjs/src/providers/index.js.map +1 -0
  111. package/dist/cjs/src/types/agent.d.ts +181 -0
  112. package/dist/cjs/src/types/agent.d.ts.map +1 -0
  113. package/dist/cjs/src/types/agent.js +21 -0
  114. package/dist/cjs/src/types/agent.js.map +1 -0
  115. package/dist/cjs/src/types/ai.d.ts +143 -0
  116. package/dist/cjs/src/types/ai.d.ts.map +1 -0
  117. package/dist/cjs/src/types/ai.js +6 -0
  118. package/dist/cjs/src/types/ai.js.map +1 -0
  119. package/dist/cjs/src/types/history.d.ts +178 -0
  120. package/dist/cjs/src/types/history.d.ts.map +1 -0
  121. package/dist/cjs/src/types/history.js +33 -0
  122. package/dist/cjs/src/types/history.js.map +1 -0
  123. package/dist/cjs/src/types/index.d.ts +22 -0
  124. package/dist/cjs/src/types/index.d.ts.map +1 -0
  125. package/dist/cjs/src/types/index.js +37 -0
  126. package/dist/cjs/src/types/index.js.map +1 -0
  127. package/dist/cjs/src/types/persistence.d.ts +209 -0
  128. package/dist/cjs/src/types/persistence.d.ts.map +1 -0
  129. package/dist/cjs/src/types/persistence.js +7 -0
  130. package/dist/cjs/src/types/persistence.js.map +1 -0
  131. package/dist/cjs/src/types/route.d.ts +238 -0
  132. package/dist/cjs/src/types/route.d.ts.map +1 -0
  133. package/dist/cjs/src/types/route.js +6 -0
  134. package/dist/cjs/src/types/route.js.map +1 -0
  135. package/dist/cjs/src/types/routing.d.ts +16 -0
  136. package/dist/cjs/src/types/routing.d.ts.map +1 -0
  137. package/dist/cjs/src/types/routing.js +3 -0
  138. package/dist/cjs/src/types/routing.js.map +1 -0
  139. package/dist/cjs/src/types/schema.d.ts +22 -0
  140. package/dist/cjs/src/types/schema.d.ts.map +1 -0
  141. package/dist/cjs/src/types/schema.js +3 -0
  142. package/dist/cjs/src/types/schema.js.map +1 -0
  143. package/dist/cjs/src/types/session.d.ts +65 -0
  144. package/dist/cjs/src/types/session.d.ts.map +1 -0
  145. package/dist/cjs/src/types/session.js +6 -0
  146. package/dist/cjs/src/types/session.js.map +1 -0
  147. package/dist/cjs/src/types/template.d.ts +88 -0
  148. package/dist/cjs/src/types/template.d.ts.map +1 -0
  149. package/dist/cjs/src/types/template.js +3 -0
  150. package/dist/cjs/src/types/template.js.map +1 -0
  151. package/dist/cjs/src/types/tool.d.ts +130 -0
  152. package/dist/cjs/src/types/tool.d.ts.map +1 -0
  153. package/dist/cjs/src/types/tool.js +19 -0
  154. package/dist/cjs/src/types/tool.js.map +1 -0
  155. package/dist/cjs/src/utils/clone.d.ts +8 -0
  156. package/dist/cjs/src/utils/clone.d.ts.map +1 -0
  157. package/dist/cjs/src/utils/clone.js +32 -0
  158. package/dist/cjs/src/utils/clone.js.map +1 -0
  159. package/dist/cjs/src/utils/condition.d.ts +38 -0
  160. package/dist/cjs/src/utils/condition.d.ts.map +1 -0
  161. package/dist/cjs/src/utils/condition.js +168 -0
  162. package/dist/cjs/src/utils/condition.js.map +1 -0
  163. package/dist/cjs/src/utils/event.d.ts +6 -0
  164. package/dist/cjs/src/utils/event.d.ts.map +1 -0
  165. package/dist/cjs/src/utils/event.js +20 -0
  166. package/dist/cjs/src/utils/event.js.map +1 -0
  167. package/dist/cjs/src/utils/history.d.ts +60 -0
  168. package/dist/cjs/src/utils/history.d.ts.map +1 -0
  169. package/dist/cjs/src/utils/history.js +274 -0
  170. package/dist/cjs/src/utils/history.js.map +1 -0
  171. package/dist/cjs/src/utils/id.d.ts +25 -0
  172. package/dist/cjs/src/utils/id.d.ts.map +1 -0
  173. package/dist/cjs/src/utils/id.js +70 -0
  174. package/dist/cjs/src/utils/id.js.map +1 -0
  175. package/dist/cjs/src/utils/index.d.ts +15 -0
  176. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  177. package/dist/cjs/src/utils/index.js +64 -0
  178. package/dist/cjs/src/utils/index.js.map +1 -0
  179. package/dist/cjs/src/utils/json.d.ts +16 -0
  180. package/dist/cjs/src/utils/json.d.ts.map +1 -0
  181. package/dist/cjs/src/utils/json.js +47 -0
  182. package/dist/cjs/src/utils/json.js.map +1 -0
  183. package/dist/cjs/src/utils/logger.d.ts +10 -0
  184. package/dist/cjs/src/utils/logger.d.ts.map +1 -0
  185. package/dist/cjs/src/utils/logger.js +23 -0
  186. package/dist/cjs/src/utils/logger.js.map +1 -0
  187. package/dist/cjs/src/utils/retry.d.ts +10 -0
  188. package/dist/cjs/src/utils/retry.d.ts.map +1 -0
  189. package/dist/cjs/src/utils/retry.js +76 -0
  190. package/dist/cjs/src/utils/retry.js.map +1 -0
  191. package/dist/cjs/src/utils/session.d.ts +51 -0
  192. package/dist/cjs/src/utils/session.d.ts.map +1 -0
  193. package/dist/cjs/src/utils/session.js +170 -0
  194. package/dist/cjs/src/utils/session.js.map +1 -0
  195. package/dist/cjs/src/utils/template.d.ts +155 -0
  196. package/dist/cjs/src/utils/template.d.ts.map +1 -0
  197. package/dist/cjs/src/utils/template.js +383 -0
  198. package/dist/cjs/src/utils/template.js.map +1 -0
  199. package/dist/src/adapters/MemoryAdapter.d.ts +47 -0
  200. package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
  201. package/dist/src/adapters/MemoryAdapter.js +198 -0
  202. package/dist/src/adapters/MemoryAdapter.js.map +1 -0
  203. package/dist/src/adapters/MongoAdapter.d.ts +97 -0
  204. package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
  205. package/dist/src/adapters/MongoAdapter.js +164 -0
  206. package/dist/src/adapters/MongoAdapter.js.map +1 -0
  207. package/dist/src/adapters/OpenSearchAdapter.d.ts +169 -0
  208. package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  209. package/dist/src/adapters/OpenSearchAdapter.js +454 -0
  210. package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
  211. package/dist/src/adapters/PostgreSQLAdapter.d.ts +71 -0
  212. package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  213. package/dist/src/adapters/PostgreSQLAdapter.js +256 -0
  214. package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
  215. package/dist/src/adapters/PrismaAdapter.d.ts +115 -0
  216. package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
  217. package/dist/src/adapters/PrismaAdapter.js +362 -0
  218. package/dist/src/adapters/PrismaAdapter.js.map +1 -0
  219. package/dist/src/adapters/RedisAdapter.d.ts +71 -0
  220. package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
  221. package/dist/src/adapters/RedisAdapter.js +227 -0
  222. package/dist/src/adapters/RedisAdapter.js.map +1 -0
  223. package/dist/src/adapters/SQLiteAdapter.d.ts +69 -0
  224. package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  225. package/dist/src/adapters/SQLiteAdapter.js +308 -0
  226. package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
  227. package/dist/src/adapters/index.d.ts +17 -0
  228. package/dist/src/adapters/index.d.ts.map +1 -0
  229. package/dist/src/adapters/index.js +11 -0
  230. package/dist/src/adapters/index.js.map +1 -0
  231. package/dist/src/constants/index.d.ts +10 -0
  232. package/dist/src/constants/index.d.ts.map +1 -0
  233. package/dist/src/constants/index.js +10 -0
  234. package/dist/src/constants/index.js.map +1 -0
  235. package/dist/src/core/Agent.d.ts +232 -0
  236. package/dist/src/core/Agent.d.ts.map +1 -0
  237. package/dist/src/core/Agent.js +737 -0
  238. package/dist/src/core/Agent.js.map +1 -0
  239. package/dist/src/core/Events.d.ts +26 -0
  240. package/dist/src/core/Events.d.ts.map +1 -0
  241. package/dist/src/core/Events.js +137 -0
  242. package/dist/src/core/Events.js.map +1 -0
  243. package/dist/src/core/PersistenceManager.d.ts +98 -0
  244. package/dist/src/core/PersistenceManager.d.ts.map +1 -0
  245. package/dist/src/core/PersistenceManager.js +257 -0
  246. package/dist/src/core/PersistenceManager.js.map +1 -0
  247. package/dist/src/core/PromptComposer.d.ts +27 -0
  248. package/dist/src/core/PromptComposer.d.ts.map +1 -0
  249. package/dist/src/core/PromptComposer.js +190 -0
  250. package/dist/src/core/PromptComposer.js.map +1 -0
  251. package/dist/src/core/ResponseEngine.d.ts +32 -0
  252. package/dist/src/core/ResponseEngine.d.ts.map +1 -0
  253. package/dist/src/core/ResponseEngine.js +198 -0
  254. package/dist/src/core/ResponseEngine.js.map +1 -0
  255. package/dist/src/core/ResponseModal.d.ts +222 -0
  256. package/dist/src/core/ResponseModal.d.ts.map +1 -0
  257. package/dist/src/core/ResponseModal.js +1583 -0
  258. package/dist/src/core/ResponseModal.js.map +1 -0
  259. package/dist/src/core/ResponsePipeline.d.ts +175 -0
  260. package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
  261. package/dist/src/core/ResponsePipeline.js +545 -0
  262. package/dist/src/core/ResponsePipeline.js.map +1 -0
  263. package/dist/src/core/Route.d.ts +181 -0
  264. package/dist/src/core/Route.d.ts.map +1 -0
  265. package/dist/src/core/Route.js +537 -0
  266. package/dist/src/core/Route.js.map +1 -0
  267. package/dist/src/core/RoutingEngine.d.ts +159 -0
  268. package/dist/src/core/RoutingEngine.d.ts.map +1 -0
  269. package/dist/src/core/RoutingEngine.js +957 -0
  270. package/dist/src/core/RoutingEngine.js.map +1 -0
  271. package/dist/src/core/SessionManager.d.ts +94 -0
  272. package/dist/src/core/SessionManager.d.ts.map +1 -0
  273. package/dist/src/core/SessionManager.js +235 -0
  274. package/dist/src/core/SessionManager.js.map +1 -0
  275. package/dist/src/core/Step.d.ts +170 -0
  276. package/dist/src/core/Step.d.ts.map +1 -0
  277. package/dist/src/core/Step.js +444 -0
  278. package/dist/src/core/Step.js.map +1 -0
  279. package/dist/src/core/ToolManager.d.ts +234 -0
  280. package/dist/src/core/ToolManager.d.ts.map +1 -0
  281. package/dist/src/core/ToolManager.js +1111 -0
  282. package/dist/src/core/ToolManager.js.map +1 -0
  283. package/dist/src/index.d.ts +44 -0
  284. package/dist/src/index.d.ts.map +1 -0
  285. package/dist/src/index.js +37 -0
  286. package/dist/src/index.js.map +1 -0
  287. package/dist/src/providers/AnthropicProvider.d.ts +43 -0
  288. package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
  289. package/dist/src/providers/AnthropicProvider.js +370 -0
  290. package/dist/src/providers/AnthropicProvider.js.map +1 -0
  291. package/dist/src/providers/GeminiProvider.d.ts +58 -0
  292. package/dist/src/providers/GeminiProvider.d.ts.map +1 -0
  293. package/dist/src/providers/GeminiProvider.js +485 -0
  294. package/dist/src/providers/GeminiProvider.js.map +1 -0
  295. package/dist/src/providers/OpenAIProvider.d.ts +52 -0
  296. package/dist/src/providers/OpenAIProvider.d.ts.map +1 -0
  297. package/dist/src/providers/OpenAIProvider.js +388 -0
  298. package/dist/src/providers/OpenAIProvider.js.map +1 -0
  299. package/dist/src/providers/OpenRouterProvider.d.ts +56 -0
  300. package/dist/src/providers/OpenRouterProvider.d.ts.map +1 -0
  301. package/dist/src/providers/OpenRouterProvider.js +402 -0
  302. package/dist/src/providers/OpenRouterProvider.js.map +1 -0
  303. package/dist/src/providers/index.d.ts +13 -0
  304. package/dist/src/providers/index.d.ts.map +1 -0
  305. package/dist/src/providers/index.js +9 -0
  306. package/dist/src/providers/index.js.map +1 -0
  307. package/dist/src/types/agent.d.ts +181 -0
  308. package/dist/src/types/agent.d.ts.map +1 -0
  309. package/dist/src/types/agent.js +18 -0
  310. package/dist/src/types/agent.js.map +1 -0
  311. package/dist/src/types/ai.d.ts +143 -0
  312. package/dist/src/types/ai.d.ts.map +1 -0
  313. package/dist/src/types/ai.js +5 -0
  314. package/dist/src/types/ai.js.map +1 -0
  315. package/dist/src/types/history.d.ts +178 -0
  316. package/dist/src/types/history.d.ts.map +1 -0
  317. package/dist/src/types/history.js +30 -0
  318. package/dist/src/types/history.js.map +1 -0
  319. package/dist/src/types/index.d.ts +22 -0
  320. package/dist/src/types/index.d.ts.map +1 -0
  321. package/dist/src/types/index.js +12 -0
  322. package/dist/src/types/index.js.map +1 -0
  323. package/dist/src/types/persistence.d.ts +209 -0
  324. package/dist/src/types/persistence.d.ts.map +1 -0
  325. package/dist/src/types/persistence.js +6 -0
  326. package/dist/src/types/persistence.js.map +1 -0
  327. package/dist/src/types/route.d.ts +238 -0
  328. package/dist/src/types/route.d.ts.map +1 -0
  329. package/dist/src/types/route.js +5 -0
  330. package/dist/src/types/route.js.map +1 -0
  331. package/dist/src/types/routing.d.ts +16 -0
  332. package/dist/src/types/routing.d.ts.map +1 -0
  333. package/dist/src/types/routing.js +2 -0
  334. package/dist/src/types/routing.js.map +1 -0
  335. package/dist/src/types/schema.d.ts +22 -0
  336. package/dist/src/types/schema.d.ts.map +1 -0
  337. package/dist/src/types/schema.js +2 -0
  338. package/dist/src/types/schema.js.map +1 -0
  339. package/dist/src/types/session.d.ts +65 -0
  340. package/dist/src/types/session.d.ts.map +1 -0
  341. package/dist/src/types/session.js +5 -0
  342. package/dist/src/types/session.js.map +1 -0
  343. package/dist/src/types/template.d.ts +88 -0
  344. package/dist/src/types/template.d.ts.map +1 -0
  345. package/dist/src/types/template.js +2 -0
  346. package/dist/src/types/template.js.map +1 -0
  347. package/dist/src/types/tool.d.ts +130 -0
  348. package/dist/src/types/tool.d.ts.map +1 -0
  349. package/dist/src/types/tool.js +16 -0
  350. package/dist/src/types/tool.js.map +1 -0
  351. package/dist/src/utils/clone.d.ts +8 -0
  352. package/dist/src/utils/clone.d.ts.map +1 -0
  353. package/dist/src/utils/clone.js +29 -0
  354. package/dist/src/utils/clone.js.map +1 -0
  355. package/dist/src/utils/condition.d.ts +38 -0
  356. package/dist/src/utils/condition.d.ts.map +1 -0
  357. package/dist/src/utils/condition.js +161 -0
  358. package/dist/src/utils/condition.js.map +1 -0
  359. package/dist/src/utils/event.d.ts +6 -0
  360. package/dist/src/utils/event.d.ts.map +1 -0
  361. package/dist/src/utils/event.js +17 -0
  362. package/dist/src/utils/event.js.map +1 -0
  363. package/dist/src/utils/history.d.ts +60 -0
  364. package/dist/src/utils/history.d.ts.map +1 -0
  365. package/dist/src/utils/history.js +263 -0
  366. package/dist/src/utils/history.js.map +1 -0
  367. package/dist/src/utils/id.d.ts +25 -0
  368. package/dist/src/utils/id.d.ts.map +1 -0
  369. package/dist/src/utils/id.js +64 -0
  370. package/dist/src/utils/id.js.map +1 -0
  371. package/dist/src/utils/index.d.ts +15 -0
  372. package/dist/src/utils/index.d.ts.map +1 -0
  373. package/dist/src/utils/index.js +23 -0
  374. package/dist/src/utils/index.js.map +1 -0
  375. package/dist/src/utils/json.d.ts +16 -0
  376. package/dist/src/utils/json.d.ts.map +1 -0
  377. package/dist/src/utils/json.js +43 -0
  378. package/dist/src/utils/json.js.map +1 -0
  379. package/dist/src/utils/logger.d.ts +10 -0
  380. package/dist/src/utils/logger.d.ts.map +1 -0
  381. package/dist/src/utils/logger.js +17 -0
  382. package/dist/src/utils/logger.js.map +1 -0
  383. package/dist/src/utils/retry.d.ts +10 -0
  384. package/dist/src/utils/retry.d.ts.map +1 -0
  385. package/dist/src/utils/retry.js +71 -0
  386. package/dist/src/utils/retry.js.map +1 -0
  387. package/dist/src/utils/session.d.ts +51 -0
  388. package/dist/src/utils/session.d.ts.map +1 -0
  389. package/dist/src/utils/session.js +160 -0
  390. package/dist/src/utils/session.js.map +1 -0
  391. package/dist/src/utils/template.d.ts +155 -0
  392. package/dist/src/utils/template.d.ts.map +1 -0
  393. package/dist/src/utils/template.js +374 -0
  394. package/dist/src/utils/template.js.map +1 -0
  395. package/docs/CONTRIBUTING.md +521 -0
  396. package/docs/README.md +228 -0
  397. package/docs/api/README.md +3258 -0
  398. package/docs/api/overview.md +1134 -0
  399. package/docs/architecture/data-extraction-flow.md +363 -0
  400. package/docs/core/agent/README.md +902 -0
  401. package/docs/core/agent/context-management.md +796 -0
  402. package/docs/core/agent/session-management.md +641 -0
  403. package/docs/core/ai-integration/prompt-composition.md +220 -0
  404. package/docs/core/ai-integration/providers.md +515 -0
  405. package/docs/core/ai-integration/response-processing.md +287 -0
  406. package/docs/core/conversation-flows/data-collection.md +623 -0
  407. package/docs/core/conversation-flows/route-dsl.md +502 -0
  408. package/docs/core/conversation-flows/routes.md +247 -0
  409. package/docs/core/conversation-flows/step-transitions.md +595 -0
  410. package/docs/core/conversation-flows/steps.md +154 -0
  411. package/docs/core/error-handling.md +638 -0
  412. package/docs/core/persistence/adapters.md +255 -0
  413. package/docs/core/persistence/session-storage.md +644 -0
  414. package/docs/core/routing/intelligent-routing.md +466 -0
  415. package/docs/core/tools/tool-definition.md +970 -0
  416. package/docs/core/tools/tool-scoping.md +819 -0
  417. package/docs/guides/advanced-patterns/publishing.md +186 -0
  418. package/docs/guides/error-handling-patterns.md +578 -0
  419. package/docs/guides/getting-started/README.md +696 -0
  420. package/docs/guides/migration/README.md +72 -0
  421. package/docs/guides/migration/flexible-routing-conditions.md +375 -0
  422. package/docs/guides/migration/response-modal-refactor.md +518 -0
  423. package/examples/advanced-patterns/knowledge-based-agent.ts +735 -0
  424. package/examples/advanced-patterns/persistent-onboarding.ts +728 -0
  425. package/examples/advanced-patterns/route-lifecycle-hooks.ts +556 -0
  426. package/examples/advanced-patterns/streaming-responses.ts +578 -0
  427. package/examples/ai-providers/anthropic-integration.ts +388 -0
  428. package/examples/ai-providers/openai-integration.ts +228 -0
  429. package/examples/condition-patterns/function-only-conditions.ts +365 -0
  430. package/examples/condition-patterns/mixed-array-conditions.ts +477 -0
  431. package/examples/condition-patterns/route-skipif-patterns.ts +468 -0
  432. package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
  433. package/examples/condition-patterns/string-only-conditions.ts +296 -0
  434. package/examples/conversation-flows/completion-transitions.ts +318 -0
  435. package/examples/core-concepts/basic-agent.ts +503 -0
  436. package/examples/core-concepts/modern-streaming-api.ts +309 -0
  437. package/examples/core-concepts/schema-driven-extraction.ts +332 -0
  438. package/examples/core-concepts/session-management.ts +494 -0
  439. package/examples/integrations/database-integration.ts +630 -0
  440. package/examples/integrations/healthcare-integration.ts +595 -0
  441. package/examples/integrations/search-integration.ts +530 -0
  442. package/examples/integrations/server-session-management.ts +307 -0
  443. package/examples/persistence/custom-adapter.ts +529 -0
  444. package/examples/persistence/database-persistence.ts +583 -0
  445. package/examples/persistence/memory-sessions.ts +495 -0
  446. package/examples/persistence/prisma-schema.example.prisma +74 -0
  447. package/examples/persistence/redis-persistence.ts +488 -0
  448. package/examples/tools/basic-tools.ts +765 -0
  449. package/examples/tools/data-enrichment-tools.ts +593 -0
  450. package/package.json +125 -0
  451. package/src/adapters/MemoryAdapter.ts +273 -0
  452. package/src/adapters/MongoAdapter.ts +304 -0
  453. package/src/adapters/OpenSearchAdapter.ts +670 -0
  454. package/src/adapters/PostgreSQLAdapter.ts +428 -0
  455. package/src/adapters/PrismaAdapter.ts +553 -0
  456. package/src/adapters/RedisAdapter.ts +377 -0
  457. package/src/adapters/SQLiteAdapter.ts +459 -0
  458. package/src/adapters/index.ts +43 -0
  459. package/src/constants/index.ts +10 -0
  460. package/src/core/Agent.ts +970 -0
  461. package/src/core/Events.ts +164 -0
  462. package/src/core/PersistenceManager.ts +353 -0
  463. package/src/core/PromptComposer.ts +253 -0
  464. package/src/core/ResponseEngine.ts +306 -0
  465. package/src/core/ResponseModal.ts +2050 -0
  466. package/src/core/ResponsePipeline.ts +864 -0
  467. package/src/core/Route.ts +677 -0
  468. package/src/core/RoutingEngine.ts +1396 -0
  469. package/src/core/SessionManager.ts +297 -0
  470. package/src/core/Step.ts +593 -0
  471. package/src/core/ToolManager.ts +1394 -0
  472. package/src/index.ts +155 -0
  473. package/src/providers/AnthropicProvider.ts +560 -0
  474. package/src/providers/GeminiProvider.ts +683 -0
  475. package/src/providers/OpenAIProvider.ts +602 -0
  476. package/src/providers/OpenRouterProvider.ts +613 -0
  477. package/src/providers/index.ts +16 -0
  478. package/src/types/agent.ts +196 -0
  479. package/src/types/ai.ts +158 -0
  480. package/src/types/history.ts +206 -0
  481. package/src/types/index.ts +119 -0
  482. package/src/types/persistence.ts +251 -0
  483. package/src/types/route.ts +272 -0
  484. package/src/types/routing.ts +18 -0
  485. package/src/types/schema.ts +23 -0
  486. package/src/types/session.ts +74 -0
  487. package/src/types/template.ts +104 -0
  488. package/src/types/tool.ts +174 -0
  489. package/src/utils/clone.ts +34 -0
  490. package/src/utils/condition.ts +190 -0
  491. package/src/utils/event.ts +16 -0
  492. package/src/utils/history.ts +306 -0
  493. package/src/utils/id.ts +73 -0
  494. package/src/utils/index.ts +69 -0
  495. package/src/utils/json.ts +46 -0
  496. package/src/utils/logger.ts +19 -0
  497. package/src/utils/retry.ts +97 -0
  498. package/src/utils/session.ts +204 -0
  499. package/src/utils/template.ts +444 -0
@@ -0,0 +1,459 @@
1
+ /**
2
+ * SQLite adapter for persistence
3
+ * Lightweight, file-based database perfect for local development
4
+ */
5
+
6
+ import type {
7
+ SessionRepository,
8
+ MessageRepository,
9
+ SessionData,
10
+ MessageData,
11
+ SessionStatus,
12
+ PersistenceAdapter,
13
+ CollectedStateData,
14
+ CreateSessionData,
15
+ } from "../types";
16
+ import { createSessionId } from "../utils";
17
+
18
+ /**
19
+ * SQLite database interface - matches better-sqlite3
20
+ */
21
+ export interface SqliteDatabase {
22
+ prepare(sql: string): SqliteStepment;
23
+ exec(sql: string): void;
24
+ close(): void;
25
+ }
26
+
27
+ /**
28
+ * SQLite stepment interface
29
+ */
30
+ export interface SqliteStepment {
31
+ run(...params: unknown[]): { changes: number; lastInsertRowid: number };
32
+ get(...params: unknown[]): Record<string, unknown> | undefined;
33
+ all(...params: unknown[]): Array<Record<string, unknown>>;
34
+ }
35
+
36
+ /**
37
+ * Options for SQLite adapter
38
+ */
39
+ export interface SQLiteAdapterOptions {
40
+ /**
41
+ * SQLite database instance (better-sqlite3)
42
+ */
43
+ db: SqliteDatabase;
44
+
45
+ /**
46
+ * Table names (default: "agent_sessions" and "agent_messages")
47
+ */
48
+ tables?: {
49
+ sessions?: string;
50
+ messages?: string;
51
+ };
52
+ }
53
+
54
+ /**
55
+ * SQLite Adapter - Provider-style API for SQLite persistence
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * import Database from 'better-sqlite3';
60
+ * import { Agent, SQLiteAdapter } from '@falai/agent';
61
+ *
62
+ * const db = new Database('agent.db');
63
+ *
64
+ * const agent = new Agent({
65
+ * name: "My Agent",
66
+ * provider: provider,
67
+ * persistence: {
68
+ * adapter: new SQLiteAdapter({ db }),
69
+ * userId: "user_123",
70
+ * },
71
+ * });
72
+ * ```
73
+ */
74
+ export class SQLiteAdapter<TData = Record<string, unknown>>
75
+ implements PersistenceAdapter<TData>
76
+ {
77
+ public readonly sessionRepository: SessionRepository<TData>;
78
+ public readonly messageRepository: MessageRepository;
79
+ private db: SqliteDatabase;
80
+
81
+ constructor(options: SQLiteAdapterOptions) {
82
+ this.db = options.db;
83
+
84
+ const sessionTable = options.tables?.sessions || "agent_sessions";
85
+ const messageTable = options.tables?.messages || "agent_messages";
86
+
87
+ this.sessionRepository = new SQLiteSessionRepository<TData>(
88
+ this.db,
89
+ sessionTable
90
+ );
91
+ this.messageRepository = new SQLiteMessageRepository(this.db, messageTable);
92
+ }
93
+
94
+ async initialize(): Promise<void> {
95
+ const sessionTable = "agent_sessions";
96
+ const messageTable = "agent_messages";
97
+
98
+ // Create sessions table
99
+ this.db.exec(`
100
+ CREATE TABLE IF NOT EXISTS ${sessionTable} (
101
+ id TEXT PRIMARY KEY,
102
+ user_id TEXT,
103
+ agent_name TEXT,
104
+ status TEXT DEFAULT 'active',
105
+ current_route TEXT,
106
+ current_step TEXT,
107
+ collected_data TEXT,
108
+ message_count INTEGER DEFAULT 0,
109
+ last_message_at TEXT,
110
+ completed_at TEXT,
111
+ created_at TEXT NOT NULL,
112
+ updated_at TEXT NOT NULL
113
+ )
114
+ `);
115
+
116
+ // Create indexes for sessions
117
+ this.db.exec(`
118
+ CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON ${sessionTable}(user_id);
119
+ CREATE INDEX IF NOT EXISTS idx_sessions_status ON ${sessionTable}(status);
120
+ `);
121
+
122
+ // Create messages table
123
+ this.db.exec(`
124
+ CREATE TABLE IF NOT EXISTS ${messageTable} (
125
+ id TEXT PRIMARY KEY,
126
+ session_id TEXT NOT NULL,
127
+ user_id TEXT,
128
+ role TEXT NOT NULL,
129
+ content TEXT NOT NULL,
130
+ route TEXT,
131
+ step TEXT,
132
+ tool_calls TEXT,
133
+ event TEXT,
134
+ created_at TEXT NOT NULL,
135
+ FOREIGN KEY (session_id) REFERENCES ${sessionTable}(id) ON DELETE CASCADE
136
+ )
137
+ `);
138
+
139
+ // Create indexes for messages
140
+ this.db.exec(`
141
+ CREATE INDEX IF NOT EXISTS idx_messages_session_id ON ${messageTable}(session_id);
142
+ CREATE INDEX IF NOT EXISTS idx_messages_user_id ON ${messageTable}(user_id);
143
+ `);
144
+ await Promise.resolve();
145
+ }
146
+
147
+ async disconnect(): Promise<void> {
148
+ this.db.close();
149
+ await Promise.resolve();
150
+ }
151
+ }
152
+
153
+ /**
154
+ * SQLite Session Repository
155
+ */
156
+ class SQLiteSessionRepository<TData = Record<string, unknown>>
157
+ implements SessionRepository<TData>
158
+ {
159
+ constructor(private db: SqliteDatabase, private tableName: string) {}
160
+
161
+ create(data: CreateSessionData<TData>): Promise<SessionData<TData>> {
162
+ const id = data.id || createSessionId();
163
+ const now = new Date();
164
+
165
+ const session: SessionData<TData> = {
166
+ ...data,
167
+ id,
168
+ status: data.status || "active",
169
+ messageCount: data.messageCount || 0,
170
+ createdAt: now,
171
+ updatedAt: now,
172
+ };
173
+
174
+ const stmt = this.db.prepare(`
175
+ INSERT INTO ${this.tableName}
176
+ (id, user_id, agent_name, status, collected_data, message_count, created_at, updated_at)
177
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
178
+ `);
179
+
180
+ stmt.run(
181
+ id,
182
+ data.userId || null,
183
+ data.agentName || null,
184
+ session.status,
185
+ JSON.stringify(data.collectedData || {}),
186
+ session.messageCount,
187
+ now.toISOString(),
188
+ now.toISOString()
189
+ );
190
+
191
+ return Promise.resolve(session);
192
+ }
193
+
194
+ findById(id: string): Promise<SessionData<TData> | null> {
195
+ const stmt = this.db.prepare(
196
+ `SELECT * FROM ${this.tableName} WHERE id = ?`
197
+ );
198
+ const row = stmt.get(id);
199
+ return Promise.resolve(row ? this.deserializeSession(row) : null);
200
+ }
201
+
202
+ findActiveByUserId(userId: string): Promise<SessionData<TData> | null> {
203
+ const stmt = this.db.prepare(
204
+ `SELECT * FROM ${this.tableName}
205
+ WHERE user_id = ? AND status = 'active'
206
+ ORDER BY created_at DESC
207
+ LIMIT 1`
208
+ );
209
+ const row = stmt.get(userId);
210
+ return Promise.resolve(row ? this.deserializeSession(row) : null);
211
+ }
212
+
213
+ findByUserId(userId: string, limit = 100): Promise<SessionData<TData>[]> {
214
+ const stmt = this.db.prepare(
215
+ `SELECT * FROM ${this.tableName}
216
+ WHERE user_id = ?
217
+ ORDER BY created_at DESC
218
+ LIMIT ?`
219
+ );
220
+ const rows = stmt.all(userId, limit);
221
+ return Promise.resolve(rows.map((row) => this.deserializeSession(row)));
222
+ }
223
+
224
+ async update(
225
+ id: string,
226
+ data: Partial<Omit<SessionData<TData>, "id" | "createdAt">>
227
+ ): Promise<SessionData<TData> | null> {
228
+ const fields: string[] = [];
229
+ const values: unknown[] = [];
230
+
231
+ if (data.status !== undefined) {
232
+ fields.push("status = ?");
233
+ values.push(data.status);
234
+ }
235
+ if (data.collectedData !== undefined) {
236
+ fields.push("collected_data = ?");
237
+ values.push(JSON.stringify(data.collectedData));
238
+ }
239
+ if (data.currentRoute !== undefined) {
240
+ fields.push("current_route = ?");
241
+ values.push(data.currentRoute);
242
+ }
243
+ if (data.currentStep !== undefined) {
244
+ fields.push("current_step = ?");
245
+ values.push(data.currentStep);
246
+ }
247
+ if (data.messageCount !== undefined) {
248
+ fields.push("message_count = ?");
249
+ values.push(data.messageCount);
250
+ }
251
+ if (data.lastMessageAt !== undefined) {
252
+ fields.push("last_message_at = ?");
253
+ values.push(data.lastMessageAt.toISOString());
254
+ }
255
+ if (data.completedAt !== undefined) {
256
+ fields.push("completed_at = ?");
257
+ values.push(data.completedAt.toISOString());
258
+ }
259
+
260
+ fields.push("updated_at = ?");
261
+ values.push(new Date().toISOString());
262
+
263
+ values.push(id);
264
+
265
+ const stmt = this.db.prepare(
266
+ `UPDATE ${this.tableName}
267
+ SET ${fields.join(", ")}
268
+ WHERE id = ?`
269
+ );
270
+
271
+ const result = stmt.run(...values);
272
+ if (result.changes === 0) return null;
273
+
274
+ return await this.findById(id);
275
+ }
276
+
277
+ async updateStatus(
278
+ id: string,
279
+ status: SessionStatus,
280
+ completedAt?: Date
281
+ ): Promise<SessionData<TData> | null> {
282
+ return await this.update(id, { status, completedAt });
283
+ }
284
+
285
+ async updateCollectedData(
286
+ id: string,
287
+ collectedData: CollectedStateData<TData>
288
+ ): Promise<SessionData<TData> | null> {
289
+ return await this.update(id, { collectedData });
290
+ }
291
+
292
+ async updateRouteStep(
293
+ id: string,
294
+ route?: string,
295
+ step?: string
296
+ ): Promise<SessionData<TData> | null> {
297
+ return await this.update(id, {
298
+ currentRoute: route,
299
+ currentStep: step,
300
+ });
301
+ }
302
+
303
+ async incrementMessageCount(id: string): Promise<SessionData<TData> | null> {
304
+ const stmt = this.db.prepare(
305
+ `UPDATE ${this.tableName}
306
+ SET message_count = message_count + 1,
307
+ last_message_at = ?,
308
+ updated_at = ?
309
+ WHERE id = ?`
310
+ );
311
+
312
+ const now = new Date();
313
+ const result = stmt.run(now.toISOString(), now.toISOString(), id);
314
+
315
+ if (result.changes === 0) return null;
316
+ return await this.findById(id);
317
+ }
318
+
319
+ delete(id: string): Promise<boolean> {
320
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE id = ?`);
321
+ const result = stmt.run(id);
322
+ return Promise.resolve(result.changes > 0);
323
+ }
324
+
325
+ private deserializeSession(row: Record<string, unknown>): SessionData<TData> {
326
+ return {
327
+ id: row.id as string,
328
+ userId: (row.user_id as string) || undefined,
329
+ agentName: (row.agent_name as string) || undefined,
330
+ status: row.status as SessionStatus,
331
+ currentRoute: (row.current_route as string) || undefined,
332
+ currentStep: (row.current_step as string) || undefined,
333
+ collectedData: row.collected_data
334
+ ? (JSON.parse(
335
+ row.collected_data as string
336
+ ) as CollectedStateData<TData>)
337
+ : undefined,
338
+ messageCount: (row.message_count as number) || 0,
339
+ lastMessageAt: row.last_message_at
340
+ ? new Date(row.last_message_at as string)
341
+ : undefined,
342
+ completedAt: row.completed_at
343
+ ? new Date(row.completed_at as string)
344
+ : undefined,
345
+ createdAt: new Date(row.created_at as string),
346
+ updatedAt: new Date(row.updated_at as string),
347
+ };
348
+ }
349
+ }
350
+
351
+ /**
352
+ * SQLite Message Repository
353
+ */
354
+ class SQLiteMessageRepository implements MessageRepository {
355
+ constructor(private db: SqliteDatabase, private tableName: string) {}
356
+
357
+ create(data: Omit<MessageData, "id" | "createdAt">): Promise<MessageData> {
358
+ const id = `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`;
359
+ const now = new Date();
360
+
361
+ const message: MessageData = {
362
+ ...data,
363
+ id,
364
+ createdAt: now,
365
+ };
366
+
367
+ const stmt = this.db.prepare(`
368
+ INSERT INTO ${this.tableName}
369
+ (id, session_id, user_id, role, content, route, step, tool_calls, event, created_at)
370
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
371
+ `);
372
+
373
+ stmt.run(
374
+ id,
375
+ data.sessionId,
376
+ data.userId || null,
377
+ data.role,
378
+ data.content,
379
+ data.route || null,
380
+ data.step || null,
381
+ JSON.stringify(data.toolCalls || null),
382
+ JSON.stringify(data.event || null),
383
+ now.toISOString()
384
+ );
385
+
386
+ return Promise.resolve(message);
387
+ }
388
+
389
+ findById(id: string): Promise<MessageData | null> {
390
+ const stmt = this.db.prepare(
391
+ `SELECT * FROM ${this.tableName} WHERE id = ?`
392
+ );
393
+ const row = stmt.get(id);
394
+ return Promise.resolve(row ? this.deserializeMessage(row) : null);
395
+ }
396
+
397
+ findBySessionId(sessionId: string, limit = 1000): Promise<MessageData[]> {
398
+ const stmt = this.db.prepare(
399
+ `SELECT * FROM ${this.tableName}
400
+ WHERE session_id = ?
401
+ ORDER BY created_at ASC
402
+ LIMIT ?`
403
+ );
404
+ const rows = stmt.all(sessionId, limit);
405
+ return Promise.resolve(rows.map((row) => this.deserializeMessage(row)));
406
+ }
407
+
408
+ findByUserId(userId: string, limit = 100): Promise<MessageData[]> {
409
+ const stmt = this.db.prepare(
410
+ `SELECT * FROM ${this.tableName}
411
+ WHERE user_id = ?
412
+ ORDER BY created_at DESC
413
+ LIMIT ?`
414
+ );
415
+ const rows = stmt.all(userId, limit);
416
+ return Promise.resolve(rows.map((row) => this.deserializeMessage(row)));
417
+ }
418
+
419
+ delete(id: string): Promise<boolean> {
420
+ const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE id = ?`);
421
+ const result = stmt.run(id);
422
+ return Promise.resolve(result.changes > 0);
423
+ }
424
+
425
+ deleteBySessionId(sessionId: string): Promise<number> {
426
+ const stmt = this.db.prepare(
427
+ `DELETE FROM ${this.tableName} WHERE session_id = ?`
428
+ );
429
+ const result = stmt.run(sessionId);
430
+ return Promise.resolve(result.changes);
431
+ }
432
+
433
+ deleteByUserId(userId: string): Promise<number> {
434
+ const stmt = this.db.prepare(
435
+ `DELETE FROM ${this.tableName} WHERE user_id = ?`
436
+ );
437
+ const result = stmt.run(userId);
438
+ return Promise.resolve(result.changes);
439
+ }
440
+
441
+ private deserializeMessage(row: Record<string, unknown>): MessageData {
442
+ return {
443
+ id: row.id as string,
444
+ sessionId: row.session_id as string,
445
+ userId: (row.user_id as string) || undefined,
446
+ role: row.role as MessageData["role"],
447
+ content: row.content as string,
448
+ route: (row.route as string) || undefined,
449
+ step: (row.step as string) || undefined,
450
+ toolCalls: row.tool_calls
451
+ ? (JSON.parse(row.tool_calls as string) as MessageData["toolCalls"])
452
+ : undefined,
453
+ event: row.event
454
+ ? (JSON.parse(row.event as string) as MessageData["event"])
455
+ : undefined,
456
+ createdAt: new Date(row.created_at as string),
457
+ };
458
+ }
459
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Database adapters for persistence
3
+ */
4
+
5
+ export { PrismaAdapter } from "./PrismaAdapter";
6
+ export type {
7
+ PrismaClient,
8
+ FieldMappings,
9
+ PrismaAdapterOptions,
10
+ } from "./PrismaAdapter";
11
+
12
+ export { RedisAdapter } from "./RedisAdapter";
13
+ export type { RedisClient, RedisAdapterOptions } from "./RedisAdapter";
14
+
15
+ export { MongoAdapter } from "./MongoAdapter";
16
+ export type {
17
+ MongoClient,
18
+ MongoDatabase,
19
+ MongoCollection,
20
+ MongoAdapterOptions,
21
+ } from "./MongoAdapter";
22
+
23
+ export { PostgreSQLAdapter } from "./PostgreSQLAdapter";
24
+ export type {
25
+ PgClient,
26
+ PgQueryResult,
27
+ PostgreSQLAdapterOptions,
28
+ } from "./PostgreSQLAdapter";
29
+
30
+ export { SQLiteAdapter } from "./SQLiteAdapter";
31
+ export type {
32
+ SqliteDatabase,
33
+ SqliteStepment,
34
+ SQLiteAdapterOptions,
35
+ } from "./SQLiteAdapter";
36
+
37
+ export { MemoryAdapter } from "./MemoryAdapter";
38
+
39
+ export { OpenSearchAdapter } from "./OpenSearchAdapter";
40
+ export type {
41
+ OpenSearchClient,
42
+ OpenSearchAdapterOptions,
43
+ } from "./OpenSearchAdapter";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Special marker to end a route/journey
3
+ */
4
+ export const END_ROUTE = Symbol("END_ROUTE");
5
+
6
+ /**
7
+ * String constant for END_ROUTE comparisons
8
+ * Use this when checking if currentStep.id has reached END_ROUTE
9
+ */
10
+ export const END_ROUTE_ID = "END_ROUTE";