@falai/agent 0.8.1 → 0.9.0-alpha-2

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 (665) hide show
  1. package/README.md +332 -147
  2. package/dist/{adapters → cjs/src/adapters}/MemoryAdapter.d.ts +4 -4
  3. package/dist/cjs/src/adapters/MemoryAdapter.d.ts.map +1 -0
  4. package/dist/cjs/{adapters → src/adapters}/MemoryAdapter.js +41 -21
  5. package/dist/cjs/src/adapters/MemoryAdapter.js.map +1 -0
  6. package/dist/{adapters → cjs/src/adapters}/MongoAdapter.d.ts +3 -3
  7. package/dist/cjs/src/adapters/MongoAdapter.d.ts.map +1 -0
  8. package/dist/cjs/{adapters → src/adapters}/MongoAdapter.js +2 -1
  9. package/dist/cjs/src/adapters/MongoAdapter.js.map +1 -0
  10. package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
  11. package/dist/cjs/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  12. package/dist/cjs/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
  13. package/dist/cjs/src/adapters/OpenSearchAdapter.js.map +1 -0
  14. package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
  15. package/dist/cjs/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  16. package/dist/cjs/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
  17. package/dist/cjs/src/adapters/PostgreSQLAdapter.js.map +1 -0
  18. package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
  19. package/dist/cjs/src/adapters/PrismaAdapter.d.ts.map +1 -0
  20. package/dist/cjs/{adapters → src/adapters}/PrismaAdapter.js +35 -5
  21. package/dist/cjs/src/adapters/PrismaAdapter.js.map +1 -0
  22. package/dist/cjs/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
  23. package/dist/cjs/src/adapters/RedisAdapter.d.ts.map +1 -0
  24. package/dist/cjs/{adapters → src/adapters}/RedisAdapter.js +3 -2
  25. package/dist/cjs/src/adapters/RedisAdapter.js.map +1 -0
  26. package/dist/{adapters → cjs/src/adapters}/SQLiteAdapter.d.ts +3 -3
  27. package/dist/cjs/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  28. package/dist/cjs/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
  29. package/dist/cjs/src/adapters/SQLiteAdapter.js.map +1 -0
  30. package/dist/cjs/src/adapters/index.d.ts.map +1 -0
  31. package/dist/cjs/src/adapters/index.js.map +1 -0
  32. package/dist/cjs/src/constants/index.d.ts.map +1 -0
  33. package/dist/cjs/src/constants/index.js.map +1 -0
  34. package/dist/cjs/src/core/Agent.d.ts +223 -0
  35. package/dist/cjs/src/core/Agent.d.ts.map +1 -0
  36. package/dist/cjs/src/core/Agent.js +1660 -0
  37. package/dist/cjs/src/core/Agent.js.map +1 -0
  38. package/dist/cjs/src/core/Events.d.ts +26 -0
  39. package/dist/cjs/src/core/Events.d.ts.map +1 -0
  40. package/dist/cjs/src/core/Events.js +144 -0
  41. package/dist/cjs/src/core/Events.js.map +1 -0
  42. package/dist/{core → cjs/src/core}/PersistenceManager.d.ts +21 -19
  43. package/dist/cjs/src/core/PersistenceManager.d.ts.map +1 -0
  44. package/dist/cjs/{core → src/core}/PersistenceManager.js +73 -20
  45. package/dist/cjs/src/core/PersistenceManager.js.map +1 -0
  46. package/dist/cjs/src/core/PromptComposer.d.ts +27 -0
  47. package/dist/cjs/src/core/PromptComposer.d.ts.map +1 -0
  48. package/dist/cjs/src/core/PromptComposer.js +157 -0
  49. package/dist/cjs/src/core/PromptComposer.js.map +1 -0
  50. package/dist/cjs/src/core/ResponseEngine.d.ts +32 -0
  51. package/dist/cjs/src/core/ResponseEngine.d.ts.map +1 -0
  52. package/dist/cjs/src/core/ResponseEngine.js +84 -0
  53. package/dist/cjs/src/core/ResponseEngine.js.map +1 -0
  54. package/dist/cjs/src/core/ResponsePipeline.d.ts +171 -0
  55. package/dist/cjs/src/core/ResponsePipeline.d.ts.map +1 -0
  56. package/dist/cjs/src/core/ResponsePipeline.js +514 -0
  57. package/dist/cjs/src/core/ResponsePipeline.js.map +1 -0
  58. package/dist/cjs/src/core/Route.d.ts +145 -0
  59. package/dist/cjs/src/core/Route.d.ts.map +1 -0
  60. package/dist/cjs/src/core/Route.js +343 -0
  61. package/dist/cjs/src/core/Route.js.map +1 -0
  62. package/dist/cjs/src/core/RoutingEngine.d.ts +129 -0
  63. package/dist/cjs/src/core/RoutingEngine.d.ts.map +1 -0
  64. package/dist/cjs/{core → src/core}/RoutingEngine.js +215 -117
  65. package/dist/cjs/src/core/RoutingEngine.js.map +1 -0
  66. package/dist/cjs/src/core/SessionManager.d.ts +86 -0
  67. package/dist/cjs/src/core/SessionManager.d.ts.map +1 -0
  68. package/dist/cjs/src/core/SessionManager.js +217 -0
  69. package/dist/cjs/src/core/SessionManager.js.map +1 -0
  70. package/dist/cjs/src/core/Step.d.ts +96 -0
  71. package/dist/cjs/src/core/Step.d.ts.map +1 -0
  72. package/dist/cjs/src/core/Step.js +206 -0
  73. package/dist/cjs/src/core/Step.js.map +1 -0
  74. package/dist/cjs/src/core/ToolExecutor.d.ts +45 -0
  75. package/dist/cjs/src/core/ToolExecutor.d.ts.map +1 -0
  76. package/dist/cjs/{core → src/core}/ToolExecutor.js +30 -19
  77. package/dist/cjs/src/core/ToolExecutor.js.map +1 -0
  78. package/dist/{index.d.ts → cjs/src/index.d.ts} +7 -15
  79. package/dist/cjs/src/index.d.ts.map +1 -0
  80. package/dist/cjs/{index.js → src/index.js} +21 -19
  81. package/dist/cjs/src/index.js.map +1 -0
  82. package/dist/cjs/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
  83. package/dist/cjs/src/providers/AnthropicProvider.d.ts.map +1 -0
  84. package/dist/cjs/{providers → src/providers}/AnthropicProvider.js +54 -2
  85. package/dist/cjs/src/providers/AnthropicProvider.js.map +1 -0
  86. package/dist/{providers → cjs/src/providers}/GeminiProvider.d.ts +1 -1
  87. package/dist/cjs/src/providers/GeminiProvider.d.ts.map +1 -0
  88. package/dist/cjs/{providers → src/providers}/GeminiProvider.js +65 -0
  89. package/dist/cjs/src/providers/GeminiProvider.js.map +1 -0
  90. package/dist/cjs/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
  91. package/dist/cjs/src/providers/OpenAIProvider.d.ts.map +1 -0
  92. package/dist/cjs/{providers → src/providers}/OpenAIProvider.js +70 -1
  93. package/dist/cjs/src/providers/OpenAIProvider.js.map +1 -0
  94. package/dist/{providers → cjs/src/providers}/OpenRouterProvider.d.ts +1 -1
  95. package/dist/cjs/src/providers/OpenRouterProvider.d.ts.map +1 -0
  96. package/dist/cjs/{providers → src/providers}/OpenRouterProvider.js +76 -0
  97. package/dist/cjs/src/providers/OpenRouterProvider.js.map +1 -0
  98. package/dist/cjs/src/providers/index.d.ts.map +1 -0
  99. package/dist/cjs/src/providers/index.js.map +1 -0
  100. package/dist/cjs/{types → src/types}/agent.d.ts +80 -41
  101. package/dist/cjs/src/types/agent.d.ts.map +1 -0
  102. package/dist/cjs/src/types/agent.js.map +1 -0
  103. package/dist/cjs/{types → src/types}/ai.d.ts +7 -0
  104. package/dist/cjs/src/types/ai.d.ts.map +1 -0
  105. package/dist/cjs/src/types/ai.js.map +1 -0
  106. package/dist/{types → cjs/src/types}/history.d.ts +76 -18
  107. package/dist/cjs/src/types/history.d.ts.map +1 -0
  108. package/dist/cjs/src/types/history.js +33 -0
  109. package/dist/cjs/src/types/history.js.map +1 -0
  110. package/dist/cjs/src/types/index.d.ts +20 -0
  111. package/dist/cjs/src/types/index.d.ts.map +1 -0
  112. package/dist/cjs/src/types/index.js +30 -0
  113. package/dist/cjs/src/types/index.js.map +1 -0
  114. package/dist/{types → cjs/src/types}/persistence.d.ts +38 -23
  115. package/dist/cjs/src/types/persistence.d.ts.map +1 -0
  116. package/dist/cjs/src/types/persistence.js.map +1 -0
  117. package/dist/cjs/src/types/route.d.ts +235 -0
  118. package/dist/cjs/src/types/route.d.ts.map +1 -0
  119. package/dist/cjs/{types → src/types}/route.js.map +1 -1
  120. package/dist/cjs/src/types/routing.d.ts.map +1 -0
  121. package/dist/{types → cjs/src/types}/routing.js.map +1 -1
  122. package/dist/cjs/src/types/schema.d.ts.map +1 -0
  123. package/dist/{types → cjs/src/types}/schema.js.map +1 -1
  124. package/dist/cjs/src/types/session.d.ts +65 -0
  125. package/dist/cjs/src/types/session.d.ts.map +1 -0
  126. package/dist/cjs/src/types/session.js +6 -0
  127. package/dist/cjs/src/types/session.js.map +1 -0
  128. package/dist/cjs/src/types/template.d.ts +30 -0
  129. package/dist/cjs/src/types/template.d.ts.map +1 -0
  130. package/dist/cjs/src/types/template.js +3 -0
  131. package/dist/cjs/src/types/template.js.map +1 -0
  132. package/dist/{types → cjs/src/types}/tool.d.ts +17 -13
  133. package/dist/cjs/src/types/tool.d.ts.map +1 -0
  134. package/dist/cjs/{types → src/types}/tool.js.map +1 -1
  135. package/dist/cjs/src/utils/clone.d.ts +8 -0
  136. package/dist/cjs/src/utils/clone.d.ts.map +1 -0
  137. package/dist/cjs/src/utils/clone.js +36 -0
  138. package/dist/cjs/src/utils/clone.js.map +1 -0
  139. package/dist/{utils → cjs/src/utils}/event.d.ts +1 -1
  140. package/dist/cjs/src/utils/event.d.ts.map +1 -0
  141. package/dist/cjs/{utils → src/utils}/event.js +2 -2
  142. package/dist/cjs/src/utils/event.js.map +1 -0
  143. package/dist/cjs/src/utils/history.d.ts +31 -0
  144. package/dist/cjs/src/utils/history.d.ts.map +1 -0
  145. package/dist/cjs/src/utils/history.js +128 -0
  146. package/dist/cjs/src/utils/history.js.map +1 -0
  147. package/dist/cjs/src/utils/id.d.ts.map +1 -0
  148. package/dist/cjs/src/utils/id.js.map +1 -0
  149. package/dist/cjs/src/utils/index.d.ts +13 -0
  150. package/dist/cjs/src/utils/index.d.ts.map +1 -0
  151. package/dist/cjs/src/utils/index.js +49 -0
  152. package/dist/cjs/src/utils/index.js.map +1 -0
  153. package/dist/cjs/src/utils/logger.d.ts.map +1 -0
  154. package/dist/cjs/src/utils/logger.js.map +1 -0
  155. package/dist/cjs/src/utils/retry.d.ts.map +1 -0
  156. package/dist/cjs/src/utils/retry.js.map +1 -0
  157. package/dist/cjs/src/utils/session.d.ts +51 -0
  158. package/dist/cjs/src/utils/session.d.ts.map +1 -0
  159. package/dist/cjs/{types → src/utils}/session.js +35 -32
  160. package/dist/cjs/src/utils/session.js.map +1 -0
  161. package/dist/cjs/src/utils/template.d.ts +107 -0
  162. package/dist/cjs/src/utils/template.d.ts.map +1 -0
  163. package/dist/cjs/src/utils/template.js +283 -0
  164. package/dist/cjs/src/utils/template.js.map +1 -0
  165. package/dist/{cjs → src}/adapters/MemoryAdapter.d.ts +4 -4
  166. package/dist/src/adapters/MemoryAdapter.d.ts.map +1 -0
  167. package/dist/{adapters → src/adapters}/MemoryAdapter.js +41 -21
  168. package/dist/src/adapters/MemoryAdapter.js.map +1 -0
  169. package/dist/{cjs → src}/adapters/MongoAdapter.d.ts +3 -3
  170. package/dist/src/adapters/MongoAdapter.d.ts.map +1 -0
  171. package/dist/{adapters → src/adapters}/MongoAdapter.js +2 -1
  172. package/dist/src/adapters/MongoAdapter.js.map +1 -0
  173. package/dist/{adapters → src/adapters}/OpenSearchAdapter.d.ts +3 -3
  174. package/dist/src/adapters/OpenSearchAdapter.d.ts.map +1 -0
  175. package/dist/{adapters → src/adapters}/OpenSearchAdapter.js +10 -13
  176. package/dist/src/adapters/OpenSearchAdapter.js.map +1 -0
  177. package/dist/{adapters → src/adapters}/PostgreSQLAdapter.d.ts +3 -3
  178. package/dist/src/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  179. package/dist/{adapters → src/adapters}/PostgreSQLAdapter.js +1 -1
  180. package/dist/src/adapters/PostgreSQLAdapter.js.map +1 -0
  181. package/dist/{adapters → src/adapters}/PrismaAdapter.d.ts +3 -3
  182. package/dist/src/adapters/PrismaAdapter.d.ts.map +1 -0
  183. package/dist/{adapters → src/adapters}/PrismaAdapter.js +35 -5
  184. package/dist/src/adapters/PrismaAdapter.js.map +1 -0
  185. package/dist/{adapters → src/adapters}/RedisAdapter.d.ts +3 -3
  186. package/dist/src/adapters/RedisAdapter.d.ts.map +1 -0
  187. package/dist/{adapters → src/adapters}/RedisAdapter.js +3 -2
  188. package/dist/src/adapters/RedisAdapter.js.map +1 -0
  189. package/dist/{cjs → src}/adapters/SQLiteAdapter.d.ts +3 -3
  190. package/dist/src/adapters/SQLiteAdapter.d.ts.map +1 -0
  191. package/dist/{adapters → src/adapters}/SQLiteAdapter.js +2 -1
  192. package/dist/src/adapters/SQLiteAdapter.js.map +1 -0
  193. package/dist/src/adapters/index.js.map +1 -0
  194. package/dist/src/constants/index.js.map +1 -0
  195. package/dist/src/core/Agent.d.ts +223 -0
  196. package/dist/src/core/Agent.d.ts.map +1 -0
  197. package/dist/src/core/Agent.js +1656 -0
  198. package/dist/src/core/Agent.js.map +1 -0
  199. package/dist/src/core/Events.d.ts +26 -0
  200. package/dist/src/core/Events.d.ts.map +1 -0
  201. package/dist/src/core/Events.js +137 -0
  202. package/dist/src/core/Events.js.map +1 -0
  203. package/dist/{cjs → src}/core/PersistenceManager.d.ts +21 -19
  204. package/dist/src/core/PersistenceManager.d.ts.map +1 -0
  205. package/dist/{core → src/core}/PersistenceManager.js +71 -18
  206. package/dist/src/core/PersistenceManager.js.map +1 -0
  207. package/dist/src/core/PromptComposer.d.ts +27 -0
  208. package/dist/src/core/PromptComposer.d.ts.map +1 -0
  209. package/dist/src/core/PromptComposer.js +153 -0
  210. package/dist/src/core/PromptComposer.js.map +1 -0
  211. package/dist/src/core/ResponseEngine.d.ts +32 -0
  212. package/dist/src/core/ResponseEngine.d.ts.map +1 -0
  213. package/dist/src/core/ResponseEngine.js +80 -0
  214. package/dist/src/core/ResponseEngine.js.map +1 -0
  215. package/dist/src/core/ResponsePipeline.d.ts +171 -0
  216. package/dist/src/core/ResponsePipeline.d.ts.map +1 -0
  217. package/dist/src/core/ResponsePipeline.js +510 -0
  218. package/dist/src/core/ResponsePipeline.js.map +1 -0
  219. package/dist/src/core/Route.d.ts +145 -0
  220. package/dist/src/core/Route.d.ts.map +1 -0
  221. package/dist/src/core/Route.js +339 -0
  222. package/dist/src/core/Route.js.map +1 -0
  223. package/dist/src/core/RoutingEngine.d.ts +129 -0
  224. package/dist/src/core/RoutingEngine.d.ts.map +1 -0
  225. package/dist/{core → src/core}/RoutingEngine.js +211 -113
  226. package/dist/src/core/RoutingEngine.js.map +1 -0
  227. package/dist/src/core/SessionManager.d.ts +86 -0
  228. package/dist/src/core/SessionManager.d.ts.map +1 -0
  229. package/dist/src/core/SessionManager.js +213 -0
  230. package/dist/src/core/SessionManager.js.map +1 -0
  231. package/dist/src/core/Step.d.ts +96 -0
  232. package/dist/src/core/Step.d.ts.map +1 -0
  233. package/dist/src/core/Step.js +202 -0
  234. package/dist/src/core/Step.js.map +1 -0
  235. package/dist/src/core/ToolExecutor.d.ts +45 -0
  236. package/dist/src/core/ToolExecutor.d.ts.map +1 -0
  237. package/dist/src/core/ToolExecutor.js +80 -0
  238. package/dist/src/core/ToolExecutor.js.map +1 -0
  239. package/dist/{cjs → src}/index.d.ts +7 -15
  240. package/dist/src/index.d.ts.map +1 -0
  241. package/dist/{index.js → src/index.js} +6 -7
  242. package/dist/src/index.js.map +1 -0
  243. package/dist/{providers → src/providers}/AnthropicProvider.d.ts +1 -1
  244. package/dist/src/providers/AnthropicProvider.d.ts.map +1 -0
  245. package/dist/{providers → src/providers}/AnthropicProvider.js +54 -2
  246. package/dist/src/providers/AnthropicProvider.js.map +1 -0
  247. package/dist/{cjs → src}/providers/GeminiProvider.d.ts +1 -1
  248. package/dist/{cjs → src}/providers/GeminiProvider.d.ts.map +1 -1
  249. package/dist/{providers → src/providers}/GeminiProvider.js +65 -0
  250. package/dist/src/providers/GeminiProvider.js.map +1 -0
  251. package/dist/{providers → src/providers}/OpenAIProvider.d.ts +1 -1
  252. package/dist/{cjs → src}/providers/OpenAIProvider.d.ts.map +1 -1
  253. package/dist/{providers → src/providers}/OpenAIProvider.js +70 -1
  254. package/dist/src/providers/OpenAIProvider.js.map +1 -0
  255. package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts +1 -1
  256. package/dist/{cjs → src}/providers/OpenRouterProvider.d.ts.map +1 -1
  257. package/dist/{providers → src/providers}/OpenRouterProvider.js +76 -0
  258. package/dist/src/providers/OpenRouterProvider.js.map +1 -0
  259. package/dist/src/providers/index.js.map +1 -0
  260. package/dist/{types → src/types}/agent.d.ts +80 -41
  261. package/dist/src/types/agent.d.ts.map +1 -0
  262. package/dist/src/types/agent.js.map +1 -0
  263. package/dist/{types → src/types}/ai.d.ts +7 -0
  264. package/dist/src/types/ai.d.ts.map +1 -0
  265. package/dist/{cjs → src}/types/ai.js.map +1 -1
  266. package/dist/{cjs → src}/types/history.d.ts +76 -18
  267. package/dist/src/types/history.d.ts.map +1 -0
  268. package/dist/src/types/history.js +30 -0
  269. package/dist/src/types/history.js.map +1 -0
  270. package/dist/src/types/index.d.ts +20 -0
  271. package/dist/src/types/index.d.ts.map +1 -0
  272. package/dist/src/types/index.js +10 -0
  273. package/dist/src/types/index.js.map +1 -0
  274. package/dist/{cjs → src}/types/persistence.d.ts +38 -23
  275. package/dist/src/types/persistence.d.ts.map +1 -0
  276. package/dist/src/types/persistence.js.map +1 -0
  277. package/dist/src/types/route.d.ts +235 -0
  278. package/dist/src/types/route.d.ts.map +1 -0
  279. package/dist/{types → src/types}/route.js.map +1 -1
  280. package/dist/src/types/session.d.ts +65 -0
  281. package/dist/src/types/session.d.ts.map +1 -0
  282. package/dist/src/types/session.js +5 -0
  283. package/dist/src/types/session.js.map +1 -0
  284. package/dist/src/types/template.d.ts +30 -0
  285. package/dist/src/types/template.d.ts.map +1 -0
  286. package/dist/src/types/template.js +2 -0
  287. package/dist/src/types/template.js.map +1 -0
  288. package/dist/{cjs → src}/types/tool.d.ts +17 -13
  289. package/dist/src/types/tool.d.ts.map +1 -0
  290. package/dist/{types → src/types}/tool.js.map +1 -1
  291. package/dist/src/utils/clone.d.ts +8 -0
  292. package/dist/src/utils/clone.d.ts.map +1 -0
  293. package/dist/src/utils/clone.js +33 -0
  294. package/dist/src/utils/clone.js.map +1 -0
  295. package/dist/{cjs → src}/utils/event.d.ts +1 -1
  296. package/dist/{cjs → src}/utils/event.d.ts.map +1 -1
  297. package/dist/{utils → src/utils}/event.js +1 -1
  298. package/dist/src/utils/event.js.map +1 -0
  299. package/dist/src/utils/history.d.ts +31 -0
  300. package/dist/src/utils/history.d.ts.map +1 -0
  301. package/dist/src/utils/history.js +121 -0
  302. package/dist/src/utils/history.js.map +1 -0
  303. package/dist/src/utils/id.js.map +1 -0
  304. package/dist/src/utils/index.d.ts +13 -0
  305. package/dist/src/utils/index.d.ts.map +1 -0
  306. package/dist/src/utils/index.js +19 -0
  307. package/dist/src/utils/index.js.map +1 -0
  308. package/dist/src/utils/logger.js.map +1 -0
  309. package/dist/src/utils/retry.js.map +1 -0
  310. package/dist/src/utils/session.d.ts +51 -0
  311. package/dist/src/utils/session.d.ts.map +1 -0
  312. package/dist/{types → src/utils}/session.js +33 -32
  313. package/dist/src/utils/session.js.map +1 -0
  314. package/dist/src/utils/template.d.ts +107 -0
  315. package/dist/src/utils/template.d.ts.map +1 -0
  316. package/dist/src/utils/template.js +276 -0
  317. package/dist/src/utils/template.js.map +1 -0
  318. package/docs/README.md +174 -68
  319. package/docs/{API_REFERENCE.md → api/README.md} +925 -255
  320. package/docs/api/overview.md +952 -0
  321. package/docs/core/agent/README.md +787 -0
  322. package/docs/{CONTEXT_MANAGEMENT.md → core/agent/context-management.md} +175 -102
  323. package/docs/{ARCHITECTURE.md → core/agent/session-management.md} +117 -69
  324. package/docs/core/ai-integration/prompt-composition.md +220 -0
  325. package/docs/core/ai-integration/providers.md +515 -0
  326. package/docs/core/ai-integration/response-processing.md +176 -0
  327. package/docs/core/conversation-flows/data-collection.md +623 -0
  328. package/docs/core/conversation-flows/route-dsl.md +502 -0
  329. package/docs/core/conversation-flows/routes.md +117 -0
  330. package/docs/core/conversation-flows/step-transitions.md +595 -0
  331. package/docs/core/conversation-flows/steps.md +154 -0
  332. package/docs/{ADAPTERS.md → core/persistence/adapters.md} +1 -1
  333. package/docs/core/persistence/session-storage.md +644 -0
  334. package/docs/core/routing/intelligent-routing.md +348 -0
  335. package/docs/core/tools/tool-definition.md +346 -0
  336. package/docs/core/tools/tool-execution.md +815 -0
  337. package/docs/core/tools/tool-scoping.md +628 -0
  338. package/docs/guides/getting-started/README.md +406 -0
  339. package/examples/{company-qna-agent.ts → advanced-patterns/knowledge-based-agent.ts} +139 -95
  340. package/examples/{persistent-onboarding.ts → advanced-patterns/persistent-onboarding.ts} +244 -137
  341. package/examples/{rules-prohibitions.ts → advanced-patterns/route-lifecycle-hooks.ts} +130 -84
  342. package/examples/{streaming-agent.ts → advanced-patterns/streaming-responses.ts} +116 -90
  343. package/examples/ai-providers/anthropic-integration.ts +384 -0
  344. package/examples/{openai-agent.ts → ai-providers/openai-integration.ts} +57 -63
  345. package/examples/conversation-flows/completion-transitions.ts +277 -0
  346. package/examples/core-concepts/basic-agent.ts +443 -0
  347. package/examples/core-concepts/schema-driven-extraction.ts +305 -0
  348. package/examples/core-concepts/session-management.ts +406 -0
  349. package/examples/integrations/database-integration.ts +630 -0
  350. package/examples/integrations/healthcare-integration.ts +609 -0
  351. package/examples/{opensearch-persistence.ts → integrations/search-integration.ts} +199 -171
  352. package/examples/integrations/server-session-management.ts +307 -0
  353. package/examples/persistence/custom-adapter.ts +529 -0
  354. package/examples/{prisma-persistence.ts → persistence/database-persistence.ts} +215 -272
  355. package/examples/persistence/memory-sessions.ts +495 -0
  356. package/examples/{prisma-schema.example.prisma → persistence/prisma-schema.example.prisma} +1 -1
  357. package/examples/persistence/redis-persistence.ts +490 -0
  358. package/examples/tools/basic-tools.ts +561 -0
  359. package/examples/{extracted-data-modification.ts → tools/data-enrichment-tools.ts} +128 -117
  360. package/package.json +14 -10
  361. package/src/adapters/MemoryAdapter.ts +74 -46
  362. package/src/adapters/MongoAdapter.ts +33 -24
  363. package/src/adapters/OpenSearchAdapter.ts +41 -37
  364. package/src/adapters/PostgreSQLAdapter.ts +35 -24
  365. package/src/adapters/PrismaAdapter.ts +69 -27
  366. package/src/adapters/RedisAdapter.ts +38 -26
  367. package/src/adapters/SQLiteAdapter.ts +32 -22
  368. package/src/core/Agent.ts +1431 -526
  369. package/src/core/Events.ts +100 -112
  370. package/src/core/PersistenceManager.ts +103 -49
  371. package/src/core/PromptComposer.ts +158 -85
  372. package/src/core/ResponseEngine.ts +128 -46
  373. package/src/core/ResponsePipeline.ts +830 -0
  374. package/src/core/Route.ts +222 -53
  375. package/src/core/RoutingEngine.ts +345 -229
  376. package/src/core/SessionManager.ts +265 -0
  377. package/src/core/Step.ts +157 -67
  378. package/src/core/ToolExecutor.ts +52 -43
  379. package/src/index.ts +31 -37
  380. package/src/providers/AnthropicProvider.ts +71 -5
  381. package/src/providers/GeminiProvider.ts +83 -2
  382. package/src/providers/OpenAIProvider.ts +95 -3
  383. package/src/providers/OpenRouterProvider.ts +102 -2
  384. package/src/types/agent.ts +81 -46
  385. package/src/types/ai.ts +7 -0
  386. package/src/types/history.ts +91 -18
  387. package/src/types/index.ts +45 -7
  388. package/src/types/persistence.ts +45 -28
  389. package/src/types/route.ts +122 -57
  390. package/src/types/session.ts +20 -220
  391. package/src/types/template.ts +36 -0
  392. package/src/types/tool.ts +23 -19
  393. package/src/utils/clone.ts +36 -0
  394. package/src/utils/event.ts +1 -1
  395. package/src/utils/history.ts +143 -0
  396. package/src/utils/index.ts +53 -0
  397. package/src/utils/session.ts +204 -0
  398. package/src/utils/template.ts +335 -0
  399. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  400. package/dist/adapters/MemoryAdapter.js.map +0 -1
  401. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  402. package/dist/adapters/MongoAdapter.js.map +0 -1
  403. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  404. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  405. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  406. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  407. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  408. package/dist/adapters/PrismaAdapter.js.map +0 -1
  409. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  410. package/dist/adapters/RedisAdapter.js.map +0 -1
  411. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  412. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  413. package/dist/adapters/index.d.ts.map +0 -1
  414. package/dist/adapters/index.js.map +0 -1
  415. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  416. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  417. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  418. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  419. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  420. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  421. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  422. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  423. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  424. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  425. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  426. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  427. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  428. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  429. package/dist/cjs/adapters/index.js.map +0 -1
  430. package/dist/cjs/constants/index.js.map +0 -1
  431. package/dist/cjs/core/Agent.d.ts +0 -197
  432. package/dist/cjs/core/Agent.d.ts.map +0 -1
  433. package/dist/cjs/core/Agent.js +0 -966
  434. package/dist/cjs/core/Agent.js.map +0 -1
  435. package/dist/cjs/core/DomainRegistry.d.ts +0 -36
  436. package/dist/cjs/core/DomainRegistry.d.ts.map +0 -1
  437. package/dist/cjs/core/DomainRegistry.js +0 -72
  438. package/dist/cjs/core/DomainRegistry.js.map +0 -1
  439. package/dist/cjs/core/Events.d.ts +0 -41
  440. package/dist/cjs/core/Events.d.ts.map +0 -1
  441. package/dist/cjs/core/Events.js +0 -99
  442. package/dist/cjs/core/Events.js.map +0 -1
  443. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  444. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  445. package/dist/cjs/core/PromptComposer.d.ts +0 -24
  446. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  447. package/dist/cjs/core/PromptComposer.js +0 -127
  448. package/dist/cjs/core/PromptComposer.js.map +0 -1
  449. package/dist/cjs/core/ResponseEngine.d.ts +0 -14
  450. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  451. package/dist/cjs/core/ResponseEngine.js +0 -56
  452. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  453. package/dist/cjs/core/Route.d.ts +0 -90
  454. package/dist/cjs/core/Route.d.ts.map +0 -1
  455. package/dist/cjs/core/Route.js +0 -203
  456. package/dist/cjs/core/Route.js.map +0 -1
  457. package/dist/cjs/core/RoutingEngine.d.ts +0 -109
  458. package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
  459. package/dist/cjs/core/RoutingEngine.js.map +0 -1
  460. package/dist/cjs/core/Step.d.ts +0 -72
  461. package/dist/cjs/core/Step.d.ts.map +0 -1
  462. package/dist/cjs/core/Step.js +0 -150
  463. package/dist/cjs/core/Step.js.map +0 -1
  464. package/dist/cjs/core/Tool.d.ts +0 -39
  465. package/dist/cjs/core/Tool.d.ts.map +0 -1
  466. package/dist/cjs/core/Tool.js +0 -34
  467. package/dist/cjs/core/Tool.js.map +0 -1
  468. package/dist/cjs/core/ToolExecutor.d.ts +0 -29
  469. package/dist/cjs/core/ToolExecutor.d.ts.map +0 -1
  470. package/dist/cjs/core/ToolExecutor.js.map +0 -1
  471. package/dist/cjs/core/Transition.d.ts +0 -32
  472. package/dist/cjs/core/Transition.d.ts.map +0 -1
  473. package/dist/cjs/core/Transition.js +0 -89
  474. package/dist/cjs/core/Transition.js.map +0 -1
  475. package/dist/cjs/index.d.ts.map +0 -1
  476. package/dist/cjs/index.js.map +0 -1
  477. package/dist/cjs/providers/AnthropicProvider.d.ts.map +0 -1
  478. package/dist/cjs/providers/AnthropicProvider.js.map +0 -1
  479. package/dist/cjs/providers/GeminiProvider.js.map +0 -1
  480. package/dist/cjs/providers/OpenAIProvider.js.map +0 -1
  481. package/dist/cjs/providers/OpenRouterProvider.js.map +0 -1
  482. package/dist/cjs/providers/index.js.map +0 -1
  483. package/dist/cjs/types/agent.d.ts.map +0 -1
  484. package/dist/cjs/types/agent.js.map +0 -1
  485. package/dist/cjs/types/ai.d.ts.map +0 -1
  486. package/dist/cjs/types/history.d.ts.map +0 -1
  487. package/dist/cjs/types/history.js +0 -37
  488. package/dist/cjs/types/history.js.map +0 -1
  489. package/dist/cjs/types/index.d.ts +0 -12
  490. package/dist/cjs/types/index.d.ts.map +0 -1
  491. package/dist/cjs/types/index.js +0 -12
  492. package/dist/cjs/types/index.js.map +0 -1
  493. package/dist/cjs/types/persistence.d.ts.map +0 -1
  494. package/dist/cjs/types/persistence.js.map +0 -1
  495. package/dist/cjs/types/route.d.ts +0 -175
  496. package/dist/cjs/types/route.d.ts.map +0 -1
  497. package/dist/cjs/types/session.d.ts +0 -104
  498. package/dist/cjs/types/session.d.ts.map +0 -1
  499. package/dist/cjs/types/session.js.map +0 -1
  500. package/dist/cjs/types/tool.d.ts.map +0 -1
  501. package/dist/cjs/utils/event.js.map +0 -1
  502. package/dist/cjs/utils/id.js.map +0 -1
  503. package/dist/cjs/utils/logger.js.map +0 -1
  504. package/dist/cjs/utils/retry.js.map +0 -1
  505. package/dist/constants/index.d.ts.map +0 -1
  506. package/dist/constants/index.js.map +0 -1
  507. package/dist/core/Agent.d.ts +0 -197
  508. package/dist/core/Agent.d.ts.map +0 -1
  509. package/dist/core/Agent.js +0 -962
  510. package/dist/core/Agent.js.map +0 -1
  511. package/dist/core/DomainRegistry.d.ts +0 -36
  512. package/dist/core/DomainRegistry.d.ts.map +0 -1
  513. package/dist/core/DomainRegistry.js +0 -68
  514. package/dist/core/DomainRegistry.js.map +0 -1
  515. package/dist/core/Events.d.ts +0 -41
  516. package/dist/core/Events.d.ts.map +0 -1
  517. package/dist/core/Events.js +0 -94
  518. package/dist/core/Events.js.map +0 -1
  519. package/dist/core/PersistenceManager.d.ts.map +0 -1
  520. package/dist/core/PersistenceManager.js.map +0 -1
  521. package/dist/core/PromptComposer.d.ts +0 -24
  522. package/dist/core/PromptComposer.d.ts.map +0 -1
  523. package/dist/core/PromptComposer.js +0 -123
  524. package/dist/core/PromptComposer.js.map +0 -1
  525. package/dist/core/ResponseEngine.d.ts +0 -14
  526. package/dist/core/ResponseEngine.d.ts.map +0 -1
  527. package/dist/core/ResponseEngine.js +0 -52
  528. package/dist/core/ResponseEngine.js.map +0 -1
  529. package/dist/core/Route.d.ts +0 -90
  530. package/dist/core/Route.d.ts.map +0 -1
  531. package/dist/core/Route.js +0 -199
  532. package/dist/core/Route.js.map +0 -1
  533. package/dist/core/RoutingEngine.d.ts +0 -109
  534. package/dist/core/RoutingEngine.d.ts.map +0 -1
  535. package/dist/core/RoutingEngine.js.map +0 -1
  536. package/dist/core/Step.d.ts +0 -72
  537. package/dist/core/Step.d.ts.map +0 -1
  538. package/dist/core/Step.js +0 -146
  539. package/dist/core/Step.js.map +0 -1
  540. package/dist/core/Tool.d.ts +0 -39
  541. package/dist/core/Tool.d.ts.map +0 -1
  542. package/dist/core/Tool.js +0 -31
  543. package/dist/core/Tool.js.map +0 -1
  544. package/dist/core/ToolExecutor.d.ts +0 -29
  545. package/dist/core/ToolExecutor.d.ts.map +0 -1
  546. package/dist/core/ToolExecutor.js +0 -69
  547. package/dist/core/ToolExecutor.js.map +0 -1
  548. package/dist/core/Transition.d.ts +0 -32
  549. package/dist/core/Transition.d.ts.map +0 -1
  550. package/dist/core/Transition.js +0 -85
  551. package/dist/core/Transition.js.map +0 -1
  552. package/dist/index.d.ts.map +0 -1
  553. package/dist/index.js.map +0 -1
  554. package/dist/providers/AnthropicProvider.d.ts.map +0 -1
  555. package/dist/providers/AnthropicProvider.js.map +0 -1
  556. package/dist/providers/GeminiProvider.d.ts.map +0 -1
  557. package/dist/providers/GeminiProvider.js.map +0 -1
  558. package/dist/providers/OpenAIProvider.d.ts.map +0 -1
  559. package/dist/providers/OpenAIProvider.js.map +0 -1
  560. package/dist/providers/OpenRouterProvider.d.ts.map +0 -1
  561. package/dist/providers/OpenRouterProvider.js.map +0 -1
  562. package/dist/providers/index.d.ts.map +0 -1
  563. package/dist/providers/index.js.map +0 -1
  564. package/dist/types/agent.d.ts.map +0 -1
  565. package/dist/types/agent.js.map +0 -1
  566. package/dist/types/ai.d.ts.map +0 -1
  567. package/dist/types/ai.js.map +0 -1
  568. package/dist/types/history.d.ts.map +0 -1
  569. package/dist/types/history.js +0 -34
  570. package/dist/types/history.js.map +0 -1
  571. package/dist/types/index.d.ts +0 -12
  572. package/dist/types/index.d.ts.map +0 -1
  573. package/dist/types/index.js +0 -6
  574. package/dist/types/index.js.map +0 -1
  575. package/dist/types/persistence.d.ts.map +0 -1
  576. package/dist/types/persistence.js.map +0 -1
  577. package/dist/types/route.d.ts +0 -175
  578. package/dist/types/route.d.ts.map +0 -1
  579. package/dist/types/routing.d.ts.map +0 -1
  580. package/dist/types/schema.d.ts.map +0 -1
  581. package/dist/types/session.d.ts +0 -104
  582. package/dist/types/session.d.ts.map +0 -1
  583. package/dist/types/session.js.map +0 -1
  584. package/dist/types/tool.d.ts.map +0 -1
  585. package/dist/utils/event.d.ts.map +0 -1
  586. package/dist/utils/event.js.map +0 -1
  587. package/dist/utils/id.d.ts.map +0 -1
  588. package/dist/utils/id.js.map +0 -1
  589. package/dist/utils/logger.d.ts.map +0 -1
  590. package/dist/utils/logger.js.map +0 -1
  591. package/dist/utils/retry.d.ts.map +0 -1
  592. package/dist/utils/retry.js.map +0 -1
  593. package/docs/AGENT.md +0 -535
  594. package/docs/DOCS.md +0 -263
  595. package/docs/DOMAINS.md +0 -735
  596. package/docs/EXAMPLES.md +0 -467
  597. package/docs/GETTING_STARTED.md +0 -424
  598. package/docs/PERSISTENCE.md +0 -815
  599. package/docs/PROVIDERS.md +0 -612
  600. package/docs/ROUTES.md +0 -1085
  601. package/docs/STEPS.md +0 -883
  602. package/examples/business-onboarding.ts +0 -791
  603. package/examples/custom-database-persistence.ts +0 -574
  604. package/examples/declarative-agent.ts +0 -401
  605. package/examples/domain-scoping.ts +0 -366
  606. package/examples/healthcare-agent.ts +0 -511
  607. package/examples/redis-persistence.ts +0 -525
  608. package/examples/route-transitions.ts +0 -266
  609. package/examples/travel-agent.ts +0 -584
  610. package/src/core/DomainRegistry.ts +0 -80
  611. package/src/core/Tool.ts +0 -112
  612. package/src/core/Transition.ts +0 -115
  613. /package/dist/{adapters → cjs/src/adapters}/index.d.ts +0 -0
  614. /package/dist/cjs/{adapters → src/adapters}/index.js +0 -0
  615. /package/dist/cjs/{constants → src/constants}/index.d.ts +0 -0
  616. /package/dist/cjs/{constants → src/constants}/index.js +0 -0
  617. /package/dist/cjs/{providers → src/providers}/index.d.ts +0 -0
  618. /package/dist/cjs/{providers → src/providers}/index.js +0 -0
  619. /package/dist/cjs/{types → src/types}/agent.js +0 -0
  620. /package/dist/cjs/{types → src/types}/ai.js +0 -0
  621. /package/dist/cjs/{types → src/types}/persistence.js +0 -0
  622. /package/dist/cjs/{types → src/types}/route.js +0 -0
  623. /package/dist/cjs/{types → src/types}/routing.d.ts +0 -0
  624. /package/dist/cjs/{types → src/types}/routing.js +0 -0
  625. /package/dist/cjs/{types → src/types}/schema.d.ts +0 -0
  626. /package/dist/cjs/{types → src/types}/schema.js +0 -0
  627. /package/dist/cjs/{types → src/types}/tool.js +0 -0
  628. /package/dist/cjs/{utils → src/utils}/id.d.ts +0 -0
  629. /package/dist/cjs/{utils → src/utils}/id.js +0 -0
  630. /package/dist/cjs/{utils → src/utils}/logger.d.ts +0 -0
  631. /package/dist/cjs/{utils → src/utils}/logger.js +0 -0
  632. /package/dist/cjs/{utils → src/utils}/retry.d.ts +0 -0
  633. /package/dist/cjs/{utils → src/utils}/retry.js +0 -0
  634. /package/dist/{cjs → src}/adapters/index.d.ts +0 -0
  635. /package/dist/{cjs → src}/adapters/index.d.ts.map +0 -0
  636. /package/dist/{adapters → src/adapters}/index.js +0 -0
  637. /package/dist/{constants → src/constants}/index.d.ts +0 -0
  638. /package/dist/{cjs → src}/constants/index.d.ts.map +0 -0
  639. /package/dist/{constants → src/constants}/index.js +0 -0
  640. /package/dist/{providers → src/providers}/index.d.ts +0 -0
  641. /package/dist/{cjs → src}/providers/index.d.ts.map +0 -0
  642. /package/dist/{providers → src/providers}/index.js +0 -0
  643. /package/dist/{types → src/types}/agent.js +0 -0
  644. /package/dist/{types → src/types}/ai.js +0 -0
  645. /package/dist/{types → src/types}/persistence.js +0 -0
  646. /package/dist/{types → src/types}/route.js +0 -0
  647. /package/dist/{types → src/types}/routing.d.ts +0 -0
  648. /package/dist/{cjs → src}/types/routing.d.ts.map +0 -0
  649. /package/dist/{types → src/types}/routing.js +0 -0
  650. /package/dist/{cjs → src}/types/routing.js.map +0 -0
  651. /package/dist/{types → src/types}/schema.d.ts +0 -0
  652. /package/dist/{cjs → src}/types/schema.d.ts.map +0 -0
  653. /package/dist/{types → src/types}/schema.js +0 -0
  654. /package/dist/{cjs → src}/types/schema.js.map +0 -0
  655. /package/dist/{types → src/types}/tool.js +0 -0
  656. /package/dist/{utils → src/utils}/id.d.ts +0 -0
  657. /package/dist/{cjs → src}/utils/id.d.ts.map +0 -0
  658. /package/dist/{utils → src/utils}/id.js +0 -0
  659. /package/dist/{utils → src/utils}/logger.d.ts +0 -0
  660. /package/dist/{cjs → src}/utils/logger.d.ts.map +0 -0
  661. /package/dist/{utils → src/utils}/logger.js +0 -0
  662. /package/dist/{utils → src/utils}/retry.d.ts +0 -0
  663. /package/dist/{cjs → src}/utils/retry.d.ts.map +0 -0
  664. /package/dist/{utils → src/utils}/retry.js +0 -0
  665. /package/docs/{PUBLISHING.md → guides/advanced-patterns/publishing.md} +0 -0
@@ -1,20 +1,22 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access */
1
2
  /**
2
- * Example: Using Prisma ORM for Persistence with Session Step
3
+ * Example: Using Prisma ORM for Persistence with New Session Management
3
4
  *
4
- * This example shows how to use @falai/agent with Prisma for automatic
5
- * session step persistence - with the new data-driven architecture!
5
+ * This example demonstrates the new automatic session management features:
6
+ * - Automatic session creation and loading with sessionId
7
+ * - Built-in conversation history management
8
+ * - Simplified server-side usage patterns
9
+ * - SessionManager API for direct session control
6
10
  */
7
11
 
8
12
  import {
9
13
  Agent,
10
14
  GeminiProvider,
11
15
  PrismaAdapter,
12
- createMessageEvent,
13
- EventSource,
14
16
  END_ROUTE,
15
- } from "../src/index";
17
+ } from "../../src";
16
18
 
17
- // @ts-ignore
19
+ // @ts-expect-error - PrismaClient is not typed
18
20
  import { PrismaClient } from "@prisma/client";
19
21
 
20
22
  /**
@@ -76,41 +78,28 @@ async function example() {
76
78
  // Initialize Prisma client
77
79
  const prisma = new PrismaClient();
78
80
 
79
- const userId = "user_123";
80
-
81
81
  /**
82
- * Create Agent with Persistence - New Session-Based Pattern! ✨
82
+ * Server-Style Usage: Create Agent per request with sessionId
83
+ * This is the recommended pattern for server environments
83
84
  */
84
- const agent = new Agent<ConversationContext>({
85
+ const sessionId = "session_user123_booking"; // Could be from request params
86
+
87
+ const agent = new Agent<ConversationContext, FlightBookingData>({
85
88
  name: "Travel Assistant",
86
89
  description: "A helpful travel booking assistant",
87
90
  goal: "Help users book flights with ease",
88
91
  provider: new GeminiProvider({
89
92
  apiKey: process.env.GEMINI_API_KEY!,
90
- model: "models/gemini-2.0-flash-exp",
93
+ model: "models/gemini-2.5-flash",
91
94
  }),
92
95
  context: {
93
- userId,
96
+ userId: "user_123",
94
97
  userName: "Alice",
95
98
  },
96
- // ✨ Just pass the adapter - that's it!
97
99
  persistence: {
98
- adapter: new PrismaAdapter({ prisma }),
99
- autoSave: true, // Auto-saves session step after each response
100
- userId,
100
+ adapter: new PrismaAdapter<ConversationContext>({ prisma }),
101
+ autoSave: true, // Auto-saves session after each response
101
102
  },
102
- });
103
-
104
- /**
105
- * Create a route with data extraction schema
106
- */
107
- const flightRoute = agent.createRoute<FlightBookingData>({
108
- title: "Book a Flight",
109
- description: "Help user book a flight ticket",
110
- conditions: [
111
- "User wants to book a flight",
112
- "User mentions travel, flying, or booking tickets",
113
- ],
114
103
  schema: {
115
104
  type: "object",
116
105
  properties: {
@@ -141,222 +130,173 @@ async function example() {
141
130
  },
142
131
  required: ["destination", "departureDate", "passengers", "cabinClass"],
143
132
  },
133
+ sessionId, // ✨ Agent will automatically load or create this session
134
+ });
135
+
136
+ /**
137
+ * Create a route with data extraction schema
138
+ */
139
+ const flightRoute = agent.createRoute({
140
+ title: "Book a Flight",
141
+ description: "Help user book a flight ticket",
142
+ conditions: [
143
+ "User wants to book a flight",
144
+ "User mentions travel, flying, or booking tickets",
145
+ ],
144
146
  });
145
147
 
146
148
  // Step flow with smart data collecting and custom IDs
147
149
  const askDestination = flightRoute.initialStep.nextStep({
148
150
  id: "ask_destination", // Custom step ID for easier tracking
149
- instructions: "Ask where they want to fly",
151
+ prompt: "Ask where they want to fly",
150
152
  collect: ["destination"],
151
- skipIf: (data) => !!data.destination,
153
+ skipIf: (data: Partial<FlightBookingData>) => !!data.destination,
152
154
  });
153
155
 
154
156
  const askDates = askDestination.nextStep({
155
157
  id: "ask_dates", // Custom step ID
156
- instructions: "Ask about travel dates",
158
+ prompt: "Ask about travel dates",
157
159
  collect: ["departureDate", "returnDate"],
158
- skipIf: (data) => !!data.departureDate,
160
+ skipIf: (data: Partial<FlightBookingData>) => !!data.departureDate,
159
161
  requires: ["destination"],
160
162
  });
161
163
 
162
164
  const askPassengers = askDates.nextStep({
163
165
  id: "ask_passengers", // Custom step ID
164
- instructions: "Ask how many passengers",
166
+ prompt: "Ask how many passengers",
165
167
  collect: ["passengers"],
166
- skipIf: (data) => !!data.passengers,
168
+ skipIf: (data: Partial<FlightBookingData>) => !!data.passengers,
167
169
  requires: ["destination", "departureDate"],
168
170
  });
169
171
 
170
172
  const askCabinClass = askPassengers.nextStep({
171
173
  id: "ask_cabin_class", // Custom step ID
172
- instructions: "Ask about cabin class preference",
174
+ prompt: "Ask about cabin class preference",
173
175
  collect: ["cabinClass"],
174
- skipIf: (data) => !!data.cabinClass,
176
+ skipIf: (data: Partial<FlightBookingData>) => !!data.cabinClass,
175
177
  requires: ["destination", "departureDate", "passengers"],
176
178
  });
177
179
 
178
180
  const confirmBooking = askCabinClass.nextStep({
179
181
  id: "confirm_booking", // Custom step ID
180
- instructions: "Present options and confirm booking details",
182
+ prompt: "Present options and confirm booking details",
181
183
  requires: ["destination", "departureDate", "passengers", "cabinClass"],
182
184
  });
183
185
 
184
186
  confirmBooking.nextStep({ step: END_ROUTE });
185
187
 
186
188
  /**
187
- * Get persistence manager from agent
189
+ * Session is automatically loaded/created by Agent constructor
190
+ * Access it through agent.session
188
191
  */
189
- const persistence = agent.getPersistenceManager();
192
+ console.log("✨ Session ready:", agent.session.id);
193
+ console.log("📊 Session data:", agent.session.getData());
194
+ console.log("📜 Conversation history:", agent.session.getHistory().length, "messages");
190
195
 
191
- if (!persistence) {
192
- throw new Error("Persistence not configured");
196
+ // Set some initial data if this is a new session
197
+ if (!agent.session.getData()?.cabinClass) {
198
+ await agent.session.setData({ cabinClass: "economy" });
193
199
  }
194
200
 
195
201
  /**
196
- * Create or find a session - New Pattern!
197
- */
198
- let sessionResult =
199
- await persistence.createSessionWithStep<FlightBookingData>({
200
- userId,
201
- agentName: "Travel Assistant",
202
- initialData: {
203
- cabinClass: "economy", // Default value
204
- },
205
- });
206
-
207
- let session = sessionResult.sessionStep;
208
- const dbSessionId = sessionResult.sessionData.id;
209
-
210
- console.log("✨ Created new session:", dbSessionId);
211
- console.log("📊 Session metadata:", {
212
- sessionId: session.metadata?.sessionId, // Same as dbSessionId
213
- createdAt: session.metadata?.createdAt,
214
- });
215
- console.log("📊 Initial session step:", {
216
- currentRoute: session.currentRoute,
217
- data: session.data,
218
- });
219
-
220
- /**
221
- * Load conversation history
222
- */
223
- const history = await persistence.loadSessionHistory(dbSessionId);
224
- console.log(`📜 Loaded ${history.length} messages from history`);
225
-
226
- /**
227
- * Turn 1: User provides multiple fields at once
202
+ * Turn 1: Simple message-based conversation
203
+ * SessionManager automatically handles history and persistence
228
204
  */
229
205
  console.log("\n--- Turn 1 ---");
230
- const userMessage1 = createMessageEvent(
231
- EventSource.CUSTOMER,
232
- "Alice",
233
- "I want to fly to Paris on June 15 with 2 people"
234
- );
235
-
236
- history.push(userMessage1);
237
-
206
+
207
+ // Add user message to session history and get response
208
+ await agent.session.addMessage("user", "I want to fly to Paris on June 15 with 2 people", "Alice");
209
+
238
210
  const response1 = await agent.respond({
239
- history,
240
- session, // Pass session step
211
+ history: agent.session.getHistory(), // Use session-managed history
241
212
  });
242
213
 
243
214
  console.log("🤖 Agent:", response1.message);
244
- console.log("📊 Session step after turn 1:", {
245
- sessionId: response1.session?.metadata?.sessionId,
215
+ console.log("📊 Session after turn 1:", {
216
+ sessionId: agent.session.id,
246
217
  currentRoute: response1.session?.currentRoute?.title,
247
- currentStepId: response1.session?.currentStep?.id, // Custom ID like "ask_destination"
248
- currentStepDescription: response1.session?.currentStep?.description,
249
- data: response1.session?.data,
250
- });
251
-
252
- // Save user message
253
- await persistence.saveMessage({
254
- sessionId: dbSessionId,
255
- userId,
256
- role: "user",
257
- content: userMessage1.data.message,
258
- event: userMessage1,
259
- });
260
-
261
- // Save agent message (session step is auto-saved by Agent!)
262
- await persistence.saveMessage({
263
- sessionId: dbSessionId,
264
- userId,
265
- role: "agent",
266
- content: response1.message,
267
- route: response1.session?.currentRoute?.id,
268
- step: response1.session?.currentStep?.id,
218
+ currentStepId: response1.session?.currentStep?.id,
219
+ data: agent.session.getData(),
269
220
  });
270
221
 
271
- // Update session for next turn
272
- session = response1.session!;
222
+ // Add agent response to session history
223
+ await agent.session.addMessage("assistant", response1.message);
273
224
 
274
225
  /**
275
226
  * Turn 2: User changes their mind
276
227
  */
277
228
  console.log("\n--- Turn 2 ---");
278
- const userMessage2 = createMessageEvent(
279
- EventSource.CUSTOMER,
280
- "Alice",
281
- "Actually, make that Tokyo instead, and premium class"
282
- );
283
-
284
- history.push(
285
- createMessageEvent(
286
- EventSource.AI_AGENT,
287
- "Travel Assistant",
288
- response1.message
289
- )
290
- );
291
- history.push(userMessage2);
229
+
230
+ await agent.session.addMessage("user", "Actually, make that Tokyo instead, and premium class", "Alice");
292
231
 
293
232
  const response2 = await agent.respond({
294
- history,
295
- session, // Pass updated session
233
+ history: agent.session.getHistory(),
296
234
  });
297
235
 
298
236
  console.log("🤖 Agent:", response2.message);
299
- console.log("📊 Session step after turn 2:", {
237
+ console.log("📊 Session after turn 2:", {
300
238
  currentRoute: response2.session?.currentRoute?.title,
301
239
  currentStep: response2.session?.currentStep?.id,
302
- data: response2.session?.data,
303
- });
304
-
305
- // Save messages
306
- await persistence.saveMessage({
307
- sessionId: dbSessionId,
308
- userId,
309
- role: "user",
310
- content: userMessage2.data.message,
311
- event: userMessage2,
312
- });
313
-
314
- await persistence.saveMessage({
315
- sessionId: dbSessionId,
316
- userId,
317
- role: "agent",
318
- content: response2.message,
319
- route: response2.session?.currentRoute?.id,
320
- step: response2.session?.currentStep?.id,
240
+ data: agent.session.getData(),
321
241
  });
322
242
 
323
- session = response2.session!;
243
+ await agent.session.addMessage("assistant", response2.message);
324
244
 
325
245
  if (response2.isRouteComplete) {
326
246
  console.log("\n✅ Flight booking complete!");
327
- await sendFlightConfirmation(
328
- agent.getData(session.id) as FlightBookingData
329
- );
247
+ await sendFlightConfirmation(agent.session.getData());
330
248
  }
331
249
 
332
250
  /**
333
- * Load session step from database (demonstrates persistence)
251
+ * Demonstrate session recovery - create new Agent instance with same sessionId
334
252
  */
335
- console.log("\n--- Loading Session from Database ---");
336
- const loadedSession = await persistence.loadSessionState<FlightBookingData>(
337
- dbSessionId
338
- );
339
-
340
- console.log("📥 Loaded session step:", {
341
- currentRoute: loadedSession?.currentRoute?.title,
342
- currentStep: loadedSession?.currentStep?.id,
343
- data: loadedSession?.data,
253
+ console.log("\n--- Session Recovery (New Agent Instance) ---");
254
+
255
+ const newAgent = new Agent<ConversationContext, FlightBookingData>({
256
+ name: "Travel Assistant",
257
+ provider: new GeminiProvider({
258
+ apiKey: process.env.GEMINI_API_KEY!,
259
+ model: "models/gemini-2.5-flash",
260
+ }),
261
+ context: {
262
+ userId: "user_123",
263
+ userName: "Alice",
264
+ },
265
+ // NEW: Agent-level schema (same as original agent)
266
+ schema: {
267
+ type: "object",
268
+ properties: {
269
+ destination: { type: "string" },
270
+ departureDate: { type: "string" },
271
+ returnDate: { type: "string" },
272
+ passengers: { type: "number", minimum: 1, maximum: 9 },
273
+ cabinClass: { type: "string", enum: ["economy", "premium", "business", "first"] },
274
+ },
275
+ required: ["destination", "departureDate", "passengers", "cabinClass"],
276
+ },
277
+ persistence: {
278
+ adapter: new PrismaAdapter<ConversationContext>({ prisma }),
279
+ },
280
+ sessionId, // Same sessionId - will load existing session
344
281
  });
345
282
 
346
- /**
347
- * Query sessions and messages
348
- */
349
- const userSessions = await persistence.getUserSessions(userId);
350
- console.log(`\n👤 User has ${userSessions.length} total sessions`);
351
-
352
- const messages = await persistence.getSessionMessages(dbSessionId);
353
- console.log(`💬 Session has ${messages.length} messages`);
283
+ console.log("📥 Recovered session:", {
284
+ sessionId: newAgent.session.id,
285
+ historyLength: newAgent.session.getHistory().length,
286
+ data: newAgent.session.getData(),
287
+ });
354
288
 
355
289
  /**
356
- * Complete the session
290
+ * Continue conversation with recovered session
357
291
  */
358
- await persistence.completeSession(dbSessionId);
359
- console.log("✅ Session completed");
292
+ await newAgent.session.addMessage("user", "Can you confirm my booking details?");
293
+
294
+ const confirmResponse = await newAgent.respond({
295
+ history: newAgent.session.getHistory(),
296
+ });
297
+
298
+ console.log("🤖 Confirmation:", confirmResponse.message);
299
+ await newAgent.session.addMessage("assistant", confirmResponse.message);
360
300
 
361
301
  /**
362
302
  * Cleanup
@@ -365,11 +305,11 @@ async function example() {
365
305
  }
366
306
 
367
307
  /**
368
- * Advanced Example: Session Step with Lifecycle Hooks
308
+ * Advanced Example: SessionManager with History Management
369
309
  */
370
310
  async function advancedExample() {
371
311
  const prisma = new PrismaClient();
372
- const userId = "user_456";
312
+ const sessionId = "session_user456_onboarding";
373
313
 
374
314
  interface UserContext {
375
315
  userId: string;
@@ -380,26 +320,28 @@ async function advancedExample() {
380
320
  };
381
321
  }
382
322
 
383
- const agent = new Agent<UserContext>({
323
+ const agent = new Agent<UserContext, OnboardingData>({
384
324
  name: "Onboarding Assistant",
385
325
  description: "Help new users get started",
386
326
  provider: new GeminiProvider({
387
327
  apiKey: process.env.GEMINI_API_KEY!,
388
- model: "models/gemini-2.0-flash-exp",
328
+ model: "models/gemini-2.5-flash",
389
329
  }),
390
330
  context: {
391
- userId,
331
+ userId: "user_456",
392
332
  userName: "Bob",
393
333
  preferences: {
394
334
  currency: "USD",
395
335
  language: "en",
396
336
  },
397
337
  },
398
- // Lifecycle hooks for session step enrichment
338
+ // Lifecycle hooks for data enrichment
399
339
  hooks: {
400
- // Enrich collected data before saving
401
- onDataUpdate: async (data, previous) => {
402
- console.log("🔄 Collected data updated:", { data, previous });
340
+ onDataUpdate: async (
341
+ data: Partial<OnboardingData>,
342
+ previous: Partial<OnboardingData>
343
+ ) => {
344
+ console.log("🔄 Data updated:", { data, previous });
403
345
 
404
346
  // Normalize phone numbers
405
347
  if (data.phoneNumber) {
@@ -411,25 +353,22 @@ async function advancedExample() {
411
353
  console.warn("⚠️ Invalid email detected");
412
354
  }
413
355
 
414
- return data;
356
+ return data as OnboardingData;
415
357
  },
416
358
 
417
- // Update context when session step changes
418
- onContextUpdate: async (newContext, oldContext) => {
359
+ onContextUpdate: async (
360
+ newContext: UserContext,
361
+ oldContext: UserContext
362
+ ) => {
419
363
  console.log("🔄 Context updated:", { newContext, oldContext });
364
+ return Promise.resolve();
420
365
  },
421
366
  },
422
367
  persistence: {
423
- adapter: new PrismaAdapter({ prisma }),
368
+ adapter: new PrismaAdapter<UserContext>({ prisma }),
424
369
  autoSave: true,
425
- userId,
426
370
  },
427
- });
428
-
429
- // Create onboarding route
430
- const onboardingRoute = agent.createRoute<OnboardingData>({
431
- title: "User Onboarding",
432
- description: "Collect user information for account setup",
371
+ sessionId,
433
372
  schema: {
434
373
  type: "object",
435
374
  properties: {
@@ -442,153 +381,159 @@ async function advancedExample() {
442
381
  },
443
382
  });
444
383
 
384
+ // Create onboarding route
385
+ const onboardingRoute = agent.createRoute({
386
+ title: "User Onboarding",
387
+ description: "Collect user information for account setup",
388
+ });
389
+
445
390
  onboardingRoute.initialStep
446
391
  .nextStep({
447
- instructions: "Welcome and ask for name",
392
+ prompt: "Welcome and ask for name",
448
393
  collect: ["fullName"],
449
- skipIf: (data) => !!data.fullName,
394
+ skipIf: (data: Partial<OnboardingData>) => !!data.fullName,
450
395
  })
451
396
  .nextStep({
452
- instructions: "Ask for email",
397
+ prompt: "Ask for email",
453
398
  collect: ["email"],
454
- skipIf: (data) => !!data.email,
399
+ skipIf: (data: Partial<OnboardingData>) => !!data.email,
455
400
  })
456
401
  .nextStep({
457
- instructions: "Ask for phone number (optional)",
402
+ prompt: "Ask for phone number (optional)",
458
403
  collect: ["phoneNumber"],
459
404
  })
460
405
  .nextStep({
461
- instructions: "Ask for country",
406
+ prompt: "Ask for country",
462
407
  collect: ["country"],
463
- skipIf: (data) => !!data.country,
408
+ skipIf: (data: Partial<OnboardingData>) => !!data.country,
464
409
  })
465
410
  .nextStep({
466
- instructions: "Confirm and complete onboarding",
411
+ prompt: "Confirm and complete onboarding",
467
412
  })
468
413
  .nextStep({ step: END_ROUTE });
469
414
 
470
- const persistence = agent.getPersistenceManager()!;
471
-
472
- // Create session with step
473
- const { sessionData, sessionStep } =
474
- await persistence.createSessionWithStep<OnboardingData>({
475
- userId,
476
- agentName: "Onboarding Assistant",
477
- });
478
-
479
- console.log("✨ Created onboarding session:", sessionData.id);
415
+ console.log("✨ Onboarding session ready:", agent.session.id);
480
416
 
481
- // Simulate conversation
482
- const history = [];
483
- let session = sessionStep;
417
+ // Demonstrate history override for context setting
418
+ const contextHistory = [
419
+ { role: "system" as const, content: "User is starting onboarding process" },
420
+ { role: "user" as const, content: "I'd like to create an account" },
421
+ ];
484
422
 
485
423
  const response = await agent.respond({
486
- history: [
487
- createMessageEvent(EventSource.CUSTOMER, "Bob", "Hi, I'm new here!"),
488
- ],
489
- session,
424
+ history: contextHistory, // Override session history for this response
490
425
  });
491
426
 
492
427
  console.log("🤖 Agent:", response.message);
493
- console.log("📊 Data so far:", response.session?.data);
428
+ console.log("📊 Data collected:", agent.session.getData());
429
+
430
+ // Add to session history for future responses
431
+ await agent.session.addMessage("user", "I'd like to create an account");
432
+ await agent.session.addMessage("assistant", response.message);
494
433
 
495
- await persistence.saveMessage({
496
- sessionId: sessionData.id,
497
- userId,
498
- role: "agent",
499
- content: response.message,
434
+ // Continue with session-managed history
435
+ await agent.session.addMessage("user", "My name is Bob Johnson and email is bob@example.com");
436
+
437
+ const response2 = await agent.respond({
438
+ history: agent.session.getHistory(),
500
439
  });
501
440
 
502
- if (response.isRouteComplete) {
441
+ console.log("🤖 Agent:", response2.message);
442
+ console.log("📊 Normalized data:", agent.session.getData());
443
+ // Shows normalized phone and email
444
+
445
+ if (response2.isRouteComplete) {
503
446
  console.log("\n✅ Onboarding complete!");
504
- await sendOnboardingEmail(agent.getData(sessionData.id) as OnboardingData);
447
+ await sendOnboardingEmail(agent.session.getData());
505
448
  }
506
449
 
507
- console.log("✅ Session step automatically saved to database!");
508
-
509
450
  await prisma.$disconnect();
510
451
  }
511
452
 
512
453
  /**
513
- * Minimal Example - Quick Start
454
+ * Minimal Example - Server Endpoint Pattern
514
455
  */
515
- async function quickStart() {
456
+ async function serverEndpointExample() {
516
457
  const prisma = new PrismaClient();
517
458
 
518
- const agent = new Agent({
459
+ // Simulate server endpoint receiving request
460
+ const requestData = {
461
+ sessionId: "session_user789_support", // From client
462
+ message: "I need help, my name is John and my email is john@example.com",
463
+ };
464
+
465
+ // Define contact form schema
466
+ const contactFormSchema = {
467
+ type: "object",
468
+ properties: {
469
+ name: { type: "string" },
470
+ email: { type: "string" },
471
+ message: { type: "string" },
472
+ },
473
+ required: ["name", "email", "message"],
474
+ };
475
+
476
+ // Create agent with sessionId (loads existing or creates new)
477
+ const agent = new Agent<unknown, ContactFormData>({
519
478
  name: "Support Agent",
520
479
  provider: new GeminiProvider({
521
480
  apiKey: process.env.GEMINI_API_KEY!,
522
- model: "models/gemini-2.0-flash-exp",
481
+ model: "models/gemini-2.5-flash",
523
482
  }),
483
+ // NEW: Agent-level schema
484
+ schema: contactFormSchema,
524
485
  persistence: {
525
- adapter: new PrismaAdapter({ prisma }),
526
- userId: "user_789",
527
- autoSave: true, // ✨ Automatically saves session step!
486
+ adapter: new PrismaAdapter<unknown>({ prisma }),
487
+ autoSave: true,
528
488
  },
489
+ sessionId: requestData.sessionId, // ✨ Automatic session management
529
490
  });
530
491
 
531
492
  // Create a simple contact form route
532
- const contactRoute = agent.createRoute<ContactFormData>({
493
+ const contactRoute = agent.createRoute({
533
494
  title: "Contact Form",
534
- schema: {
535
- type: "object",
536
- properties: {
537
- name: { type: "string" },
538
- email: { type: "string" },
539
- message: { type: "string" },
540
- },
541
- required: ["name", "email", "message"],
542
- },
543
495
  });
544
496
 
545
497
  contactRoute.initialStep
546
498
  .nextStep({
547
- instructions: "Collect all information",
499
+ prompt: "Collect all information",
548
500
  collect: ["name", "email", "message"],
549
501
  })
550
502
  .nextStep({
551
- instructions: "Confirm submission",
503
+ prompt: "Confirm submission",
552
504
  })
553
505
  .nextStep({ step: END_ROUTE });
554
506
 
555
- const persistence = agent.getPersistenceManager()!;
556
-
557
- // Create session with step support
558
- const { sessionData, sessionStep } =
559
- await persistence.createSessionWithStep<ContactFormData>({
560
- userId: "user_789",
561
- agentName: "Support Agent",
562
- });
563
-
564
- // Chat!
507
+ // Add user message and respond
508
+ await agent.session.addMessage("user", requestData.message);
509
+
565
510
  const response = await agent.respond({
566
- history: [
567
- createMessageEvent(
568
- EventSource.CUSTOMER,
569
- "User",
570
- "I need help, my name is John and my email is john@example.com"
571
- ),
572
- ],
573
- session: sessionStep,
511
+ history: agent.session.getHistory(),
574
512
  });
575
513
 
576
- console.log("✅ Response:", response.message);
577
- console.log("📊 Data:", response.session?.data);
514
+ await agent.session.addMessage("assistant", response.message);
515
+
516
+ // Return response (like in a REST API)
517
+ const apiResponse = {
518
+ message: response.message,
519
+ sessionId: agent.session.id,
520
+ isComplete: response.isRouteComplete,
521
+ data: agent.session.getData(),
522
+ };
523
+
524
+ console.log("✅ API Response:", apiResponse);
578
525
 
579
526
  if (response.isRouteComplete) {
580
527
  console.log("\n✅ Contact form submitted!");
581
- await logContactForm(agent.getData(sessionData.id) as ContactFormData);
528
+ await logContactForm(agent.session.getData());
582
529
  }
583
530
 
584
- console.log("💾 Session step auto-saved to Prisma!");
585
-
586
531
  await prisma.$disconnect();
532
+ return apiResponse;
587
533
  }
588
534
 
589
535
  /**
590
536
  * Mock function to send a flight confirmation email.
591
- * @param data - The flight booking data.
592
537
  */
593
538
  async function sendFlightConfirmation(
594
539
  data: Partial<FlightBookingData> | undefined
@@ -606,7 +551,6 @@ async function sendFlightConfirmation(
606
551
 
607
552
  /**
608
553
  * Mock function to send an onboarding email.
609
- * @param data - The onboarding data.
610
554
  */
611
555
  async function sendOnboardingEmail(data: Partial<OnboardingData> | undefined) {
612
556
  console.log("\n" + "=".repeat(60));
@@ -620,7 +564,6 @@ async function sendOnboardingEmail(data: Partial<OnboardingData> | undefined) {
620
564
 
621
565
  /**
622
566
  * Mock function to log a contact form submission.
623
- * @param data - The contact form data.
624
567
  */
625
568
  async function logContactForm(data: Partial<ContactFormData> | undefined) {
626
569
  console.log("\n" + "=".repeat(60));
@@ -637,4 +580,4 @@ if (require.main === module) {
637
580
  example().catch(console.error);
638
581
  }
639
582
 
640
- export { example, advancedExample, quickStart };
583
+ export { example, advancedExample, serverEndpointExample };