@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
@@ -24,20 +24,71 @@ module.exports = __toCommonJS(manager_exports);
24
24
  var import_mcp_client = require("./mcp-client.js");
25
25
  var import_logger = require("../logger/index.js");
26
26
  var import_errors = require("./errors.js");
27
+ var import_events = require("../events/index.js");
27
28
  class MCPManager {
28
29
  clients = /* @__PURE__ */ new Map();
29
30
  connectionErrors = {};
30
- toolToClientMap = /* @__PURE__ */ new Map();
31
- serverToolsMap = /* @__PURE__ */ new Map();
31
+ toolCache = /* @__PURE__ */ new Map();
32
32
  toolConflicts = /* @__PURE__ */ new Set();
33
- promptToClientMap = /* @__PURE__ */ new Map();
34
- resourceToClientMap = /* @__PURE__ */ new Map();
33
+ // Track which tool names have conflicts
34
+ promptCache = /* @__PURE__ */ new Map();
35
+ resourceCache = /* @__PURE__ */ new Map();
35
36
  sanitizedNameToServerMap = /* @__PURE__ */ new Map();
37
+ approvalManager = null;
38
+ // Will be set by service initializer
36
39
  // Use a distinctive delimiter that won't appear in normal server/tool names
37
40
  // Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
38
41
  static SERVER_DELIMITER = "--";
39
42
  constructor() {
40
43
  }
44
+ /**
45
+ * Set the approval manager for handling elicitation requests from MCP servers
46
+ *
47
+ * TODO: Consider making ApprovalManager a required constructor parameter instead of using a setter.
48
+ * This would make the dependency explicit and remove the need for defensive `if (!approvalManager)` checks.
49
+ * Current setter pattern is useful if we want to expose MCPManager as a standalone service to end-users
50
+ * without requiring them to know about ApprovalManager.
51
+ */
52
+ setApprovalManager(approvalManager) {
53
+ this.approvalManager = approvalManager;
54
+ for (const [_name, client] of this.clients.entries()) {
55
+ if (client instanceof import_mcp_client.MCPClient) {
56
+ client.setApprovalManager(approvalManager);
57
+ }
58
+ }
59
+ }
60
+ buildQualifiedResourceKey(serverName, resourceUri) {
61
+ return `mcp:${serverName}:${resourceUri}`;
62
+ }
63
+ parseQualifiedResourceKey(key) {
64
+ if (!key.startsWith("mcp:")) {
65
+ throw import_errors.MCPError.resourceNotFound(key);
66
+ }
67
+ const [, serverName, ...rest] = key.split(":");
68
+ if (!serverName || rest.length === 0) {
69
+ throw import_errors.MCPError.resourceNotFound(key);
70
+ }
71
+ return { serverName, resourceUri: rest.join(":") };
72
+ }
73
+ removeServerResources(serverName) {
74
+ for (const [key, entry] of Array.from(this.resourceCache.entries())) {
75
+ if (entry.serverName === serverName) {
76
+ this.resourceCache.delete(key);
77
+ }
78
+ }
79
+ }
80
+ getResourceCacheEntry(resourceKey) {
81
+ if (this.resourceCache.has(resourceKey)) {
82
+ return this.resourceCache.get(resourceKey);
83
+ }
84
+ try {
85
+ const { serverName, resourceUri } = this.parseQualifiedResourceKey(resourceKey);
86
+ const canonicalKey = this.buildQualifiedResourceKey(serverName, resourceUri);
87
+ return this.resourceCache.get(canonicalKey);
88
+ } catch {
89
+ return void 0;
90
+ }
91
+ }
41
92
  /**
42
93
  * Register a client that provides tools (and potentially more)
43
94
  * @param name Unique name for the client
@@ -55,53 +106,66 @@ class MCPManager {
55
106
  }
56
107
  this.clients.set(name, client);
57
108
  this.sanitizedNameToServerMap.set(sanitizedName, name);
109
+ this.setupClientNotifications(name, client);
58
110
  import_logger.logger.info(`Registered client: ${name}`);
59
111
  delete this.connectionErrors[name];
60
112
  }
113
+ /**
114
+ * Clears all cached data for a disconnected MCP client
115
+ *
116
+ * Performs comprehensive cleanup of tool, prompt, and resource caches.
117
+ * Uses two-pass algorithm to detect and resolve tool name conflicts:
118
+ * if a conflicted tool now has only one provider, restores simple name.
119
+ *
120
+ * @param clientName - The name/identifier of the MCP server being removed
121
+ * @private
122
+ */
61
123
  clearClientCache(clientName) {
62
124
  const client = this.clients.get(clientName);
63
125
  if (!client) return;
64
- const hadServerTools = this.serverToolsMap.has(clientName);
65
- this.serverToolsMap.delete(clientName);
66
126
  const sanitizedName = this.sanitizeServerName(clientName);
67
127
  if (this.sanitizedNameToServerMap.get(sanitizedName) === clientName) {
68
128
  this.sanitizedNameToServerMap.delete(sanitizedName);
69
129
  }
70
- [this.toolToClientMap, this.promptToClientMap, this.resourceToClientMap].forEach(
71
- (cacheMap) => {
72
- for (const [key, mappedClient] of Array.from(cacheMap.entries())) {
73
- if (mappedClient === client) {
74
- cacheMap.delete(key);
75
- }
76
- }
130
+ const removedToolBaseNames = /* @__PURE__ */ new Set();
131
+ for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
132
+ if (entry.serverName === clientName) {
133
+ const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
134
+ const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
135
+ removedToolBaseNames.add(baseName);
136
+ this.toolCache.delete(toolKey);
77
137
  }
78
- );
79
- if (hadServerTools) {
80
- this.rebuildToolConflicts();
81
138
  }
82
- import_logger.logger.debug(`Cleared cache for client: ${clientName}`);
83
- }
84
- rebuildToolConflicts() {
85
- this.toolConflicts.clear();
86
- const toolCounts = /* @__PURE__ */ new Map();
87
- for (const serverTools of this.serverToolsMap.values()) {
88
- for (const toolName of serverTools.keys()) {
89
- toolCounts.set(toolName, (toolCounts.get(toolName) || 0) + 1);
139
+ for (const baseName of removedToolBaseNames) {
140
+ const remainingTools = Array.from(this.toolCache.entries()).filter(([key, _]) => {
141
+ const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
142
+ const bn = delimiterIndex === -1 ? key : key.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
143
+ return bn === baseName;
144
+ });
145
+ if (remainingTools.length === 0) {
146
+ this.toolConflicts.delete(baseName);
147
+ } else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
148
+ const singleTool = remainingTools[0];
149
+ if (singleTool) {
150
+ const [qualifiedKey, entry] = singleTool;
151
+ this.toolCache.delete(qualifiedKey);
152
+ this.toolCache.set(baseName, entry);
153
+ this.toolConflicts.delete(baseName);
154
+ import_logger.logger.debug(`Restored tool '${baseName}' to simple name (conflict resolved)`);
155
+ }
90
156
  }
91
157
  }
92
- for (const [toolName, count] of toolCounts.entries()) {
93
- if (count > 1) {
94
- this.toolConflicts.add(toolName);
95
- this.toolToClientMap.delete(toolName);
158
+ for (const [promptName, entry] of Array.from(this.promptCache.entries())) {
159
+ if (entry.serverName === clientName) {
160
+ this.promptCache.delete(promptName);
96
161
  }
97
162
  }
98
- for (const [_, serverTools] of this.serverToolsMap.entries()) {
99
- for (const [toolName, client] of serverTools.entries()) {
100
- if (!this.toolConflicts.has(toolName)) {
101
- this.toolToClientMap.set(toolName, client);
102
- }
163
+ for (const [key, entry] of Array.from(this.resourceCache.entries())) {
164
+ if (entry.client === client || entry.serverName === clientName) {
165
+ this.resourceCache.delete(key);
103
166
  }
104
167
  }
168
+ import_logger.logger.debug(`Cleared cache for client: ${clientName}`);
105
169
  }
106
170
  /**
107
171
  * Sanitize server name for use in tool prefixing.
@@ -110,25 +174,80 @@ class MCPManager {
110
174
  sanitizeServerName(serverName) {
111
175
  return serverName.replace(/[^a-zA-Z0-9_-]/g, "_");
112
176
  }
177
+ /**
178
+ * Updates internal caches for a connected MCP client
179
+ *
180
+ * This method performs initial cache population after a client connects.
181
+ * It fetches and caches tools, prompts, and resources from the MCP server,
182
+ * implementing conflict detection and resolution for tool names.
183
+ *
184
+ * @param clientName - The name/identifier of the MCP server
185
+ * @param client - The connected MCP client instance
186
+ *
187
+ * @remarks
188
+ * **Tool Caching:**
189
+ * - Fetches all tools and caches them with full definitions
190
+ * - Detects naming conflicts when multiple servers provide same tool name
191
+ * - On conflict: uses qualified names (`server--toolname`) for all conflicting tools
192
+ * - Updates toolConflicts set to track which base names have conflicts
193
+ *
194
+ * **Prompt Caching:**
195
+ * - Fetches all prompts and their metadata (description, arguments)
196
+ * - Stores full prompt definitions in promptCache for efficient access
197
+ * - Falls back to minimal metadata if full definition fetch fails
198
+ *
199
+ * **Resource Caching:**
200
+ * - Fetches all resource summaries (uri, name, mimeType)
201
+ * - Stores resource metadata in resourceCache for quick lookups
202
+ *
203
+ * **Error Handling:**
204
+ * - Tool fetch errors abort caching entirely (early return)
205
+ * - Prompt/resource errors log warnings but don't block other caching
206
+ * - Individual prompt metadata errors are caught and logged
207
+ *
208
+ * @private
209
+ */
113
210
  async updateClientCache(clientName, client) {
114
- const serverTools = /* @__PURE__ */ new Map();
115
- this.serverToolsMap.set(clientName, serverTools);
116
211
  try {
117
212
  const tools = await client.getTools();
118
213
  import_logger.logger.debug(
119
214
  `\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
120
215
  );
121
216
  for (const toolName in tools) {
122
- serverTools.set(toolName, client);
123
- const existingClient = this.toolToClientMap.get(toolName);
124
- if (existingClient && existingClient !== client) {
217
+ const toolDef = tools[toolName];
218
+ if (!toolDef) continue;
219
+ const existingEntry = this.toolCache.get(toolName);
220
+ if (existingEntry && existingEntry.serverName !== clientName) {
125
221
  this.toolConflicts.add(toolName);
126
- this.toolToClientMap.delete(toolName);
222
+ this.toolCache.delete(toolName);
223
+ const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
224
+ const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
225
+ this.toolCache.set(existingQualified, existingEntry);
226
+ const newSanitized = this.sanitizeServerName(clientName);
227
+ const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
228
+ this.toolCache.set(newQualified, {
229
+ serverName: clientName,
230
+ client,
231
+ definition: toolDef
232
+ });
127
233
  import_logger.logger.warn(
128
- `\u26A0\uFE0F Tool conflict detected for '${toolName}' - will use server prefix`
234
+ `\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
129
235
  );
130
- } else if (!this.toolConflicts.has(toolName)) {
131
- this.toolToClientMap.set(toolName, client);
236
+ } else if (this.toolConflicts.has(toolName)) {
237
+ const sanitizedName = this.sanitizeServerName(clientName);
238
+ const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
239
+ this.toolCache.set(qualifiedName, {
240
+ serverName: clientName,
241
+ client,
242
+ definition: toolDef
243
+ });
244
+ import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
245
+ } else {
246
+ this.toolCache.set(toolName, {
247
+ serverName: clientName,
248
+ client,
249
+ definition: toolDef
250
+ });
132
251
  import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
133
252
  }
134
253
  }
@@ -143,17 +262,33 @@ class MCPManager {
143
262
  }
144
263
  try {
145
264
  const prompts = await client.listPrompts();
146
- prompts.forEach((promptName) => {
147
- this.promptToClientMap.set(promptName, client);
148
- });
149
- import_logger.logger.debug(`Cached prompts for client: ${clientName}`);
265
+ for (const prompt of prompts) {
266
+ const definition = {
267
+ name: prompt.name,
268
+ ...prompt.title && { title: prompt.title },
269
+ ...prompt.description && { description: prompt.description },
270
+ ...prompt.arguments && { arguments: prompt.arguments }
271
+ };
272
+ this.promptCache.set(prompt.name, {
273
+ serverName: clientName,
274
+ client,
275
+ definition
276
+ });
277
+ }
278
+ import_logger.logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
150
279
  } catch (error) {
151
280
  import_logger.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
152
281
  }
153
282
  try {
283
+ this.removeServerResources(clientName);
154
284
  const resources = await client.listResources();
155
- resources.forEach((resourceUri) => {
156
- this.resourceToClientMap.set(resourceUri, client);
285
+ resources.forEach((summary) => {
286
+ const key = this.buildQualifiedResourceKey(clientName, summary.uri);
287
+ this.resourceCache.set(key, {
288
+ serverName: clientName,
289
+ client,
290
+ summary
291
+ });
157
292
  });
158
293
  import_logger.logger.debug(`Cached resources for client: ${clientName}`);
159
294
  } catch (error) {
@@ -161,45 +296,28 @@ class MCPManager {
161
296
  }
162
297
  }
163
298
  /**
164
- * Get all available MCP tools from all connected clients, updating the cache.
165
- * Conflicted tools are prefixed with server name using distinctive delimiter.
299
+ * Get all available MCP tools from cache (no network calls).
300
+ * Conflicted tools are already stored with qualified names.
166
301
  * @returns Promise resolving to a ToolSet mapping tool names to Tool definitions
167
302
  */
168
303
  async getAllTools() {
169
304
  const allTools = {};
170
- const clientToolsCache = /* @__PURE__ */ new Map();
171
- const getClientTools = async (client) => {
172
- if (!clientToolsCache.has(client)) {
173
- const tools = await client.getTools();
174
- clientToolsCache.set(client, tools);
175
- }
176
- return clientToolsCache.get(client);
177
- };
178
- for (const [toolName, client] of Array.from(this.toolToClientMap.entries())) {
179
- const clientTools = await getClientTools(client);
180
- const toolDef = clientTools[toolName];
181
- if (toolDef) {
182
- allTools[toolName] = toolDef;
183
- }
184
- }
185
- for (const [serverName, serverTools] of this.serverToolsMap.entries()) {
186
- for (const [toolName, client] of serverTools.entries()) {
187
- if (this.toolConflicts.has(toolName)) {
188
- const sanitizedServerName = this.sanitizeServerName(serverName);
189
- const qualifiedName = `${sanitizedServerName}${MCPManager.SERVER_DELIMITER}${toolName}`;
190
- const clientTools = await getClientTools(client);
191
- const toolDef = clientTools[toolName];
192
- if (toolDef) {
193
- allTools[qualifiedName] = {
194
- ...toolDef,
195
- description: toolDef.description ? `${toolDef.description} (via ${serverName})` : `Tool from ${serverName}`
196
- };
197
- }
198
- }
305
+ for (const [toolKey, entry] of this.toolCache.entries()) {
306
+ const toolDef = entry.definition;
307
+ if (toolKey.includes(MCPManager.SERVER_DELIMITER)) {
308
+ allTools[toolKey] = {
309
+ ...toolDef,
310
+ description: toolDef.description ? `${toolDef.description} (via ${entry.serverName})` : `Tool from ${entry.serverName}`
311
+ };
312
+ } else {
313
+ allTools[toolKey] = toolDef;
199
314
  }
200
315
  }
316
+ const serverNames = Array.from(
317
+ new Set(Array.from(this.toolCache.values()).map((e) => e.serverName))
318
+ );
201
319
  import_logger.logger.debug(
202
- `\u{1F527} MCP tool discovery: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${Array.from(this.serverToolsMap.keys()).join(", ")}`
320
+ `\u{1F527} MCP tools from cache: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${serverNames.join(", ")}`
203
321
  );
204
322
  if (import_logger.logger.getLevel() === "debug") {
205
323
  Object.keys(allTools).forEach((toolName) => {
@@ -227,7 +345,7 @@ class MCPManager {
227
345
  delimiterIndex + MCPManager.SERVER_DELIMITER.length
228
346
  );
229
347
  const originalServerName = this.sanitizedNameToServerMap.get(serverPrefix);
230
- if (originalServerName && this.serverToolsMap.get(originalServerName)?.has(actualToolName)) {
348
+ if (originalServerName && this.toolCache.has(toolName)) {
231
349
  return { serverName: originalServerName, toolName: actualToolName };
232
350
  }
233
351
  return null;
@@ -239,12 +357,7 @@ class MCPManager {
239
357
  * @returns The client that provides the tool, or undefined if not found
240
358
  */
241
359
  getToolClient(toolName) {
242
- const parsed = this.parseQualifiedToolName(toolName);
243
- if (parsed) {
244
- const serverTools = this.serverToolsMap.get(parsed.serverName);
245
- return serverTools?.get(parsed.toolName);
246
- }
247
- return this.toolToClientMap.get(toolName);
360
+ return this.toolCache.get(toolName)?.client;
248
361
  }
249
362
  /**
250
363
  * Execute a specific MCP tool with the given arguments.
@@ -257,13 +370,8 @@ class MCPManager {
257
370
  const client = this.getToolClient(toolName);
258
371
  if (!client) {
259
372
  import_logger.logger.error(`\u274C No MCP tool found: ${toolName}`);
260
- import_logger.logger.debug(
261
- `Available MCP tools: ${Array.from(this.toolToClientMap.keys()).join(", ")}`
262
- );
373
+ import_logger.logger.debug(`Available MCP tools: ${Array.from(this.toolCache.keys()).join(", ")}`);
263
374
  import_logger.logger.debug(`Conflicted tools: ${Array.from(this.toolConflicts).join(", ")}`);
264
- import_logger.logger.debug(
265
- `Server tools map keys: ${Array.from(this.serverToolsMap.keys()).join(", ")}`
266
- );
267
375
  throw import_errors.MCPError.toolNotFound(toolName);
268
376
  }
269
377
  const parsed = this.parseQualifiedToolName(toolName);
@@ -285,7 +393,7 @@ class MCPManager {
285
393
  * @returns Promise resolving to an array of unique prompt names.
286
394
  */
287
395
  async listAllPrompts() {
288
- return Array.from(this.promptToClientMap.keys());
396
+ return Array.from(this.promptCache.keys());
289
397
  }
290
398
  /**
291
399
  * Get the client that provides a specific prompt from the cache.
@@ -293,7 +401,7 @@ class MCPManager {
293
401
  * @returns The client instance or undefined.
294
402
  */
295
403
  getPromptClient(promptName) {
296
- return this.promptToClientMap.get(promptName);
404
+ return this.promptCache.get(promptName)?.client;
297
405
  }
298
406
  /**
299
407
  * Get a specific prompt definition by name.
@@ -309,31 +417,64 @@ class MCPManager {
309
417
  return await client.getPrompt(name, args);
310
418
  }
311
419
  /**
312
- * Get all available resource URIs from all connected clients, updating the cache.
313
- * @returns Promise resolving to an array of unique resource URIs.
420
+ * Get cached prompt metadata (no network calls).
421
+ * @param promptName Name of the prompt.
422
+ * @returns Cached prompt definition or undefined if not cached.
423
+ */
424
+ getPromptMetadata(promptName) {
425
+ const entry = this.promptCache.get(promptName);
426
+ return entry?.definition;
427
+ }
428
+ /**
429
+ * Get all cached prompt metadata (no network calls).
430
+ * @returns Array of all cached prompt definitions with server info.
431
+ */
432
+ getAllPromptMetadata() {
433
+ return Array.from(this.promptCache.entries()).map(([promptName, entry]) => ({
434
+ promptName,
435
+ serverName: entry.serverName,
436
+ definition: entry.definition
437
+ }));
438
+ }
439
+ /**
440
+ * Get all cached MCP resources (no network calls).
314
441
  */
315
442
  async listAllResources() {
316
- return Array.from(this.resourceToClientMap.keys());
443
+ return Array.from(this.resourceCache.entries()).map(([key, { serverName, summary }]) => ({
444
+ key,
445
+ serverName,
446
+ summary
447
+ }));
317
448
  }
318
449
  /**
319
- * Get the client that provides a specific resource from the cache.
320
- * @param resourceUri URI of the resource.
321
- * @returns The client instance or undefined.
450
+ * Determine if a qualified MCP resource is cached.
451
+ */
452
+ hasResource(resourceKey) {
453
+ return this.getResourceCacheEntry(resourceKey) !== void 0;
454
+ }
455
+ /**
456
+ * Get cached resource metadata by qualified key.
322
457
  */
323
- getResourceClient(resourceUri) {
324
- return this.resourceToClientMap.get(resourceUri);
458
+ getResource(resourceKey) {
459
+ const entry = this.getResourceCacheEntry(resourceKey);
460
+ if (!entry) return void 0;
461
+ return {
462
+ key: resourceKey,
463
+ serverName: entry.serverName,
464
+ summary: entry.summary
465
+ };
325
466
  }
326
467
  /**
327
- * Read a specific resource by URI.
328
- * @param uri URI of the resource.
468
+ * Read a specific resource by qualified URI.
469
+ * @param resourceKey Qualified resource key in the form mcp:server:uri.
329
470
  * @returns Promise resolving to the resource content.
330
471
  */
331
- async readResource(uri) {
332
- const client = this.getResourceClient(uri);
333
- if (!client) {
334
- throw import_errors.MCPError.resourceNotFound(uri);
472
+ async readResource(resourceKey) {
473
+ const entry = this.getResourceCacheEntry(resourceKey);
474
+ if (!entry) {
475
+ throw import_errors.MCPError.resourceNotFound(resourceKey);
335
476
  }
336
- return await client.readResource(uri);
477
+ return await entry.client.readResource(entry.summary.uri);
337
478
  }
338
479
  /**
339
480
  * Initialize clients from server configurations
@@ -390,6 +531,9 @@ class MCPManager {
390
531
  try {
391
532
  import_logger.logger.info(`Attempting to connect to new server '${name}'...`);
392
533
  await client.connect(config, name);
534
+ if (this.approvalManager) {
535
+ client.setApprovalManager(this.approvalManager);
536
+ }
393
537
  this.registerClient(name, client);
394
538
  await this.updateClientCache(name, client);
395
539
  import_logger.logger.info(`Successfully connected and cached new server '${name}'`);
@@ -415,6 +559,20 @@ class MCPManager {
415
559
  getFailedConnections() {
416
560
  return this.connectionErrors;
417
561
  }
562
+ /**
563
+ * Refresh all client caches by re-fetching capabilities from servers
564
+ * Useful when you want to force a full refresh of tools, prompts, and resources
565
+ * In normal operation, caches are automatically kept fresh via server notifications
566
+ */
567
+ async refresh() {
568
+ import_logger.logger.debug("Refreshing all MCPManager caches...");
569
+ const refreshPromises = [];
570
+ for (const [clientName, client] of this.clients.entries()) {
571
+ refreshPromises.push(this.updateClientCache(clientName, client));
572
+ }
573
+ await Promise.all(refreshPromises);
574
+ import_logger.logger.debug(`\u2705 MCPManager cache refresh complete for ${this.clients.size} client(s)`);
575
+ }
418
576
  /**
419
577
  * Disconnect and remove a specific client by name.
420
578
  * @param name The name of the client to remove.
@@ -458,14 +616,204 @@ class MCPManager {
458
616
  await Promise.all(disconnectPromises);
459
617
  this.clients.clear();
460
618
  this.connectionErrors = {};
461
- this.toolToClientMap.clear();
462
- this.serverToolsMap.clear();
619
+ this.toolCache.clear();
463
620
  this.toolConflicts.clear();
464
- this.promptToClientMap.clear();
465
- this.resourceToClientMap.clear();
621
+ this.promptCache.clear();
622
+ this.resourceCache.clear();
466
623
  this.sanitizedNameToServerMap.clear();
467
624
  import_logger.logger.info("Disconnected all clients and cleared caches.");
468
625
  }
626
+ /**
627
+ * Set up notification listeners for a specific client
628
+ */
629
+ setupClientNotifications(clientName, client) {
630
+ try {
631
+ client.on("resourceUpdated", async (params) => {
632
+ import_logger.logger.debug(
633
+ `Received resource update notification from ${clientName}: ${params.uri}`
634
+ );
635
+ await this.handleResourceUpdated(clientName, params);
636
+ });
637
+ client.on("promptsListChanged", async () => {
638
+ import_logger.logger.debug(`Received prompts list change notification from ${clientName}`);
639
+ await this.handlePromptsListChanged(clientName, client);
640
+ });
641
+ client.on("toolsListChanged", async () => {
642
+ import_logger.logger.debug(`Received tools list change notification from ${clientName}`);
643
+ await this.handleToolsListChanged(clientName, client);
644
+ });
645
+ import_logger.logger.debug(`Set up notification listeners for client: ${clientName}`);
646
+ } catch (error) {
647
+ import_logger.logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
648
+ }
649
+ }
650
+ /**
651
+ * Handle resource updated notification
652
+ */
653
+ async handleResourceUpdated(serverName, params) {
654
+ try {
655
+ const client = this.clients.get(serverName);
656
+ if (client) {
657
+ const key = this.buildQualifiedResourceKey(serverName, params.uri);
658
+ try {
659
+ const resources = await client.listResources();
660
+ const updatedResource = resources.find((r) => r.uri === params.uri);
661
+ if (updatedResource) {
662
+ this.resourceCache.set(key, {
663
+ serverName,
664
+ client,
665
+ summary: updatedResource
666
+ });
667
+ import_logger.logger.debug(`Updated resource cache for: ${params.uri}`);
668
+ }
669
+ } catch (error) {
670
+ import_logger.logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
671
+ }
672
+ }
673
+ import_events.eventBus.emit("dexto:mcpResourceUpdated", {
674
+ serverName,
675
+ resourceUri: params.uri
676
+ });
677
+ } catch (error) {
678
+ import_logger.logger.error(`Error handling resource update: ${error}`);
679
+ }
680
+ }
681
+ /**
682
+ * Handle prompts list changed notification
683
+ */
684
+ async handlePromptsListChanged(serverName, client) {
685
+ try {
686
+ const existingPrompts = Array.from(this.promptCache.entries()).filter(([_, entry]) => entry.client === client).map(([promptName]) => promptName);
687
+ existingPrompts.forEach((promptName) => {
688
+ this.promptCache.delete(promptName);
689
+ });
690
+ try {
691
+ const newPrompts = await client.listPrompts();
692
+ for (const prompt of newPrompts) {
693
+ const definition = {
694
+ name: prompt.name,
695
+ ...prompt.title && { title: prompt.title },
696
+ ...prompt.description && { description: prompt.description },
697
+ ...prompt.arguments && { arguments: prompt.arguments }
698
+ };
699
+ this.promptCache.set(prompt.name, {
700
+ serverName,
701
+ client,
702
+ definition
703
+ });
704
+ }
705
+ const promptNames = newPrompts.map((p) => p.name);
706
+ import_logger.logger.debug(
707
+ `Updated prompts cache for ${serverName}: [${promptNames.join(", ")}]`
708
+ );
709
+ import_events.eventBus.emit("dexto:mcpPromptsListChanged", {
710
+ serverName,
711
+ prompts: promptNames
712
+ });
713
+ } catch (error) {
714
+ import_logger.logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
715
+ }
716
+ } catch (error) {
717
+ import_logger.logger.error(`Error handling prompts list change: ${error}`);
718
+ }
719
+ }
720
+ /**
721
+ * Handle tools list changed notification
722
+ */
723
+ async handleToolsListChanged(serverName, client) {
724
+ try {
725
+ const removedToolBaseNames = /* @__PURE__ */ new Set();
726
+ for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
727
+ if (entry.serverName === serverName) {
728
+ const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
729
+ const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(
730
+ delimiterIndex + MCPManager.SERVER_DELIMITER.length
731
+ );
732
+ removedToolBaseNames.add(baseName);
733
+ this.toolCache.delete(toolKey);
734
+ }
735
+ }
736
+ try {
737
+ const tools = await client.getTools();
738
+ const toolNames = Object.keys(tools);
739
+ import_logger.logger.debug(
740
+ `\u{1F527} Refreshing tools from server '${serverName}': [${toolNames.join(", ")}]`
741
+ );
742
+ for (const toolName in tools) {
743
+ const toolDef = tools[toolName];
744
+ if (!toolDef) continue;
745
+ const existingEntry = this.toolCache.get(toolName);
746
+ if (existingEntry && existingEntry.serverName !== serverName) {
747
+ this.toolConflicts.add(toolName);
748
+ this.toolCache.delete(toolName);
749
+ const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
750
+ const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
751
+ this.toolCache.set(existingQualified, existingEntry);
752
+ const newSanitized = this.sanitizeServerName(serverName);
753
+ const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
754
+ this.toolCache.set(newQualified, {
755
+ serverName,
756
+ client,
757
+ definition: toolDef
758
+ });
759
+ import_logger.logger.warn(
760
+ `\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
761
+ );
762
+ } else if (this.toolConflicts.has(toolName)) {
763
+ const sanitizedName = this.sanitizeServerName(serverName);
764
+ const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
765
+ this.toolCache.set(qualifiedName, {
766
+ serverName,
767
+ client,
768
+ definition: toolDef
769
+ });
770
+ import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
771
+ } else {
772
+ this.toolCache.set(toolName, {
773
+ serverName,
774
+ client,
775
+ definition: toolDef
776
+ });
777
+ import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
778
+ }
779
+ }
780
+ for (const baseName of removedToolBaseNames) {
781
+ const remainingTools = Array.from(this.toolCache.entries()).filter(
782
+ ([key, _]) => {
783
+ const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
784
+ const bn = delimiterIndex === -1 ? key : key.substring(
785
+ delimiterIndex + MCPManager.SERVER_DELIMITER.length
786
+ );
787
+ return bn === baseName;
788
+ }
789
+ );
790
+ if (remainingTools.length === 0) {
791
+ this.toolConflicts.delete(baseName);
792
+ } else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
793
+ const singleTool = remainingTools[0];
794
+ if (singleTool) {
795
+ const [qualifiedKey, entry] = singleTool;
796
+ this.toolCache.delete(qualifiedKey);
797
+ this.toolCache.set(baseName, entry);
798
+ this.toolConflicts.delete(baseName);
799
+ import_logger.logger.debug(
800
+ `Restored tool '${baseName}' to simple name (conflict resolved)`
801
+ );
802
+ }
803
+ }
804
+ }
805
+ import_logger.logger.debug(`Updated tools cache for ${serverName}: [${toolNames.join(", ")}]`);
806
+ import_events.eventBus.emit("dexto:mcpToolsListChanged", {
807
+ serverName,
808
+ tools: toolNames
809
+ });
810
+ } catch (error) {
811
+ import_logger.logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
812
+ }
813
+ } catch (error) {
814
+ import_logger.logger.error(`Error handling tools list change: ${error}`);
815
+ }
816
+ }
469
817
  }
470
818
  // Annotate the CommonJS export names for ESM import in node:
471
819
  0 && (module.exports = {