@dexto/core 1.1.10 → 1.2.0

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 (1005) hide show
  1. package/README.md +24 -4
  2. package/dist/Dexto.cjs +251 -0
  3. package/dist/Dexto.d.ts +191 -0
  4. package/dist/Dexto.d.ts.map +1 -0
  5. package/dist/Dexto.js +228 -0
  6. package/dist/agent/DextoAgent.cjs +520 -126
  7. package/dist/agent/DextoAgent.d.ts +182 -106
  8. package/dist/agent/DextoAgent.d.ts.map +1 -0
  9. package/dist/agent/DextoAgent.js +480 -126
  10. package/dist/agent/agentCard.d.ts +4 -7
  11. package/dist/agent/agentCard.d.ts.map +1 -0
  12. package/dist/agent/agentCard.js +1 -0
  13. package/dist/agent/error-codes.cjs +3 -0
  14. package/dist/agent/error-codes.d.ts +5 -3
  15. package/dist/agent/error-codes.d.ts.map +1 -0
  16. package/dist/agent/error-codes.js +4 -0
  17. package/dist/agent/errors.cjs +26 -0
  18. package/dist/agent/errors.d.ts +10 -17
  19. package/dist/agent/errors.d.ts.map +1 -0
  20. package/dist/agent/errors.js +27 -0
  21. package/dist/agent/index.cjs +3 -0
  22. package/dist/agent/index.d.ts +6 -57
  23. package/dist/agent/index.d.ts.map +1 -0
  24. package/dist/agent/index.js +3 -0
  25. package/dist/agent/registry/error-codes.cjs +2 -0
  26. package/dist/agent/registry/error-codes.d.ts +4 -3
  27. package/dist/agent/registry/error-codes.d.ts.map +1 -0
  28. package/dist/agent/registry/error-codes.js +3 -0
  29. package/dist/agent/registry/errors.cjs +58 -28
  30. package/dist/agent/registry/errors.d.ts +32 -36
  31. package/dist/agent/registry/errors.d.ts.map +1 -0
  32. package/dist/agent/registry/errors.js +59 -28
  33. package/dist/agent/registry/registry.cjs +242 -54
  34. package/dist/agent/registry/registry.d.ts +84 -21
  35. package/dist/agent/registry/registry.d.ts.map +1 -0
  36. package/dist/agent/registry/registry.js +252 -55
  37. package/dist/agent/registry/types.cjs +36 -3
  38. package/dist/agent/registry/types.d.ts +66 -24
  39. package/dist/agent/registry/types.d.ts.map +1 -0
  40. package/dist/agent/registry/types.js +34 -2
  41. package/dist/agent/registry/user-registry.cjs +140 -0
  42. package/dist/agent/registry/user-registry.d.ts +34 -0
  43. package/dist/agent/registry/user-registry.d.ts.map +1 -0
  44. package/dist/agent/registry/user-registry.js +105 -0
  45. package/dist/agent/schemas.cjs +22 -3
  46. package/dist/agent/schemas.d.ts +811 -479
  47. package/dist/agent/schemas.d.ts.map +1 -0
  48. package/dist/agent/schemas.js +23 -3
  49. package/dist/agent/state-manager.d.ts +7 -12
  50. package/dist/agent/state-manager.d.ts.map +1 -0
  51. package/dist/agent/state-manager.js +1 -0
  52. package/dist/approval/error-codes.cjs +44 -0
  53. package/dist/approval/error-codes.d.ts +21 -0
  54. package/dist/approval/error-codes.d.ts.map +1 -0
  55. package/dist/approval/error-codes.js +21 -0
  56. package/dist/approval/errors.cjs +251 -0
  57. package/dist/approval/errors.d.ts +110 -0
  58. package/dist/approval/errors.d.ts.map +1 -0
  59. package/dist/approval/errors.js +228 -0
  60. package/dist/approval/index.cjs +84 -0
  61. package/dist/approval/index.d.ts +12 -0
  62. package/dist/approval/index.d.ts.map +1 -0
  63. package/dist/approval/index.js +56 -0
  64. package/dist/approval/manager.cjs +189 -0
  65. package/dist/approval/manager.d.ts +131 -0
  66. package/dist/approval/manager.d.ts.map +1 -0
  67. package/dist/approval/manager.js +166 -0
  68. package/dist/approval/providers/event-based-approval-provider.cjs +156 -0
  69. package/dist/approval/providers/event-based-approval-provider.d.ts +39 -0
  70. package/dist/approval/providers/event-based-approval-provider.d.ts.map +1 -0
  71. package/dist/approval/providers/event-based-approval-provider.js +133 -0
  72. package/dist/approval/providers/factory.cjs +38 -0
  73. package/dist/approval/providers/factory.d.ts +12 -0
  74. package/dist/approval/providers/factory.d.ts.map +1 -0
  75. package/dist/approval/providers/factory.js +15 -0
  76. package/dist/approval/providers/noop-approval-provider.cjs +54 -0
  77. package/dist/approval/providers/noop-approval-provider.d.ts +18 -0
  78. package/dist/approval/providers/noop-approval-provider.d.ts.map +1 -0
  79. package/dist/approval/providers/noop-approval-provider.js +31 -0
  80. package/dist/approval/schemas.cjs +204 -0
  81. package/dist/approval/schemas.d.ts +775 -0
  82. package/dist/approval/schemas.d.ts.map +1 -0
  83. package/dist/approval/schemas.js +159 -0
  84. package/dist/approval/types.cjs +42 -0
  85. package/dist/approval/types.d.ts +166 -0
  86. package/dist/approval/types.d.ts.map +1 -0
  87. package/dist/approval/types.js +18 -0
  88. package/dist/chunk-C6A6W6XS.js +53 -0
  89. package/dist/config/agent-resolver.d.ts +3 -4
  90. package/dist/config/agent-resolver.d.ts.map +1 -0
  91. package/dist/config/agent-resolver.js +1 -0
  92. package/dist/config/error-codes.d.ts +2 -3
  93. package/dist/config/error-codes.d.ts.map +1 -0
  94. package/dist/config/error-codes.js +1 -0
  95. package/dist/config/errors.d.ts +3 -18
  96. package/dist/config/errors.d.ts.map +1 -0
  97. package/dist/config/errors.js +1 -0
  98. package/dist/config/index.d.ts +4 -7
  99. package/dist/config/index.d.ts.map +1 -0
  100. package/dist/config/loader.d.ts +2 -5
  101. package/dist/config/loader.d.ts.map +1 -0
  102. package/dist/config/loader.js +1 -0
  103. package/dist/config/writer.d.ts +8 -11
  104. package/dist/config/writer.d.ts.map +1 -0
  105. package/dist/config/writer.js +1 -0
  106. package/dist/context/compression/middle-removal.d.ts +3 -6
  107. package/dist/context/compression/middle-removal.d.ts.map +1 -0
  108. package/dist/context/compression/middle-removal.js +1 -0
  109. package/dist/context/compression/oldest-removal.d.ts +3 -6
  110. package/dist/context/compression/oldest-removal.d.ts.map +1 -0
  111. package/dist/context/compression/oldest-removal.js +1 -0
  112. package/dist/context/compression/types.d.ts +2 -5
  113. package/dist/context/compression/types.d.ts.map +1 -0
  114. package/dist/context/error-codes.d.ts +2 -3
  115. package/dist/context/error-codes.d.ts.map +1 -0
  116. package/dist/context/error-codes.js +1 -0
  117. package/dist/context/errors.d.ts +3 -18
  118. package/dist/context/errors.d.ts.map +1 -0
  119. package/dist/context/errors.js +1 -0
  120. package/dist/context/index.cjs +11 -0
  121. package/dist/context/index.d.ts +4 -19
  122. package/dist/context/index.d.ts.map +1 -0
  123. package/dist/context/index.js +6 -0
  124. package/dist/context/manager.cjs +156 -24
  125. package/dist/context/manager.d.ts +28 -20
  126. package/dist/context/manager.d.ts.map +1 -0
  127. package/dist/context/manager.js +153 -25
  128. package/dist/context/media-helpers.cjs +40 -0
  129. package/dist/context/media-helpers.d.ts +15 -0
  130. package/dist/context/media-helpers.d.ts.map +1 -0
  131. package/dist/context/media-helpers.js +16 -0
  132. package/dist/context/types.d.ts +27 -10
  133. package/dist/context/types.d.ts.map +1 -0
  134. package/dist/context/utils.cjs +907 -71
  135. package/dist/context/utils.d.ts +111 -15
  136. package/dist/context/utils.d.ts.map +1 -0
  137. package/dist/context/utils.js +896 -70
  138. package/dist/errors/DextoBaseError.d.ts +2 -3
  139. package/dist/errors/DextoBaseError.d.ts.map +1 -0
  140. package/dist/errors/DextoBaseError.js +1 -0
  141. package/dist/errors/DextoRuntimeError.d.ts +5 -16
  142. package/dist/errors/DextoRuntimeError.d.ts.map +1 -0
  143. package/dist/errors/DextoRuntimeError.js +1 -0
  144. package/dist/errors/DextoValidationError.d.ts +3 -16
  145. package/dist/errors/DextoValidationError.d.ts.map +1 -0
  146. package/dist/errors/DextoValidationError.js +1 -0
  147. package/dist/errors/index.d.ts +7 -14
  148. package/dist/errors/index.d.ts.map +1 -0
  149. package/dist/errors/index.js +1 -0
  150. package/dist/errors/result-bridge.d.ts +3 -18
  151. package/dist/errors/result-bridge.d.ts.map +1 -0
  152. package/dist/errors/result-bridge.js +1 -0
  153. package/dist/errors/types.cjs +7 -0
  154. package/dist/errors/types.d.ts +32 -20
  155. package/dist/errors/types.d.ts.map +1 -0
  156. package/dist/errors/types.js +8 -0
  157. package/dist/events/index.cjs +9 -3
  158. package/dist/events/index.d.ts +67 -35
  159. package/dist/events/index.d.ts.map +1 -0
  160. package/dist/events/index.js +10 -3
  161. package/dist/filesystem/error-codes.cjs +53 -0
  162. package/dist/filesystem/error-codes.d.ts +31 -0
  163. package/dist/filesystem/error-codes.d.ts.map +1 -0
  164. package/dist/filesystem/error-codes.js +30 -0
  165. package/dist/filesystem/errors.cjs +303 -0
  166. package/dist/filesystem/errors.d.ts +109 -0
  167. package/dist/filesystem/errors.d.ts.map +1 -0
  168. package/dist/filesystem/errors.js +280 -0
  169. package/dist/filesystem/filesystem-service.cjs +482 -0
  170. package/dist/filesystem/filesystem-service.d.ts +57 -0
  171. package/dist/filesystem/filesystem-service.d.ts.map +1 -0
  172. package/dist/filesystem/filesystem-service.js +449 -0
  173. package/dist/filesystem/index.cjs +37 -0
  174. package/dist/filesystem/index.d.ts +11 -0
  175. package/dist/filesystem/index.d.ts.map +1 -0
  176. package/dist/filesystem/index.js +11 -0
  177. package/dist/filesystem/path-validator.cjs +172 -0
  178. package/dist/filesystem/path-validator.d.ts +53 -0
  179. package/dist/filesystem/path-validator.d.ts.map +1 -0
  180. package/dist/filesystem/path-validator.js +139 -0
  181. package/dist/filesystem/types.d.ts +171 -0
  182. package/dist/filesystem/types.d.ts.map +1 -0
  183. package/dist/index.browser.cjs +36 -0
  184. package/dist/index.browser.d.ts +24 -51
  185. package/dist/index.browser.d.ts.map +1 -0
  186. package/dist/index.browser.js +35 -1
  187. package/dist/index.cjs +29 -1
  188. package/dist/index.d.ts +34 -89
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +15 -0
  191. package/dist/llm/error-codes.d.ts +2 -3
  192. package/dist/llm/error-codes.d.ts.map +1 -0
  193. package/dist/llm/error-codes.js +1 -0
  194. package/dist/llm/errors.d.ts +3 -18
  195. package/dist/llm/errors.d.ts.map +1 -0
  196. package/dist/llm/errors.js +1 -0
  197. package/dist/llm/formatters/anthropic.d.ts +2 -4
  198. package/dist/llm/formatters/anthropic.d.ts.map +1 -0
  199. package/dist/llm/formatters/anthropic.js +1 -0
  200. package/dist/llm/formatters/factory.d.ts +3 -6
  201. package/dist/llm/formatters/factory.d.ts.map +1 -0
  202. package/dist/llm/formatters/factory.js +1 -0
  203. package/dist/llm/formatters/openai.d.ts +2 -4
  204. package/dist/llm/formatters/openai.d.ts.map +1 -0
  205. package/dist/llm/formatters/openai.js +1 -0
  206. package/dist/llm/formatters/types.d.ts +2 -4
  207. package/dist/llm/formatters/types.d.ts.map +1 -0
  208. package/dist/llm/formatters/vercel.d.ts +6 -7
  209. package/dist/llm/formatters/vercel.d.ts.map +1 -0
  210. package/dist/llm/formatters/vercel.js +1 -0
  211. package/dist/llm/index.d.ts +8 -39
  212. package/dist/llm/index.d.ts.map +1 -0
  213. package/dist/llm/registry.cjs +30 -16
  214. package/dist/llm/registry.d.ts +27 -30
  215. package/dist/llm/registry.d.ts.map +1 -0
  216. package/dist/llm/registry.js +31 -16
  217. package/dist/llm/resolver.d.ts +6 -20
  218. package/dist/llm/resolver.d.ts.map +1 -0
  219. package/dist/llm/resolver.js +1 -0
  220. package/dist/llm/schemas.cjs +6 -2
  221. package/dist/llm/schemas.d.ts +25 -17
  222. package/dist/llm/schemas.d.ts.map +1 -0
  223. package/dist/llm/schemas.js +7 -2
  224. package/dist/llm/services/anthropic.cjs +91 -11
  225. package/dist/llm/services/anthropic.d.ts +13 -32
  226. package/dist/llm/services/anthropic.d.ts.map +1 -0
  227. package/dist/llm/services/anthropic.js +51 -11
  228. package/dist/llm/services/factory.cjs +21 -15
  229. package/dist/llm/services/factory.d.ts +5 -32
  230. package/dist/llm/services/factory.d.ts.map +1 -0
  231. package/dist/llm/services/factory.js +22 -15
  232. package/dist/llm/services/index.d.ts +2 -21
  233. package/dist/llm/services/index.d.ts.map +1 -0
  234. package/dist/llm/services/openai.cjs +120 -16
  235. package/dist/llm/services/openai.d.ts +13 -32
  236. package/dist/llm/services/openai.d.ts.map +1 -0
  237. package/dist/llm/services/openai.js +80 -16
  238. package/dist/llm/services/test-utils.integration.cjs +3 -3
  239. package/dist/llm/services/test-utils.integration.d.ts +8 -49
  240. package/dist/llm/services/test-utils.integration.d.ts.map +1 -0
  241. package/dist/llm/services/test-utils.integration.js +4 -3
  242. package/dist/llm/services/types.d.ts +5 -22
  243. package/dist/llm/services/types.d.ts.map +1 -0
  244. package/dist/llm/services/vercel.cjs +152 -74
  245. package/dist/llm/services/vercel.d.ts +18 -36
  246. package/dist/llm/services/vercel.d.ts.map +1 -0
  247. package/dist/llm/services/vercel.js +113 -75
  248. package/dist/llm/tokenizer/anthropic.d.ts +2 -4
  249. package/dist/llm/tokenizer/anthropic.d.ts.map +1 -0
  250. package/dist/llm/tokenizer/anthropic.js +1 -0
  251. package/dist/llm/tokenizer/default.d.ts +2 -4
  252. package/dist/llm/tokenizer/default.d.ts.map +1 -0
  253. package/dist/llm/tokenizer/default.js +1 -0
  254. package/dist/llm/tokenizer/factory.d.ts +3 -5
  255. package/dist/llm/tokenizer/factory.d.ts.map +1 -0
  256. package/dist/llm/tokenizer/factory.js +1 -0
  257. package/dist/llm/tokenizer/google.d.ts +2 -4
  258. package/dist/llm/tokenizer/google.d.ts.map +1 -0
  259. package/dist/llm/tokenizer/google.js +1 -0
  260. package/dist/llm/tokenizer/openai.cjs +1 -1
  261. package/dist/llm/tokenizer/openai.d.ts +3 -5
  262. package/dist/llm/tokenizer/openai.d.ts.map +1 -0
  263. package/dist/llm/tokenizer/openai.js +2 -1
  264. package/dist/llm/tokenizer/types.d.ts +3 -4
  265. package/dist/llm/tokenizer/types.d.ts.map +1 -0
  266. package/dist/llm/tokenizer/types.js +1 -0
  267. package/dist/llm/types.d.ts +11 -12
  268. package/dist/llm/types.d.ts.map +1 -0
  269. package/dist/llm/types.js +1 -0
  270. package/dist/llm/validation.d.ts +8 -23
  271. package/dist/llm/validation.d.ts.map +1 -0
  272. package/dist/llm/validation.js +1 -0
  273. package/dist/logger/browser.d.ts +4 -5
  274. package/dist/logger/browser.d.ts.map +1 -0
  275. package/dist/logger/browser.js +1 -0
  276. package/dist/logger/index.d.ts +2 -1
  277. package/dist/logger/index.d.ts.map +1 -0
  278. package/dist/logger/logger.cjs +35 -7
  279. package/dist/logger/logger.d.ts +47 -5
  280. package/dist/logger/logger.d.ts.map +1 -0
  281. package/dist/logger/logger.js +36 -7
  282. package/dist/mcp/error-codes.cjs +1 -0
  283. package/dist/mcp/error-codes.d.ts +3 -3
  284. package/dist/mcp/error-codes.d.ts.map +1 -0
  285. package/dist/mcp/error-codes.js +2 -0
  286. package/dist/mcp/errors.cjs +12 -0
  287. package/dist/mcp/errors.d.ts +9 -17
  288. package/dist/mcp/errors.d.ts.map +1 -0
  289. package/dist/mcp/errors.js +13 -0
  290. package/dist/mcp/index.d.ts +8 -26
  291. package/dist/mcp/index.d.ts.map +1 -0
  292. package/dist/mcp/manager.cjs +528 -130
  293. package/dist/mcp/manager.d.ts +124 -58
  294. package/dist/mcp/manager.d.ts.map +1 -0
  295. package/dist/mcp/manager.js +529 -130
  296. package/dist/mcp/mcp-client.cjs +172 -10
  297. package/dist/mcp/mcp-client.d.ts +36 -14
  298. package/dist/mcp/mcp-client.d.ts.map +1 -0
  299. package/dist/mcp/mcp-client.js +177 -10
  300. package/dist/mcp/resolver.d.ts +5 -20
  301. package/dist/mcp/resolver.d.ts.map +1 -0
  302. package/dist/mcp/resolver.js +1 -0
  303. package/dist/mcp/schemas.cjs +13 -5
  304. package/dist/mcp/schemas.d.ts +31 -28
  305. package/dist/mcp/schemas.d.ts.map +1 -0
  306. package/dist/mcp/schemas.js +11 -5
  307. package/dist/mcp/types.d.ts +19 -11
  308. package/dist/mcp/types.d.ts.map +1 -0
  309. package/dist/memory/error-codes.cjs +39 -0
  310. package/dist/memory/error-codes.d.ts +15 -0
  311. package/dist/memory/error-codes.d.ts.map +1 -0
  312. package/dist/memory/error-codes.js +16 -0
  313. package/dist/memory/errors.cjs +112 -0
  314. package/dist/memory/errors.d.ts +16 -0
  315. package/dist/memory/errors.d.ts.map +1 -0
  316. package/dist/memory/errors.js +89 -0
  317. package/dist/memory/index.cjs +43 -0
  318. package/dist/memory/index.d.ts +6 -0
  319. package/dist/memory/index.d.ts.map +1 -0
  320. package/dist/memory/index.js +19 -0
  321. package/dist/memory/manager.cjs +214 -0
  322. package/dist/memory/manager.d.ts +56 -0
  323. package/dist/memory/manager.d.ts.map +1 -0
  324. package/dist/memory/manager.js +196 -0
  325. package/dist/memory/schemas.cjs +82 -0
  326. package/dist/memory/schemas.d.ts +129 -0
  327. package/dist/memory/schemas.d.ts.map +1 -0
  328. package/dist/memory/schemas.js +54 -0
  329. package/dist/memory/types.d.ts +76 -0
  330. package/dist/memory/types.d.ts.map +1 -0
  331. package/dist/plugins/builtins/content-policy.cjs +112 -0
  332. package/dist/plugins/builtins/content-policy.d.ts +26 -0
  333. package/dist/plugins/builtins/content-policy.d.ts.map +1 -0
  334. package/dist/plugins/builtins/content-policy.js +89 -0
  335. package/dist/plugins/builtins/response-sanitizer.cjs +102 -0
  336. package/dist/plugins/builtins/response-sanitizer.d.ts +25 -0
  337. package/dist/plugins/builtins/response-sanitizer.d.ts.map +1 -0
  338. package/dist/plugins/builtins/response-sanitizer.js +79 -0
  339. package/dist/plugins/error-codes.cjs +39 -0
  340. package/dist/plugins/error-codes.d.ts +26 -0
  341. package/dist/plugins/error-codes.d.ts.map +1 -0
  342. package/dist/plugins/error-codes.js +16 -0
  343. package/dist/plugins/index.cjs +54 -0
  344. package/dist/plugins/index.d.ts +19 -0
  345. package/dist/plugins/index.d.ts.map +1 -0
  346. package/dist/plugins/index.js +25 -0
  347. package/dist/plugins/loader.cjs +151 -0
  348. package/dist/plugins/loader.d.ts +30 -0
  349. package/dist/plugins/loader.d.ts.map +1 -0
  350. package/dist/plugins/loader.js +125 -0
  351. package/dist/plugins/manager.cjs +386 -0
  352. package/dist/plugins/manager.d.ts +97 -0
  353. package/dist/plugins/manager.d.ts.map +1 -0
  354. package/dist/plugins/manager.js +363 -0
  355. package/dist/plugins/registrations/builtins.cjs +51 -0
  356. package/dist/plugins/registrations/builtins.d.ts +17 -0
  357. package/dist/plugins/registrations/builtins.d.ts.map +1 -0
  358. package/dist/plugins/registrations/builtins.js +28 -0
  359. package/dist/plugins/schemas.cjs +61 -0
  360. package/dist/plugins/schemas.d.ts +138 -0
  361. package/dist/plugins/schemas.d.ts.map +1 -0
  362. package/dist/plugins/schemas.js +36 -0
  363. package/dist/{storage/backend/cache-backend.cjs → plugins/types.cjs} +2 -2
  364. package/dist/plugins/types.d.ts +152 -0
  365. package/dist/plugins/types.d.ts.map +1 -0
  366. package/dist/preferences/constants.d.ts +2 -3
  367. package/dist/preferences/constants.d.ts.map +1 -0
  368. package/dist/preferences/constants.js +1 -0
  369. package/dist/preferences/error-codes.d.ts +2 -3
  370. package/dist/preferences/error-codes.d.ts.map +1 -0
  371. package/dist/preferences/error-codes.js +1 -0
  372. package/dist/preferences/errors.d.ts +4 -19
  373. package/dist/preferences/errors.d.ts.map +1 -0
  374. package/dist/preferences/errors.js +1 -0
  375. package/dist/preferences/index.d.ts +5 -20
  376. package/dist/preferences/index.d.ts.map +1 -0
  377. package/dist/preferences/index.js +1 -0
  378. package/dist/preferences/loader.cjs +3 -1
  379. package/dist/preferences/loader.d.ts +18 -12
  380. package/dist/preferences/loader.d.ts.map +1 -0
  381. package/dist/preferences/loader.js +4 -1
  382. package/dist/preferences/schemas.cjs +2 -1
  383. package/dist/preferences/schemas.d.ts +27 -21
  384. package/dist/preferences/schemas.d.ts.map +1 -0
  385. package/dist/preferences/schemas.js +3 -1
  386. package/dist/process/command-validator.cjs +544 -0
  387. package/dist/process/command-validator.d.ts +46 -0
  388. package/dist/process/command-validator.d.ts.map +1 -0
  389. package/dist/process/command-validator.js +521 -0
  390. package/dist/process/error-codes.cjs +47 -0
  391. package/dist/process/error-codes.d.ts +25 -0
  392. package/dist/process/error-codes.d.ts.map +1 -0
  393. package/dist/process/error-codes.js +24 -0
  394. package/dist/process/errors.cjs +244 -0
  395. package/dist/process/errors.d.ts +87 -0
  396. package/dist/process/errors.d.ts.map +1 -0
  397. package/dist/process/errors.js +221 -0
  398. package/dist/process/index.cjs +37 -0
  399. package/dist/process/index.d.ts +11 -0
  400. package/dist/process/index.d.ts.map +1 -0
  401. package/dist/process/index.js +11 -0
  402. package/dist/process/process-service.cjs +443 -0
  403. package/dist/process/process-service.d.ts +62 -0
  404. package/dist/process/process-service.d.ts.map +1 -0
  405. package/dist/process/process-service.js +410 -0
  406. package/dist/{storage/backend/database-backend.cjs → process/types.cjs} +2 -2
  407. package/dist/process/types.d.ts +107 -0
  408. package/dist/process/types.d.ts.map +1 -0
  409. package/dist/prompts/error-codes.cjs +38 -0
  410. package/dist/prompts/error-codes.d.ts +15 -0
  411. package/dist/prompts/error-codes.d.ts.map +1 -0
  412. package/dist/prompts/error-codes.js +15 -0
  413. package/dist/prompts/errors.cjs +144 -0
  414. package/dist/prompts/errors.d.ts +45 -0
  415. package/dist/prompts/errors.d.ts.map +1 -0
  416. package/dist/prompts/errors.js +121 -0
  417. package/dist/prompts/index.cjs +53 -0
  418. package/dist/prompts/index.d.ts +13 -0
  419. package/dist/prompts/index.d.ts.map +1 -0
  420. package/dist/prompts/index.js +21 -0
  421. package/dist/prompts/name-validation.cjs +45 -0
  422. package/dist/prompts/name-validation.d.ts +9 -0
  423. package/dist/prompts/name-validation.d.ts.map +1 -0
  424. package/dist/prompts/name-validation.js +19 -0
  425. package/dist/prompts/prompt-manager.cjs +374 -0
  426. package/dist/prompts/prompt-manager.d.ts +74 -0
  427. package/dist/prompts/prompt-manager.d.ts.map +1 -0
  428. package/dist/prompts/prompt-manager.js +353 -0
  429. package/dist/prompts/providers/custom-prompt-provider.cjs +283 -0
  430. package/dist/prompts/providers/custom-prompt-provider.d.ts +36 -0
  431. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -0
  432. package/dist/prompts/providers/custom-prompt-provider.js +260 -0
  433. package/dist/prompts/providers/file-prompt-provider.cjs +399 -0
  434. package/dist/prompts/providers/file-prompt-provider.d.ts +47 -0
  435. package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -0
  436. package/dist/prompts/providers/file-prompt-provider.js +376 -0
  437. package/dist/prompts/providers/mcp-prompt-provider.cjs +102 -0
  438. package/dist/prompts/providers/mcp-prompt-provider.d.ts +35 -0
  439. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -0
  440. package/dist/prompts/providers/mcp-prompt-provider.js +79 -0
  441. package/dist/prompts/providers/starter-prompt-provider.cjs +170 -0
  442. package/dist/prompts/providers/starter-prompt-provider.d.ts +45 -0
  443. package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -0
  444. package/dist/prompts/providers/starter-prompt-provider.js +147 -0
  445. package/dist/prompts/schemas.cjs +54 -0
  446. package/dist/prompts/schemas.d.ts +65 -0
  447. package/dist/prompts/schemas.d.ts.map +1 -0
  448. package/dist/prompts/schemas.js +31 -0
  449. package/dist/prompts/types.cjs +16 -0
  450. package/dist/prompts/types.d.ts +64 -0
  451. package/dist/prompts/types.d.ts.map +1 -0
  452. package/dist/prompts/types.js +0 -0
  453. package/dist/prompts/utils.cjs +176 -0
  454. package/dist/prompts/utils.d.ts +32 -0
  455. package/dist/prompts/utils.d.ts.map +1 -0
  456. package/dist/prompts/utils.js +150 -0
  457. package/dist/resources/error-codes.cjs +38 -0
  458. package/dist/resources/error-codes.d.ts +13 -0
  459. package/dist/resources/error-codes.d.ts.map +1 -0
  460. package/dist/resources/error-codes.js +15 -0
  461. package/dist/resources/errors.cjs +155 -0
  462. package/dist/resources/errors.d.ts +48 -0
  463. package/dist/resources/errors.d.ts.map +1 -0
  464. package/dist/resources/errors.js +132 -0
  465. package/dist/resources/handlers/blob-handler.cjs +230 -0
  466. package/dist/resources/handlers/blob-handler.d.ts +38 -0
  467. package/dist/resources/handlers/blob-handler.d.ts.map +1 -0
  468. package/dist/resources/handlers/blob-handler.js +207 -0
  469. package/dist/resources/handlers/factory.cjs +50 -0
  470. package/dist/resources/handlers/factory.d.ts +11 -0
  471. package/dist/resources/handlers/factory.d.ts.map +1 -0
  472. package/dist/resources/handlers/factory.js +26 -0
  473. package/dist/resources/handlers/filesystem-handler.cjs +385 -0
  474. package/dist/resources/handlers/filesystem-handler.d.ts +35 -0
  475. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -0
  476. package/dist/resources/handlers/filesystem-handler.js +352 -0
  477. package/dist/resources/handlers/types.cjs +16 -0
  478. package/dist/resources/handlers/types.d.ts +15 -0
  479. package/dist/resources/handlers/types.d.ts.map +1 -0
  480. package/dist/resources/handlers/types.js +0 -0
  481. package/dist/resources/index.cjs +58 -0
  482. package/dist/resources/index.d.ts +39 -0
  483. package/dist/resources/index.d.ts.map +1 -0
  484. package/dist/resources/index.js +35 -0
  485. package/dist/resources/internal-provider.cjs +141 -0
  486. package/dist/resources/internal-provider.d.ts +19 -0
  487. package/dist/resources/internal-provider.d.ts.map +1 -0
  488. package/dist/resources/internal-provider.js +118 -0
  489. package/dist/resources/manager.cjs +221 -0
  490. package/dist/resources/manager.d.ts +29 -0
  491. package/dist/resources/manager.d.ts.map +1 -0
  492. package/dist/resources/manager.js +198 -0
  493. package/dist/resources/reference-parser.cjs +217 -0
  494. package/dist/resources/reference-parser.d.ts +33 -0
  495. package/dist/resources/reference-parser.d.ts.map +1 -0
  496. package/dist/resources/reference-parser.js +191 -0
  497. package/dist/resources/schemas.cjs +98 -0
  498. package/dist/resources/schemas.d.ts +212 -0
  499. package/dist/resources/schemas.d.ts.map +1 -0
  500. package/dist/resources/schemas.js +73 -0
  501. package/dist/resources/types.cjs +16 -0
  502. package/dist/resources/types.d.ts +57 -0
  503. package/dist/resources/types.d.ts.map +1 -0
  504. package/dist/resources/types.js +0 -0
  505. package/dist/search/index.d.ts +2 -4
  506. package/dist/search/index.d.ts.map +1 -0
  507. package/dist/search/index.js +1 -0
  508. package/dist/search/search-service.d.ts +5 -9
  509. package/dist/search/search-service.d.ts.map +1 -0
  510. package/dist/search/search-service.js +1 -0
  511. package/dist/search/types.d.ts +7 -10
  512. package/dist/search/types.d.ts.map +1 -0
  513. package/dist/session/chat-session.cjs +105 -12
  514. package/dist/session/chat-session.d.ts +32 -43
  515. package/dist/session/chat-session.d.ts.map +1 -0
  516. package/dist/session/chat-session.js +106 -12
  517. package/dist/session/error-codes.d.ts +2 -3
  518. package/dist/session/error-codes.d.ts.map +1 -0
  519. package/dist/session/error-codes.js +1 -0
  520. package/dist/session/errors.d.ts +2 -17
  521. package/dist/session/errors.d.ts.map +1 -0
  522. package/dist/session/errors.js +1 -0
  523. package/dist/session/history/database.d.ts +6 -9
  524. package/dist/session/history/database.d.ts.map +1 -0
  525. package/dist/session/history/database.js +1 -0
  526. package/dist/session/history/factory.d.ts +4 -8
  527. package/dist/session/history/factory.d.ts.map +1 -0
  528. package/dist/session/history/factory.js +1 -0
  529. package/dist/session/history/memory.cjs +39 -0
  530. package/dist/session/history/memory.d.ts +14 -0
  531. package/dist/session/history/memory.d.ts.map +1 -0
  532. package/dist/session/history/memory.js +16 -0
  533. package/dist/session/history/types.d.ts +3 -6
  534. package/dist/session/history/types.d.ts.map +1 -0
  535. package/dist/session/index.d.ts +3 -50
  536. package/dist/session/index.d.ts.map +1 -0
  537. package/dist/session/index.js +1 -0
  538. package/dist/session/schemas.d.ts +4 -6
  539. package/dist/session/schemas.d.ts.map +1 -0
  540. package/dist/session/schemas.js +1 -0
  541. package/dist/session/session-manager.cjs +63 -29
  542. package/dist/session/session-manager.d.ts +33 -43
  543. package/dist/session/session-manager.d.ts.map +1 -0
  544. package/dist/session/session-manager.js +64 -29
  545. package/dist/session/title-generator.cjs +140 -0
  546. package/dist/session/title-generator.d.ts +22 -0
  547. package/dist/session/title-generator.d.ts.map +1 -0
  548. package/dist/session/title-generator.js +116 -0
  549. package/dist/storage/blob/factory.cjs +50 -0
  550. package/dist/storage/blob/factory.d.ts +10 -0
  551. package/dist/storage/blob/factory.d.ts.map +1 -0
  552. package/dist/storage/blob/factory.js +27 -0
  553. package/dist/storage/blob/local-blob-store.cjs +503 -0
  554. package/dist/storage/blob/local-blob-store.d.ts +57 -0
  555. package/dist/storage/blob/local-blob-store.d.ts.map +1 -0
  556. package/dist/storage/blob/local-blob-store.js +470 -0
  557. package/dist/storage/blob/schemas.cjs +53 -0
  558. package/dist/storage/blob/schemas.d.ts +80 -0
  559. package/dist/storage/blob/schemas.d.ts.map +1 -0
  560. package/dist/storage/blob/schemas.js +29 -0
  561. package/dist/storage/blob/types.cjs +16 -0
  562. package/dist/storage/blob/types.d.ts +154 -0
  563. package/dist/storage/blob/types.d.ts.map +1 -0
  564. package/dist/storage/blob/types.js +0 -0
  565. package/dist/storage/cache/factory.cjs +63 -0
  566. package/dist/storage/cache/factory.d.ts +8 -0
  567. package/dist/storage/cache/factory.d.ts.map +1 -0
  568. package/dist/storage/cache/factory.js +30 -0
  569. package/dist/storage/cache/memory-cache-store.cjs +107 -0
  570. package/dist/storage/cache/memory-cache-store.d.ts +26 -0
  571. package/dist/storage/cache/memory-cache-store.d.ts.map +1 -0
  572. package/dist/storage/cache/memory-cache-store.js +84 -0
  573. package/dist/storage/{backend/redis-backend.cjs → cache/redis-store.cjs} +8 -22
  574. package/dist/storage/{backend/redis-backend.d.ts → cache/redis-store.d.ts} +8 -14
  575. package/dist/storage/cache/redis-store.d.ts.map +1 -0
  576. package/dist/storage/{backend/redis-backend.js → cache/redis-store.js} +5 -18
  577. package/dist/storage/cache/schemas.cjs +77 -0
  578. package/dist/storage/cache/schemas.d.ts +151 -0
  579. package/dist/storage/cache/schemas.d.ts.map +1 -0
  580. package/dist/storage/cache/schemas.js +53 -0
  581. package/dist/storage/cache/types.cjs +16 -0
  582. package/dist/storage/{backend/cache-backend.d.cts → cache/types.d.ts} +3 -4
  583. package/dist/storage/cache/types.d.ts.map +1 -0
  584. package/dist/storage/cache/types.js +0 -0
  585. package/dist/storage/database/factory.cjs +86 -0
  586. package/dist/storage/database/factory.d.ts +10 -0
  587. package/dist/storage/database/factory.d.ts.map +1 -0
  588. package/dist/storage/database/factory.js +53 -0
  589. package/dist/storage/{backend/memory-backend.cjs → database/memory-database-store.cjs} +10 -28
  590. package/dist/storage/{backend/memory-backend.d.ts → database/memory-database-store.d.ts} +7 -12
  591. package/dist/storage/database/memory-database-store.d.ts.map +1 -0
  592. package/dist/storage/{backend/memory-backend.js → database/memory-database-store.js} +7 -24
  593. package/dist/storage/{backend/postgres-backend.cjs → database/postgres-store.cjs} +11 -11
  594. package/dist/storage/{backend/postgres-backend.d.ts → database/postgres-store.d.ts} +8 -11
  595. package/dist/storage/database/postgres-store.d.ts.map +1 -0
  596. package/dist/storage/{backend/postgres-backend.js → database/postgres-store.js} +8 -7
  597. package/dist/storage/database/schemas.cjs +89 -0
  598. package/dist/storage/database/schemas.d.ts +227 -0
  599. package/dist/storage/database/schemas.d.ts.map +1 -0
  600. package/dist/storage/database/schemas.js +65 -0
  601. package/dist/storage/{backend/sqlite-backend.cjs → database/sqlite-store.cjs} +35 -16
  602. package/dist/storage/{backend/sqlite-backend.d.cts → database/sqlite-store.d.ts} +9 -11
  603. package/dist/storage/database/sqlite-store.d.ts.map +1 -0
  604. package/dist/storage/{backend/sqlite-backend.js → database/sqlite-store.js} +32 -12
  605. package/dist/storage/database/types.cjs +16 -0
  606. package/dist/storage/{backend/database-backend.d.cts → database/types.d.ts} +3 -4
  607. package/dist/storage/database/types.d.ts.map +1 -0
  608. package/dist/storage/database/types.js +0 -0
  609. package/dist/storage/error-codes.cjs +16 -0
  610. package/dist/storage/error-codes.d.ts +20 -5
  611. package/dist/storage/error-codes.d.ts.map +1 -0
  612. package/dist/storage/error-codes.js +17 -0
  613. package/dist/storage/errors.cjs +210 -7
  614. package/dist/storage/errors.d.ts +75 -19
  615. package/dist/storage/errors.d.ts.map +1 -0
  616. package/dist/storage/errors.js +205 -1
  617. package/dist/storage/index.cjs +24 -5
  618. package/dist/storage/index.d.ts +48 -7
  619. package/dist/storage/index.d.ts.map +1 -0
  620. package/dist/storage/index.js +21 -4
  621. package/dist/storage/schemas.cjs +22 -84
  622. package/dist/storage/schemas.d.ts +98 -574
  623. package/dist/storage/schemas.d.ts.map +1 -0
  624. package/dist/storage/schemas.js +26 -84
  625. package/dist/storage/storage-manager.cjs +135 -118
  626. package/dist/storage/storage-manager.d.ts +55 -26
  627. package/dist/storage/storage-manager.d.ts.map +1 -0
  628. package/dist/storage/storage-manager.js +135 -107
  629. package/dist/storage/types.d.ts +7 -5
  630. package/dist/storage/types.d.ts.map +1 -0
  631. package/dist/systemPrompt/contributors.cjs +54 -0
  632. package/dist/systemPrompt/contributors.d.ts +30 -15
  633. package/dist/systemPrompt/contributors.d.ts.map +1 -0
  634. package/dist/systemPrompt/contributors.js +54 -0
  635. package/dist/systemPrompt/error-codes.d.ts +2 -3
  636. package/dist/systemPrompt/error-codes.d.ts.map +1 -0
  637. package/dist/systemPrompt/error-codes.js +1 -0
  638. package/dist/systemPrompt/errors.d.ts +2 -17
  639. package/dist/systemPrompt/errors.d.ts.map +1 -0
  640. package/dist/systemPrompt/errors.js +1 -0
  641. package/dist/systemPrompt/in-built-prompts.cjs +13 -15
  642. package/dist/systemPrompt/in-built-prompts.d.ts +4 -14
  643. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -0
  644. package/dist/systemPrompt/in-built-prompts.js +14 -15
  645. package/dist/systemPrompt/index.cjs +11 -0
  646. package/dist/systemPrompt/index.d.ts +7 -14
  647. package/dist/systemPrompt/index.d.ts.map +1 -0
  648. package/dist/systemPrompt/index.js +9 -0
  649. package/dist/systemPrompt/manager.cjs +24 -6
  650. package/dist/systemPrompt/manager.d.ts +8 -16
  651. package/dist/systemPrompt/manager.d.ts.map +1 -0
  652. package/dist/systemPrompt/manager.js +25 -6
  653. package/dist/systemPrompt/registry.d.ts +6 -16
  654. package/dist/systemPrompt/registry.d.ts.map +1 -0
  655. package/dist/systemPrompt/registry.js +1 -0
  656. package/dist/systemPrompt/schemas.cjs +17 -3
  657. package/dist/systemPrompt/schemas.d.ts +204 -30
  658. package/dist/systemPrompt/schemas.d.ts.map +1 -0
  659. package/dist/systemPrompt/schemas.js +18 -3
  660. package/dist/systemPrompt/types.d.ts +3 -12
  661. package/dist/systemPrompt/types.d.ts.map +1 -0
  662. package/dist/telemetry/decorators.cjs +175 -0
  663. package/dist/telemetry/decorators.d.ts +17 -0
  664. package/dist/telemetry/decorators.d.ts.map +1 -0
  665. package/dist/telemetry/decorators.js +157 -0
  666. package/dist/telemetry/exporters.cjs +108 -0
  667. package/dist/telemetry/exporters.d.ts +29 -0
  668. package/dist/telemetry/exporters.d.ts.map +1 -0
  669. package/dist/telemetry/exporters.js +85 -0
  670. package/dist/telemetry/index.cjs +28 -0
  671. package/dist/telemetry/index.d.ts +2 -0
  672. package/dist/telemetry/index.d.ts.map +1 -0
  673. package/dist/telemetry/index.js +5 -0
  674. package/dist/telemetry/schemas.cjs +71 -0
  675. package/dist/telemetry/schemas.d.ts +54 -0
  676. package/dist/telemetry/schemas.d.ts.map +1 -0
  677. package/dist/telemetry/schemas.js +48 -0
  678. package/dist/telemetry/telemetry.cjs +228 -0
  679. package/dist/telemetry/telemetry.d.ts +74 -0
  680. package/dist/telemetry/telemetry.d.ts.map +1 -0
  681. package/dist/telemetry/telemetry.js +205 -0
  682. package/dist/telemetry/types.cjs +16 -0
  683. package/dist/telemetry/types.d.ts +22 -0
  684. package/dist/telemetry/types.d.ts.map +1 -0
  685. package/dist/telemetry/types.js +0 -0
  686. package/dist/telemetry/utils.cjs +87 -0
  687. package/dist/telemetry/utils.d.ts +21 -0
  688. package/dist/telemetry/utils.d.ts.map +1 -0
  689. package/dist/telemetry/utils.js +62 -0
  690. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +1 -1
  691. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +6 -12
  692. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -0
  693. package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -1
  694. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +3 -5
  695. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -0
  696. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
  697. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +9 -9
  698. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +7 -13
  699. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -0
  700. package/dist/tools/confirmation/allowed-tools-provider/storage.js +10 -9
  701. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -3
  702. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -0
  703. package/dist/tools/error-codes.d.ts +2 -3
  704. package/dist/tools/error-codes.d.ts.map +1 -0
  705. package/dist/tools/error-codes.js +1 -0
  706. package/dist/tools/errors.d.ts +2 -17
  707. package/dist/tools/errors.d.ts.map +1 -0
  708. package/dist/tools/errors.js +1 -0
  709. package/dist/tools/index.cjs +0 -2
  710. package/dist/tools/index.d.ts +11 -19
  711. package/dist/tools/index.d.ts.map +1 -0
  712. package/dist/tools/index.js +1 -1
  713. package/dist/tools/internal-tools/constants.cjs +39 -0
  714. package/dist/tools/internal-tools/constants.d.ts +12 -0
  715. package/dist/tools/internal-tools/constants.d.ts.map +1 -0
  716. package/dist/tools/internal-tools/constants.js +16 -0
  717. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +57 -0
  718. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +18 -0
  719. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +1 -0
  720. package/dist/tools/internal-tools/implementations/ask-user-tool.js +34 -0
  721. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
  722. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
  723. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
  724. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
  725. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
  726. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
  727. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
  728. package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
  729. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
  730. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
  731. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
  732. package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
  733. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
  734. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
  735. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
  736. package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
  737. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
  738. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
  739. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
  740. package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
  741. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
  742. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
  743. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
  744. package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
  745. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
  746. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
  747. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
  748. package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
  749. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +3 -11
  750. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +1 -0
  751. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
  752. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
  753. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
  754. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
  755. package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
  756. package/dist/tools/internal-tools/index.cjs +3 -1
  757. package/dist/tools/internal-tools/index.d.ts +4 -13
  758. package/dist/tools/internal-tools/index.d.ts.map +1 -0
  759. package/dist/tools/internal-tools/index.js +1 -0
  760. package/dist/tools/internal-tools/provider.cjs +9 -11
  761. package/dist/tools/internal-tools/provider.d.ts +6 -20
  762. package/dist/tools/internal-tools/provider.d.ts.map +1 -0
  763. package/dist/tools/internal-tools/provider.js +10 -11
  764. package/dist/tools/internal-tools/registry.cjs +45 -4
  765. package/dist/tools/internal-tools/registry.d.ts +13 -22
  766. package/dist/tools/internal-tools/registry.d.ts.map +1 -0
  767. package/dist/tools/internal-tools/registry.js +46 -3
  768. package/dist/tools/schemas.cjs +32 -7
  769. package/dist/tools/schemas.d.ts +41 -8
  770. package/dist/tools/schemas.d.ts.map +1 -0
  771. package/dist/tools/schemas.js +25 -4
  772. package/dist/tools/tool-manager.cjs +329 -30
  773. package/dist/tools/tool-manager.d.ts +94 -22
  774. package/dist/tools/tool-manager.d.ts.map +1 -0
  775. package/dist/tools/tool-manager.js +289 -30
  776. package/dist/tools/types.d.ts +9 -11
  777. package/dist/tools/types.d.ts.map +1 -0
  778. package/dist/utils/api-key-resolver.d.ts +5 -7
  779. package/dist/utils/api-key-resolver.d.ts.map +1 -0
  780. package/dist/utils/api-key-resolver.js +1 -0
  781. package/dist/utils/api-key-store.d.ts +5 -7
  782. package/dist/utils/api-key-store.d.ts.map +1 -0
  783. package/dist/utils/api-key-store.js +1 -0
  784. package/dist/utils/async-context.cjs +51 -0
  785. package/dist/utils/async-context.d.ts +68 -0
  786. package/dist/utils/async-context.d.ts.map +1 -0
  787. package/dist/utils/async-context.js +25 -0
  788. package/dist/utils/debug.cjs +40 -0
  789. package/dist/utils/debug.d.ts +2 -0
  790. package/dist/utils/debug.d.ts.map +1 -0
  791. package/dist/utils/debug.js +17 -0
  792. package/dist/utils/env.d.ts +4 -5
  793. package/dist/utils/env.d.ts.map +1 -0
  794. package/dist/utils/env.js +1 -0
  795. package/dist/utils/error-conversion.d.ts +2 -3
  796. package/dist/utils/error-conversion.d.ts.map +1 -0
  797. package/dist/utils/error-conversion.js +1 -0
  798. package/dist/utils/execution-context.d.ts +5 -6
  799. package/dist/utils/execution-context.d.ts.map +1 -0
  800. package/dist/utils/execution-context.js +1 -0
  801. package/dist/utils/fs-walk.d.ts +2 -3
  802. package/dist/utils/fs-walk.d.ts.map +1 -0
  803. package/dist/utils/fs-walk.js +1 -0
  804. package/dist/utils/index.cjs +3 -1
  805. package/dist/utils/index.d.ts +14 -63
  806. package/dist/utils/index.d.ts.map +1 -0
  807. package/dist/utils/index.js +1 -0
  808. package/dist/utils/path.d.ts +9 -10
  809. package/dist/utils/path.d.ts.map +1 -0
  810. package/dist/utils/path.js +1 -0
  811. package/dist/utils/port-utils.d.ts +2 -3
  812. package/dist/utils/port-utils.d.ts.map +1 -0
  813. package/dist/utils/port-utils.js +1 -0
  814. package/dist/utils/redactor.d.ts +2 -3
  815. package/dist/utils/redactor.d.ts.map +1 -0
  816. package/dist/utils/redactor.js +1 -0
  817. package/dist/utils/result.d.ts +14 -27
  818. package/dist/utils/result.d.ts.map +1 -0
  819. package/dist/utils/result.js +1 -0
  820. package/dist/utils/safe-stringify.d.ts +2 -3
  821. package/dist/utils/safe-stringify.d.ts.map +1 -0
  822. package/dist/utils/safe-stringify.js +1 -0
  823. package/dist/utils/schema-metadata.cjs +235 -0
  824. package/dist/utils/schema-metadata.d.ts +82 -0
  825. package/dist/utils/schema-metadata.d.ts.map +1 -0
  826. package/dist/utils/schema-metadata.js +208 -0
  827. package/dist/utils/schema.d.ts +2 -3
  828. package/dist/utils/schema.d.ts.map +1 -0
  829. package/dist/utils/schema.js +1 -0
  830. package/dist/utils/service-initializer.cjs +110 -35
  831. package/dist/utils/service-initializer.d.ts +19 -43
  832. package/dist/utils/service-initializer.d.ts.map +1 -0
  833. package/dist/utils/service-initializer.js +101 -35
  834. package/dist/utils/user-info.d.ts +2 -3
  835. package/dist/utils/user-info.d.ts.map +1 -0
  836. package/dist/utils/user-info.js +1 -0
  837. package/dist/utils/zod-schema-converter.d.ts +3 -5
  838. package/dist/utils/zod-schema-converter.d.ts.map +1 -0
  839. package/dist/utils/zod-schema-converter.js +1 -0
  840. package/package.json +16 -4
  841. package/dist/agent/DextoAgent.d.cts +0 -541
  842. package/dist/agent/agentCard.d.cts +0 -20
  843. package/dist/agent/error-codes.d.cts +0 -14
  844. package/dist/agent/errors.d.cts +0 -44
  845. package/dist/agent/index.d.cts +0 -60
  846. package/dist/agent/registry/error-codes.d.cts +0 -20
  847. package/dist/agent/registry/errors.d.cts +0 -67
  848. package/dist/agent/registry/registry.d.cts +0 -67
  849. package/dist/agent/registry/types.d.cts +0 -100
  850. package/dist/agent/schemas.d.cts +0 -1502
  851. package/dist/agent/state-manager.d.cts +0 -97
  852. package/dist/config/agent-resolver.d.cts +0 -15
  853. package/dist/config/error-codes.d.cts +0 -17
  854. package/dist/config/errors.d.cts +0 -49
  855. package/dist/config/index.d.cts +0 -7
  856. package/dist/config/loader.d.cts +0 -19
  857. package/dist/config/writer.d.cts +0 -38
  858. package/dist/context/compression/middle-removal.d.cts +0 -48
  859. package/dist/context/compression/oldest-removal.d.cts +0 -43
  860. package/dist/context/compression/types.d.cts +0 -21
  861. package/dist/context/error-codes.d.cts +0 -19
  862. package/dist/context/errors.d.cts +0 -36
  863. package/dist/context/index.d.cts +0 -19
  864. package/dist/context/manager.d.cts +0 -254
  865. package/dist/context/types.d.cts +0 -113
  866. package/dist/context/utils.d.cts +0 -79
  867. package/dist/errors/DextoBaseError.d.cts +0 -15
  868. package/dist/errors/DextoRuntimeError.d.cts +0 -37
  869. package/dist/errors/DextoValidationError.d.cts +0 -65
  870. package/dist/errors/index.d.cts +0 -18
  871. package/dist/errors/result-bridge.d.cts +0 -39
  872. package/dist/errors/types.d.cts +0 -62
  873. package/dist/events/index.d.cts +0 -272
  874. package/dist/index.browser.d.cts +0 -53
  875. package/dist/index.d.cts +0 -89
  876. package/dist/llm/error-codes.d.cts +0 -26
  877. package/dist/llm/errors.d.cts +0 -58
  878. package/dist/llm/formatters/anthropic.d.cts +0 -45
  879. package/dist/llm/formatters/factory.d.cts +0 -12
  880. package/dist/llm/formatters/openai.d.cts +0 -38
  881. package/dist/llm/formatters/types.d.cts +0 -43
  882. package/dist/llm/formatters/vercel.d.cts +0 -48
  883. package/dist/llm/index.d.cts +0 -39
  884. package/dist/llm/registry.d.cts +0 -176
  885. package/dist/llm/resolver.d.cts +0 -34
  886. package/dist/llm/schemas.d.cts +0 -111
  887. package/dist/llm/services/anthropic.d.cts +0 -65
  888. package/dist/llm/services/factory.d.cts +0 -39
  889. package/dist/llm/services/index.d.cts +0 -21
  890. package/dist/llm/services/openai.d.cts +0 -65
  891. package/dist/llm/services/test-utils.integration.d.cts +0 -83
  892. package/dist/llm/services/types.d.cts +0 -56
  893. package/dist/llm/services/vercel.d.cts +0 -72
  894. package/dist/llm/tokenizer/anthropic.d.cts +0 -21
  895. package/dist/llm/tokenizer/default.d.cts +0 -16
  896. package/dist/llm/tokenizer/factory.d.cts +0 -12
  897. package/dist/llm/tokenizer/google.d.cts +0 -31
  898. package/dist/llm/tokenizer/openai.d.cts +0 -32
  899. package/dist/llm/tokenizer/types.d.cts +0 -19
  900. package/dist/llm/types.d.cts +0 -29
  901. package/dist/llm/validation.d.cts +0 -60
  902. package/dist/logger/browser.d.cts +0 -29
  903. package/dist/logger/index.d.cts +0 -1
  904. package/dist/logger/logger.d.cts +0 -52
  905. package/dist/mcp/error-codes.d.cts +0 -16
  906. package/dist/mcp/errors.d.cts +0 -72
  907. package/dist/mcp/index.d.cts +0 -26
  908. package/dist/mcp/manager.d.cts +0 -163
  909. package/dist/mcp/mcp-client.d.cts +0 -108
  910. package/dist/mcp/resolver.d.cts +0 -22
  911. package/dist/mcp/schemas.d.cts +0 -266
  912. package/dist/mcp/types.d.cts +0 -21
  913. package/dist/preferences/constants.d.cts +0 -3
  914. package/dist/preferences/error-codes.d.cts +0 -9
  915. package/dist/preferences/errors.d.cts +0 -33
  916. package/dist/preferences/index.d.cts +0 -21
  917. package/dist/preferences/loader.d.cts +0 -45
  918. package/dist/preferences/schemas.d.cts +0 -104
  919. package/dist/search/index.d.cts +0 -5
  920. package/dist/search/search-service.d.cts +0 -47
  921. package/dist/search/types.d.cts +0 -78
  922. package/dist/session/chat-session.d.cts +0 -284
  923. package/dist/session/error-codes.d.cts +0 -13
  924. package/dist/session/errors.d.cts +0 -58
  925. package/dist/session/history/database.d.cts +0 -28
  926. package/dist/session/history/factory.d.cts +0 -11
  927. package/dist/session/history/types.d.cts +0 -17
  928. package/dist/session/index.d.cts +0 -53
  929. package/dist/session/schemas.d.cts +0 -16
  930. package/dist/session/session-manager.d.cts +0 -219
  931. package/dist/storage/backend/cache-backend.d.ts +0 -15
  932. package/dist/storage/backend/database-backend.d.ts +0 -19
  933. package/dist/storage/backend/memory-backend.d.cts +0 -34
  934. package/dist/storage/backend/postgres-backend.d.cts +0 -37
  935. package/dist/storage/backend/redis-backend.d.cts +0 -36
  936. package/dist/storage/backend/sqlite-backend.d.ts +0 -35
  937. package/dist/storage/backend/types.d.cts +0 -14
  938. package/dist/storage/backend/types.d.ts +0 -14
  939. package/dist/storage/error-codes.d.cts +0 -14
  940. package/dist/storage/errors.d.cts +0 -63
  941. package/dist/storage/index.d.cts +0 -7
  942. package/dist/storage/schemas.d.cts +0 -856
  943. package/dist/storage/storage-manager.d.cts +0 -52
  944. package/dist/storage/types.d.cts +0 -5
  945. package/dist/systemPrompt/contributors.d.cts +0 -44
  946. package/dist/systemPrompt/error-codes.d.cts +0 -13
  947. package/dist/systemPrompt/errors.d.cts +0 -55
  948. package/dist/systemPrompt/in-built-prompts.d.cts +0 -28
  949. package/dist/systemPrompt/index.d.cts +0 -14
  950. package/dist/systemPrompt/manager.d.cts +0 -31
  951. package/dist/systemPrompt/registry.d.cts +0 -20
  952. package/dist/systemPrompt/schemas.d.cts +0 -401
  953. package/dist/systemPrompt/types.d.cts +0 -19
  954. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +0 -19
  955. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +0 -17
  956. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +0 -26
  957. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +0 -35
  958. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +0 -158
  959. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +0 -41
  960. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +0 -41
  961. package/dist/tools/confirmation/event-based-confirmation-provider.js +0 -134
  962. package/dist/tools/confirmation/factory.cjs +0 -52
  963. package/dist/tools/confirmation/factory.d.cts +0 -37
  964. package/dist/tools/confirmation/factory.d.ts +0 -37
  965. package/dist/tools/confirmation/factory.js +0 -28
  966. package/dist/tools/confirmation/noop-confirmation-provider.cjs +0 -49
  967. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +0 -22
  968. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +0 -22
  969. package/dist/tools/confirmation/noop-confirmation-provider.js +0 -25
  970. package/dist/tools/confirmation/types.d.cts +0 -46
  971. package/dist/tools/confirmation/types.d.ts +0 -46
  972. package/dist/tools/error-codes.d.cts +0 -18
  973. package/dist/tools/errors.d.cts +0 -97
  974. package/dist/tools/index.d.cts +0 -19
  975. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +0 -15
  976. package/dist/tools/internal-tools/index.d.cts +0 -13
  977. package/dist/tools/internal-tools/provider.d.cts +0 -66
  978. package/dist/tools/internal-tools/registry.d.cts +0 -45
  979. package/dist/tools/schemas.d.cts +0 -21
  980. package/dist/tools/tool-manager.d.cts +0 -106
  981. package/dist/tools/types.d.cts +0 -66
  982. package/dist/utils/api-key-resolver.d.cts +0 -23
  983. package/dist/utils/api-key-store.d.cts +0 -26
  984. package/dist/utils/env.d.cts +0 -29
  985. package/dist/utils/error-conversion.d.cts +0 -13
  986. package/dist/utils/execution-context.d.cts +0 -21
  987. package/dist/utils/fs-walk.d.cts +0 -9
  988. package/dist/utils/index.d.cts +0 -63
  989. package/dist/utils/path.d.cts +0 -54
  990. package/dist/utils/port-utils.d.cts +0 -11
  991. package/dist/utils/port-utils.spec.d.cts +0 -2
  992. package/dist/utils/port-utils.spec.d.ts +0 -2
  993. package/dist/utils/redactor.d.cts +0 -18
  994. package/dist/utils/result.d.cts +0 -180
  995. package/dist/utils/safe-stringify.d.cts +0 -7
  996. package/dist/utils/schema.d.cts +0 -6
  997. package/dist/utils/service-initializer.d.cts +0 -63
  998. package/dist/utils/user-info.d.cts +0 -3
  999. package/dist/utils/zod-schema-converter.d.cts +0 -13
  1000. /package/dist/{storage/backend → filesystem}/types.cjs +0 -0
  1001. /package/dist/{storage/backend → filesystem}/types.js +0 -0
  1002. /package/dist/{tools/confirmation → memory}/types.cjs +0 -0
  1003. /package/dist/{tools/confirmation → memory}/types.js +0 -0
  1004. /package/dist/{storage/backend/cache-backend.js → plugins/types.js} +0 -0
  1005. /package/dist/{storage/backend/database-backend.js → process/types.js} +0 -0
@@ -24,20 +24,73 @@ 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
+ configCache = /* @__PURE__ */ new Map();
32
+ // Store original configs for restart
33
+ toolCache = /* @__PURE__ */ new Map();
32
34
  toolConflicts = /* @__PURE__ */ new Set();
33
- promptToClientMap = /* @__PURE__ */ new Map();
34
- resourceToClientMap = /* @__PURE__ */ new Map();
35
+ // Track which tool names have conflicts
36
+ promptCache = /* @__PURE__ */ new Map();
37
+ resourceCache = /* @__PURE__ */ new Map();
35
38
  sanitizedNameToServerMap = /* @__PURE__ */ new Map();
39
+ approvalManager = null;
40
+ // Will be set by service initializer
36
41
  // Use a distinctive delimiter that won't appear in normal server/tool names
37
42
  // Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
38
43
  static SERVER_DELIMITER = "--";
39
44
  constructor() {
40
45
  }
46
+ /**
47
+ * Set the approval manager for handling elicitation requests from MCP servers
48
+ *
49
+ * TODO: Consider making ApprovalManager a required constructor parameter instead of using a setter.
50
+ * This would make the dependency explicit and remove the need for defensive `if (!approvalManager)` checks.
51
+ * Current setter pattern is useful if we want to expose MCPManager as a standalone service to end-users
52
+ * without requiring them to know about ApprovalManager.
53
+ */
54
+ setApprovalManager(approvalManager) {
55
+ this.approvalManager = approvalManager;
56
+ for (const [_name, client] of this.clients.entries()) {
57
+ if (client instanceof import_mcp_client.MCPClient) {
58
+ client.setApprovalManager(approvalManager);
59
+ }
60
+ }
61
+ }
62
+ buildQualifiedResourceKey(serverName, resourceUri) {
63
+ return `mcp:${serverName}:${resourceUri}`;
64
+ }
65
+ parseQualifiedResourceKey(key) {
66
+ if (!key.startsWith("mcp:")) {
67
+ throw import_errors.MCPError.resourceNotFound(key);
68
+ }
69
+ const [, serverName, ...rest] = key.split(":");
70
+ if (!serverName || rest.length === 0) {
71
+ throw import_errors.MCPError.resourceNotFound(key);
72
+ }
73
+ return { serverName, resourceUri: rest.join(":") };
74
+ }
75
+ removeServerResources(serverName) {
76
+ for (const [key, entry] of Array.from(this.resourceCache.entries())) {
77
+ if (entry.serverName === serverName) {
78
+ this.resourceCache.delete(key);
79
+ }
80
+ }
81
+ }
82
+ getResourceCacheEntry(resourceKey) {
83
+ if (this.resourceCache.has(resourceKey)) {
84
+ return this.resourceCache.get(resourceKey);
85
+ }
86
+ try {
87
+ const { serverName, resourceUri } = this.parseQualifiedResourceKey(resourceKey);
88
+ const canonicalKey = this.buildQualifiedResourceKey(serverName, resourceUri);
89
+ return this.resourceCache.get(canonicalKey);
90
+ } catch {
91
+ return void 0;
92
+ }
93
+ }
41
94
  /**
42
95
  * Register a client that provides tools (and potentially more)
43
96
  * @param name Unique name for the client
@@ -55,53 +108,66 @@ class MCPManager {
55
108
  }
56
109
  this.clients.set(name, client);
57
110
  this.sanitizedNameToServerMap.set(sanitizedName, name);
111
+ this.setupClientNotifications(name, client);
58
112
  import_logger.logger.info(`Registered client: ${name}`);
59
113
  delete this.connectionErrors[name];
60
114
  }
115
+ /**
116
+ * Clears all cached data for a disconnected MCP client
117
+ *
118
+ * Performs comprehensive cleanup of tool, prompt, and resource caches.
119
+ * Uses two-pass algorithm to detect and resolve tool name conflicts:
120
+ * if a conflicted tool now has only one provider, restores simple name.
121
+ *
122
+ * @param clientName - The name/identifier of the MCP server being removed
123
+ * @private
124
+ */
61
125
  clearClientCache(clientName) {
62
126
  const client = this.clients.get(clientName);
63
127
  if (!client) return;
64
- const hadServerTools = this.serverToolsMap.has(clientName);
65
- this.serverToolsMap.delete(clientName);
66
128
  const sanitizedName = this.sanitizeServerName(clientName);
67
129
  if (this.sanitizedNameToServerMap.get(sanitizedName) === clientName) {
68
130
  this.sanitizedNameToServerMap.delete(sanitizedName);
69
131
  }
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
- }
132
+ const removedToolBaseNames = /* @__PURE__ */ new Set();
133
+ for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
134
+ if (entry.serverName === clientName) {
135
+ const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
136
+ const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
137
+ removedToolBaseNames.add(baseName);
138
+ this.toolCache.delete(toolKey);
77
139
  }
78
- );
79
- if (hadServerTools) {
80
- this.rebuildToolConflicts();
81
140
  }
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);
141
+ for (const baseName of removedToolBaseNames) {
142
+ const remainingTools = Array.from(this.toolCache.entries()).filter(([key, _]) => {
143
+ const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
144
+ const bn = delimiterIndex === -1 ? key : key.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
145
+ return bn === baseName;
146
+ });
147
+ if (remainingTools.length === 0) {
148
+ this.toolConflicts.delete(baseName);
149
+ } else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
150
+ const singleTool = remainingTools[0];
151
+ if (singleTool) {
152
+ const [qualifiedKey, entry] = singleTool;
153
+ this.toolCache.delete(qualifiedKey);
154
+ this.toolCache.set(baseName, entry);
155
+ this.toolConflicts.delete(baseName);
156
+ import_logger.logger.debug(`Restored tool '${baseName}' to simple name (conflict resolved)`);
157
+ }
90
158
  }
91
159
  }
92
- for (const [toolName, count] of toolCounts.entries()) {
93
- if (count > 1) {
94
- this.toolConflicts.add(toolName);
95
- this.toolToClientMap.delete(toolName);
160
+ for (const [promptName, entry] of Array.from(this.promptCache.entries())) {
161
+ if (entry.serverName === clientName) {
162
+ this.promptCache.delete(promptName);
96
163
  }
97
164
  }
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
- }
165
+ for (const [key, entry] of Array.from(this.resourceCache.entries())) {
166
+ if (entry.client === client || entry.serverName === clientName) {
167
+ this.resourceCache.delete(key);
103
168
  }
104
169
  }
170
+ import_logger.logger.debug(`Cleared cache for client: ${clientName}`);
105
171
  }
106
172
  /**
107
173
  * Sanitize server name for use in tool prefixing.
@@ -110,25 +176,80 @@ class MCPManager {
110
176
  sanitizeServerName(serverName) {
111
177
  return serverName.replace(/[^a-zA-Z0-9_-]/g, "_");
112
178
  }
179
+ /**
180
+ * Updates internal caches for a connected MCP client
181
+ *
182
+ * This method performs initial cache population after a client connects.
183
+ * It fetches and caches tools, prompts, and resources from the MCP server,
184
+ * implementing conflict detection and resolution for tool names.
185
+ *
186
+ * @param clientName - The name/identifier of the MCP server
187
+ * @param client - The connected MCP client instance
188
+ *
189
+ * @remarks
190
+ * **Tool Caching:**
191
+ * - Fetches all tools and caches them with full definitions
192
+ * - Detects naming conflicts when multiple servers provide same tool name
193
+ * - On conflict: uses qualified names (`server--toolname`) for all conflicting tools
194
+ * - Updates toolConflicts set to track which base names have conflicts
195
+ *
196
+ * **Prompt Caching:**
197
+ * - Fetches all prompts and their metadata (description, arguments)
198
+ * - Stores full prompt definitions in promptCache for efficient access
199
+ * - Falls back to minimal metadata if full definition fetch fails
200
+ *
201
+ * **Resource Caching:**
202
+ * - Fetches all resource summaries (uri, name, mimeType)
203
+ * - Stores resource metadata in resourceCache for quick lookups
204
+ *
205
+ * **Error Handling:**
206
+ * - Tool fetch errors abort caching entirely (early return)
207
+ * - Prompt/resource errors log warnings but don't block other caching
208
+ * - Individual prompt metadata errors are caught and logged
209
+ *
210
+ * @private
211
+ */
113
212
  async updateClientCache(clientName, client) {
114
- const serverTools = /* @__PURE__ */ new Map();
115
- this.serverToolsMap.set(clientName, serverTools);
116
213
  try {
117
214
  const tools = await client.getTools();
118
215
  import_logger.logger.debug(
119
216
  `\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
120
217
  );
121
218
  for (const toolName in tools) {
122
- serverTools.set(toolName, client);
123
- const existingClient = this.toolToClientMap.get(toolName);
124
- if (existingClient && existingClient !== client) {
219
+ const toolDef = tools[toolName];
220
+ if (!toolDef) continue;
221
+ const existingEntry = this.toolCache.get(toolName);
222
+ if (existingEntry && existingEntry.serverName !== clientName) {
125
223
  this.toolConflicts.add(toolName);
126
- this.toolToClientMap.delete(toolName);
224
+ this.toolCache.delete(toolName);
225
+ const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
226
+ const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
227
+ this.toolCache.set(existingQualified, existingEntry);
228
+ const newSanitized = this.sanitizeServerName(clientName);
229
+ const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
230
+ this.toolCache.set(newQualified, {
231
+ serverName: clientName,
232
+ client,
233
+ definition: toolDef
234
+ });
127
235
  import_logger.logger.warn(
128
- `\u26A0\uFE0F Tool conflict detected for '${toolName}' - will use server prefix`
236
+ `\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
129
237
  );
130
- } else if (!this.toolConflicts.has(toolName)) {
131
- this.toolToClientMap.set(toolName, client);
238
+ } else if (this.toolConflicts.has(toolName)) {
239
+ const sanitizedName = this.sanitizeServerName(clientName);
240
+ const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
241
+ this.toolCache.set(qualifiedName, {
242
+ serverName: clientName,
243
+ client,
244
+ definition: toolDef
245
+ });
246
+ import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
247
+ } else {
248
+ this.toolCache.set(toolName, {
249
+ serverName: clientName,
250
+ client,
251
+ definition: toolDef
252
+ });
132
253
  import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
133
254
  }
134
255
  }
@@ -143,17 +264,33 @@ class MCPManager {
143
264
  }
144
265
  try {
145
266
  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}`);
267
+ for (const prompt of prompts) {
268
+ const definition = {
269
+ name: prompt.name,
270
+ ...prompt.title && { title: prompt.title },
271
+ ...prompt.description && { description: prompt.description },
272
+ ...prompt.arguments && { arguments: prompt.arguments }
273
+ };
274
+ this.promptCache.set(prompt.name, {
275
+ serverName: clientName,
276
+ client,
277
+ definition
278
+ });
279
+ }
280
+ import_logger.logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
150
281
  } catch (error) {
151
282
  import_logger.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
152
283
  }
153
284
  try {
285
+ this.removeServerResources(clientName);
154
286
  const resources = await client.listResources();
155
- resources.forEach((resourceUri) => {
156
- this.resourceToClientMap.set(resourceUri, client);
287
+ resources.forEach((summary) => {
288
+ const key = this.buildQualifiedResourceKey(clientName, summary.uri);
289
+ this.resourceCache.set(key, {
290
+ serverName: clientName,
291
+ client,
292
+ summary
293
+ });
157
294
  });
158
295
  import_logger.logger.debug(`Cached resources for client: ${clientName}`);
159
296
  } catch (error) {
@@ -161,45 +298,28 @@ class MCPManager {
161
298
  }
162
299
  }
163
300
  /**
164
- * Get all available MCP tools from all connected clients, updating the cache.
165
- * Conflicted tools are prefixed with server name using distinctive delimiter.
301
+ * Get all available MCP tools from cache (no network calls).
302
+ * Conflicted tools are already stored with qualified names.
166
303
  * @returns Promise resolving to a ToolSet mapping tool names to Tool definitions
167
304
  */
168
305
  async getAllTools() {
169
306
  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
- }
307
+ for (const [toolKey, entry] of this.toolCache.entries()) {
308
+ const toolDef = entry.definition;
309
+ if (toolKey.includes(MCPManager.SERVER_DELIMITER)) {
310
+ allTools[toolKey] = {
311
+ ...toolDef,
312
+ description: toolDef.description ? `${toolDef.description} (via ${entry.serverName})` : `Tool from ${entry.serverName}`
313
+ };
314
+ } else {
315
+ allTools[toolKey] = toolDef;
199
316
  }
200
317
  }
318
+ const serverNames = Array.from(
319
+ new Set(Array.from(this.toolCache.values()).map((e) => e.serverName))
320
+ );
201
321
  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(", ")}`
322
+ `\u{1F527} MCP tools from cache: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${serverNames.join(", ")}`
203
323
  );
204
324
  if (import_logger.logger.getLevel() === "debug") {
205
325
  Object.keys(allTools).forEach((toolName) => {
@@ -227,7 +347,7 @@ class MCPManager {
227
347
  delimiterIndex + MCPManager.SERVER_DELIMITER.length
228
348
  );
229
349
  const originalServerName = this.sanitizedNameToServerMap.get(serverPrefix);
230
- if (originalServerName && this.serverToolsMap.get(originalServerName)?.has(actualToolName)) {
350
+ if (originalServerName && this.toolCache.has(toolName)) {
231
351
  return { serverName: originalServerName, toolName: actualToolName };
232
352
  }
233
353
  return null;
@@ -239,12 +359,7 @@ class MCPManager {
239
359
  * @returns The client that provides the tool, or undefined if not found
240
360
  */
241
361
  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);
362
+ return this.toolCache.get(toolName)?.client;
248
363
  }
249
364
  /**
250
365
  * Execute a specific MCP tool with the given arguments.
@@ -257,13 +372,8 @@ class MCPManager {
257
372
  const client = this.getToolClient(toolName);
258
373
  if (!client) {
259
374
  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
- );
375
+ import_logger.logger.debug(`Available MCP tools: ${Array.from(this.toolCache.keys()).join(", ")}`);
263
376
  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
377
  throw import_errors.MCPError.toolNotFound(toolName);
268
378
  }
269
379
  const parsed = this.parseQualifiedToolName(toolName);
@@ -285,7 +395,7 @@ class MCPManager {
285
395
  * @returns Promise resolving to an array of unique prompt names.
286
396
  */
287
397
  async listAllPrompts() {
288
- return Array.from(this.promptToClientMap.keys());
398
+ return Array.from(this.promptCache.keys());
289
399
  }
290
400
  /**
291
401
  * Get the client that provides a specific prompt from the cache.
@@ -293,7 +403,7 @@ class MCPManager {
293
403
  * @returns The client instance or undefined.
294
404
  */
295
405
  getPromptClient(promptName) {
296
- return this.promptToClientMap.get(promptName);
406
+ return this.promptCache.get(promptName)?.client;
297
407
  }
298
408
  /**
299
409
  * Get a specific prompt definition by name.
@@ -309,31 +419,64 @@ class MCPManager {
309
419
  return await client.getPrompt(name, args);
310
420
  }
311
421
  /**
312
- * Get all available resource URIs from all connected clients, updating the cache.
313
- * @returns Promise resolving to an array of unique resource URIs.
422
+ * Get cached prompt metadata (no network calls).
423
+ * @param promptName Name of the prompt.
424
+ * @returns Cached prompt definition or undefined if not cached.
425
+ */
426
+ getPromptMetadata(promptName) {
427
+ const entry = this.promptCache.get(promptName);
428
+ return entry?.definition;
429
+ }
430
+ /**
431
+ * Get all cached prompt metadata (no network calls).
432
+ * @returns Array of all cached prompt definitions with server info.
433
+ */
434
+ getAllPromptMetadata() {
435
+ return Array.from(this.promptCache.entries()).map(([promptName, entry]) => ({
436
+ promptName,
437
+ serverName: entry.serverName,
438
+ definition: entry.definition
439
+ }));
440
+ }
441
+ /**
442
+ * Get all cached MCP resources (no network calls).
314
443
  */
315
444
  async listAllResources() {
316
- return Array.from(this.resourceToClientMap.keys());
445
+ return Array.from(this.resourceCache.entries()).map(([key, { serverName, summary }]) => ({
446
+ key,
447
+ serverName,
448
+ summary
449
+ }));
317
450
  }
318
451
  /**
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.
452
+ * Determine if a qualified MCP resource is cached.
322
453
  */
323
- getResourceClient(resourceUri) {
324
- return this.resourceToClientMap.get(resourceUri);
454
+ hasResource(resourceKey) {
455
+ return this.getResourceCacheEntry(resourceKey) !== void 0;
456
+ }
457
+ /**
458
+ * Get cached resource metadata by qualified key.
459
+ */
460
+ getResource(resourceKey) {
461
+ const entry = this.getResourceCacheEntry(resourceKey);
462
+ if (!entry) return void 0;
463
+ return {
464
+ key: resourceKey,
465
+ serverName: entry.serverName,
466
+ summary: entry.summary
467
+ };
325
468
  }
326
469
  /**
327
- * Read a specific resource by URI.
328
- * @param uri URI of the resource.
470
+ * Read a specific resource by qualified URI.
471
+ * @param resourceKey Qualified resource key in the form mcp:server:uri.
329
472
  * @returns Promise resolving to the resource content.
330
473
  */
331
- async readResource(uri) {
332
- const client = this.getResourceClient(uri);
333
- if (!client) {
334
- throw import_errors.MCPError.resourceNotFound(uri);
474
+ async readResource(resourceKey) {
475
+ const entry = this.getResourceCacheEntry(resourceKey);
476
+ if (!entry) {
477
+ throw import_errors.MCPError.resourceNotFound(resourceKey);
335
478
  }
336
- return await client.readResource(uri);
479
+ return await entry.client.readResource(entry.summary.uri);
337
480
  }
338
481
  /**
339
482
  * Initialize clients from server configurations
@@ -390,8 +533,12 @@ class MCPManager {
390
533
  try {
391
534
  import_logger.logger.info(`Attempting to connect to new server '${name}'...`);
392
535
  await client.connect(config, name);
536
+ if (this.approvalManager) {
537
+ client.setApprovalManager(this.approvalManager);
538
+ }
393
539
  this.registerClient(name, client);
394
540
  await this.updateClientCache(name, client);
541
+ this.configCache.set(name, config);
395
542
  import_logger.logger.info(`Successfully connected and cached new server '${name}'`);
396
543
  } catch (error) {
397
544
  const errorMsg = error instanceof Error ? error.message : String(error);
@@ -415,6 +562,20 @@ class MCPManager {
415
562
  getFailedConnections() {
416
563
  return this.connectionErrors;
417
564
  }
565
+ /**
566
+ * Refresh all client caches by re-fetching capabilities from servers
567
+ * Useful when you want to force a full refresh of tools, prompts, and resources
568
+ * In normal operation, caches are automatically kept fresh via server notifications
569
+ */
570
+ async refresh() {
571
+ import_logger.logger.debug("Refreshing all MCPManager caches...");
572
+ const refreshPromises = [];
573
+ for (const [clientName, client] of this.clients.entries()) {
574
+ refreshPromises.push(this.updateClientCache(clientName, client));
575
+ }
576
+ await Promise.all(refreshPromises);
577
+ import_logger.logger.debug(`\u2705 MCPManager cache refresh complete for ${this.clients.size} client(s)`);
578
+ }
418
579
  /**
419
580
  * Disconnect and remove a specific client by name.
420
581
  * @param name The name of the client to remove.
@@ -422,18 +583,17 @@ class MCPManager {
422
583
  async removeClient(name) {
423
584
  const client = this.clients.get(name);
424
585
  if (client) {
425
- if (typeof client.disconnect === "function") {
426
- try {
427
- await client.disconnect();
428
- import_logger.logger.info(`Successfully disconnected client: ${name}`);
429
- } catch (error) {
430
- import_logger.logger.error(
431
- `Error disconnecting client '${name}': ${error instanceof Error ? error.message : String(error)}`
432
- );
433
- }
586
+ try {
587
+ await client.disconnect();
588
+ import_logger.logger.info(`Successfully disconnected client: ${name}`);
589
+ } catch (error) {
590
+ import_logger.logger.error(
591
+ `Error disconnecting client '${name}': ${error instanceof Error ? error.message : String(error)}`
592
+ );
434
593
  }
435
594
  this.clearClientCache(name);
436
595
  this.clients.delete(name);
596
+ this.configCache.delete(name);
437
597
  import_logger.logger.info(`Removed client from manager: ${name}`);
438
598
  }
439
599
  if (this.connectionErrors[name]) {
@@ -441,31 +601,269 @@ class MCPManager {
441
601
  import_logger.logger.info(`Cleared connection error for removed client: ${name}`);
442
602
  }
443
603
  }
604
+ /**
605
+ * Restart a specific MCP server by disconnecting and reconnecting with original config.
606
+ * @param name The name of the server to restart.
607
+ * @throws Error if server doesn't exist or config is not cached.
608
+ */
609
+ async restartServer(name) {
610
+ const config = this.configCache.get(name);
611
+ if (!config) {
612
+ throw import_errors.MCPError.serverNotFound(
613
+ name,
614
+ "Server config not found - cannot restart dynamically added servers without stored config"
615
+ );
616
+ }
617
+ const client = this.clients.get(name);
618
+ import_logger.logger.info(`Restarting MCP server '${name}'...`);
619
+ if (client) {
620
+ try {
621
+ await client.disconnect();
622
+ import_logger.logger.info(`Disconnected server '${name}' for restart`);
623
+ } catch (error) {
624
+ import_logger.logger.warn(
625
+ `Error disconnecting server '${name}' during restart (continuing): ${error instanceof Error ? error.message : String(error)}`
626
+ );
627
+ }
628
+ } else {
629
+ import_logger.logger.info(
630
+ `No active client found for '${name}' during restart; attempting fresh connection`
631
+ );
632
+ }
633
+ this.clearClientCache(name);
634
+ this.clients.delete(name);
635
+ delete this.connectionErrors[name];
636
+ try {
637
+ const newClient = new import_mcp_client.MCPClient();
638
+ await newClient.connect(config, name);
639
+ if (this.approvalManager) {
640
+ newClient.setApprovalManager(this.approvalManager);
641
+ }
642
+ this.registerClient(name, newClient);
643
+ await this.updateClientCache(name, newClient);
644
+ import_logger.logger.info(`Successfully restarted server '${name}'`);
645
+ import_events.eventBus.emit("dexto:mcpServerRestarted", { serverName: name });
646
+ } catch (error) {
647
+ const errorMsg = error instanceof Error ? error.message : String(error);
648
+ this.connectionErrors[name] = errorMsg;
649
+ import_logger.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
650
+ throw import_errors.MCPError.connectionFailed(name, errorMsg);
651
+ }
652
+ }
444
653
  /**
445
654
  * Disconnect all clients and clear caches
446
655
  */
447
656
  async disconnectAll() {
448
657
  const disconnectPromises = [];
449
658
  for (const [name, client] of Array.from(this.clients.entries())) {
450
- if (client.disconnect) {
451
- disconnectPromises.push(
452
- client.disconnect().then(() => import_logger.logger.info(`Disconnected client: ${name}`)).catch(
453
- (error) => import_logger.logger.error(`Failed to disconnect client '${name}': ${error}`)
454
- )
455
- );
456
- }
659
+ disconnectPromises.push(
660
+ client.disconnect().then(() => import_logger.logger.info(`Disconnected client: ${name}`)).catch(
661
+ (error) => import_logger.logger.error(`Failed to disconnect client '${name}': ${error}`)
662
+ )
663
+ );
457
664
  }
458
665
  await Promise.all(disconnectPromises);
459
666
  this.clients.clear();
460
667
  this.connectionErrors = {};
461
- this.toolToClientMap.clear();
462
- this.serverToolsMap.clear();
668
+ this.configCache.clear();
669
+ this.toolCache.clear();
463
670
  this.toolConflicts.clear();
464
- this.promptToClientMap.clear();
465
- this.resourceToClientMap.clear();
671
+ this.promptCache.clear();
672
+ this.resourceCache.clear();
466
673
  this.sanitizedNameToServerMap.clear();
467
674
  import_logger.logger.info("Disconnected all clients and cleared caches.");
468
675
  }
676
+ /**
677
+ * Set up notification listeners for a specific client
678
+ */
679
+ setupClientNotifications(clientName, client) {
680
+ try {
681
+ client.on("resourceUpdated", async (params) => {
682
+ import_logger.logger.debug(
683
+ `Received resource update notification from ${clientName}: ${params.uri}`
684
+ );
685
+ await this.handleResourceUpdated(clientName, params);
686
+ });
687
+ client.on("promptsListChanged", async () => {
688
+ import_logger.logger.debug(`Received prompts list change notification from ${clientName}`);
689
+ await this.handlePromptsListChanged(clientName, client);
690
+ });
691
+ client.on("toolsListChanged", async () => {
692
+ import_logger.logger.debug(`Received tools list change notification from ${clientName}`);
693
+ await this.handleToolsListChanged(clientName, client);
694
+ });
695
+ import_logger.logger.debug(`Set up notification listeners for client: ${clientName}`);
696
+ } catch (error) {
697
+ import_logger.logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
698
+ }
699
+ }
700
+ /**
701
+ * Handle resource updated notification
702
+ */
703
+ async handleResourceUpdated(serverName, params) {
704
+ try {
705
+ const client = this.clients.get(serverName);
706
+ if (client) {
707
+ const key = this.buildQualifiedResourceKey(serverName, params.uri);
708
+ try {
709
+ const resources = await client.listResources();
710
+ const updatedResource = resources.find((r) => r.uri === params.uri);
711
+ if (updatedResource) {
712
+ this.resourceCache.set(key, {
713
+ serverName,
714
+ client,
715
+ summary: updatedResource
716
+ });
717
+ import_logger.logger.debug(`Updated resource cache for: ${params.uri}`);
718
+ }
719
+ } catch (error) {
720
+ import_logger.logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
721
+ }
722
+ }
723
+ import_events.eventBus.emit("dexto:mcpResourceUpdated", {
724
+ serverName,
725
+ resourceUri: params.uri
726
+ });
727
+ } catch (error) {
728
+ import_logger.logger.error(`Error handling resource update: ${error}`);
729
+ }
730
+ }
731
+ /**
732
+ * Handle prompts list changed notification
733
+ */
734
+ async handlePromptsListChanged(serverName, client) {
735
+ try {
736
+ const existingPrompts = Array.from(this.promptCache.entries()).filter(([_, entry]) => entry.client === client).map(([promptName]) => promptName);
737
+ existingPrompts.forEach((promptName) => {
738
+ this.promptCache.delete(promptName);
739
+ });
740
+ try {
741
+ const newPrompts = await client.listPrompts();
742
+ for (const prompt of newPrompts) {
743
+ const definition = {
744
+ name: prompt.name,
745
+ ...prompt.title && { title: prompt.title },
746
+ ...prompt.description && { description: prompt.description },
747
+ ...prompt.arguments && { arguments: prompt.arguments }
748
+ };
749
+ this.promptCache.set(prompt.name, {
750
+ serverName,
751
+ client,
752
+ definition
753
+ });
754
+ }
755
+ const promptNames = newPrompts.map((p) => p.name);
756
+ import_logger.logger.debug(
757
+ `Updated prompts cache for ${serverName}: [${promptNames.join(", ")}]`
758
+ );
759
+ import_events.eventBus.emit("dexto:mcpPromptsListChanged", {
760
+ serverName,
761
+ prompts: promptNames
762
+ });
763
+ } catch (error) {
764
+ import_logger.logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
765
+ }
766
+ } catch (error) {
767
+ import_logger.logger.error(`Error handling prompts list change: ${error}`);
768
+ }
769
+ }
770
+ /**
771
+ * Handle tools list changed notification
772
+ */
773
+ async handleToolsListChanged(serverName, client) {
774
+ try {
775
+ const removedToolBaseNames = /* @__PURE__ */ new Set();
776
+ for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
777
+ if (entry.serverName === serverName) {
778
+ const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
779
+ const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(
780
+ delimiterIndex + MCPManager.SERVER_DELIMITER.length
781
+ );
782
+ removedToolBaseNames.add(baseName);
783
+ this.toolCache.delete(toolKey);
784
+ }
785
+ }
786
+ try {
787
+ const tools = await client.getTools();
788
+ const toolNames = Object.keys(tools);
789
+ import_logger.logger.debug(
790
+ `\u{1F527} Refreshing tools from server '${serverName}': [${toolNames.join(", ")}]`
791
+ );
792
+ for (const toolName in tools) {
793
+ const toolDef = tools[toolName];
794
+ if (!toolDef) continue;
795
+ const existingEntry = this.toolCache.get(toolName);
796
+ if (existingEntry && existingEntry.serverName !== serverName) {
797
+ this.toolConflicts.add(toolName);
798
+ this.toolCache.delete(toolName);
799
+ const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
800
+ const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
801
+ this.toolCache.set(existingQualified, existingEntry);
802
+ const newSanitized = this.sanitizeServerName(serverName);
803
+ const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
804
+ this.toolCache.set(newQualified, {
805
+ serverName,
806
+ client,
807
+ definition: toolDef
808
+ });
809
+ import_logger.logger.warn(
810
+ `\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
811
+ );
812
+ } else if (this.toolConflicts.has(toolName)) {
813
+ const sanitizedName = this.sanitizeServerName(serverName);
814
+ const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
815
+ this.toolCache.set(qualifiedName, {
816
+ serverName,
817
+ client,
818
+ definition: toolDef
819
+ });
820
+ import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
821
+ } else {
822
+ this.toolCache.set(toolName, {
823
+ serverName,
824
+ client,
825
+ definition: toolDef
826
+ });
827
+ import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
828
+ }
829
+ }
830
+ for (const baseName of removedToolBaseNames) {
831
+ const remainingTools = Array.from(this.toolCache.entries()).filter(
832
+ ([key, _]) => {
833
+ const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
834
+ const bn = delimiterIndex === -1 ? key : key.substring(
835
+ delimiterIndex + MCPManager.SERVER_DELIMITER.length
836
+ );
837
+ return bn === baseName;
838
+ }
839
+ );
840
+ if (remainingTools.length === 0) {
841
+ this.toolConflicts.delete(baseName);
842
+ } else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
843
+ const singleTool = remainingTools[0];
844
+ if (singleTool) {
845
+ const [qualifiedKey, entry] = singleTool;
846
+ this.toolCache.delete(qualifiedKey);
847
+ this.toolCache.set(baseName, entry);
848
+ this.toolConflicts.delete(baseName);
849
+ import_logger.logger.debug(
850
+ `Restored tool '${baseName}' to simple name (conflict resolved)`
851
+ );
852
+ }
853
+ }
854
+ }
855
+ import_logger.logger.debug(`Updated tools cache for ${serverName}: [${toolNames.join(", ")}]`);
856
+ import_events.eventBus.emit("dexto:mcpToolsListChanged", {
857
+ serverName,
858
+ tools: toolNames
859
+ });
860
+ } catch (error) {
861
+ import_logger.logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
862
+ }
863
+ } catch (error) {
864
+ import_logger.logger.error(`Error handling tools list change: ${error}`);
865
+ }
866
+ }
469
867
  }
470
868
  // Annotate the CommonJS export names for ESM import in node:
471
869
  0 && (module.exports = {