@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,196 @@
1
+ /**
2
+ * Agent-related type definitions
3
+ */
4
+
5
+ import type { AgentStructuredResponse, AiProvider } from "./ai";
6
+ import type { Tool } from "./tool";
7
+ import type { RouteOptions } from "./route";
8
+ import type { PersistenceConfig } from "./persistence";
9
+ import type { SessionState } from "./session";
10
+ import type { StructuredSchema } from "./schema";
11
+ import { Template, ConditionTemplate } from "./template";
12
+
13
+ /**
14
+ * Composition mode determines how the agent processes and structures responses
15
+ */
16
+ export enum CompositionMode {
17
+ /** Fluid, natural conversation without strict structure */
18
+ FLUID = "fluid",
19
+ /** Canned responses with fluid fallback */
20
+ CANNED_FLUID = "canned_fluid",
21
+ /** Composited canned responses */
22
+ CANNED_COMPOSITED = "composited_canned",
23
+ /** Strict canned responses only */
24
+ CANNED_STRICT = "strict_canned",
25
+ }
26
+
27
+ /**
28
+ * Context lifecycle hooks for managing step persistence
29
+ */
30
+ export interface ContextLifecycleHooks<TContext = unknown, TData = unknown> {
31
+ /**
32
+ * Called before respond() to get fresh context
33
+ * Useful for loading context from a database or cache
34
+ */
35
+ beforeRespond?: (currentContext: TContext) => Promise<TContext> | TContext;
36
+
37
+ /**
38
+ * Called after context is updated via updateContext() or tool execution
39
+ * Useful for persisting context to a database or cache
40
+ */
41
+ onContextUpdate?: (
42
+ newContext: TContext,
43
+ previousContext: TContext
44
+ ) => Promise<void> | void;
45
+
46
+ /**
47
+ * Called after collected data is updated (from AI response or tool execution)
48
+ * Useful for validation, enrichment, or persistence of collected data
49
+ * Return modified collected data or the same data to keep it unchanged
50
+ *
51
+ * Note: This hook now works with agent-level data collection (TData type)
52
+ */
53
+ onDataUpdate?: (
54
+ data: Partial<TData>,
55
+ previousCollected: Partial<TData>
56
+ ) => Partial<TData> | Promise<Partial<TData>>;
57
+ }
58
+
59
+ /**
60
+ * Context provider function for always-fresh context
61
+ * Alternative to static context, useful for loading from external sources
62
+ */
63
+ export type ContextProvider<TContext = unknown> = () =>
64
+ | Promise<TContext>
65
+ | TContext;
66
+
67
+ /**
68
+ * Options for creating an Agent
69
+ */
70
+ export interface AgentOptions<TContext = unknown, TData = unknown> {
71
+ /** Display name of the agent */
72
+ name: string;
73
+ /** Detailed description of the agent's purpose and personality */
74
+ description?: string;
75
+ /** The agent's primary goal or objective */
76
+ goal?: string;
77
+ /** Optional personality/tone prompt used in prompts */
78
+ personality?: Template<TContext>;
79
+ /** Optional identity prompt defining the agent's self-concept and role */
80
+ identity?: Template<TContext>;
81
+ /** Enable debug logging */
82
+ debug?: boolean;
83
+ /** Default context data available to the agent */
84
+ context?: TContext;
85
+ /** Optional current session for convenience methods */
86
+ session?: SessionState;
87
+ /** Optional sessionId to load or create - managed by SessionManager */
88
+ sessionId?: string;
89
+ /** Context provider function for always-fresh context (alternative to static context) */
90
+ contextProvider?: ContextProvider<TContext>;
91
+ /** Lifecycle hooks for context management */
92
+ hooks?: ContextLifecycleHooks<TContext, TData>;
93
+ /** AI provider strategy for generating responses */
94
+ provider: AiProvider;
95
+ /** Composition mode for response generation */
96
+ compositionMode?: CompositionMode;
97
+ /** Initial terms for domain glossary */
98
+ terms?: Term<TContext, TData>[];
99
+ /** Initial guidelines for agent behavior */
100
+ guidelines?: Guideline<TContext, TData>[];
101
+ /** Global tools available to all routes */
102
+ tools?: Tool<TContext, TData, unknown>[];
103
+ /** Initial routes (will be instantiated as Route objects) */
104
+ routes?: RouteOptions<TContext, TData>[];
105
+ /** Optional persistence configuration for auto-saving sessions and messages */
106
+ persistence?: PersistenceConfig<TData>;
107
+ /** Knowledge base containing any JSON structure the AI should know */
108
+ knowledgeBase?: Record<string, unknown>;
109
+ /** Agent-level data schema defining the complete data structure for collection */
110
+ schema?: StructuredSchema;
111
+ /** Initial data to pre-populate when creating the agent */
112
+ initialData?: Partial<TData>;
113
+ }
114
+
115
+ /**
116
+ * A term in the domain glossary
117
+ */
118
+ export interface Term<TContext = unknown, TData = unknown> {
119
+ /** Name of the term */
120
+ name: Template<TContext, TData>;
121
+ /** Description/definition of the term */
122
+ description: Template<TContext, TData>;
123
+ /** Alternative names or synonyms */
124
+ synonyms?: Template<TContext, TData>[];
125
+ }
126
+
127
+ /**
128
+ * A behavioral guideline for the agent
129
+ */
130
+ export interface Guideline<TContext = unknown, TData = unknown> {
131
+ /** Unique identifier */
132
+ id?: string;
133
+ /** Condition that triggers this guideline (optional for always-active guidelines) */
134
+ condition?: ConditionTemplate<TContext, TData>;
135
+ /** Action the agent should take when the condition is met */
136
+ action: Template<TContext, TData>;
137
+ /** Whether this guideline is currently enabled */
138
+ enabled?: boolean;
139
+ /** Tags for organizing and filtering guidelines */
140
+ tags?: string[];
141
+ /** Additional metadata */
142
+ metadata?: Record<string, unknown>;
143
+ }
144
+
145
+ /**
146
+ * Guideline match with rationale
147
+ */
148
+ export interface GuidelineMatch<TContext = unknown, TData = unknown> {
149
+ /** The matched guideline */
150
+ guideline: Guideline<TContext, TData>;
151
+ /** Explanation of why this guideline was matched */
152
+ rationale?: string;
153
+ }
154
+
155
+ export interface AgentResponse<TData = Record<string, unknown>> {
156
+ message: string;
157
+ session?: SessionState<TData>;
158
+ toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
159
+ isRouteComplete?: boolean;
160
+ }
161
+
162
+ export interface AgentResponseStreamChunk<TData = Record<string, unknown>> {
163
+ delta: string;
164
+ accumulated: string;
165
+ done: boolean;
166
+ session?: SessionState<TData>;
167
+ toolCalls?: Array<{ toolName: string; arguments: Record<string, unknown> }>;
168
+ isRouteComplete?: boolean;
169
+ metadata?: {
170
+ model?: string;
171
+ tokensUsed?: number;
172
+ finishReason?: string;
173
+ [key: string]: unknown;
174
+ };
175
+ structured?: AgentStructuredResponse;
176
+ error?: Error;
177
+ }
178
+
179
+ /**
180
+ * Validation error for data validation
181
+ */
182
+ export interface ValidationError {
183
+ field: string;
184
+ value: unknown;
185
+ message: string;
186
+ schemaPath: string;
187
+ }
188
+
189
+ /**
190
+ * Result of data validation
191
+ */
192
+ export interface ValidationResult {
193
+ valid: boolean;
194
+ errors: ValidationError[];
195
+ warnings: ValidationError[];
196
+ }
@@ -0,0 +1,158 @@
1
+ /**
2
+ * AI provider strategy types
3
+ */
4
+
5
+ import type { Event } from "./history";
6
+
7
+ /**
8
+ * Reasoning/thinking configuration for AI models
9
+ */
10
+ export interface ReasoningConfig {
11
+ /**
12
+ * Effort level for reasoning models (OpenAI: gpt-5, o-series)
13
+ * - minimal: Fastest, least reasoning
14
+ * - low: Basic reasoning
15
+ * - medium: Balanced reasoning
16
+ * - high: Maximum reasoning effort
17
+ */
18
+ effort?: "minimal" | "low" | "medium" | "high";
19
+ /**
20
+ * Summary detail level of reasoning process
21
+ * - auto: Model decides
22
+ * - concise: Brief summary
23
+ * - detailed: Full reasoning details
24
+ */
25
+ summary?: "auto" | "concise" | "detailed";
26
+ /**
27
+ * Whether to include thinking/reasoning in response (Gemini)
28
+ */
29
+ includeThoughts?: boolean;
30
+ }
31
+
32
+ /**
33
+ * Input for AI message generation
34
+ */
35
+ export interface GenerateMessageInput<TContext = unknown> {
36
+ /** The constructed prompt */
37
+ prompt: string;
38
+ /** Interaction history */
39
+ history: Event[];
40
+ /** Context data */
41
+ context: TContext;
42
+ /** Tools available for AI to call during this interaction */
43
+ tools?: Array<{
44
+ id: string;
45
+ name?: string;
46
+ description?: string;
47
+ parameters?: unknown;
48
+ }>;
49
+ /** Additional generation parameters */
50
+ parameters?: {
51
+ /** Maximum output tokens to generate */
52
+ maxOutputTokens?: number;
53
+ /** Reasoning/thinking configuration */
54
+ reasoning?: ReasoningConfig;
55
+ /**
56
+ * Required: Structured JSON schema the provider must enforce for output
57
+ */
58
+ jsonSchema: { [key: string]: unknown };
59
+ /** Optional schema name (used by providers that require one) */
60
+ schemaName?: string;
61
+ };
62
+ /** Abort signal for cancellation */
63
+ signal?: AbortSignal;
64
+ }
65
+
66
+ /**
67
+ * Structured response from AI containing message and metadata
68
+ */
69
+ export interface AgentStructuredResponse extends Record<string, unknown> {
70
+ /** The actual message to send to the user */
71
+ message: string;
72
+ /** Route chosen by the agent (route title or null if no route) */
73
+ route?: string | null;
74
+ /** Current step within the route (step description or null) */
75
+ step?: string | null;
76
+ /** Tool calls the agent wants to execute */
77
+ toolCalls?: Array<{
78
+ /** Name of the tool to call */
79
+ toolName: string;
80
+ /** Arguments to pass to the tool */
81
+ arguments: Record<string, unknown>;
82
+ }>;
83
+ /** Additional reasoning or internal thoughts (optional) */
84
+ reasoning?: string;
85
+ }
86
+
87
+ /**
88
+ * Output from AI message generation
89
+ */
90
+ export interface GenerateMessageOutput<TStructured = AgentStructuredResponse> {
91
+ /** The generated message */
92
+ message: string;
93
+ /** Optional metadata about generation */
94
+ metadata?: {
95
+ /** Model used */
96
+ model?: string;
97
+ /** Tokens consumed */
98
+ tokensUsed?: number;
99
+ /** Finish reason */
100
+ finishReason?: string;
101
+ /** Additional provider-specific data */
102
+ [key: string]: unknown;
103
+ };
104
+ /** Structured response data (when JSON mode is enabled) */
105
+ structured?: TStructured;
106
+ }
107
+
108
+ /**
109
+ * Stream chunk from AI message generation
110
+ */
111
+ export interface GenerateMessageStreamChunk<
112
+ TStructured = AgentStructuredResponse
113
+ > {
114
+ /** The delta/chunk of the message */
115
+ delta: string;
116
+ /** Accumulated message so far */
117
+ accumulated: string;
118
+ /** Whether this is the final chunk */
119
+ done: boolean;
120
+ /** Optional metadata about generation */
121
+ metadata?: {
122
+ /** Model used */
123
+ model?: string;
124
+ /** Tokens consumed */
125
+ tokensUsed?: number;
126
+ /** Finish reason */
127
+ finishReason?: string;
128
+ /** Additional provider-specific data */
129
+ [key: string]: unknown;
130
+ };
131
+ /** Structured response data (only available when done=true and JSON mode is enabled) */
132
+ structured?: TStructured;
133
+ }
134
+
135
+ /**
136
+ * AI provider interface (strategy pattern)
137
+ */
138
+ export interface AiProvider {
139
+ /** Provider name/identifier */
140
+ readonly name: string;
141
+
142
+ /**
143
+ * Generate a message based on prompt and context
144
+ */
145
+ generateMessage<TContext = unknown, TStructured = AgentStructuredResponse>(
146
+ input: GenerateMessageInput<TContext>
147
+ ): Promise<GenerateMessageOutput<TStructured>>;
148
+
149
+ /**
150
+ * Generate a message as a stream based on prompt and context
151
+ */
152
+ generateMessageStream<
153
+ TContext = unknown,
154
+ TStructured = AgentStructuredResponse
155
+ >(
156
+ input: GenerateMessageInput<TContext>
157
+ ): AsyncGenerator<GenerateMessageStreamChunk<TStructured>>;
158
+ }
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Event history and interaction types
3
+ */
4
+
5
+ /**
6
+ * Message source enum - defines valid sources for messages and events
7
+ */
8
+ export enum MessageRole {
9
+ /** Message/event from user/customer */
10
+ USER = "user",
11
+ /** Conversational message from AI assistant */
12
+ ASSISTANT = "assistant",
13
+ /** Tool execution/action by AI agent */
14
+ AGENT = "agent",
15
+ /** System message/event */
16
+ SYSTEM = "system",
17
+ }
18
+
19
+ export type MessageRoleType = MessageRole;
20
+
21
+ import type { SessionState } from "./session";
22
+
23
+ /**
24
+ * Types of events in the interaction history
25
+ */
26
+ export enum EventKind {
27
+ /** A text message event */
28
+ MESSAGE = "message",
29
+ /** A tool execution event */
30
+ TOOL = "tool",
31
+ /** A status update event */
32
+ STATUS = "status",
33
+ }
34
+
35
+ export type EventKindType = EventKind;
36
+
37
+ /**
38
+ * Participant in a conversation
39
+ */
40
+ export interface Participant {
41
+ /** Display name */
42
+ display_name: string;
43
+ /** Unique identifier */
44
+ id?: string;
45
+ }
46
+
47
+ /**
48
+ * Role types for simplified history format
49
+ */
50
+ export type Role = "user" | "assistant" | "tool" | "system";
51
+
52
+ export type UserHistoryItem = {
53
+ role: "user";
54
+ content: string;
55
+ name?: string;
56
+ };
57
+
58
+ export type AssistantHistoryItem = {
59
+ role: "assistant";
60
+ content: string | null;
61
+ tool_calls?: Array<{
62
+ id: string;
63
+ name: string;
64
+ arguments: Record<string, unknown>;
65
+ }>;
66
+ };
67
+ export type ToolHistoryItem = {
68
+ role: "tool";
69
+ tool_call_id: string;
70
+ name: string;
71
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
+ content: any;
73
+ };
74
+
75
+ export type SystemHistoryItem = {
76
+ role: "system";
77
+ content: string;
78
+ };
79
+
80
+ /**
81
+ * Simplified history item for developer-friendly API
82
+ */
83
+ export type HistoryItem =
84
+ | UserHistoryItem
85
+ | AssistantHistoryItem
86
+ | ToolHistoryItem
87
+ | SystemHistoryItem;
88
+
89
+ /**
90
+ * Simplified history array type
91
+ */
92
+ export type History = HistoryItem[];
93
+
94
+ /**
95
+ * Simple JSON format for history messages (developer-friendly)
96
+ */
97
+ export interface HistoryMessage<TData = unknown> {
98
+ /** Role of the message sender */
99
+ role: MessageRole;
100
+ /** Message content */
101
+ content: string;
102
+ /** Optional participant name */
103
+ name?: string;
104
+ /** Optional timestamp (ISO string) */
105
+ timestamp?: string;
106
+ /** Optional session state */
107
+ session?: SessionState<TData>;
108
+ /** Optional additional metadata */
109
+ metadata?: Record<string, unknown>;
110
+ }
111
+
112
+ /**
113
+ * Data for a message event
114
+ */
115
+ export interface MessageEventData {
116
+ /** The participant who sent the message */
117
+ participant: Participant;
118
+ /** The message content */
119
+ message: string;
120
+ /** Whether the message was flagged/censored */
121
+ flagged?: boolean;
122
+ /** Tags/reasons if flagged */
123
+ tags?: string[];
124
+ /** Tool calls made by the assistant */
125
+ toolCalls?: Array<{
126
+ id: string;
127
+ name: string;
128
+ arguments: Record<string, unknown>;
129
+ }>;
130
+ /** Session metadata attached to this message */
131
+ session?: {
132
+ routeId?: string;
133
+ routeTitle?: string;
134
+ stepId?: string;
135
+ stepDescription?: string;
136
+ data?: Record<string, unknown>;
137
+ };
138
+ }
139
+
140
+ /**
141
+ * Result of a tool execution
142
+ */
143
+ export interface ToolResult<TData = unknown> {
144
+ /** The result data */
145
+ data: TData;
146
+ /** Optional metadata */
147
+ meta?: Record<string, unknown>;
148
+ }
149
+
150
+ /**
151
+ * A single tool call within a tool event
152
+ */
153
+ export interface ToolCall<TArgs = unknown, TResult = unknown> {
154
+ /** Tool identifier */
155
+ tool_id: string;
156
+ /** Arguments passed to the tool */
157
+ arguments: TArgs;
158
+ /** Result returned by the tool */
159
+ result: ToolResult<TResult>;
160
+ }
161
+
162
+ /**
163
+ * Data for a tool event
164
+ */
165
+ export interface ToolEventData {
166
+ /** Array of tool calls executed */
167
+ tool_calls: ToolCall[];
168
+ }
169
+
170
+ /**
171
+ * Data for a status event
172
+ */
173
+ export interface StatusEventData {
174
+ /** Status message */
175
+ status: string;
176
+ /** Additional details */
177
+ details?: Record<string, unknown>;
178
+ }
179
+
180
+ /**
181
+ * Base event structure
182
+ */
183
+ export interface Event<
184
+ TData = MessageEventData | ToolEventData | StatusEventData
185
+ > {
186
+ /** Type of event */
187
+ kind: EventKind;
188
+ /** Source of the event */
189
+ source: MessageRole;
190
+ /** Event-specific data */
191
+ data: TData;
192
+ /** Timestamp (ISO string) */
193
+ timestamp?: string;
194
+ /** Unique event identifier */
195
+ id?: string;
196
+ }
197
+
198
+ /**
199
+ * An emitted event (staged for inclusion)
200
+ */
201
+ export interface EmittedEvent<
202
+ TData = MessageEventData | ToolEventData | StatusEventData
203
+ > extends Event<TData> {
204
+ /** Whether this event has been committed */
205
+ committed?: boolean;
206
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Central type definitions export
3
+ */
4
+
5
+ // Agent types
6
+ export type {
7
+ AgentOptions,
8
+ Term,
9
+ Guideline,
10
+ GuidelineMatch,
11
+ AgentResponseStreamChunk,
12
+ AgentResponse,
13
+ ContextLifecycleHooks,
14
+ ContextProvider,
15
+ ValidationError,
16
+ ValidationResult,
17
+ } from "./agent";
18
+ export { CompositionMode } from "./agent";
19
+
20
+ // History types
21
+ export type {
22
+ Event,
23
+ EmittedEvent,
24
+ MessageEventData,
25
+ ToolEventData,
26
+ StatusEventData,
27
+ Participant,
28
+ ToolResult as EventToolResult,
29
+ ToolCall,
30
+ HistoryMessage,
31
+ Role,
32
+ HistoryItem,
33
+ History,
34
+ UserHistoryItem,
35
+ AssistantHistoryItem,
36
+ SystemHistoryItem,
37
+ ToolHistoryItem,
38
+ } from "./history";
39
+ export { EventKind, MessageRole } from "./history";
40
+ export * from "./history";
41
+
42
+ // Route types
43
+ export type {
44
+ RouteOptions,
45
+ RouteRef,
46
+ StepRef,
47
+ StepOptions,
48
+ BranchSpec,
49
+ StepResult,
50
+ BranchResult,
51
+ RouteCompletionHandler,
52
+ RouteTransitionConfig,
53
+ RouteLifecycleHooks,
54
+ } from "./route";
55
+ export * from "./route";
56
+
57
+ // Session types
58
+ export type { SessionState, PendingTransition } from "./session";
59
+
60
+ // Tool types
61
+ export type {
62
+ Tool,
63
+ ToolContext,
64
+ ToolResult,
65
+ ToolHandler,
66
+ ToolExecutionResult,
67
+ DataEnrichmentConfig,
68
+ ValidationConfig,
69
+ ApiCallConfig,
70
+ ComputationConfig
71
+ } from "./tool";
72
+ export { ToolScope } from "./tool";
73
+
74
+ // AI provider types
75
+ export type {
76
+ AiProvider,
77
+ GenerateMessageInput,
78
+ GenerateMessageOutput,
79
+ AgentStructuredResponse,
80
+ ReasoningConfig,
81
+ GenerateMessageStreamChunk,
82
+ } from "./ai";
83
+
84
+ // Schema types
85
+ export type { StructuredSchema } from "./schema";
86
+
87
+ // Routing types
88
+ export type { RoutingDecision } from "./routing";
89
+ export * from "./routing";
90
+
91
+ // Persistence types
92
+ export type {
93
+ SessionData,
94
+ MessageData,
95
+ SessionStatus,
96
+ SessionRepository,
97
+ MessageRepository,
98
+ PersistenceAdapter,
99
+ PersistenceConfig,
100
+ CreateSessionOptions,
101
+ CreateSessionData,
102
+ SaveMessageOptions,
103
+ CollectedStateData,
104
+ } from "./persistence";
105
+ export * from "./persistence";
106
+
107
+ // Template types
108
+ export type {
109
+ Template,
110
+ TemplateContext,
111
+ ConditionTemplate,
112
+ ConditionEvaluationResult
113
+ } from "./template";
114
+ export {
115
+ ConditionEvaluator,
116
+ createConditionEvaluator,
117
+ extractAIContextStrings,
118
+ hasProgrammaticConditions
119
+ } from "../utils/condition";