@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,88 @@
1
+ import { LLMConfigSchema } from "../llm/schemas.js";
2
+ import { ServerConfigsSchema as McpServersConfigSchema } from "../mcp/schemas.js";
3
+ import { SessionConfigSchema } from "../session/schemas.js";
4
+ import { StorageSchema } from "../storage/schemas.js";
5
+ import { SystemPromptConfigSchema } from "../systemPrompt/schemas.js";
6
+ import { InternalToolsSchema, ToolConfirmationConfigSchema } from "../tools/schemas.js";
7
+ import { z } from "zod";
8
+ const AgentCardSchema = z.object({
9
+ name: z.string(),
10
+ // No default, must be provided by context
11
+ description: z.string().default(
12
+ "Dexto is an AI assistant capable of chat and task delegation, accessible via multiple protocols."
13
+ ),
14
+ url: z.string().url(),
15
+ // No default, must be provided by context
16
+ provider: z.object({
17
+ organization: z.string(),
18
+ url: z.string().url()
19
+ }).optional(),
20
+ // Remains optional, undefined if not provided
21
+ version: z.string(),
22
+ // No default, must be provided by context
23
+ documentationUrl: z.string().url().optional(),
24
+ // Remains optional, undefined if not provided
25
+ capabilities: z.object({
26
+ streaming: z.boolean().optional().default(true),
27
+ pushNotifications: z.boolean().optional(),
28
+ // Default is context-dependent (webSubscriber)
29
+ stateTransitionHistory: z.boolean().optional().default(false)
30
+ }).strict().default({}),
31
+ // Add default for the capabilities object itself
32
+ authentication: z.object({
33
+ schemes: z.array(z.string()).default([]),
34
+ credentials: z.string().optional()
35
+ // Remains optional
36
+ }).strict().default({}),
37
+ // Add default for the authentication object itself
38
+ defaultInputModes: z.array(z.string()).default(["application/json", "text/plain"]),
39
+ defaultOutputModes: z.array(z.string()).default(["application/json", "text/event-stream", "text/plain"]),
40
+ skills: z.array(
41
+ z.object({
42
+ id: z.string(),
43
+ name: z.string(),
44
+ description: z.string(),
45
+ tags: z.array(z.string()),
46
+ examples: z.array(z.string()).optional(),
47
+ inputModes: z.array(z.string()).optional().default(["text/plain"]),
48
+ outputModes: z.array(z.string()).optional().default(["text/plain"])
49
+ })
50
+ ).default([
51
+ {
52
+ id: "chat_with_agent",
53
+ name: "chat_with_agent",
54
+ description: "Allows you to chat with an AI agent. Send a message to interact.",
55
+ tags: ["chat", "AI", "assistant", "mcp", "natural language"],
56
+ examples: [
57
+ `Send a JSON-RPC request to /mcp with method: "chat_with_agent" and params: {"message":"Your query..."}`,
58
+ "Alternatively, use a compatible MCP client library."
59
+ ]
60
+ // inputModes and outputModes will use their own defaults if not specified here
61
+ }
62
+ ])
63
+ }).strict();
64
+ const AgentConfigSchema = z.object({
65
+ agentCard: AgentCardSchema.describe("Configuration for the agent card").optional(),
66
+ greeting: z.string().max(500).optional().describe("Default greeting text to show when a chat starts (for UI consumption)"),
67
+ systemPrompt: SystemPromptConfigSchema.describe(
68
+ "System prompt: string shorthand or structured config"
69
+ ),
70
+ mcpServers: McpServersConfigSchema.default({}).describe(
71
+ "Configurations for MCP (Model Context Protocol) servers used by the agent"
72
+ ),
73
+ internalTools: InternalToolsSchema,
74
+ llm: LLMConfigSchema.describe("Core LLM configuration for the agent"),
75
+ // Storage configuration
76
+ storage: StorageSchema.default({
77
+ cache: { type: "in-memory" },
78
+ database: { type: "in-memory" }
79
+ }).describe("Storage configuration for the agent using cache and database backends"),
80
+ sessions: SessionConfigSchema.default({}).describe("Session management configuration"),
81
+ toolConfirmation: ToolConfirmationConfigSchema.default({}).describe(
82
+ "Tool confirmation and approval configuration"
83
+ )
84
+ }).strict().describe("Main configuration for an agent, including its LLM and server connections").brand();
85
+ export {
86
+ AgentCardSchema,
87
+ AgentConfigSchema
88
+ };
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var state_manager_exports = {};
20
+ __export(state_manager_exports, {
21
+ AgentStateManager: () => AgentStateManager
22
+ });
23
+ module.exports = __toCommonJS(state_manager_exports);
24
+ var import_logger = require("../logger/index.js");
25
+ class AgentStateManager {
26
+ /**
27
+ * Initialize AgentStateManager from a validated static configuration.
28
+ *
29
+ * @param staticConfig The validated configuration from DextoAgent
30
+ * @param agentEventBus The agent event bus for emitting state change events
31
+ */
32
+ constructor(staticConfig, agentEventBus) {
33
+ this.agentEventBus = agentEventBus;
34
+ this.baselineConfig = structuredClone(staticConfig);
35
+ this.runtimeConfig = structuredClone(staticConfig);
36
+ import_logger.logger.debug("AgentStateManager initialized", {
37
+ staticConfigKeys: Object.keys(this.baselineConfig),
38
+ mcpServerCount: Object.keys(this.runtimeConfig.mcpServers).length
39
+ });
40
+ }
41
+ runtimeConfig;
42
+ baselineConfig;
43
+ sessionOverrides = /* @__PURE__ */ new Map();
44
+ // ============= GETTERS =============
45
+ /**
46
+ * Get runtime configuration for a session (includes session overrides if sessionId provided)
47
+ */
48
+ getRuntimeConfig(sessionId) {
49
+ if (!sessionId) {
50
+ return structuredClone(this.runtimeConfig);
51
+ }
52
+ const override = this.sessionOverrides.get(sessionId);
53
+ if (!override) {
54
+ return structuredClone(this.runtimeConfig);
55
+ }
56
+ return {
57
+ ...this.runtimeConfig,
58
+ llm: { ...this.runtimeConfig.llm, ...override.llm }
59
+ };
60
+ }
61
+ // ============= LLM CONFIGURATION =============
62
+ /**
63
+ * Update the LLM configuration (globally or for a specific session)
64
+ *
65
+ * This method is a pure state updater - it assumes the input has already been validated
66
+ * by the caller (typically DextoAgent.switchLLM). The ValidatedLLMConfig branded type
67
+ * ensures validation has occurred.
68
+ */
69
+ updateLLM(validatedConfig, sessionId) {
70
+ const oldValue = sessionId ? this.getRuntimeConfig(sessionId).llm : this.runtimeConfig.llm;
71
+ if (sessionId) {
72
+ this.setSessionOverride(sessionId, {
73
+ llm: validatedConfig
74
+ });
75
+ } else {
76
+ this.runtimeConfig.llm = validatedConfig;
77
+ }
78
+ this.agentEventBus.emit("dexto:stateChanged", {
79
+ field: "llm",
80
+ oldValue,
81
+ newValue: validatedConfig,
82
+ ...sessionId && { sessionId }
83
+ });
84
+ import_logger.logger.info("LLM config updated", {
85
+ sessionId,
86
+ provider: validatedConfig.provider,
87
+ model: validatedConfig.model,
88
+ isSessionSpecific: !!sessionId
89
+ });
90
+ }
91
+ // ============= MCP SERVER MANAGEMENT =============
92
+ /**
93
+ * Add or update an MCP server configuration at runtime.
94
+ *
95
+ * This method is a pure state updater - it assumes the input has already been validated
96
+ * by the caller (typically DextoAgent.connectMcpServer). The ValidatedMcpServerConfig
97
+ * branded type ensures validation has occurred.
98
+ */
99
+ addMcpServer(serverName, validatedConfig) {
100
+ import_logger.logger.debug(`Adding/updating MCP server: ${serverName}`);
101
+ const isUpdate = serverName in this.runtimeConfig.mcpServers;
102
+ this.runtimeConfig.mcpServers[serverName] = validatedConfig;
103
+ const eventName = isUpdate ? "dexto:mcpServerUpdated" : "dexto:mcpServerAdded";
104
+ this.agentEventBus.emit(eventName, { serverName, config: validatedConfig });
105
+ this.agentEventBus.emit("dexto:stateChanged", {
106
+ field: "mcpServers",
107
+ oldValue: isUpdate ? "updated" : "added",
108
+ newValue: validatedConfig
109
+ // sessionId omitted - MCP servers are global
110
+ });
111
+ import_logger.logger.info(`MCP server '${serverName}' ${isUpdate ? "updated" : "added"} successfully`);
112
+ }
113
+ /**
114
+ * Remove an MCP server configuration at runtime.
115
+ */
116
+ removeMcpServer(serverName) {
117
+ import_logger.logger.debug(`Removing MCP server: ${serverName}`);
118
+ if (serverName in this.runtimeConfig.mcpServers) {
119
+ delete this.runtimeConfig.mcpServers[serverName];
120
+ this.agentEventBus.emit("dexto:mcpServerRemoved", { serverName });
121
+ this.agentEventBus.emit("dexto:stateChanged", {
122
+ field: "mcpServers",
123
+ oldValue: "removed",
124
+ newValue: void 0
125
+ // sessionId omitted - MCP servers are global
126
+ });
127
+ import_logger.logger.info(`MCP server '${serverName}' removed successfully`);
128
+ } else {
129
+ import_logger.logger.warn(`MCP server '${serverName}' not found for removal`);
130
+ }
131
+ }
132
+ // ============= SESSION MANAGEMENT =============
133
+ /**
134
+ * Set a session-specific override
135
+ */
136
+ setSessionOverride(sessionId, override) {
137
+ this.sessionOverrides.set(sessionId, override);
138
+ this.agentEventBus.emit("dexto:sessionOverrideSet", {
139
+ sessionId,
140
+ override: structuredClone(override)
141
+ });
142
+ }
143
+ /**
144
+ * Get a session override (internal helper)
145
+ */
146
+ getSessionOverride(sessionId) {
147
+ return this.sessionOverrides.get(sessionId);
148
+ }
149
+ /**
150
+ * Clear session-specific overrides
151
+ */
152
+ clearSessionOverride(sessionId) {
153
+ const hadOverride = this.sessionOverrides.has(sessionId);
154
+ this.sessionOverrides.delete(sessionId);
155
+ if (hadOverride) {
156
+ this.agentEventBus.emit("dexto:sessionOverrideCleared", { sessionId });
157
+ import_logger.logger.info("Session override cleared", { sessionId });
158
+ }
159
+ }
160
+ /**
161
+ * Clear all session overrides (private helper for resetToBaseline)
162
+ */
163
+ clearAllSessionOverrides() {
164
+ const sessionIds = Array.from(this.sessionOverrides.keys());
165
+ this.sessionOverrides.clear();
166
+ sessionIds.forEach((sessionId) => {
167
+ this.agentEventBus.emit("dexto:sessionOverrideCleared", { sessionId });
168
+ });
169
+ if (sessionIds.length > 0) {
170
+ import_logger.logger.info("All session overrides cleared", { clearedSessions: sessionIds });
171
+ }
172
+ }
173
+ // ============= CONFIG EXPORT =============
174
+ /**
175
+ * Export current runtime state as config.
176
+ * This allows users to save their runtime modifications as a new agent config.
177
+ */
178
+ exportAsConfig() {
179
+ const exportedConfig = {
180
+ ...this.baselineConfig,
181
+ llm: structuredClone(this.runtimeConfig.llm),
182
+ systemPrompt: this.runtimeConfig.systemPrompt,
183
+ mcpServers: structuredClone(this.runtimeConfig.mcpServers)
184
+ };
185
+ this.agentEventBus.emit("dexto:stateExported", {
186
+ config: exportedConfig
187
+ });
188
+ import_logger.logger.info("Runtime state exported as config", {
189
+ exportedConfig
190
+ });
191
+ return exportedConfig;
192
+ }
193
+ /**
194
+ * Reset runtime state back to baseline configuration
195
+ */
196
+ resetToBaseline() {
197
+ this.runtimeConfig = structuredClone(this.baselineConfig);
198
+ this.clearAllSessionOverrides();
199
+ this.agentEventBus.emit("dexto:stateReset", { toConfig: this.baselineConfig });
200
+ import_logger.logger.info("Runtime state reset to baseline config");
201
+ }
202
+ // ============= CONVENIENCE GETTERS FOR USED FUNCTIONALITY =============
203
+ /**
204
+ * Get the current effective LLM configuration for a session.
205
+ * **Use this for session-specific LLM config** (includes session overrides).
206
+ */
207
+ getLLMConfig(sessionId) {
208
+ return this.getRuntimeConfig(sessionId).llm;
209
+ }
210
+ }
211
+ // Annotate the CommonJS export names for ESM import in node:
212
+ 0 && (module.exports = {
213
+ AgentStateManager
214
+ });
@@ -0,0 +1,97 @@
1
+ import { ValidatedAgentConfig } from './schemas.cjs';
2
+ import { ValidatedLLMConfig } from '../llm/schemas.cjs';
3
+ import { ValidatedMcpServerConfig } from '../mcp/schemas.cjs';
4
+ import { AgentEventBus } from '../events/index.cjs';
5
+ import 'zod';
6
+ import '../llm/types.cjs';
7
+ import 'events';
8
+
9
+ /**
10
+ * Session-specific overrides that can differ from the global configuration
11
+ */
12
+ interface SessionOverride {
13
+ /** Override LLM config for this session - must be a complete validated config */
14
+ llm?: ValidatedLLMConfig;
15
+ }
16
+ /**
17
+ * Manages the runtime configuration of the agent.
18
+ *
19
+ * This class handles dynamic configuration changes that occur during agent execution.
20
+ *
21
+ * Key responsibilities:
22
+ * 1. Track runtime changes separate from static config baseline
23
+ * 2. Support session-specific overrides for LLM settings
24
+ * 3. Dynamic MCP server management (add/remove servers at runtime)
25
+ * 4. Export modified state back to config format
26
+ * 5. Provide change tracking and validation capabilities
27
+ * 6. Maintain effective configuration for each session
28
+ */
29
+ declare class AgentStateManager {
30
+ private agentEventBus;
31
+ private runtimeConfig;
32
+ private readonly baselineConfig;
33
+ private sessionOverrides;
34
+ /**
35
+ * Initialize AgentStateManager from a validated static configuration.
36
+ *
37
+ * @param staticConfig The validated configuration from DextoAgent
38
+ * @param agentEventBus The agent event bus for emitting state change events
39
+ */
40
+ constructor(staticConfig: ValidatedAgentConfig, agentEventBus: AgentEventBus);
41
+ /**
42
+ * Get runtime configuration for a session (includes session overrides if sessionId provided)
43
+ */
44
+ getRuntimeConfig(sessionId?: string): Readonly<ValidatedAgentConfig>;
45
+ /**
46
+ * Update the LLM configuration (globally or for a specific session)
47
+ *
48
+ * This method is a pure state updater - it assumes the input has already been validated
49
+ * by the caller (typically DextoAgent.switchLLM). The ValidatedLLMConfig branded type
50
+ * ensures validation has occurred.
51
+ */
52
+ updateLLM(validatedConfig: ValidatedLLMConfig, sessionId?: string): void;
53
+ /**
54
+ * Add or update an MCP server configuration at runtime.
55
+ *
56
+ * This method is a pure state updater - it assumes the input has already been validated
57
+ * by the caller (typically DextoAgent.connectMcpServer). The ValidatedMcpServerConfig
58
+ * branded type ensures validation has occurred.
59
+ */
60
+ addMcpServer(serverName: string, validatedConfig: ValidatedMcpServerConfig): void;
61
+ /**
62
+ * Remove an MCP server configuration at runtime.
63
+ */
64
+ removeMcpServer(serverName: string): void;
65
+ /**
66
+ * Set a session-specific override
67
+ */
68
+ private setSessionOverride;
69
+ /**
70
+ * Get a session override (internal helper)
71
+ */
72
+ private getSessionOverride;
73
+ /**
74
+ * Clear session-specific overrides
75
+ */
76
+ clearSessionOverride(sessionId: string): void;
77
+ /**
78
+ * Clear all session overrides (private helper for resetToBaseline)
79
+ */
80
+ private clearAllSessionOverrides;
81
+ /**
82
+ * Export current runtime state as config.
83
+ * This allows users to save their runtime modifications as a new agent config.
84
+ */
85
+ exportAsConfig(): ValidatedAgentConfig;
86
+ /**
87
+ * Reset runtime state back to baseline configuration
88
+ */
89
+ resetToBaseline(): void;
90
+ /**
91
+ * Get the current effective LLM configuration for a session.
92
+ * **Use this for session-specific LLM config** (includes session overrides).
93
+ */
94
+ getLLMConfig(sessionId?: string): Readonly<ValidatedLLMConfig>;
95
+ }
96
+
97
+ export { AgentStateManager, type SessionOverride };
@@ -0,0 +1,97 @@
1
+ import { ValidatedAgentConfig } from './schemas.js';
2
+ import { ValidatedLLMConfig } from '../llm/schemas.js';
3
+ import { ValidatedMcpServerConfig } from '../mcp/schemas.js';
4
+ import { AgentEventBus } from '../events/index.js';
5
+ import 'zod';
6
+ import '../llm/types.js';
7
+ import 'events';
8
+
9
+ /**
10
+ * Session-specific overrides that can differ from the global configuration
11
+ */
12
+ interface SessionOverride {
13
+ /** Override LLM config for this session - must be a complete validated config */
14
+ llm?: ValidatedLLMConfig;
15
+ }
16
+ /**
17
+ * Manages the runtime configuration of the agent.
18
+ *
19
+ * This class handles dynamic configuration changes that occur during agent execution.
20
+ *
21
+ * Key responsibilities:
22
+ * 1. Track runtime changes separate from static config baseline
23
+ * 2. Support session-specific overrides for LLM settings
24
+ * 3. Dynamic MCP server management (add/remove servers at runtime)
25
+ * 4. Export modified state back to config format
26
+ * 5. Provide change tracking and validation capabilities
27
+ * 6. Maintain effective configuration for each session
28
+ */
29
+ declare class AgentStateManager {
30
+ private agentEventBus;
31
+ private runtimeConfig;
32
+ private readonly baselineConfig;
33
+ private sessionOverrides;
34
+ /**
35
+ * Initialize AgentStateManager from a validated static configuration.
36
+ *
37
+ * @param staticConfig The validated configuration from DextoAgent
38
+ * @param agentEventBus The agent event bus for emitting state change events
39
+ */
40
+ constructor(staticConfig: ValidatedAgentConfig, agentEventBus: AgentEventBus);
41
+ /**
42
+ * Get runtime configuration for a session (includes session overrides if sessionId provided)
43
+ */
44
+ getRuntimeConfig(sessionId?: string): Readonly<ValidatedAgentConfig>;
45
+ /**
46
+ * Update the LLM configuration (globally or for a specific session)
47
+ *
48
+ * This method is a pure state updater - it assumes the input has already been validated
49
+ * by the caller (typically DextoAgent.switchLLM). The ValidatedLLMConfig branded type
50
+ * ensures validation has occurred.
51
+ */
52
+ updateLLM(validatedConfig: ValidatedLLMConfig, sessionId?: string): void;
53
+ /**
54
+ * Add or update an MCP server configuration at runtime.
55
+ *
56
+ * This method is a pure state updater - it assumes the input has already been validated
57
+ * by the caller (typically DextoAgent.connectMcpServer). The ValidatedMcpServerConfig
58
+ * branded type ensures validation has occurred.
59
+ */
60
+ addMcpServer(serverName: string, validatedConfig: ValidatedMcpServerConfig): void;
61
+ /**
62
+ * Remove an MCP server configuration at runtime.
63
+ */
64
+ removeMcpServer(serverName: string): void;
65
+ /**
66
+ * Set a session-specific override
67
+ */
68
+ private setSessionOverride;
69
+ /**
70
+ * Get a session override (internal helper)
71
+ */
72
+ private getSessionOverride;
73
+ /**
74
+ * Clear session-specific overrides
75
+ */
76
+ clearSessionOverride(sessionId: string): void;
77
+ /**
78
+ * Clear all session overrides (private helper for resetToBaseline)
79
+ */
80
+ private clearAllSessionOverrides;
81
+ /**
82
+ * Export current runtime state as config.
83
+ * This allows users to save their runtime modifications as a new agent config.
84
+ */
85
+ exportAsConfig(): ValidatedAgentConfig;
86
+ /**
87
+ * Reset runtime state back to baseline configuration
88
+ */
89
+ resetToBaseline(): void;
90
+ /**
91
+ * Get the current effective LLM configuration for a session.
92
+ * **Use this for session-specific LLM config** (includes session overrides).
93
+ */
94
+ getLLMConfig(sessionId?: string): Readonly<ValidatedLLMConfig>;
95
+ }
96
+
97
+ export { AgentStateManager, type SessionOverride };
@@ -0,0 +1,190 @@
1
+ import { logger } from "../logger/index.js";
2
+ class AgentStateManager {
3
+ /**
4
+ * Initialize AgentStateManager from a validated static configuration.
5
+ *
6
+ * @param staticConfig The validated configuration from DextoAgent
7
+ * @param agentEventBus The agent event bus for emitting state change events
8
+ */
9
+ constructor(staticConfig, agentEventBus) {
10
+ this.agentEventBus = agentEventBus;
11
+ this.baselineConfig = structuredClone(staticConfig);
12
+ this.runtimeConfig = structuredClone(staticConfig);
13
+ logger.debug("AgentStateManager initialized", {
14
+ staticConfigKeys: Object.keys(this.baselineConfig),
15
+ mcpServerCount: Object.keys(this.runtimeConfig.mcpServers).length
16
+ });
17
+ }
18
+ runtimeConfig;
19
+ baselineConfig;
20
+ sessionOverrides = /* @__PURE__ */ new Map();
21
+ // ============= GETTERS =============
22
+ /**
23
+ * Get runtime configuration for a session (includes session overrides if sessionId provided)
24
+ */
25
+ getRuntimeConfig(sessionId) {
26
+ if (!sessionId) {
27
+ return structuredClone(this.runtimeConfig);
28
+ }
29
+ const override = this.sessionOverrides.get(sessionId);
30
+ if (!override) {
31
+ return structuredClone(this.runtimeConfig);
32
+ }
33
+ return {
34
+ ...this.runtimeConfig,
35
+ llm: { ...this.runtimeConfig.llm, ...override.llm }
36
+ };
37
+ }
38
+ // ============= LLM CONFIGURATION =============
39
+ /**
40
+ * Update the LLM configuration (globally or for a specific session)
41
+ *
42
+ * This method is a pure state updater - it assumes the input has already been validated
43
+ * by the caller (typically DextoAgent.switchLLM). The ValidatedLLMConfig branded type
44
+ * ensures validation has occurred.
45
+ */
46
+ updateLLM(validatedConfig, sessionId) {
47
+ const oldValue = sessionId ? this.getRuntimeConfig(sessionId).llm : this.runtimeConfig.llm;
48
+ if (sessionId) {
49
+ this.setSessionOverride(sessionId, {
50
+ llm: validatedConfig
51
+ });
52
+ } else {
53
+ this.runtimeConfig.llm = validatedConfig;
54
+ }
55
+ this.agentEventBus.emit("dexto:stateChanged", {
56
+ field: "llm",
57
+ oldValue,
58
+ newValue: validatedConfig,
59
+ ...sessionId && { sessionId }
60
+ });
61
+ logger.info("LLM config updated", {
62
+ sessionId,
63
+ provider: validatedConfig.provider,
64
+ model: validatedConfig.model,
65
+ isSessionSpecific: !!sessionId
66
+ });
67
+ }
68
+ // ============= MCP SERVER MANAGEMENT =============
69
+ /**
70
+ * Add or update an MCP server configuration at runtime.
71
+ *
72
+ * This method is a pure state updater - it assumes the input has already been validated
73
+ * by the caller (typically DextoAgent.connectMcpServer). The ValidatedMcpServerConfig
74
+ * branded type ensures validation has occurred.
75
+ */
76
+ addMcpServer(serverName, validatedConfig) {
77
+ logger.debug(`Adding/updating MCP server: ${serverName}`);
78
+ const isUpdate = serverName in this.runtimeConfig.mcpServers;
79
+ this.runtimeConfig.mcpServers[serverName] = validatedConfig;
80
+ const eventName = isUpdate ? "dexto:mcpServerUpdated" : "dexto:mcpServerAdded";
81
+ this.agentEventBus.emit(eventName, { serverName, config: validatedConfig });
82
+ this.agentEventBus.emit("dexto:stateChanged", {
83
+ field: "mcpServers",
84
+ oldValue: isUpdate ? "updated" : "added",
85
+ newValue: validatedConfig
86
+ // sessionId omitted - MCP servers are global
87
+ });
88
+ logger.info(`MCP server '${serverName}' ${isUpdate ? "updated" : "added"} successfully`);
89
+ }
90
+ /**
91
+ * Remove an MCP server configuration at runtime.
92
+ */
93
+ removeMcpServer(serverName) {
94
+ logger.debug(`Removing MCP server: ${serverName}`);
95
+ if (serverName in this.runtimeConfig.mcpServers) {
96
+ delete this.runtimeConfig.mcpServers[serverName];
97
+ this.agentEventBus.emit("dexto:mcpServerRemoved", { serverName });
98
+ this.agentEventBus.emit("dexto:stateChanged", {
99
+ field: "mcpServers",
100
+ oldValue: "removed",
101
+ newValue: void 0
102
+ // sessionId omitted - MCP servers are global
103
+ });
104
+ logger.info(`MCP server '${serverName}' removed successfully`);
105
+ } else {
106
+ logger.warn(`MCP server '${serverName}' not found for removal`);
107
+ }
108
+ }
109
+ // ============= SESSION MANAGEMENT =============
110
+ /**
111
+ * Set a session-specific override
112
+ */
113
+ setSessionOverride(sessionId, override) {
114
+ this.sessionOverrides.set(sessionId, override);
115
+ this.agentEventBus.emit("dexto:sessionOverrideSet", {
116
+ sessionId,
117
+ override: structuredClone(override)
118
+ });
119
+ }
120
+ /**
121
+ * Get a session override (internal helper)
122
+ */
123
+ getSessionOverride(sessionId) {
124
+ return this.sessionOverrides.get(sessionId);
125
+ }
126
+ /**
127
+ * Clear session-specific overrides
128
+ */
129
+ clearSessionOverride(sessionId) {
130
+ const hadOverride = this.sessionOverrides.has(sessionId);
131
+ this.sessionOverrides.delete(sessionId);
132
+ if (hadOverride) {
133
+ this.agentEventBus.emit("dexto:sessionOverrideCleared", { sessionId });
134
+ logger.info("Session override cleared", { sessionId });
135
+ }
136
+ }
137
+ /**
138
+ * Clear all session overrides (private helper for resetToBaseline)
139
+ */
140
+ clearAllSessionOverrides() {
141
+ const sessionIds = Array.from(this.sessionOverrides.keys());
142
+ this.sessionOverrides.clear();
143
+ sessionIds.forEach((sessionId) => {
144
+ this.agentEventBus.emit("dexto:sessionOverrideCleared", { sessionId });
145
+ });
146
+ if (sessionIds.length > 0) {
147
+ logger.info("All session overrides cleared", { clearedSessions: sessionIds });
148
+ }
149
+ }
150
+ // ============= CONFIG EXPORT =============
151
+ /**
152
+ * Export current runtime state as config.
153
+ * This allows users to save their runtime modifications as a new agent config.
154
+ */
155
+ exportAsConfig() {
156
+ const exportedConfig = {
157
+ ...this.baselineConfig,
158
+ llm: structuredClone(this.runtimeConfig.llm),
159
+ systemPrompt: this.runtimeConfig.systemPrompt,
160
+ mcpServers: structuredClone(this.runtimeConfig.mcpServers)
161
+ };
162
+ this.agentEventBus.emit("dexto:stateExported", {
163
+ config: exportedConfig
164
+ });
165
+ logger.info("Runtime state exported as config", {
166
+ exportedConfig
167
+ });
168
+ return exportedConfig;
169
+ }
170
+ /**
171
+ * Reset runtime state back to baseline configuration
172
+ */
173
+ resetToBaseline() {
174
+ this.runtimeConfig = structuredClone(this.baselineConfig);
175
+ this.clearAllSessionOverrides();
176
+ this.agentEventBus.emit("dexto:stateReset", { toConfig: this.baselineConfig });
177
+ logger.info("Runtime state reset to baseline config");
178
+ }
179
+ // ============= CONVENIENCE GETTERS FOR USED FUNCTIONALITY =============
180
+ /**
181
+ * Get the current effective LLM configuration for a session.
182
+ * **Use this for session-specific LLM config** (includes session overrides).
183
+ */
184
+ getLLMConfig(sessionId) {
185
+ return this.getRuntimeConfig(sessionId).llm;
186
+ }
187
+ }
188
+ export {
189
+ AgentStateManager
190
+ };