@dexto/core 1.1.10 → 1.1.11

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 (812) hide show
  1. package/dist/Dexto.cjs +261 -0
  2. package/dist/Dexto.d.ts +212 -0
  3. package/dist/Dexto.d.ts.map +1 -0
  4. package/dist/Dexto.js +236 -0
  5. package/dist/agent/DextoAgent.cjs +428 -123
  6. package/dist/agent/DextoAgent.d.ts +170 -102
  7. package/dist/agent/DextoAgent.d.ts.map +1 -0
  8. package/dist/agent/DextoAgent.js +428 -123
  9. package/dist/agent/agentCard.d.ts +4 -7
  10. package/dist/agent/agentCard.d.ts.map +1 -0
  11. package/dist/agent/error-codes.cjs +2 -0
  12. package/dist/agent/error-codes.d.ts +4 -3
  13. package/dist/agent/error-codes.d.ts.map +1 -0
  14. package/dist/agent/error-codes.js +2 -0
  15. package/dist/agent/errors.cjs +13 -0
  16. package/dist/agent/errors.d.ts +6 -17
  17. package/dist/agent/errors.d.ts.map +1 -0
  18. package/dist/agent/errors.js +13 -0
  19. package/dist/agent/index.cjs +3 -0
  20. package/dist/agent/index.d.ts +6 -57
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +2 -0
  23. package/dist/agent/registry/error-codes.cjs +2 -0
  24. package/dist/agent/registry/error-codes.d.ts +4 -3
  25. package/dist/agent/registry/error-codes.d.ts.map +1 -0
  26. package/dist/agent/registry/error-codes.js +2 -0
  27. package/dist/agent/registry/errors.cjs +58 -28
  28. package/dist/agent/registry/errors.d.ts +32 -36
  29. package/dist/agent/registry/errors.d.ts.map +1 -0
  30. package/dist/agent/registry/errors.js +58 -28
  31. package/dist/agent/registry/registry.cjs +242 -54
  32. package/dist/agent/registry/registry.d.ts +84 -21
  33. package/dist/agent/registry/registry.d.ts.map +1 -0
  34. package/dist/agent/registry/registry.js +251 -55
  35. package/dist/agent/registry/types.cjs +36 -3
  36. package/dist/agent/registry/types.d.ts +66 -24
  37. package/dist/agent/registry/types.d.ts.map +1 -0
  38. package/dist/agent/registry/types.js +33 -2
  39. package/dist/agent/registry/user-registry.cjs +140 -0
  40. package/dist/agent/registry/user-registry.d.ts +34 -0
  41. package/dist/agent/registry/user-registry.d.ts.map +1 -0
  42. package/dist/agent/registry/user-registry.js +104 -0
  43. package/dist/agent/schemas.cjs +17 -3
  44. package/dist/agent/schemas.d.ts +685 -463
  45. package/dist/agent/schemas.d.ts.map +1 -0
  46. package/dist/agent/schemas.js +17 -3
  47. package/dist/agent/state-manager.d.ts +7 -12
  48. package/dist/agent/state-manager.d.ts.map +1 -0
  49. package/dist/approval/error-codes.cjs +44 -0
  50. package/dist/approval/error-codes.d.ts +21 -0
  51. package/dist/approval/error-codes.d.ts.map +1 -0
  52. package/dist/approval/error-codes.js +20 -0
  53. package/dist/approval/errors.cjs +251 -0
  54. package/dist/approval/errors.d.ts +110 -0
  55. package/dist/approval/errors.d.ts.map +1 -0
  56. package/dist/approval/errors.js +227 -0
  57. package/dist/approval/index.cjs +84 -0
  58. package/dist/approval/index.d.ts +12 -0
  59. package/dist/approval/index.d.ts.map +1 -0
  60. package/dist/approval/index.js +55 -0
  61. package/dist/approval/manager.cjs +159 -0
  62. package/dist/approval/manager.d.ts +109 -0
  63. package/dist/approval/manager.d.ts.map +1 -0
  64. package/dist/approval/manager.js +135 -0
  65. package/dist/approval/providers/event-based-approval-provider.cjs +156 -0
  66. package/dist/approval/providers/event-based-approval-provider.d.ts +39 -0
  67. package/dist/approval/providers/event-based-approval-provider.d.ts.map +1 -0
  68. package/dist/approval/providers/event-based-approval-provider.js +132 -0
  69. package/dist/approval/providers/factory.cjs +38 -0
  70. package/dist/approval/providers/factory.d.ts +12 -0
  71. package/dist/approval/providers/factory.d.ts.map +1 -0
  72. package/dist/approval/providers/factory.js +14 -0
  73. package/dist/approval/providers/noop-approval-provider.cjs +54 -0
  74. package/dist/approval/providers/noop-approval-provider.d.ts +18 -0
  75. package/dist/approval/providers/noop-approval-provider.d.ts.map +1 -0
  76. package/dist/approval/providers/noop-approval-provider.js +30 -0
  77. package/dist/approval/schemas.cjs +168 -0
  78. package/dist/approval/schemas.d.ts +602 -0
  79. package/dist/approval/schemas.d.ts.map +1 -0
  80. package/dist/approval/schemas.js +126 -0
  81. package/dist/approval/types.cjs +41 -0
  82. package/dist/approval/types.d.ts +140 -0
  83. package/dist/approval/types.d.ts.map +1 -0
  84. package/dist/approval/types.js +16 -0
  85. package/dist/config/agent-resolver.d.ts +3 -4
  86. package/dist/config/agent-resolver.d.ts.map +1 -0
  87. package/dist/config/error-codes.d.ts +2 -3
  88. package/dist/config/error-codes.d.ts.map +1 -0
  89. package/dist/config/errors.d.ts +3 -18
  90. package/dist/config/errors.d.ts.map +1 -0
  91. package/dist/config/index.d.ts +4 -7
  92. package/dist/config/index.d.ts.map +1 -0
  93. package/dist/config/loader.d.ts +2 -5
  94. package/dist/config/loader.d.ts.map +1 -0
  95. package/dist/config/writer.d.ts +8 -11
  96. package/dist/config/writer.d.ts.map +1 -0
  97. package/dist/context/compression/middle-removal.d.ts +3 -6
  98. package/dist/context/compression/middle-removal.d.ts.map +1 -0
  99. package/dist/context/compression/oldest-removal.d.ts +3 -6
  100. package/dist/context/compression/oldest-removal.d.ts.map +1 -0
  101. package/dist/context/compression/types.d.ts +2 -5
  102. package/dist/context/compression/types.d.ts.map +1 -0
  103. package/dist/context/error-codes.d.ts +2 -3
  104. package/dist/context/error-codes.d.ts.map +1 -0
  105. package/dist/context/errors.d.ts +3 -18
  106. package/dist/context/errors.d.ts.map +1 -0
  107. package/dist/context/index.cjs +11 -0
  108. package/dist/context/index.d.ts +4 -19
  109. package/dist/context/index.d.ts.map +1 -0
  110. package/dist/context/index.js +5 -0
  111. package/dist/context/manager.cjs +121 -24
  112. package/dist/context/manager.d.ts +28 -20
  113. package/dist/context/manager.d.ts.map +1 -0
  114. package/dist/context/manager.js +127 -25
  115. package/dist/context/media-helpers.cjs +40 -0
  116. package/dist/context/media-helpers.d.ts +15 -0
  117. package/dist/context/media-helpers.d.ts.map +1 -0
  118. package/dist/context/media-helpers.js +15 -0
  119. package/dist/context/types.d.ts +27 -10
  120. package/dist/context/types.d.ts.map +1 -0
  121. package/dist/context/utils.cjs +811 -71
  122. package/dist/context/utils.d.ts +78 -15
  123. package/dist/context/utils.d.ts.map +1 -0
  124. package/dist/context/utils.js +802 -70
  125. package/dist/errors/DextoBaseError.d.ts +2 -3
  126. package/dist/errors/DextoBaseError.d.ts.map +1 -0
  127. package/dist/errors/DextoRuntimeError.d.ts +5 -16
  128. package/dist/errors/DextoRuntimeError.d.ts.map +1 -0
  129. package/dist/errors/DextoValidationError.d.ts +3 -16
  130. package/dist/errors/DextoValidationError.d.ts.map +1 -0
  131. package/dist/errors/index.d.ts +7 -14
  132. package/dist/errors/index.d.ts.map +1 -0
  133. package/dist/errors/result-bridge.d.ts +3 -18
  134. package/dist/errors/result-bridge.d.ts.map +1 -0
  135. package/dist/errors/types.cjs +4 -0
  136. package/dist/errors/types.d.ts +27 -20
  137. package/dist/errors/types.d.ts.map +1 -0
  138. package/dist/errors/types.js +4 -0
  139. package/dist/events/index.cjs +8 -3
  140. package/dist/events/index.d.ts +63 -35
  141. package/dist/events/index.d.ts.map +1 -0
  142. package/dist/events/index.js +8 -3
  143. package/dist/index.browser.cjs +36 -0
  144. package/dist/index.browser.d.ts +24 -51
  145. package/dist/index.browser.d.ts.map +1 -0
  146. package/dist/index.browser.js +34 -1
  147. package/dist/index.cjs +29 -1
  148. package/dist/index.d.ts +33 -89
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +14 -0
  151. package/dist/llm/error-codes.d.ts +2 -3
  152. package/dist/llm/error-codes.d.ts.map +1 -0
  153. package/dist/llm/errors.d.ts +3 -18
  154. package/dist/llm/errors.d.ts.map +1 -0
  155. package/dist/llm/formatters/anthropic.d.ts +2 -4
  156. package/dist/llm/formatters/anthropic.d.ts.map +1 -0
  157. package/dist/llm/formatters/factory.d.ts +3 -6
  158. package/dist/llm/formatters/factory.d.ts.map +1 -0
  159. package/dist/llm/formatters/openai.d.ts +2 -4
  160. package/dist/llm/formatters/openai.d.ts.map +1 -0
  161. package/dist/llm/formatters/types.d.ts +2 -4
  162. package/dist/llm/formatters/types.d.ts.map +1 -0
  163. package/dist/llm/formatters/vercel.d.ts +6 -7
  164. package/dist/llm/formatters/vercel.d.ts.map +1 -0
  165. package/dist/llm/index.d.ts +8 -39
  166. package/dist/llm/index.d.ts.map +1 -0
  167. package/dist/llm/registry.cjs +15 -1
  168. package/dist/llm/registry.d.ts +26 -29
  169. package/dist/llm/registry.d.ts.map +1 -0
  170. package/dist/llm/registry.js +15 -1
  171. package/dist/llm/resolver.d.ts +6 -20
  172. package/dist/llm/resolver.d.ts.map +1 -0
  173. package/dist/llm/schemas.d.ts +15 -17
  174. package/dist/llm/schemas.d.ts.map +1 -0
  175. package/dist/llm/services/anthropic.cjs +24 -11
  176. package/dist/llm/services/anthropic.d.ts +7 -32
  177. package/dist/llm/services/anthropic.d.ts.map +1 -0
  178. package/dist/llm/services/anthropic.js +24 -11
  179. package/dist/llm/services/factory.cjs +21 -15
  180. package/dist/llm/services/factory.d.ts +5 -32
  181. package/dist/llm/services/factory.d.ts.map +1 -0
  182. package/dist/llm/services/factory.js +21 -15
  183. package/dist/llm/services/index.d.ts +2 -21
  184. package/dist/llm/services/index.d.ts.map +1 -0
  185. package/dist/llm/services/openai.cjs +33 -16
  186. package/dist/llm/services/openai.d.ts +7 -32
  187. package/dist/llm/services/openai.d.ts.map +1 -0
  188. package/dist/llm/services/openai.js +33 -16
  189. package/dist/llm/services/test-utils.integration.cjs +2 -2
  190. package/dist/llm/services/test-utils.integration.d.ts +8 -49
  191. package/dist/llm/services/test-utils.integration.d.ts.map +1 -0
  192. package/dist/llm/services/test-utils.integration.js +2 -2
  193. package/dist/llm/services/types.d.ts +5 -22
  194. package/dist/llm/services/types.d.ts.map +1 -0
  195. package/dist/llm/services/vercel.cjs +52 -21
  196. package/dist/llm/services/vercel.d.ts +12 -35
  197. package/dist/llm/services/vercel.d.ts.map +1 -0
  198. package/dist/llm/services/vercel.js +53 -22
  199. package/dist/llm/tokenizer/anthropic.d.ts +2 -4
  200. package/dist/llm/tokenizer/anthropic.d.ts.map +1 -0
  201. package/dist/llm/tokenizer/default.d.ts +2 -4
  202. package/dist/llm/tokenizer/default.d.ts.map +1 -0
  203. package/dist/llm/tokenizer/factory.d.ts +3 -5
  204. package/dist/llm/tokenizer/factory.d.ts.map +1 -0
  205. package/dist/llm/tokenizer/google.d.ts +2 -4
  206. package/dist/llm/tokenizer/google.d.ts.map +1 -0
  207. package/dist/llm/tokenizer/openai.d.ts +2 -4
  208. package/dist/llm/tokenizer/openai.d.ts.map +1 -0
  209. package/dist/llm/tokenizer/types.d.ts +3 -4
  210. package/dist/llm/tokenizer/types.d.ts.map +1 -0
  211. package/dist/llm/types.d.ts +9 -10
  212. package/dist/llm/types.d.ts.map +1 -0
  213. package/dist/llm/validation.d.ts +8 -23
  214. package/dist/llm/validation.d.ts.map +1 -0
  215. package/dist/logger/browser.d.ts +4 -5
  216. package/dist/logger/browser.d.ts.map +1 -0
  217. package/dist/logger/index.d.ts +2 -1
  218. package/dist/logger/index.d.ts.map +1 -0
  219. package/dist/logger/logger.cjs +35 -7
  220. package/dist/logger/logger.d.ts +5 -5
  221. package/dist/logger/logger.d.ts.map +1 -0
  222. package/dist/logger/logger.js +35 -7
  223. package/dist/mcp/error-codes.d.ts +2 -3
  224. package/dist/mcp/error-codes.d.ts.map +1 -0
  225. package/dist/mcp/errors.d.ts +2 -17
  226. package/dist/mcp/errors.d.ts.map +1 -0
  227. package/dist/mcp/index.d.ts +8 -26
  228. package/dist/mcp/index.d.ts.map +1 -0
  229. package/dist/mcp/manager.cjs +462 -114
  230. package/dist/mcp/manager.d.ts +117 -58
  231. package/dist/mcp/manager.d.ts.map +1 -0
  232. package/dist/mcp/manager.js +462 -114
  233. package/dist/mcp/mcp-client.cjs +172 -10
  234. package/dist/mcp/mcp-client.d.ts +36 -14
  235. package/dist/mcp/mcp-client.d.ts.map +1 -0
  236. package/dist/mcp/mcp-client.js +176 -10
  237. package/dist/mcp/resolver.d.ts +5 -20
  238. package/dist/mcp/resolver.d.ts.map +1 -0
  239. package/dist/mcp/schemas.cjs +13 -5
  240. package/dist/mcp/schemas.d.ts +31 -28
  241. package/dist/mcp/schemas.d.ts.map +1 -0
  242. package/dist/mcp/schemas.js +10 -5
  243. package/dist/mcp/types.d.ts +18 -10
  244. package/dist/mcp/types.d.ts.map +1 -0
  245. package/dist/memory/error-codes.cjs +39 -0
  246. package/dist/memory/error-codes.d.ts +15 -0
  247. package/dist/memory/error-codes.d.ts.map +1 -0
  248. package/dist/memory/error-codes.js +15 -0
  249. package/dist/memory/errors.cjs +112 -0
  250. package/dist/memory/errors.d.ts +16 -0
  251. package/dist/memory/errors.d.ts.map +1 -0
  252. package/dist/memory/errors.js +88 -0
  253. package/dist/memory/index.cjs +43 -0
  254. package/dist/memory/index.d.ts +6 -0
  255. package/dist/memory/index.d.ts.map +1 -0
  256. package/dist/memory/index.js +18 -0
  257. package/dist/memory/manager.cjs +214 -0
  258. package/dist/memory/manager.d.ts +56 -0
  259. package/dist/memory/manager.d.ts.map +1 -0
  260. package/dist/memory/manager.js +195 -0
  261. package/dist/memory/schemas.cjs +82 -0
  262. package/dist/memory/schemas.d.ts +129 -0
  263. package/dist/memory/schemas.d.ts.map +1 -0
  264. package/dist/memory/schemas.js +53 -0
  265. package/dist/memory/types.d.ts +76 -0
  266. package/dist/memory/types.d.ts.map +1 -0
  267. package/dist/plugins/builtins/content-policy.cjs +112 -0
  268. package/dist/plugins/builtins/content-policy.d.ts +26 -0
  269. package/dist/plugins/builtins/content-policy.d.ts.map +1 -0
  270. package/dist/plugins/builtins/content-policy.js +88 -0
  271. package/dist/plugins/builtins/response-sanitizer.cjs +102 -0
  272. package/dist/plugins/builtins/response-sanitizer.d.ts +25 -0
  273. package/dist/plugins/builtins/response-sanitizer.d.ts.map +1 -0
  274. package/dist/plugins/builtins/response-sanitizer.js +78 -0
  275. package/dist/plugins/error-codes.cjs +39 -0
  276. package/dist/plugins/error-codes.d.ts +26 -0
  277. package/dist/plugins/error-codes.d.ts.map +1 -0
  278. package/dist/plugins/error-codes.js +15 -0
  279. package/dist/plugins/index.cjs +54 -0
  280. package/dist/plugins/index.d.ts +19 -0
  281. package/dist/plugins/index.d.ts.map +1 -0
  282. package/dist/plugins/index.js +24 -0
  283. package/dist/plugins/loader.cjs +151 -0
  284. package/dist/plugins/loader.d.ts +30 -0
  285. package/dist/plugins/loader.d.ts.map +1 -0
  286. package/dist/plugins/loader.js +124 -0
  287. package/dist/plugins/manager.cjs +386 -0
  288. package/dist/plugins/manager.d.ts +97 -0
  289. package/dist/plugins/manager.d.ts.map +1 -0
  290. package/dist/plugins/manager.js +362 -0
  291. package/dist/plugins/registrations/builtins.cjs +51 -0
  292. package/dist/plugins/registrations/builtins.d.ts +17 -0
  293. package/dist/plugins/registrations/builtins.d.ts.map +1 -0
  294. package/dist/plugins/registrations/builtins.js +27 -0
  295. package/dist/plugins/schemas.cjs +61 -0
  296. package/dist/plugins/schemas.d.ts +138 -0
  297. package/dist/plugins/schemas.d.ts.map +1 -0
  298. package/dist/plugins/schemas.js +35 -0
  299. package/dist/plugins/types.d.ts +152 -0
  300. package/dist/plugins/types.d.ts.map +1 -0
  301. package/dist/preferences/constants.d.ts +2 -3
  302. package/dist/preferences/constants.d.ts.map +1 -0
  303. package/dist/preferences/error-codes.d.ts +2 -3
  304. package/dist/preferences/error-codes.d.ts.map +1 -0
  305. package/dist/preferences/errors.d.ts +4 -19
  306. package/dist/preferences/errors.d.ts.map +1 -0
  307. package/dist/preferences/index.d.ts +5 -20
  308. package/dist/preferences/index.d.ts.map +1 -0
  309. package/dist/preferences/loader.d.ts +9 -12
  310. package/dist/preferences/loader.d.ts.map +1 -0
  311. package/dist/preferences/schemas.d.ts +19 -21
  312. package/dist/preferences/schemas.d.ts.map +1 -0
  313. package/dist/prompts/error-codes.cjs +38 -0
  314. package/dist/prompts/error-codes.d.ts +15 -0
  315. package/dist/prompts/error-codes.d.ts.map +1 -0
  316. package/dist/prompts/error-codes.js +14 -0
  317. package/dist/prompts/errors.cjs +144 -0
  318. package/dist/prompts/errors.d.ts +45 -0
  319. package/dist/prompts/errors.d.ts.map +1 -0
  320. package/dist/prompts/errors.js +120 -0
  321. package/dist/prompts/index.cjs +53 -0
  322. package/dist/prompts/index.d.ts +13 -0
  323. package/dist/prompts/index.d.ts.map +1 -0
  324. package/dist/prompts/index.js +20 -0
  325. package/dist/prompts/name-validation.cjs +45 -0
  326. package/dist/prompts/name-validation.d.ts +9 -0
  327. package/dist/prompts/name-validation.d.ts.map +1 -0
  328. package/dist/prompts/name-validation.js +18 -0
  329. package/dist/prompts/prompt-manager.cjs +374 -0
  330. package/dist/prompts/prompt-manager.d.ts +74 -0
  331. package/dist/prompts/prompt-manager.d.ts.map +1 -0
  332. package/dist/prompts/prompt-manager.js +352 -0
  333. package/dist/prompts/providers/custom-prompt-provider.cjs +283 -0
  334. package/dist/prompts/providers/custom-prompt-provider.d.ts +36 -0
  335. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -0
  336. package/dist/prompts/providers/custom-prompt-provider.js +259 -0
  337. package/dist/prompts/providers/file-prompt-provider.cjs +399 -0
  338. package/dist/prompts/providers/file-prompt-provider.d.ts +47 -0
  339. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -0
  340. package/dist/prompts/providers/file-prompt-provider.js +375 -0
  341. package/dist/prompts/providers/mcp-prompt-provider.cjs +102 -0
  342. package/dist/prompts/providers/mcp-prompt-provider.d.ts +35 -0
  343. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -0
  344. package/dist/prompts/providers/mcp-prompt-provider.js +78 -0
  345. package/dist/prompts/providers/starter-prompt-provider.cjs +170 -0
  346. package/dist/prompts/providers/starter-prompt-provider.d.ts +45 -0
  347. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -0
  348. package/dist/prompts/providers/starter-prompt-provider.js +146 -0
  349. package/dist/prompts/schemas.cjs +54 -0
  350. package/dist/prompts/schemas.d.ts +65 -0
  351. package/dist/prompts/schemas.d.ts.map +1 -0
  352. package/dist/prompts/schemas.js +30 -0
  353. package/dist/{storage/backend/cache-backend.cjs → prompts/types.cjs} +2 -2
  354. package/dist/prompts/types.d.ts +64 -0
  355. package/dist/prompts/types.d.ts.map +1 -0
  356. package/dist/prompts/utils.cjs +176 -0
  357. package/dist/prompts/utils.d.ts +32 -0
  358. package/dist/prompts/utils.d.ts.map +1 -0
  359. package/dist/prompts/utils.js +149 -0
  360. package/dist/resources/error-codes.cjs +38 -0
  361. package/dist/resources/error-codes.d.ts +13 -0
  362. package/dist/resources/error-codes.d.ts.map +1 -0
  363. package/dist/resources/error-codes.js +14 -0
  364. package/dist/resources/errors.cjs +155 -0
  365. package/dist/resources/errors.d.ts +48 -0
  366. package/dist/resources/errors.d.ts.map +1 -0
  367. package/dist/resources/errors.js +131 -0
  368. package/dist/resources/handlers/blob-handler.cjs +230 -0
  369. package/dist/resources/handlers/blob-handler.d.ts +38 -0
  370. package/dist/resources/handlers/blob-handler.d.ts.map +1 -0
  371. package/dist/resources/handlers/blob-handler.js +206 -0
  372. package/dist/resources/handlers/factory.cjs +50 -0
  373. package/dist/resources/handlers/factory.d.ts +11 -0
  374. package/dist/resources/handlers/factory.d.ts.map +1 -0
  375. package/dist/resources/handlers/factory.js +25 -0
  376. package/dist/resources/handlers/filesystem-handler.cjs +385 -0
  377. package/dist/resources/handlers/filesystem-handler.d.ts +35 -0
  378. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -0
  379. package/dist/resources/handlers/filesystem-handler.js +351 -0
  380. package/dist/{storage/backend/database-backend.cjs → resources/handlers/types.cjs} +2 -2
  381. package/dist/resources/handlers/types.d.ts +15 -0
  382. package/dist/resources/handlers/types.d.ts.map +1 -0
  383. package/dist/resources/index.cjs +58 -0
  384. package/dist/resources/index.d.ts +39 -0
  385. package/dist/resources/index.d.ts.map +1 -0
  386. package/dist/resources/index.js +34 -0
  387. package/dist/resources/internal-provider.cjs +141 -0
  388. package/dist/resources/internal-provider.d.ts +19 -0
  389. package/dist/resources/internal-provider.d.ts.map +1 -0
  390. package/dist/resources/internal-provider.js +117 -0
  391. package/dist/resources/manager.cjs +221 -0
  392. package/dist/resources/manager.d.ts +29 -0
  393. package/dist/resources/manager.d.ts.map +1 -0
  394. package/dist/resources/manager.js +197 -0
  395. package/dist/resources/reference-parser.cjs +217 -0
  396. package/dist/resources/reference-parser.d.ts +33 -0
  397. package/dist/resources/reference-parser.d.ts.map +1 -0
  398. package/dist/resources/reference-parser.js +190 -0
  399. package/dist/resources/schemas.cjs +98 -0
  400. package/dist/resources/schemas.d.ts +212 -0
  401. package/dist/resources/schemas.d.ts.map +1 -0
  402. package/dist/resources/schemas.js +72 -0
  403. package/dist/resources/types.cjs +16 -0
  404. package/dist/resources/types.d.ts +57 -0
  405. package/dist/resources/types.d.ts.map +1 -0
  406. package/dist/resources/types.js +0 -0
  407. package/dist/search/index.d.ts +2 -4
  408. package/dist/search/index.d.ts.map +1 -0
  409. package/dist/search/search-service.d.ts +5 -9
  410. package/dist/search/search-service.d.ts.map +1 -0
  411. package/dist/search/types.d.ts +7 -10
  412. package/dist/search/types.d.ts.map +1 -0
  413. package/dist/session/chat-session.cjs +103 -10
  414. package/dist/session/chat-session.d.ts +30 -41
  415. package/dist/session/chat-session.d.ts.map +1 -0
  416. package/dist/session/chat-session.js +103 -10
  417. package/dist/session/error-codes.d.ts +2 -3
  418. package/dist/session/error-codes.d.ts.map +1 -0
  419. package/dist/session/errors.d.ts +2 -17
  420. package/dist/session/errors.d.ts.map +1 -0
  421. package/dist/session/history/database.d.ts +6 -9
  422. package/dist/session/history/database.d.ts.map +1 -0
  423. package/dist/session/history/factory.d.ts +4 -8
  424. package/dist/session/history/factory.d.ts.map +1 -0
  425. package/dist/session/history/memory.cjs +39 -0
  426. package/dist/session/history/memory.d.ts +14 -0
  427. package/dist/session/history/memory.d.ts.map +1 -0
  428. package/dist/session/history/memory.js +15 -0
  429. package/dist/session/history/types.d.ts +3 -6
  430. package/dist/session/history/types.d.ts.map +1 -0
  431. package/dist/session/index.d.ts +3 -50
  432. package/dist/session/index.d.ts.map +1 -0
  433. package/dist/session/schemas.d.ts +4 -6
  434. package/dist/session/schemas.d.ts.map +1 -0
  435. package/dist/session/session-manager.cjs +63 -29
  436. package/dist/session/session-manager.d.ts +27 -43
  437. package/dist/session/session-manager.d.ts.map +1 -0
  438. package/dist/session/session-manager.js +63 -29
  439. package/dist/session/title-generator.cjs +140 -0
  440. package/dist/session/title-generator.d.ts +22 -0
  441. package/dist/session/title-generator.d.ts.map +1 -0
  442. package/dist/session/title-generator.js +115 -0
  443. package/dist/storage/blob/factory.cjs +50 -0
  444. package/dist/storage/blob/factory.d.ts +8 -0
  445. package/dist/storage/blob/factory.d.ts.map +1 -0
  446. package/dist/storage/blob/factory.js +26 -0
  447. package/dist/storage/blob/local-blob-store.cjs +487 -0
  448. package/dist/storage/blob/local-blob-store.d.ts +56 -0
  449. package/dist/storage/blob/local-blob-store.d.ts.map +1 -0
  450. package/dist/storage/blob/local-blob-store.js +453 -0
  451. package/dist/storage/blob/schemas.cjs +53 -0
  452. package/dist/storage/blob/schemas.d.ts +80 -0
  453. package/dist/storage/blob/schemas.d.ts.map +1 -0
  454. package/dist/storage/blob/schemas.js +28 -0
  455. package/dist/storage/blob/types.cjs +16 -0
  456. package/dist/storage/blob/types.d.ts +154 -0
  457. package/dist/storage/blob/types.d.ts.map +1 -0
  458. package/dist/storage/blob/types.js +0 -0
  459. package/dist/storage/cache/factory.cjs +63 -0
  460. package/dist/storage/cache/factory.d.ts +8 -0
  461. package/dist/storage/cache/factory.d.ts.map +1 -0
  462. package/dist/storage/cache/factory.js +29 -0
  463. package/dist/storage/cache/memory-cache-store.cjs +107 -0
  464. package/dist/storage/cache/memory-cache-store.d.ts +26 -0
  465. package/dist/storage/cache/memory-cache-store.d.ts.map +1 -0
  466. package/dist/storage/cache/memory-cache-store.js +83 -0
  467. package/dist/storage/{backend/redis-backend.cjs → cache/redis-store.cjs} +8 -22
  468. package/dist/storage/{backend/redis-backend.d.ts → cache/redis-store.d.ts} +8 -14
  469. package/dist/storage/cache/redis-store.d.ts.map +1 -0
  470. package/dist/storage/{backend/redis-backend.js → cache/redis-store.js} +4 -18
  471. package/dist/storage/cache/schemas.cjs +77 -0
  472. package/dist/storage/cache/schemas.d.ts +151 -0
  473. package/dist/storage/cache/schemas.d.ts.map +1 -0
  474. package/dist/storage/cache/schemas.js +52 -0
  475. package/dist/storage/cache/types.cjs +16 -0
  476. package/dist/storage/{backend/cache-backend.d.cts → cache/types.d.ts} +3 -4
  477. package/dist/storage/cache/types.d.ts.map +1 -0
  478. package/dist/storage/cache/types.js +0 -0
  479. package/dist/storage/database/factory.cjs +84 -0
  480. package/dist/storage/database/factory.d.ts +8 -0
  481. package/dist/storage/database/factory.d.ts.map +1 -0
  482. package/dist/storage/database/factory.js +50 -0
  483. package/dist/storage/{backend/memory-backend.cjs → database/memory-database-store.cjs} +10 -28
  484. package/dist/storage/{backend/memory-backend.d.ts → database/memory-database-store.d.ts} +7 -12
  485. package/dist/storage/database/memory-database-store.d.ts.map +1 -0
  486. package/dist/storage/{backend/memory-backend.js → database/memory-database-store.js} +6 -24
  487. package/dist/storage/{backend/postgres-backend.cjs → database/postgres-store.cjs} +11 -11
  488. package/dist/storage/{backend/postgres-backend.d.ts → database/postgres-store.d.ts} +8 -11
  489. package/dist/storage/database/postgres-store.d.ts.map +1 -0
  490. package/dist/storage/{backend/postgres-backend.js → database/postgres-store.js} +7 -7
  491. package/dist/storage/database/schemas.cjs +89 -0
  492. package/dist/storage/database/schemas.d.ts +227 -0
  493. package/dist/storage/database/schemas.d.ts.map +1 -0
  494. package/dist/storage/database/schemas.js +64 -0
  495. package/dist/storage/{backend/sqlite-backend.cjs → database/sqlite-store.cjs} +15 -14
  496. package/dist/storage/{backend/sqlite-backend.d.ts → database/sqlite-store.d.ts} +8 -11
  497. package/dist/storage/database/sqlite-store.d.ts.map +1 -0
  498. package/dist/storage/{backend/sqlite-backend.js → database/sqlite-store.js} +11 -10
  499. package/dist/storage/database/types.cjs +16 -0
  500. package/dist/storage/{backend/database-backend.d.cts → database/types.d.ts} +3 -4
  501. package/dist/storage/database/types.d.ts.map +1 -0
  502. package/dist/storage/database/types.js +0 -0
  503. package/dist/storage/error-codes.cjs +15 -0
  504. package/dist/storage/error-codes.d.ts +19 -5
  505. package/dist/storage/error-codes.d.ts.map +1 -0
  506. package/dist/storage/error-codes.js +15 -0
  507. package/dist/storage/errors.cjs +195 -7
  508. package/dist/storage/errors.d.ts +71 -19
  509. package/dist/storage/errors.d.ts.map +1 -0
  510. package/dist/storage/errors.js +189 -1
  511. package/dist/storage/index.cjs +24 -5
  512. package/dist/storage/index.d.ts +48 -7
  513. package/dist/storage/index.d.ts.map +1 -0
  514. package/dist/storage/index.js +20 -4
  515. package/dist/storage/schemas.cjs +22 -84
  516. package/dist/storage/schemas.d.ts +98 -574
  517. package/dist/storage/schemas.d.ts.map +1 -0
  518. package/dist/storage/schemas.js +25 -84
  519. package/dist/storage/storage-manager.cjs +131 -116
  520. package/dist/storage/storage-manager.d.ts +51 -25
  521. package/dist/storage/storage-manager.d.ts.map +1 -0
  522. package/dist/storage/storage-manager.js +130 -105
  523. package/dist/storage/types.d.ts +7 -5
  524. package/dist/storage/types.d.ts.map +1 -0
  525. package/dist/systemPrompt/contributors.cjs +54 -0
  526. package/dist/systemPrompt/contributors.d.ts +30 -15
  527. package/dist/systemPrompt/contributors.d.ts.map +1 -0
  528. package/dist/systemPrompt/contributors.js +53 -0
  529. package/dist/systemPrompt/error-codes.d.ts +2 -3
  530. package/dist/systemPrompt/error-codes.d.ts.map +1 -0
  531. package/dist/systemPrompt/errors.d.ts +2 -17
  532. package/dist/systemPrompt/errors.d.ts.map +1 -0
  533. package/dist/systemPrompt/in-built-prompts.cjs +13 -15
  534. package/dist/systemPrompt/in-built-prompts.d.ts +4 -14
  535. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -0
  536. package/dist/systemPrompt/in-built-prompts.js +13 -15
  537. package/dist/systemPrompt/index.cjs +11 -0
  538. package/dist/systemPrompt/index.d.ts +7 -14
  539. package/dist/systemPrompt/index.d.ts.map +1 -0
  540. package/dist/systemPrompt/index.js +8 -0
  541. package/dist/systemPrompt/manager.cjs +24 -6
  542. package/dist/systemPrompt/manager.d.ts +8 -16
  543. package/dist/systemPrompt/manager.d.ts.map +1 -0
  544. package/dist/systemPrompt/manager.js +24 -6
  545. package/dist/systemPrompt/registry.d.ts +6 -16
  546. package/dist/systemPrompt/registry.d.ts.map +1 -0
  547. package/dist/systemPrompt/schemas.cjs +17 -3
  548. package/dist/systemPrompt/schemas.d.ts +204 -30
  549. package/dist/systemPrompt/schemas.d.ts.map +1 -0
  550. package/dist/systemPrompt/schemas.js +17 -3
  551. package/dist/systemPrompt/types.d.ts +3 -12
  552. package/dist/systemPrompt/types.d.ts.map +1 -0
  553. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +1 -1
  554. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +6 -12
  555. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -0
  556. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
  557. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +3 -5
  558. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -0
  559. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +9 -9
  560. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +7 -13
  561. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -0
  562. package/dist/tools/confirmation/allowed-tools-provider/storage.js +9 -9
  563. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -3
  564. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -0
  565. package/dist/tools/error-codes.d.ts +2 -3
  566. package/dist/tools/error-codes.d.ts.map +1 -0
  567. package/dist/tools/errors.d.ts +2 -17
  568. package/dist/tools/errors.d.ts.map +1 -0
  569. package/dist/tools/index.cjs +0 -2
  570. package/dist/tools/index.d.ts +11 -19
  571. package/dist/tools/index.d.ts.map +1 -0
  572. package/dist/tools/index.js +0 -1
  573. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +57 -0
  574. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +18 -0
  575. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +1 -0
  576. package/dist/tools/internal-tools/implementations/ask-user-tool.js +33 -0
  577. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +3 -11
  578. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +1 -0
  579. package/dist/tools/internal-tools/index.d.ts +3 -13
  580. package/dist/tools/internal-tools/index.d.ts.map +1 -0
  581. package/dist/tools/internal-tools/provider.cjs +9 -11
  582. package/dist/tools/internal-tools/provider.d.ts +6 -20
  583. package/dist/tools/internal-tools/provider.d.ts.map +1 -0
  584. package/dist/tools/internal-tools/provider.js +9 -11
  585. package/dist/tools/internal-tools/registry.cjs +6 -1
  586. package/dist/tools/internal-tools/registry.d.ts +10 -15
  587. package/dist/tools/internal-tools/registry.d.ts.map +1 -0
  588. package/dist/tools/internal-tools/registry.js +6 -1
  589. package/dist/tools/schemas.cjs +14 -2
  590. package/dist/tools/schemas.d.ts +12 -8
  591. package/dist/tools/schemas.d.ts.map +1 -0
  592. package/dist/tools/schemas.js +10 -2
  593. package/dist/tools/tool-manager.cjs +174 -14
  594. package/dist/tools/tool-manager.d.ts +48 -22
  595. package/dist/tools/tool-manager.d.ts.map +1 -0
  596. package/dist/tools/tool-manager.js +174 -14
  597. package/dist/tools/types.d.ts +9 -11
  598. package/dist/tools/types.d.ts.map +1 -0
  599. package/dist/utils/api-key-resolver.d.ts +5 -7
  600. package/dist/utils/api-key-resolver.d.ts.map +1 -0
  601. package/dist/utils/api-key-store.d.ts +5 -7
  602. package/dist/utils/api-key-store.d.ts.map +1 -0
  603. package/dist/utils/async-context.cjs +51 -0
  604. package/dist/utils/async-context.d.ts +68 -0
  605. package/dist/utils/async-context.d.ts.map +1 -0
  606. package/dist/utils/async-context.js +24 -0
  607. package/dist/utils/debug.cjs +40 -0
  608. package/dist/utils/debug.d.ts +2 -0
  609. package/dist/utils/debug.d.ts.map +1 -0
  610. package/dist/utils/debug.js +16 -0
  611. package/dist/utils/env.d.ts +4 -5
  612. package/dist/utils/env.d.ts.map +1 -0
  613. package/dist/utils/error-conversion.d.ts +2 -3
  614. package/dist/utils/error-conversion.d.ts.map +1 -0
  615. package/dist/utils/execution-context.d.ts +5 -6
  616. package/dist/utils/execution-context.d.ts.map +1 -0
  617. package/dist/utils/fs-walk.d.ts +2 -3
  618. package/dist/utils/fs-walk.d.ts.map +1 -0
  619. package/dist/utils/index.cjs +3 -1
  620. package/dist/utils/index.d.ts +14 -63
  621. package/dist/utils/index.d.ts.map +1 -0
  622. package/dist/utils/index.js +1 -0
  623. package/dist/utils/path.d.ts +9 -10
  624. package/dist/utils/path.d.ts.map +1 -0
  625. package/dist/utils/port-utils.d.ts +2 -3
  626. package/dist/utils/port-utils.d.ts.map +1 -0
  627. package/dist/utils/redactor.d.ts +2 -3
  628. package/dist/utils/redactor.d.ts.map +1 -0
  629. package/dist/utils/result.d.ts +14 -27
  630. package/dist/utils/result.d.ts.map +1 -0
  631. package/dist/utils/safe-stringify.d.ts +2 -3
  632. package/dist/utils/safe-stringify.d.ts.map +1 -0
  633. package/dist/utils/schema-metadata.cjs +235 -0
  634. package/dist/utils/schema-metadata.d.ts +82 -0
  635. package/dist/utils/schema-metadata.d.ts.map +1 -0
  636. package/dist/utils/schema-metadata.js +207 -0
  637. package/dist/utils/schema.d.ts +2 -3
  638. package/dist/utils/schema.d.ts.map +1 -0
  639. package/dist/utils/service-initializer.cjs +71 -34
  640. package/dist/utils/service-initializer.d.ts +18 -43
  641. package/dist/utils/service-initializer.d.ts.map +1 -0
  642. package/dist/utils/service-initializer.js +71 -34
  643. package/dist/utils/user-info.d.ts +2 -3
  644. package/dist/utils/user-info.d.ts.map +1 -0
  645. package/dist/utils/zod-schema-converter.d.ts +3 -5
  646. package/dist/utils/zod-schema-converter.d.ts.map +1 -0
  647. package/package.json +6 -4
  648. package/dist/agent/DextoAgent.d.cts +0 -541
  649. package/dist/agent/agentCard.d.cts +0 -20
  650. package/dist/agent/error-codes.d.cts +0 -14
  651. package/dist/agent/errors.d.cts +0 -44
  652. package/dist/agent/index.d.cts +0 -60
  653. package/dist/agent/registry/error-codes.d.cts +0 -20
  654. package/dist/agent/registry/errors.d.cts +0 -67
  655. package/dist/agent/registry/registry.d.cts +0 -67
  656. package/dist/agent/registry/types.d.cts +0 -100
  657. package/dist/agent/schemas.d.cts +0 -1502
  658. package/dist/agent/state-manager.d.cts +0 -97
  659. package/dist/config/agent-resolver.d.cts +0 -15
  660. package/dist/config/error-codes.d.cts +0 -17
  661. package/dist/config/errors.d.cts +0 -49
  662. package/dist/config/index.d.cts +0 -7
  663. package/dist/config/loader.d.cts +0 -19
  664. package/dist/config/writer.d.cts +0 -38
  665. package/dist/context/compression/middle-removal.d.cts +0 -48
  666. package/dist/context/compression/oldest-removal.d.cts +0 -43
  667. package/dist/context/compression/types.d.cts +0 -21
  668. package/dist/context/error-codes.d.cts +0 -19
  669. package/dist/context/errors.d.cts +0 -36
  670. package/dist/context/index.d.cts +0 -19
  671. package/dist/context/manager.d.cts +0 -254
  672. package/dist/context/types.d.cts +0 -113
  673. package/dist/context/utils.d.cts +0 -79
  674. package/dist/errors/DextoBaseError.d.cts +0 -15
  675. package/dist/errors/DextoRuntimeError.d.cts +0 -37
  676. package/dist/errors/DextoValidationError.d.cts +0 -65
  677. package/dist/errors/index.d.cts +0 -18
  678. package/dist/errors/result-bridge.d.cts +0 -39
  679. package/dist/errors/types.d.cts +0 -62
  680. package/dist/events/index.d.cts +0 -272
  681. package/dist/index.browser.d.cts +0 -53
  682. package/dist/index.d.cts +0 -89
  683. package/dist/llm/error-codes.d.cts +0 -26
  684. package/dist/llm/errors.d.cts +0 -58
  685. package/dist/llm/formatters/anthropic.d.cts +0 -45
  686. package/dist/llm/formatters/factory.d.cts +0 -12
  687. package/dist/llm/formatters/openai.d.cts +0 -38
  688. package/dist/llm/formatters/types.d.cts +0 -43
  689. package/dist/llm/formatters/vercel.d.cts +0 -48
  690. package/dist/llm/index.d.cts +0 -39
  691. package/dist/llm/registry.d.cts +0 -176
  692. package/dist/llm/resolver.d.cts +0 -34
  693. package/dist/llm/schemas.d.cts +0 -111
  694. package/dist/llm/services/anthropic.d.cts +0 -65
  695. package/dist/llm/services/factory.d.cts +0 -39
  696. package/dist/llm/services/index.d.cts +0 -21
  697. package/dist/llm/services/openai.d.cts +0 -65
  698. package/dist/llm/services/test-utils.integration.d.cts +0 -83
  699. package/dist/llm/services/types.d.cts +0 -56
  700. package/dist/llm/services/vercel.d.cts +0 -72
  701. package/dist/llm/tokenizer/anthropic.d.cts +0 -21
  702. package/dist/llm/tokenizer/default.d.cts +0 -16
  703. package/dist/llm/tokenizer/factory.d.cts +0 -12
  704. package/dist/llm/tokenizer/google.d.cts +0 -31
  705. package/dist/llm/tokenizer/openai.d.cts +0 -32
  706. package/dist/llm/tokenizer/types.d.cts +0 -19
  707. package/dist/llm/types.d.cts +0 -29
  708. package/dist/llm/validation.d.cts +0 -60
  709. package/dist/logger/browser.d.cts +0 -29
  710. package/dist/logger/index.d.cts +0 -1
  711. package/dist/logger/logger.d.cts +0 -52
  712. package/dist/mcp/error-codes.d.cts +0 -16
  713. package/dist/mcp/errors.d.cts +0 -72
  714. package/dist/mcp/index.d.cts +0 -26
  715. package/dist/mcp/manager.d.cts +0 -163
  716. package/dist/mcp/mcp-client.d.cts +0 -108
  717. package/dist/mcp/resolver.d.cts +0 -22
  718. package/dist/mcp/schemas.d.cts +0 -266
  719. package/dist/mcp/types.d.cts +0 -21
  720. package/dist/preferences/constants.d.cts +0 -3
  721. package/dist/preferences/error-codes.d.cts +0 -9
  722. package/dist/preferences/errors.d.cts +0 -33
  723. package/dist/preferences/index.d.cts +0 -21
  724. package/dist/preferences/loader.d.cts +0 -45
  725. package/dist/preferences/schemas.d.cts +0 -104
  726. package/dist/search/index.d.cts +0 -5
  727. package/dist/search/search-service.d.cts +0 -47
  728. package/dist/search/types.d.cts +0 -78
  729. package/dist/session/chat-session.d.cts +0 -284
  730. package/dist/session/error-codes.d.cts +0 -13
  731. package/dist/session/errors.d.cts +0 -58
  732. package/dist/session/history/database.d.cts +0 -28
  733. package/dist/session/history/factory.d.cts +0 -11
  734. package/dist/session/history/types.d.cts +0 -17
  735. package/dist/session/index.d.cts +0 -53
  736. package/dist/session/schemas.d.cts +0 -16
  737. package/dist/session/session-manager.d.cts +0 -219
  738. package/dist/storage/backend/cache-backend.d.ts +0 -15
  739. package/dist/storage/backend/database-backend.d.ts +0 -19
  740. package/dist/storage/backend/memory-backend.d.cts +0 -34
  741. package/dist/storage/backend/postgres-backend.d.cts +0 -37
  742. package/dist/storage/backend/redis-backend.d.cts +0 -36
  743. package/dist/storage/backend/sqlite-backend.d.cts +0 -35
  744. package/dist/storage/backend/types.d.cts +0 -14
  745. package/dist/storage/backend/types.d.ts +0 -14
  746. package/dist/storage/error-codes.d.cts +0 -14
  747. package/dist/storage/errors.d.cts +0 -63
  748. package/dist/storage/index.d.cts +0 -7
  749. package/dist/storage/schemas.d.cts +0 -856
  750. package/dist/storage/storage-manager.d.cts +0 -52
  751. package/dist/storage/types.d.cts +0 -5
  752. package/dist/systemPrompt/contributors.d.cts +0 -44
  753. package/dist/systemPrompt/error-codes.d.cts +0 -13
  754. package/dist/systemPrompt/errors.d.cts +0 -55
  755. package/dist/systemPrompt/in-built-prompts.d.cts +0 -28
  756. package/dist/systemPrompt/index.d.cts +0 -14
  757. package/dist/systemPrompt/manager.d.cts +0 -31
  758. package/dist/systemPrompt/registry.d.cts +0 -20
  759. package/dist/systemPrompt/schemas.d.cts +0 -401
  760. package/dist/systemPrompt/types.d.cts +0 -19
  761. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +0 -19
  762. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +0 -17
  763. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +0 -26
  764. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +0 -35
  765. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +0 -158
  766. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +0 -41
  767. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +0 -41
  768. package/dist/tools/confirmation/event-based-confirmation-provider.js +0 -134
  769. package/dist/tools/confirmation/factory.cjs +0 -52
  770. package/dist/tools/confirmation/factory.d.cts +0 -37
  771. package/dist/tools/confirmation/factory.d.ts +0 -37
  772. package/dist/tools/confirmation/factory.js +0 -28
  773. package/dist/tools/confirmation/noop-confirmation-provider.cjs +0 -49
  774. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +0 -22
  775. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +0 -22
  776. package/dist/tools/confirmation/noop-confirmation-provider.js +0 -25
  777. package/dist/tools/confirmation/types.d.cts +0 -46
  778. package/dist/tools/confirmation/types.d.ts +0 -46
  779. package/dist/tools/error-codes.d.cts +0 -18
  780. package/dist/tools/errors.d.cts +0 -97
  781. package/dist/tools/index.d.cts +0 -19
  782. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +0 -15
  783. package/dist/tools/internal-tools/index.d.cts +0 -13
  784. package/dist/tools/internal-tools/provider.d.cts +0 -66
  785. package/dist/tools/internal-tools/registry.d.cts +0 -45
  786. package/dist/tools/schemas.d.cts +0 -21
  787. package/dist/tools/tool-manager.d.cts +0 -106
  788. package/dist/tools/types.d.cts +0 -66
  789. package/dist/utils/api-key-resolver.d.cts +0 -23
  790. package/dist/utils/api-key-store.d.cts +0 -26
  791. package/dist/utils/env.d.cts +0 -29
  792. package/dist/utils/error-conversion.d.cts +0 -13
  793. package/dist/utils/execution-context.d.cts +0 -21
  794. package/dist/utils/fs-walk.d.cts +0 -9
  795. package/dist/utils/index.d.cts +0 -63
  796. package/dist/utils/path.d.cts +0 -54
  797. package/dist/utils/port-utils.d.cts +0 -11
  798. package/dist/utils/port-utils.spec.d.cts +0 -2
  799. package/dist/utils/port-utils.spec.d.ts +0 -2
  800. package/dist/utils/redactor.d.cts +0 -18
  801. package/dist/utils/result.d.cts +0 -180
  802. package/dist/utils/safe-stringify.d.cts +0 -7
  803. package/dist/utils/schema.d.cts +0 -6
  804. package/dist/utils/service-initializer.d.cts +0 -63
  805. package/dist/utils/user-info.d.cts +0 -3
  806. package/dist/utils/zod-schema-converter.d.cts +0 -13
  807. /package/dist/{storage/backend → memory}/types.cjs +0 -0
  808. /package/dist/{storage/backend → memory}/types.js +0 -0
  809. /package/dist/{tools/confirmation → plugins}/types.cjs +0 -0
  810. /package/dist/{tools/confirmation → plugins}/types.js +0 -0
  811. /package/dist/{storage/backend/cache-backend.js → prompts/types.js} +0 -0
  812. /package/dist/{storage/backend/database-backend.js → resources/handlers/types.js} +0 -0
@@ -1,3 +1,6 @@
1
+ import { expandMessageReferences } from "../resources/index.js";
2
+ import { expandBlobReferences } from "../context/utils.js";
3
+ import { PromptManager } from "../prompts/index.js";
1
4
  import { SessionError } from "../session/index.js";
2
5
  import { logger } from "../logger/index.js";
3
6
  import { LLMUpdatesSchema } from "../llm/schemas.js";
@@ -7,6 +10,7 @@ import { AgentError } from "./errors.js";
7
10
  import { MCPError } from "../mcp/errors.js";
8
11
  import { ensureOk } from "../errors/result-bridge.js";
9
12
  import { fail, zodToIssues } from "../utils/result.js";
13
+ import { DextoValidationError } from "../errors/DextoValidationError.js";
10
14
  import { resolveAndValidateMcpServerConfig } from "../mcp/resolver.js";
11
15
  import {
12
16
  getSupportedProviders,
@@ -18,16 +22,19 @@ import { createAgentServices } from "../utils/service-initializer.js";
18
22
  import { AgentConfigSchema } from "./schemas.js";
19
23
  import { getDextoPath } from "../utils/path.js";
20
24
  import { safeStringify } from "../utils/safe-stringify.js";
21
- import { getAgentRegistry } from "./registry/registry.js";
22
25
  import { loadAgentConfig } from "../config/loader.js";
26
+ import { promises as fs } from "fs";
27
+ import { parseDocument } from "yaml";
28
+ import { deriveHeuristicTitle, generateSessionTitle } from "../session/title-generator.js";
23
29
  const requiredServices = [
24
30
  "mcpManager",
25
31
  "toolManager",
26
- "promptManager",
32
+ "systemPromptManager",
27
33
  "agentEventBus",
28
34
  "stateManager",
29
35
  "sessionManager",
30
- "searchService"
36
+ "searchService",
37
+ "memoryManager"
31
38
  ];
32
39
  class DextoAgent {
33
40
  constructor(config, configPath) {
@@ -41,11 +48,14 @@ class DextoAgent {
41
48
  * But the main recommended entry points/functions would still be the wrapper methods we define below
42
49
  */
43
50
  mcpManager;
44
- promptManager;
51
+ systemPromptManager;
45
52
  agentEventBus;
53
+ promptManager;
46
54
  stateManager;
47
55
  sessionManager;
48
56
  toolManager;
57
+ resourceManager;
58
+ memoryManager;
49
59
  services;
50
60
  // Search service for conversation search
51
61
  searchService;
@@ -58,6 +68,8 @@ class DextoAgent {
58
68
  _isStopped = false;
59
69
  // Store config for async initialization
60
70
  config;
71
+ // Event subscribers (e.g., WebSocket, Webhook handlers)
72
+ eventSubscribers = /* @__PURE__ */ new Set();
61
73
  /**
62
74
  * Starts the agent by initializing all async services.
63
75
  * This method handles storage backends, MCP connections, session manager initialization, and other async operations.
@@ -82,15 +94,30 @@ class DextoAgent {
82
94
  Object.assign(this, {
83
95
  mcpManager: services.mcpManager,
84
96
  toolManager: services.toolManager,
85
- promptManager: services.promptManager,
97
+ resourceManager: services.resourceManager,
98
+ systemPromptManager: services.systemPromptManager,
86
99
  agentEventBus: services.agentEventBus,
87
100
  stateManager: services.stateManager,
88
101
  sessionManager: services.sessionManager,
102
+ memoryManager: services.memoryManager,
89
103
  services
90
104
  });
91
105
  this.searchService = services.searchService;
106
+ const promptManager = new PromptManager(
107
+ this.mcpManager,
108
+ this.resourceManager,
109
+ this.config,
110
+ this.agentEventBus,
111
+ services.storageManager.getDatabase()
112
+ );
113
+ await promptManager.initialize();
114
+ Object.assign(this, { promptManager });
92
115
  this._isStarted = true;
116
+ this._isStopped = false;
93
117
  logger.info("DextoAgent started successfully.");
118
+ for (const subscriber of this.eventSubscribers) {
119
+ subscriber.subscribe(this.agentEventBus);
120
+ }
94
121
  const logPath = getDextoPath("logs", "dexto.log");
95
122
  console.log(`\u{1F4CB} Logs available at: ${logPath}`);
96
123
  } catch (error) {
@@ -125,6 +152,15 @@ class DextoAgent {
125
152
  const err = error instanceof Error ? error : new Error(String(error));
126
153
  shutdownErrors.push(new Error(`SessionManager cleanup failed: ${err.message}`));
127
154
  }
155
+ try {
156
+ if (this.services?.pluginManager) {
157
+ await this.services.pluginManager.cleanup();
158
+ logger.debug("PluginManager cleaned up successfully");
159
+ }
160
+ } catch (error) {
161
+ const err = error instanceof Error ? error : new Error(String(error));
162
+ shutdownErrors.push(new Error(`PluginManager cleanup failed: ${err.message}`));
163
+ }
128
164
  try {
129
165
  if (this.mcpManager) {
130
166
  await this.mcpManager.disconnectAll();
@@ -156,6 +192,30 @@ class DextoAgent {
156
192
  throw error;
157
193
  }
158
194
  }
195
+ /**
196
+ * Register an event subscriber that will be automatically re-subscribed on agent restart.
197
+ * Subscribers are typically API layer components (WebSocket, Webhook handlers) that need
198
+ * to receive agent events. If the agent is already started, the subscriber is immediately subscribed.
199
+ *
200
+ * @param subscriber - Object implementing AgentEventSubscriber interface
201
+ */
202
+ registerSubscriber(subscriber) {
203
+ this.eventSubscribers.add(subscriber);
204
+ if (this._isStarted) {
205
+ subscriber.subscribe(this.agentEventBus);
206
+ }
207
+ }
208
+ /**
209
+ * Restart the agent by stopping and starting it.
210
+ * Automatically re-subscribes all registered event subscribers to the new event bus.
211
+ * This is useful when configuration changes require a full agent restart.
212
+ *
213
+ * @throws Error if restart fails during stop or start phases
214
+ */
215
+ async restart() {
216
+ await this.stop();
217
+ await this.start();
218
+ }
159
219
  /**
160
220
  * Checks if the agent has been started.
161
221
  * @returns true if agent is started, false otherwise
@@ -220,7 +280,56 @@ class DextoAgent {
220
280
  imageDataInput
221
281
  )}, hasFile=${Boolean(fileDataInput)}`
222
282
  );
223
- const response = await session.run(textInput, imageDataInput, fileDataInput, stream);
283
+ let finalText = textInput;
284
+ let finalImageData = imageDataInput;
285
+ if (textInput && textInput.includes("@")) {
286
+ try {
287
+ const resources = await this.resourceManager.list();
288
+ const expansion = await expandMessageReferences(
289
+ textInput,
290
+ resources,
291
+ (uri) => this.resourceManager.read(uri)
292
+ );
293
+ if (expansion.unresolvedReferences.length > 0) {
294
+ const unresolvedNames = expansion.unresolvedReferences.map((ref) => ref.originalRef).join(", ");
295
+ logger.warn(
296
+ `Could not resolve ${expansion.unresolvedReferences.length} resource reference(s): ${unresolvedNames}`
297
+ );
298
+ }
299
+ const MAX_EXPANDED_SIZE = 5 * 1024 * 1024;
300
+ const expandedSize = Buffer.byteLength(expansion.expandedMessage, "utf-8");
301
+ if (expandedSize > MAX_EXPANDED_SIZE) {
302
+ logger.warn(
303
+ `Expanded message size (${(expandedSize / 1024 / 1024).toFixed(2)}MB) exceeds limit (${MAX_EXPANDED_SIZE / 1024 / 1024}MB). Content may be truncated.`
304
+ );
305
+ }
306
+ finalText = expansion.expandedMessage;
307
+ if (expansion.extractedImages.length > 0 && !imageDataInput) {
308
+ const firstImage = expansion.extractedImages[0];
309
+ if (firstImage) {
310
+ finalImageData = {
311
+ image: firstImage.image,
312
+ mimeType: firstImage.mimeType
313
+ };
314
+ logger.debug(
315
+ `Using extracted image: ${firstImage.name} (${firstImage.mimeType})`
316
+ );
317
+ }
318
+ }
319
+ } catch (error) {
320
+ logger.error(
321
+ `Failed to expand resource references: ${error instanceof Error ? error.message : String(error)}. Continuing with original message.`
322
+ );
323
+ }
324
+ }
325
+ if (!finalText.trim() && !finalImageData && !fileDataInput) {
326
+ logger.warn(
327
+ "Resource expansion resulted in empty content. Using original message."
328
+ );
329
+ finalText = textInput;
330
+ }
331
+ void this.maybeGenerateTitle(targetSessionId, finalText, llmConfig);
332
+ const response = await session.run(finalText, finalImageData, fileDataInput, stream);
224
333
  this.sessionManager.incrementMessageCount(session.id).catch(
225
334
  (error) => logger.warn(
226
335
  `Failed to increment message count: ${error instanceof Error ? error.message : String(error)}`
@@ -312,6 +421,82 @@ class DextoAgent {
312
421
  this.ensureStarted();
313
422
  return await this.sessionManager.getSessionMetadata(sessionId);
314
423
  }
424
+ /**
425
+ * Sets a human-friendly title for the given session.
426
+ */
427
+ async setSessionTitle(sessionId, title) {
428
+ this.ensureStarted();
429
+ await this.sessionManager.setSessionTitle(sessionId, title);
430
+ }
431
+ /**
432
+ * Gets the human-friendly title for the given session, if any.
433
+ */
434
+ async getSessionTitle(sessionId) {
435
+ this.ensureStarted();
436
+ return await this.sessionManager.getSessionTitle(sessionId);
437
+ }
438
+ /**
439
+ * Background task: generate and persist a session title using the same LLM.
440
+ * Runs only for the first user message (messageCount === 0 and no existing title).
441
+ * Never throws; timeboxed in the generator.
442
+ */
443
+ async maybeGenerateTitle(sessionId, userText, llmConfig) {
444
+ try {
445
+ const metadata = await this.sessionManager.getSessionMetadata(sessionId);
446
+ if (!metadata) {
447
+ logger.debug(
448
+ `[SessionTitle] No session metadata available for ${sessionId}, skipping title generation`
449
+ );
450
+ return;
451
+ }
452
+ if (metadata.title) {
453
+ logger.debug(
454
+ `[SessionTitle] Session ${sessionId} already has title '${metadata.title}', skipping`
455
+ );
456
+ return;
457
+ }
458
+ if (!userText || !userText.trim()) {
459
+ logger.debug(
460
+ `[SessionTitle] User text empty for session ${sessionId}, skipping title generation`
461
+ );
462
+ return;
463
+ }
464
+ logger.debug(
465
+ `[SessionTitle] Checking title generation preconditions for session ${sessionId}`
466
+ );
467
+ const result = await generateSessionTitle(
468
+ llmConfig,
469
+ llmConfig.router,
470
+ this.toolManager,
471
+ this.systemPromptManager,
472
+ this.resourceManager,
473
+ userText
474
+ );
475
+ if (result.error) {
476
+ logger.debug(
477
+ `[SessionTitle] LLM title generation failed for ${sessionId}: ${result.error}${result.timedOut ? " (timeout)" : ""}`
478
+ );
479
+ }
480
+ let title = result.title;
481
+ if (!title) {
482
+ title = deriveHeuristicTitle(userText);
483
+ if (title) {
484
+ logger.info(`[SessionTitle] Using heuristic title for ${sessionId}: ${title}`);
485
+ } else {
486
+ logger.debug(
487
+ `[SessionTitle] No suitable title derived for session ${sessionId}`
488
+ );
489
+ return;
490
+ }
491
+ } else {
492
+ logger.info(`[SessionTitle] Generated LLM title for ${sessionId}: ${title}`);
493
+ }
494
+ await this.sessionManager.setSessionTitle(sessionId, title, { ifUnsetOnly: true });
495
+ this.agentEventBus.emit("dexto:sessionTitleUpdated", { sessionId, title });
496
+ } catch (err) {
497
+ logger.silly(`Title generation skipped/failed for ${sessionId}: ${String(err)}`);
498
+ }
499
+ }
315
500
  /**
316
501
  * Gets the conversation history for a specific session.
317
502
  * @param sessionId The session ID
@@ -324,7 +509,23 @@ class DextoAgent {
324
509
  if (!session) {
325
510
  throw SessionError.notFound(sessionId);
326
511
  }
327
- return await session.getHistory();
512
+ const history = await session.getHistory();
513
+ if (!this.resourceManager) {
514
+ return history;
515
+ }
516
+ return await Promise.all(
517
+ history.map(async (message) => ({
518
+ ...message,
519
+ content: await expandBlobReferences(message.content, this.resourceManager).catch(
520
+ (error) => {
521
+ logger.warn(
522
+ `Failed to expand blob references in message: ${error instanceof Error ? error.message : String(error)}`
523
+ );
524
+ return message.content;
525
+ }
526
+ )
527
+ }))
528
+ );
328
529
  }
329
530
  /**
330
531
  * Search for messages across all sessions or within a specific session
@@ -640,6 +841,7 @@ class DextoAgent {
640
841
  this.stateManager.addMcpServer(name, validatedConfig);
641
842
  try {
642
843
  await this.mcpManager.connectServer(name, validatedConfig);
844
+ await this.toolManager.refresh();
643
845
  this.agentEventBus.emit("dexto:mcpServerConnected", {
644
846
  name,
645
847
  success: true
@@ -675,6 +877,7 @@ class DextoAgent {
675
877
  this.ensureStarted();
676
878
  await this.mcpManager.removeClient(name);
677
879
  this.stateManager.removeMcpServer(name);
880
+ await this.toolManager.refresh();
678
881
  }
679
882
  /**
680
883
  * Executes a tool from any source (MCP servers, custom tools, or internal tools).
@@ -723,6 +926,43 @@ class DextoAgent {
723
926
  this.ensureStarted();
724
927
  return this.mcpManager.getFailedConnections();
725
928
  }
929
+ // ============= RESOURCE MANAGEMENT =============
930
+ /**
931
+ * Lists all available resources with their info.
932
+ * This includes resources from MCP servers and any custom resource providers.
933
+ */
934
+ async listResources() {
935
+ this.ensureStarted();
936
+ return await this.resourceManager.list();
937
+ }
938
+ /**
939
+ * Checks if a resource exists by URI.
940
+ */
941
+ async hasResource(uri) {
942
+ this.ensureStarted();
943
+ return await this.resourceManager.has(uri);
944
+ }
945
+ /**
946
+ * Reads the content of a specific resource by URI.
947
+ */
948
+ async readResource(uri) {
949
+ this.ensureStarted();
950
+ return await this.resourceManager.read(uri);
951
+ }
952
+ /**
953
+ * Lists resources for a specific MCP server.
954
+ */
955
+ async listResourcesForServer(serverId) {
956
+ this.ensureStarted();
957
+ const allResources = await this.resourceManager.list();
958
+ const serverResources = Object.values(allResources).filter((resource) => resource.serverName === serverId).map((resource) => {
959
+ const original = resource.metadata?.originalUri ?? resource.uri;
960
+ const name = resource.name ?? resource.uri.split("/").pop() ?? resource.uri;
961
+ const serverName = resource.serverName ?? serverId;
962
+ return { uri: original, name, originalUri: original, serverName };
963
+ });
964
+ return serverResources;
965
+ }
726
966
  // ============= PROMPT MANAGEMENT =============
727
967
  /**
728
968
  * Gets the current system prompt with all dynamic content resolved.
@@ -753,7 +993,75 @@ class DextoAgent {
753
993
  const context = {
754
994
  mcpManager: this.mcpManager
755
995
  };
756
- return await this.promptManager.build(context);
996
+ return await this.systemPromptManager.build(context);
997
+ }
998
+ /**
999
+ * Lists all available prompts from all providers (MCP, internal, starter, custom).
1000
+ * @returns Promise resolving to a PromptSet with all available prompts
1001
+ */
1002
+ async listPrompts() {
1003
+ this.ensureStarted();
1004
+ return await this.promptManager.list();
1005
+ }
1006
+ /**
1007
+ * Gets the definition of a specific prompt by name.
1008
+ * @param name The name of the prompt
1009
+ * @returns Promise resolving to the prompt definition or null if not found
1010
+ */
1011
+ async getPromptDefinition(name) {
1012
+ this.ensureStarted();
1013
+ return await this.promptManager.getPromptDefinition(name);
1014
+ }
1015
+ /**
1016
+ * Checks if a prompt exists.
1017
+ * @param name The name of the prompt to check
1018
+ * @returns Promise resolving to true if the prompt exists, false otherwise
1019
+ */
1020
+ async hasPrompt(name) {
1021
+ this.ensureStarted();
1022
+ return await this.promptManager.has(name);
1023
+ }
1024
+ /**
1025
+ * Gets a prompt with its messages.
1026
+ * @param name The name of the prompt
1027
+ * @param args Optional arguments to pass to the prompt
1028
+ * @returns Promise resolving to the prompt result with messages
1029
+ */
1030
+ async getPrompt(name, args) {
1031
+ this.ensureStarted();
1032
+ return await this.promptManager.getPrompt(name, args);
1033
+ }
1034
+ /**
1035
+ * Creates a new custom prompt.
1036
+ * @param input The prompt creation input
1037
+ * @returns Promise resolving to the created prompt info
1038
+ */
1039
+ async createCustomPrompt(input) {
1040
+ this.ensureStarted();
1041
+ return await this.promptManager.createCustomPrompt(input);
1042
+ }
1043
+ /**
1044
+ * Deletes a custom prompt by name.
1045
+ * @param name The name of the custom prompt to delete
1046
+ */
1047
+ async deleteCustomPrompt(name) {
1048
+ this.ensureStarted();
1049
+ return await this.promptManager.deleteCustomPrompt(name);
1050
+ }
1051
+ /**
1052
+ * Resolves a prompt to its text content with all arguments applied.
1053
+ * This is a high-level method that handles:
1054
+ * - Prompt key resolution (resolving aliases)
1055
+ * - Argument normalization (including special _context field)
1056
+ * - Prompt execution and flattening
1057
+ *
1058
+ * @param name The prompt name or alias
1059
+ * @param options Optional configuration for prompt resolution
1060
+ * @returns Promise resolving to the resolved text and resource URIs
1061
+ */
1062
+ async resolvePrompt(name, options = {}) {
1063
+ this.ensureStarted();
1064
+ return await this.promptManager.resolvePrompt(name, options);
757
1065
  }
758
1066
  // ============= CONFIGURATION ACCESS =============
759
1067
  /**
@@ -765,138 +1073,135 @@ class DextoAgent {
765
1073
  this.ensureStarted();
766
1074
  return sessionId ? this.stateManager.getRuntimeConfig(sessionId) : this.stateManager.getRuntimeConfig();
767
1075
  }
768
- // ============= AGENT MANAGEMENT =============
769
1076
  /**
770
- * Lists available and installed agents from the registry.
771
- * Returns a structured object containing both installed and available agents,
772
- * along with metadata like descriptions, authors, and tags.
773
- *
774
- * @returns Promise resolving to object with installed and available agent lists
775
- *
776
- * @example
777
- * ```typescript
778
- * const agents = await agent.listAgents();
779
- * console.log(agents.installed); // ['default', 'my-custom-agent']
780
- * console.log(agents.available); // [{ name: 'productivity', description: '...', ... }]
781
- * console.log(agents.current?.name); // 'default'
782
- * ```
1077
+ * Gets the file path of the agent configuration currently in use.
1078
+ * This returns the source agent file path, not session-specific overrides.
1079
+ * @returns The path to the agent configuration file
1080
+ * @throws AgentError if no config path is available
783
1081
  */
784
- async listAgents() {
785
- const agentRegistry = getAgentRegistry();
786
- const availableMap = agentRegistry.getAvailableAgents();
787
- const installedNames = await agentRegistry.getInstalledAgents();
788
- const installed = await Promise.all(
789
- installedNames.map(async (name) => {
790
- const registryEntry = availableMap[name];
791
- if (registryEntry) {
792
- return {
793
- name,
794
- description: registryEntry.description,
795
- author: registryEntry.author,
796
- tags: registryEntry.tags
797
- };
798
- } else {
799
- try {
800
- const config = await loadAgentConfig(name);
801
- const author = config.agentCard?.provider?.organization;
802
- const result = {
803
- name,
804
- description: config.agentCard?.description || "Local agent",
805
- tags: []
806
- };
807
- if (author) {
808
- result.author = author;
809
- }
810
- return result;
811
- } catch {
812
- return {
813
- name,
814
- description: "Local agent (config unavailable)",
815
- tags: []
816
- };
817
- }
818
- }
819
- })
820
- );
821
- const available = Object.entries(availableMap).filter(([name]) => !installedNames.includes(name)).map(([name, entry]) => ({
822
- name,
823
- description: entry.description,
824
- author: entry.author,
825
- tags: entry.tags
826
- }));
827
- return {
828
- installed,
829
- available,
830
- current: { name: null }
831
- // TODO: Track current agent name
832
- };
1082
+ getAgentFilePath() {
1083
+ if (!this.configPath) {
1084
+ throw AgentError.noConfigPath();
1085
+ }
1086
+ return this.configPath;
833
1087
  }
834
1088
  /**
835
- * Installs an agent from the registry.
836
- * Downloads and sets up the specified agent, making it available for use.
1089
+ * Reloads the agent configuration from disk.
1090
+ * This will re-read the config file, validate it, and detect what changed.
1091
+ * Most configuration changes require a full agent restart to take effect.
837
1092
  *
838
- * @param agentName The name of the agent to install from the registry
839
- * @returns Promise that resolves when installation is complete
1093
+ * To apply changes: stop the agent and start it again with the new config.
840
1094
  *
841
- * @throws {AgentError} When agent is not found in registry or installation fails
1095
+ * @returns Object containing list of changes that require restart
1096
+ * @throws Error if config file cannot be read or is invalid
842
1097
  *
843
- * @example
844
- * ```typescript
845
- * await agent.installAgent('productivity');
846
- * console.log('Productivity agent installed successfully');
847
- * ```
1098
+ * TODO: improve hot reload capabilites so that we don't always require a restart
848
1099
  */
849
- async installAgent(agentName) {
850
- const agentRegistry = getAgentRegistry();
851
- if (!agentRegistry.hasAgent(agentName)) {
852
- throw AgentError.apiValidationError(`Agent '${agentName}' not found in registry`);
1100
+ async reloadConfig() {
1101
+ if (!this.configPath) {
1102
+ throw AgentError.noConfigPath();
853
1103
  }
854
- try {
855
- await agentRegistry.installAgent(agentName, true);
856
- logger.info(`Successfully installed agent: ${agentName}`);
857
- } catch (error) {
858
- logger.error(`Failed to install agent ${agentName}:`, error);
859
- throw AgentError.apiValidationError(
860
- `Installation failed for agent '${agentName}'`,
861
- error
1104
+ logger.info(`Reloading agent configuration from: ${this.configPath}`);
1105
+ const oldConfig = this.config;
1106
+ const newConfig = await loadAgentConfig(this.configPath);
1107
+ const validated = AgentConfigSchema.parse(newConfig);
1108
+ const restartRequired = this.detectRestartRequiredChanges(oldConfig, validated);
1109
+ this.config = validated;
1110
+ if (restartRequired.length > 0) {
1111
+ logger.warn(
1112
+ `Configuration updated. Restart required to apply: ${restartRequired.join(", ")}`
862
1113
  );
1114
+ } else {
1115
+ logger.info("Agent configuration reloaded successfully (no changes detected)");
863
1116
  }
1117
+ return {
1118
+ restartRequired
1119
+ };
864
1120
  }
865
1121
  /**
866
- * Creates a new agent instance for the specified agent name.
867
- * This method resolves the agent (installing if needed), loads its configuration,
868
- * and returns a new DextoAgent instance ready to be started.
869
- *
870
- * This is a factory method that doesn't affect the current agent instance.
871
- * The caller is responsible for managing the lifecycle of the returned agent.
872
- *
873
- * @param agentName The name of the agent to create
874
- * @returns Promise resolving to a new DextoAgent instance (not started)
875
- *
876
- * @throws {AgentError} When agent is not found or creation fails
1122
+ * Updates and saves the agent configuration to disk.
1123
+ * This merges the updates with the raw config from disk, validates, and writes to file.
1124
+ * IMPORTANT: This preserves environment variable placeholders (e.g., $OPENAI_API_KEY)
1125
+ * to avoid leaking secrets into the config file.
1126
+ * @param updates Partial configuration updates to apply
1127
+ * @param targetPath Optional path to save to (defaults to current config path)
1128
+ * @returns Object containing list of changes that require restart
1129
+ * @throws Error if validation fails or file cannot be written
1130
+ */
1131
+ async updateAndSaveConfig(updates, targetPath) {
1132
+ const path = targetPath || this.configPath;
1133
+ if (!path) {
1134
+ throw AgentError.noConfigPath();
1135
+ }
1136
+ logger.info(`Updating and saving agent configuration to: ${path}`);
1137
+ const rawYaml = await fs.readFile(path, "utf-8");
1138
+ const doc = parseDocument(rawYaml);
1139
+ const rawConfig = doc.toJSON();
1140
+ const updatedRawConfig = { ...rawConfig, ...updates };
1141
+ const parsed = AgentConfigSchema.safeParse(updatedRawConfig);
1142
+ if (!parsed.success) {
1143
+ const result = fail(zodToIssues(parsed.error, "error"));
1144
+ throw new DextoValidationError(result.issues);
1145
+ }
1146
+ for (const [key, value] of Object.entries(updates)) {
1147
+ doc.set(key, value);
1148
+ }
1149
+ const yamlContent = String(doc);
1150
+ const tmpPath = `${path}.tmp`;
1151
+ await fs.writeFile(tmpPath, yamlContent, "utf-8");
1152
+ await fs.rename(tmpPath, path);
1153
+ const reloadResult = await this.reloadConfig();
1154
+ logger.info(`Agent configuration saved to: ${path}`);
1155
+ return reloadResult;
1156
+ }
1157
+ /**
1158
+ * Detects configuration changes that require a full agent restart.
1159
+ * Returns an array of change descriptions.
877
1160
  *
878
- * @example
879
- * ```typescript
880
- * const newAgent = await DextoAgent.createAgent('productivity');
881
- * await newAgent.start();
882
- * ```
1161
+ * @param oldConfig Previous validated configuration
1162
+ * @param newConfig New validated configuration
1163
+ * @returns Array of restart-required change descriptions
1164
+ * @private
883
1165
  */
884
- static async createAgent(agentName) {
885
- const agentRegistry = getAgentRegistry();
886
- try {
887
- const agentPath = await agentRegistry.resolveAgent(agentName, true, true);
888
- const config = await loadAgentConfig(agentPath);
889
- logger.info(`Creating agent: ${agentName}`);
890
- const newAgent = new DextoAgent(config, agentPath);
891
- logger.info(`Successfully created agent: ${agentName}`);
892
- return newAgent;
893
- } catch (error) {
894
- logger.error(
895
- `Failed to create agent '${agentName}': ${error instanceof Error ? error.message : String(error)}`
896
- );
897
- throw AgentError.apiValidationError(`Failed to create agent '${agentName}'`, error);
1166
+ detectRestartRequiredChanges(oldConfig, newConfig) {
1167
+ const changes = [];
1168
+ if (JSON.stringify(oldConfig.storage) !== JSON.stringify(newConfig.storage)) {
1169
+ changes.push("Storage backend");
1170
+ }
1171
+ if (JSON.stringify(oldConfig.sessions) !== JSON.stringify(newConfig.sessions)) {
1172
+ changes.push("Session configuration");
1173
+ }
1174
+ if (JSON.stringify(oldConfig.systemPrompt) !== JSON.stringify(newConfig.systemPrompt)) {
1175
+ changes.push("System prompt");
1176
+ }
1177
+ if (JSON.stringify(oldConfig.toolConfirmation) !== JSON.stringify(newConfig.toolConfirmation)) {
1178
+ changes.push("Tool confirmation");
898
1179
  }
1180
+ if (JSON.stringify(oldConfig.internalTools) !== JSON.stringify(newConfig.internalTools)) {
1181
+ changes.push("Internal tools");
1182
+ }
1183
+ if (JSON.stringify(oldConfig.mcpServers) !== JSON.stringify(newConfig.mcpServers)) {
1184
+ changes.push("MCP servers");
1185
+ }
1186
+ if (oldConfig.llm.provider !== newConfig.llm.provider || oldConfig.llm.model !== newConfig.llm.model || oldConfig.llm.apiKey !== newConfig.llm.apiKey) {
1187
+ changes.push("LLM configuration");
1188
+ }
1189
+ return changes;
899
1190
  }
1191
+ // ============= AGENT MANAGEMENT =============
1192
+ // Note: Agent management methods have been moved to the Dexto orchestrator class.
1193
+ // See: /packages/core/src/Dexto.ts
1194
+ //
1195
+ // For agent lifecycle operations (list, install, uninstall, create), use:
1196
+ // ```typescript
1197
+ // await Dexto.listAgents(); // Static
1198
+ // await Dexto.installAgent(name); // Static
1199
+ // await Dexto.installCustomAgent(name, path, metadata); // Static
1200
+ // await Dexto.uninstallAgent(name); // Static
1201
+ //
1202
+ // const dexto = new Dexto();
1203
+ // await dexto.createAgent(name); // Instance method
1204
+ // ```
900
1205
  // Future methods could encapsulate more complex agent behaviors:
901
1206
  // - Multi-step task execution with progress tracking
902
1207
  // - Memory and context management across sessions