@dexto/core 1.1.4 → 1.1.6

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 (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,284 @@
1
+ import { ContextManager } from '../context/manager.cjs';
2
+ import { InternalMessage } from '../context/types.cjs';
3
+ import { ILLMService } from '../llm/services/types.cjs';
4
+ import { PromptManager } from '../systemPrompt/manager.cjs';
5
+ import { ToolManager } from '../tools/tool-manager.cjs';
6
+ import { ValidatedLLMConfig } from '../llm/schemas.cjs';
7
+ import { AgentStateManager } from '../agent/state-manager.cjs';
8
+ import { StorageBackends } from '../storage/backend/types.cjs';
9
+ import { SessionEventBus, AgentEventBus } from '../events/index.cjs';
10
+ import '../llm/formatters/types.cjs';
11
+ import '../llm/types.cjs';
12
+ import '../llm/tokenizer/types.cjs';
13
+ import '../context/compression/types.cjs';
14
+ import '../systemPrompt/types.cjs';
15
+ import '../mcp/manager.cjs';
16
+ import '../mcp/schemas.cjs';
17
+ import 'zod';
18
+ import '../mcp/types.cjs';
19
+ import '@modelcontextprotocol/sdk/client/index.js';
20
+ import '../tools/types.cjs';
21
+ import 'json-schema';
22
+ import '@modelcontextprotocol/sdk/types.js';
23
+ import './history/types.cjs';
24
+ import 'ai';
25
+ import '../systemPrompt/schemas.cjs';
26
+ import '../tools/internal-tools/registry.cjs';
27
+ import '../search/search-service.cjs';
28
+ import '../storage/backend/database-backend.cjs';
29
+ import '../search/types.cjs';
30
+ import '../tools/schemas.cjs';
31
+ import '../tools/confirmation/types.cjs';
32
+ import '../tools/confirmation/allowed-tools-provider/types.cjs';
33
+ import '../agent/schemas.cjs';
34
+ import '../storage/backend/cache-backend.cjs';
35
+ import '../storage/schemas.cjs';
36
+ import 'events';
37
+
38
+ /**
39
+ * Represents an isolated conversation session within a Dexto agent.
40
+ *
41
+ * ChatSession provides session-level isolation for conversations, allowing multiple
42
+ * independent chat contexts to exist within a single DextoAgent instance. Each session
43
+ * maintains its own conversation history, message management, and event handling.
44
+ *
45
+ * ## Architecture
46
+ *
47
+ * The ChatSession acts as a lightweight wrapper around core Dexto services, providing
48
+ * session-specific instances of:
49
+ * - **ContextManager**: Handles conversation history and message formatting
50
+ * - **LLMService**: Manages AI model interactions and tool execution
51
+ * - **TypedEventEmitter**: Provides session-scoped event handling
52
+ *
53
+ * ## Event Handling
54
+ *
55
+ * Each session has its own event bus that emits standard Dexto events:
56
+ * - `llmservice:*` events (thinking, toolCall, response, etc.)
57
+ *
58
+ * Session events are forwarded to the global agent event bus with session prefixes.
59
+ *
60
+ * ## Usage Example
61
+ *
62
+ * ```typescript
63
+ * // Create a new session
64
+ * const session = agent.createSession('user-123');
65
+ *
66
+ * // Listen for session events
67
+ * session.eventBus.on('llmservice:response', (payload) => {
68
+ * console.log('Session response:', payload.content);
69
+ * });
70
+ *
71
+ * // Run a conversation turn
72
+ * const response = await session.run('Hello, how are you?');
73
+ *
74
+ * // Reset session history
75
+ * await session.reset();
76
+ * ```
77
+ *
78
+ * @see {@link SessionManager} for session lifecycle management
79
+ * @see {@link ContextManager} for conversation history management
80
+ * @see {@link ILLMService} for AI model interaction interface
81
+ */
82
+ declare class ChatSession {
83
+ private services;
84
+ readonly id: string;
85
+ /**
86
+ * Session-scoped event emitter for handling conversation events.
87
+ *
88
+ * This is a session-local SessionEventBus instance that forwards events
89
+ * to the global agent event bus.
90
+ *
91
+ * Events emitted include:
92
+ * - `llmservice:thinking` - AI model is processing
93
+ * - `llmservice:toolCall` - Tool execution requested
94
+ * - `llmservice:response` - Final response generated
95
+ */
96
+ readonly eventBus: SessionEventBus;
97
+ /**
98
+ * History provider that persists conversation messages.
99
+ * Shared across LLM switches to maintain conversation continuity.
100
+ */
101
+ private historyProvider;
102
+ /**
103
+ * Handles AI model interactions, tool execution, and response generation for this session.
104
+ *
105
+ * Each session has its own LLMService instance that uses the session's
106
+ * ContextManager and event bus.
107
+ */
108
+ private llmService;
109
+ /**
110
+ * Map of event forwarder functions for cleanup.
111
+ * Stores the bound functions so they can be removed from the event bus.
112
+ */
113
+ private forwarders;
114
+ /**
115
+ * AbortController for the currently running turn, if any.
116
+ * Calling cancel() aborts the in-flight LLM request and tool execution checks.
117
+ */
118
+ private currentRunController;
119
+ /**
120
+ * Creates a new ChatSession instance.
121
+ *
122
+ * Each session creates its own isolated services:
123
+ * - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
124
+ * - LLMService (creates its own properly-typed ContextManager internally)
125
+ * - SessionEventBus (session-local event handling with forwarding)
126
+ *
127
+ * @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
128
+ * @param id - Unique identifier for this session
129
+ */
130
+ constructor(services: {
131
+ stateManager: AgentStateManager;
132
+ promptManager: PromptManager;
133
+ toolManager: ToolManager;
134
+ agentEventBus: AgentEventBus;
135
+ storage: StorageBackends;
136
+ }, id: string);
137
+ /**
138
+ * Initialize the session services asynchronously.
139
+ * This must be called after construction to set up the storage-backed services.
140
+ */
141
+ init(): Promise<void>;
142
+ /**
143
+ * Sets up event forwarding from session bus to global agent bus.
144
+ *
145
+ * All session events are automatically forwarded to the global bus with the same
146
+ * event names, but with session context added to the payload. This allows the app
147
+ * layer to continue listening to standard events while having access to session
148
+ * information when needed.
149
+ */
150
+ private setupEventForwarding;
151
+ /**
152
+ * Initializes session-specific services.
153
+ */
154
+ private initializeServices;
155
+ /**
156
+ * Processes user input through the session's LLM service and returns the response.
157
+ *
158
+ * This method:
159
+ * 1. Takes user input (text, optionally with image or file data)
160
+ * 2. Passes it to the LLM service for processing
161
+ * 3. Returns the AI's response text
162
+ *
163
+ * The method handles both text-only and multimodal input (text + images/files).
164
+ * Tool calls and conversation management are handled internally by the LLM service.
165
+ *
166
+ * @param input - The user's text input
167
+ * @param imageDataInput - Optional image data for multimodal input
168
+ * @param fileDataInput - Optional file data for file input
169
+ * @param stream - Optional flag to enable streaming responses
170
+ * @returns Promise that resolves to the AI's response text
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * const response = await session.run('What is the weather like today?');
175
+ * console.log(response); // "I'll check the weather for you..."
176
+ * ```
177
+ */
178
+ run(input: string, imageDataInput?: {
179
+ image: string;
180
+ mimeType: string;
181
+ }, fileDataInput?: {
182
+ data: string;
183
+ mimeType: string;
184
+ filename?: string;
185
+ }, stream?: boolean): Promise<string>;
186
+ /**
187
+ * Retrieves the complete conversation history for this session.
188
+ *
189
+ * Returns a read-only copy of all messages in the conversation, including:
190
+ * - User messages
191
+ * - Assistant responses
192
+ * - Tool call results
193
+ * - System messages
194
+ *
195
+ * The history is formatted as internal messages and may include multimodal
196
+ * content (text and images).
197
+ *
198
+ * @returns Promise that resolves to a read-only array of conversation messages in chronological order
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const history = await session.getHistory();
203
+ * console.log(`Conversation has ${history.length} messages`);
204
+ * history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
205
+ * ```
206
+ */
207
+ getHistory(): Promise<InternalMessage[]>;
208
+ /**
209
+ * Reset the conversation history for this session.
210
+ *
211
+ * This method:
212
+ * 1. Clears all messages from the session's conversation history
213
+ * 2. Removes persisted history from the storage provider
214
+ * 3. Emits a `dexto:conversationReset` event with session context
215
+ *
216
+ * The system prompt and session configuration remain unchanged.
217
+ * Only the conversation messages are cleared.
218
+ *
219
+ * @returns Promise that resolves when the reset is complete
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * await session.reset();
224
+ * console.log('Conversation history cleared');
225
+ * ```
226
+ *
227
+ * @see {@link ContextManager.resetConversation} for the underlying implementation
228
+ */
229
+ reset(): Promise<void>;
230
+ /**
231
+ * Gets the session's ContextManager instance.
232
+ *
233
+ * @returns The ContextManager for this session
234
+ */
235
+ getContextManager(): ContextManager<unknown>;
236
+ /**
237
+ * Gets the session's LLMService instance.
238
+ *
239
+ * @returns The LLMService for this session
240
+ */
241
+ getLLMService(): ILLMService;
242
+ /**
243
+ * Switches the LLM service for this session while preserving conversation history.
244
+ *
245
+ * This method creates a new LLM service with the specified configuration and router,
246
+ * while maintaining the existing ContextManager and conversation history. This allows
247
+ * users to change AI models mid-conversation without losing context.
248
+ *
249
+ * @param newLLMConfig The new LLM configuration to use (includes router)
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * // Switch from Claude to GPT-4 while keeping conversation history
254
+ * session.switchLLM({
255
+ * provider: 'openai',
256
+ * model: 'gpt-4',
257
+ * apiKey: process.env.OPENAI_API_KEY,
258
+ * router: 'in-built'
259
+ * });
260
+ * ```
261
+ */
262
+ switchLLM(newLLMConfig: ValidatedLLMConfig): Promise<void>;
263
+ /**
264
+ * Cleanup the session and its in-memory resources.
265
+ * This method should be called when the session is being removed from memory.
266
+ * Chat history is preserved in storage and can be restored later.
267
+ */
268
+ cleanup(): Promise<void>;
269
+ /**
270
+ * Cleans up listeners and other resources to prevent memory leaks.
271
+ *
272
+ * This method should be called when the session is being discarded to ensure
273
+ * that event listeners are properly removed from the global event bus.
274
+ * Without this cleanup, sessions would remain in memory due to listener references.
275
+ */
276
+ dispose(): void;
277
+ /**
278
+ * Cancel the currently running turn for this session, if any.
279
+ * Returns true if a run was in progress and was signaled to abort.
280
+ */
281
+ cancel(): boolean;
282
+ }
283
+
284
+ export { ChatSession };
@@ -0,0 +1,284 @@
1
+ import { ContextManager } from '../context/manager.js';
2
+ import { InternalMessage } from '../context/types.js';
3
+ import { ILLMService } from '../llm/services/types.js';
4
+ import { PromptManager } from '../systemPrompt/manager.js';
5
+ import { ToolManager } from '../tools/tool-manager.js';
6
+ import { ValidatedLLMConfig } from '../llm/schemas.js';
7
+ import { AgentStateManager } from '../agent/state-manager.js';
8
+ import { StorageBackends } from '../storage/backend/types.js';
9
+ import { SessionEventBus, AgentEventBus } from '../events/index.js';
10
+ import '../llm/formatters/types.js';
11
+ import '../llm/types.js';
12
+ import '../llm/tokenizer/types.js';
13
+ import '../context/compression/types.js';
14
+ import '../systemPrompt/types.js';
15
+ import '../mcp/manager.js';
16
+ import '../mcp/schemas.js';
17
+ import 'zod';
18
+ import '../mcp/types.js';
19
+ import '@modelcontextprotocol/sdk/client/index.js';
20
+ import '../tools/types.js';
21
+ import 'json-schema';
22
+ import '@modelcontextprotocol/sdk/types.js';
23
+ import './history/types.js';
24
+ import 'ai';
25
+ import '../systemPrompt/schemas.js';
26
+ import '../tools/internal-tools/registry.js';
27
+ import '../search/search-service.js';
28
+ import '../storage/backend/database-backend.js';
29
+ import '../search/types.js';
30
+ import '../tools/schemas.js';
31
+ import '../tools/confirmation/types.js';
32
+ import '../tools/confirmation/allowed-tools-provider/types.js';
33
+ import '../agent/schemas.js';
34
+ import '../storage/backend/cache-backend.js';
35
+ import '../storage/schemas.js';
36
+ import 'events';
37
+
38
+ /**
39
+ * Represents an isolated conversation session within a Dexto agent.
40
+ *
41
+ * ChatSession provides session-level isolation for conversations, allowing multiple
42
+ * independent chat contexts to exist within a single DextoAgent instance. Each session
43
+ * maintains its own conversation history, message management, and event handling.
44
+ *
45
+ * ## Architecture
46
+ *
47
+ * The ChatSession acts as a lightweight wrapper around core Dexto services, providing
48
+ * session-specific instances of:
49
+ * - **ContextManager**: Handles conversation history and message formatting
50
+ * - **LLMService**: Manages AI model interactions and tool execution
51
+ * - **TypedEventEmitter**: Provides session-scoped event handling
52
+ *
53
+ * ## Event Handling
54
+ *
55
+ * Each session has its own event bus that emits standard Dexto events:
56
+ * - `llmservice:*` events (thinking, toolCall, response, etc.)
57
+ *
58
+ * Session events are forwarded to the global agent event bus with session prefixes.
59
+ *
60
+ * ## Usage Example
61
+ *
62
+ * ```typescript
63
+ * // Create a new session
64
+ * const session = agent.createSession('user-123');
65
+ *
66
+ * // Listen for session events
67
+ * session.eventBus.on('llmservice:response', (payload) => {
68
+ * console.log('Session response:', payload.content);
69
+ * });
70
+ *
71
+ * // Run a conversation turn
72
+ * const response = await session.run('Hello, how are you?');
73
+ *
74
+ * // Reset session history
75
+ * await session.reset();
76
+ * ```
77
+ *
78
+ * @see {@link SessionManager} for session lifecycle management
79
+ * @see {@link ContextManager} for conversation history management
80
+ * @see {@link ILLMService} for AI model interaction interface
81
+ */
82
+ declare class ChatSession {
83
+ private services;
84
+ readonly id: string;
85
+ /**
86
+ * Session-scoped event emitter for handling conversation events.
87
+ *
88
+ * This is a session-local SessionEventBus instance that forwards events
89
+ * to the global agent event bus.
90
+ *
91
+ * Events emitted include:
92
+ * - `llmservice:thinking` - AI model is processing
93
+ * - `llmservice:toolCall` - Tool execution requested
94
+ * - `llmservice:response` - Final response generated
95
+ */
96
+ readonly eventBus: SessionEventBus;
97
+ /**
98
+ * History provider that persists conversation messages.
99
+ * Shared across LLM switches to maintain conversation continuity.
100
+ */
101
+ private historyProvider;
102
+ /**
103
+ * Handles AI model interactions, tool execution, and response generation for this session.
104
+ *
105
+ * Each session has its own LLMService instance that uses the session's
106
+ * ContextManager and event bus.
107
+ */
108
+ private llmService;
109
+ /**
110
+ * Map of event forwarder functions for cleanup.
111
+ * Stores the bound functions so they can be removed from the event bus.
112
+ */
113
+ private forwarders;
114
+ /**
115
+ * AbortController for the currently running turn, if any.
116
+ * Calling cancel() aborts the in-flight LLM request and tool execution checks.
117
+ */
118
+ private currentRunController;
119
+ /**
120
+ * Creates a new ChatSession instance.
121
+ *
122
+ * Each session creates its own isolated services:
123
+ * - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
124
+ * - LLMService (creates its own properly-typed ContextManager internally)
125
+ * - SessionEventBus (session-local event handling with forwarding)
126
+ *
127
+ * @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
128
+ * @param id - Unique identifier for this session
129
+ */
130
+ constructor(services: {
131
+ stateManager: AgentStateManager;
132
+ promptManager: PromptManager;
133
+ toolManager: ToolManager;
134
+ agentEventBus: AgentEventBus;
135
+ storage: StorageBackends;
136
+ }, id: string);
137
+ /**
138
+ * Initialize the session services asynchronously.
139
+ * This must be called after construction to set up the storage-backed services.
140
+ */
141
+ init(): Promise<void>;
142
+ /**
143
+ * Sets up event forwarding from session bus to global agent bus.
144
+ *
145
+ * All session events are automatically forwarded to the global bus with the same
146
+ * event names, but with session context added to the payload. This allows the app
147
+ * layer to continue listening to standard events while having access to session
148
+ * information when needed.
149
+ */
150
+ private setupEventForwarding;
151
+ /**
152
+ * Initializes session-specific services.
153
+ */
154
+ private initializeServices;
155
+ /**
156
+ * Processes user input through the session's LLM service and returns the response.
157
+ *
158
+ * This method:
159
+ * 1. Takes user input (text, optionally with image or file data)
160
+ * 2. Passes it to the LLM service for processing
161
+ * 3. Returns the AI's response text
162
+ *
163
+ * The method handles both text-only and multimodal input (text + images/files).
164
+ * Tool calls and conversation management are handled internally by the LLM service.
165
+ *
166
+ * @param input - The user's text input
167
+ * @param imageDataInput - Optional image data for multimodal input
168
+ * @param fileDataInput - Optional file data for file input
169
+ * @param stream - Optional flag to enable streaming responses
170
+ * @returns Promise that resolves to the AI's response text
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * const response = await session.run('What is the weather like today?');
175
+ * console.log(response); // "I'll check the weather for you..."
176
+ * ```
177
+ */
178
+ run(input: string, imageDataInput?: {
179
+ image: string;
180
+ mimeType: string;
181
+ }, fileDataInput?: {
182
+ data: string;
183
+ mimeType: string;
184
+ filename?: string;
185
+ }, stream?: boolean): Promise<string>;
186
+ /**
187
+ * Retrieves the complete conversation history for this session.
188
+ *
189
+ * Returns a read-only copy of all messages in the conversation, including:
190
+ * - User messages
191
+ * - Assistant responses
192
+ * - Tool call results
193
+ * - System messages
194
+ *
195
+ * The history is formatted as internal messages and may include multimodal
196
+ * content (text and images).
197
+ *
198
+ * @returns Promise that resolves to a read-only array of conversation messages in chronological order
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const history = await session.getHistory();
203
+ * console.log(`Conversation has ${history.length} messages`);
204
+ * history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
205
+ * ```
206
+ */
207
+ getHistory(): Promise<InternalMessage[]>;
208
+ /**
209
+ * Reset the conversation history for this session.
210
+ *
211
+ * This method:
212
+ * 1. Clears all messages from the session's conversation history
213
+ * 2. Removes persisted history from the storage provider
214
+ * 3. Emits a `dexto:conversationReset` event with session context
215
+ *
216
+ * The system prompt and session configuration remain unchanged.
217
+ * Only the conversation messages are cleared.
218
+ *
219
+ * @returns Promise that resolves when the reset is complete
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * await session.reset();
224
+ * console.log('Conversation history cleared');
225
+ * ```
226
+ *
227
+ * @see {@link ContextManager.resetConversation} for the underlying implementation
228
+ */
229
+ reset(): Promise<void>;
230
+ /**
231
+ * Gets the session's ContextManager instance.
232
+ *
233
+ * @returns The ContextManager for this session
234
+ */
235
+ getContextManager(): ContextManager<unknown>;
236
+ /**
237
+ * Gets the session's LLMService instance.
238
+ *
239
+ * @returns The LLMService for this session
240
+ */
241
+ getLLMService(): ILLMService;
242
+ /**
243
+ * Switches the LLM service for this session while preserving conversation history.
244
+ *
245
+ * This method creates a new LLM service with the specified configuration and router,
246
+ * while maintaining the existing ContextManager and conversation history. This allows
247
+ * users to change AI models mid-conversation without losing context.
248
+ *
249
+ * @param newLLMConfig The new LLM configuration to use (includes router)
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * // Switch from Claude to GPT-4 while keeping conversation history
254
+ * session.switchLLM({
255
+ * provider: 'openai',
256
+ * model: 'gpt-4',
257
+ * apiKey: process.env.OPENAI_API_KEY,
258
+ * router: 'in-built'
259
+ * });
260
+ * ```
261
+ */
262
+ switchLLM(newLLMConfig: ValidatedLLMConfig): Promise<void>;
263
+ /**
264
+ * Cleanup the session and its in-memory resources.
265
+ * This method should be called when the session is being removed from memory.
266
+ * Chat history is preserved in storage and can be restored later.
267
+ */
268
+ cleanup(): Promise<void>;
269
+ /**
270
+ * Cleans up listeners and other resources to prevent memory leaks.
271
+ *
272
+ * This method should be called when the session is being discarded to ensure
273
+ * that event listeners are properly removed from the global event bus.
274
+ * Without this cleanup, sessions would remain in memory due to listener references.
275
+ */
276
+ dispose(): void;
277
+ /**
278
+ * Cancel the currently running turn for this session, if any.
279
+ * Returns true if a run was in progress and was signaled to abort.
280
+ */
281
+ cancel(): boolean;
282
+ }
283
+
284
+ export { ChatSession };