@dexto/core 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,107 @@
1
+ import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
2
+ import { ErrorScope, ErrorType } from "../errors/types.js";
3
+ import { MCPErrorCode } from "./error-codes.js";
4
+ class MCPError {
5
+ /**
6
+ * MCP server connection failed
7
+ */
8
+ static connectionFailed(serverName, reason) {
9
+ return new DextoRuntimeError(
10
+ MCPErrorCode.CONNECTION_FAILED,
11
+ ErrorScope.MCP,
12
+ ErrorType.THIRD_PARTY,
13
+ `Failed to connect to MCP server '${serverName}': ${reason}`,
14
+ { serverName, reason },
15
+ "Check that the MCP server is running and accessible"
16
+ );
17
+ }
18
+ /**
19
+ * MCP protocol error
20
+ */
21
+ static protocolError(message, details) {
22
+ return new DextoRuntimeError(
23
+ MCPErrorCode.PROTOCOL_ERROR,
24
+ ErrorScope.MCP,
25
+ ErrorType.THIRD_PARTY,
26
+ `MCP protocol error: ${message}`,
27
+ details,
28
+ "Check MCP server compatibility and protocol version"
29
+ );
30
+ }
31
+ /**
32
+ * MCP duplicate server name
33
+ */
34
+ static duplicateName(name, existingName) {
35
+ return new DextoRuntimeError(
36
+ MCPErrorCode.DUPLICATE_NAME,
37
+ ErrorScope.MCP,
38
+ ErrorType.USER,
39
+ `Server name '${name}' conflicts with existing '${existingName}'`,
40
+ { name, existingName },
41
+ "Use a unique name for each MCP server"
42
+ );
43
+ }
44
+ /**
45
+ * MCP tool not found
46
+ */
47
+ static toolNotFound(toolName) {
48
+ return new DextoRuntimeError(
49
+ MCPErrorCode.TOOL_NOT_FOUND,
50
+ ErrorScope.MCP,
51
+ ErrorType.NOT_FOUND,
52
+ `No MCP tool found: ${toolName}`,
53
+ { toolName }
54
+ );
55
+ }
56
+ /**
57
+ * MCP prompt not found
58
+ */
59
+ static promptNotFound(promptName) {
60
+ return new DextoRuntimeError(
61
+ MCPErrorCode.PROMPT_NOT_FOUND,
62
+ ErrorScope.MCP,
63
+ ErrorType.NOT_FOUND,
64
+ `No client found for prompt: ${promptName}`,
65
+ { promptName }
66
+ );
67
+ }
68
+ /**
69
+ * MCP resource not found
70
+ */
71
+ static resourceNotFound(resourceUri) {
72
+ return new DextoRuntimeError(
73
+ MCPErrorCode.RESOURCE_NOT_FOUND,
74
+ ErrorScope.MCP,
75
+ ErrorType.NOT_FOUND,
76
+ `No client found for resource: ${resourceUri}`,
77
+ { resourceUri }
78
+ );
79
+ }
80
+ /**
81
+ * MCP client not connected
82
+ */
83
+ static clientNotConnected(context) {
84
+ return new DextoRuntimeError(
85
+ MCPErrorCode.CONNECTION_FAILED,
86
+ ErrorScope.MCP,
87
+ ErrorType.SYSTEM,
88
+ `MCP client is not connected${context ? `: ${context}` : ""}`,
89
+ { context }
90
+ );
91
+ }
92
+ /**
93
+ * Invalid tool schema
94
+ */
95
+ static invalidToolSchema(toolName, reason) {
96
+ return new DextoRuntimeError(
97
+ MCPErrorCode.PROTOCOL_ERROR,
98
+ ErrorScope.MCP,
99
+ ErrorType.THIRD_PARTY,
100
+ `Tool '${toolName}' has invalid schema: ${reason}`,
101
+ { toolName, reason }
102
+ );
103
+ }
104
+ }
105
+ export {
106
+ MCPError
107
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var mcp_exports = {};
17
+ module.exports = __toCommonJS(mcp_exports);
18
+ __reExport(mcp_exports, require("./manager.js"), module.exports);
19
+ __reExport(mcp_exports, require("./mcp-client.js"), module.exports);
20
+ __reExport(mcp_exports, require("./types.js"), module.exports);
21
+ __reExport(mcp_exports, require("./schemas.js"), module.exports);
22
+ __reExport(mcp_exports, require("./errors.js"), module.exports);
23
+ __reExport(mcp_exports, require("./error-codes.js"), module.exports);
24
+ __reExport(mcp_exports, require("./resolver.js"), module.exports);
25
+ // Annotate the CommonJS export names for ESM import in node:
26
+ 0 && (module.exports = {
27
+ ...require("./manager.js"),
28
+ ...require("./mcp-client.js"),
29
+ ...require("./types.js"),
30
+ ...require("./schemas.js"),
31
+ ...require("./errors.js"),
32
+ ...require("./error-codes.js"),
33
+ ...require("./resolver.js")
34
+ });
@@ -0,0 +1,26 @@
1
+ export { MCPManager } from './manager.cjs';
2
+ export { MCPClient } from './mcp-client.cjs';
3
+ export { IMCPClient } from './types.cjs';
4
+ export { HttpServerConfig, HttpServerConfigSchema, McpServerConfig, McpServerConfigSchema, ServerConfigs, ServerConfigsSchema, SseServerConfig, SseServerConfigSchema, StdioServerConfig, StdioServerConfigSchema, ValidatedHttpServerConfig, ValidatedMcpServerConfig, ValidatedServerConfigs, ValidatedSseServerConfig, ValidatedStdioServerConfig } from './schemas.cjs';
5
+ export { MCPError } from './errors.cjs';
6
+ export { MCPErrorCode } from './error-codes.cjs';
7
+ export { McpServerContext, resolveAndValidateMcpServerConfig } from './resolver.cjs';
8
+ import '../tools/types.cjs';
9
+ import 'json-schema';
10
+ import 'zod';
11
+ import '@modelcontextprotocol/sdk/types.js';
12
+ import '@modelcontextprotocol/sdk/client/index.js';
13
+ import '../errors/DextoRuntimeError.cjs';
14
+ import '../errors/DextoBaseError.cjs';
15
+ import '../errors/types.cjs';
16
+ import '../agent/error-codes.cjs';
17
+ import '../config/error-codes.cjs';
18
+ import '../context/error-codes.cjs';
19
+ import '../llm/error-codes.cjs';
20
+ import '../session/error-codes.cjs';
21
+ import '../storage/error-codes.cjs';
22
+ import '../systemPrompt/error-codes.cjs';
23
+ import '../tools/error-codes.cjs';
24
+ import '../preferences/error-codes.cjs';
25
+ import '../agent/registry/error-codes.cjs';
26
+ import '../utils/result.cjs';
@@ -0,0 +1,26 @@
1
+ export { MCPManager } from './manager.js';
2
+ export { MCPClient } from './mcp-client.js';
3
+ export { IMCPClient } from './types.js';
4
+ export { HttpServerConfig, HttpServerConfigSchema, McpServerConfig, McpServerConfigSchema, ServerConfigs, ServerConfigsSchema, SseServerConfig, SseServerConfigSchema, StdioServerConfig, StdioServerConfigSchema, ValidatedHttpServerConfig, ValidatedMcpServerConfig, ValidatedServerConfigs, ValidatedSseServerConfig, ValidatedStdioServerConfig } from './schemas.js';
5
+ export { MCPError } from './errors.js';
6
+ export { MCPErrorCode } from './error-codes.js';
7
+ export { McpServerContext, resolveAndValidateMcpServerConfig } from './resolver.js';
8
+ import '../tools/types.js';
9
+ import 'json-schema';
10
+ import 'zod';
11
+ import '@modelcontextprotocol/sdk/types.js';
12
+ import '@modelcontextprotocol/sdk/client/index.js';
13
+ import '../errors/DextoRuntimeError.js';
14
+ import '../errors/DextoBaseError.js';
15
+ import '../errors/types.js';
16
+ import '../agent/error-codes.js';
17
+ import '../config/error-codes.js';
18
+ import '../context/error-codes.js';
19
+ import '../llm/error-codes.js';
20
+ import '../session/error-codes.js';
21
+ import '../storage/error-codes.js';
22
+ import '../systemPrompt/error-codes.js';
23
+ import '../tools/error-codes.js';
24
+ import '../preferences/error-codes.js';
25
+ import '../agent/registry/error-codes.js';
26
+ import '../utils/result.js';
@@ -0,0 +1,7 @@
1
+ export * from "./manager.js";
2
+ export * from "./mcp-client.js";
3
+ export * from "./types.js";
4
+ export * from "./schemas.js";
5
+ export * from "./errors.js";
6
+ export * from "./error-codes.js";
7
+ export * from "./resolver.js";
@@ -0,0 +1,473 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var manager_exports = {};
20
+ __export(manager_exports, {
21
+ MCPManager: () => MCPManager
22
+ });
23
+ module.exports = __toCommonJS(manager_exports);
24
+ var import_mcp_client = require("./mcp-client.js");
25
+ var import_logger = require("../logger/index.js");
26
+ var import_errors = require("./errors.js");
27
+ class MCPManager {
28
+ clients = /* @__PURE__ */ new Map();
29
+ connectionErrors = {};
30
+ toolToClientMap = /* @__PURE__ */ new Map();
31
+ serverToolsMap = /* @__PURE__ */ new Map();
32
+ toolConflicts = /* @__PURE__ */ new Set();
33
+ promptToClientMap = /* @__PURE__ */ new Map();
34
+ resourceToClientMap = /* @__PURE__ */ new Map();
35
+ sanitizedNameToServerMap = /* @__PURE__ */ new Map();
36
+ // Use a distinctive delimiter that won't appear in normal server/tool names
37
+ // Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
38
+ static SERVER_DELIMITER = "--";
39
+ constructor() {
40
+ }
41
+ /**
42
+ * Register a client that provides tools (and potentially more)
43
+ * @param name Unique name for the client
44
+ * @param client The client instance, expected to be IMCPClient
45
+ */
46
+ registerClient(name, client) {
47
+ if (this.clients.has(name)) {
48
+ import_logger.logger.warn(`Client '${name}' already registered. Overwriting.`);
49
+ }
50
+ this.clearClientCache(name);
51
+ const sanitizedName = this.sanitizeServerName(name);
52
+ const existingServerWithSameSanitizedName = this.sanitizedNameToServerMap.get(sanitizedName);
53
+ if (existingServerWithSameSanitizedName && existingServerWithSameSanitizedName !== name) {
54
+ throw import_errors.MCPError.duplicateName(name, existingServerWithSameSanitizedName);
55
+ }
56
+ this.clients.set(name, client);
57
+ this.sanitizedNameToServerMap.set(sanitizedName, name);
58
+ import_logger.logger.info(`Registered client: ${name}`);
59
+ delete this.connectionErrors[name];
60
+ }
61
+ clearClientCache(clientName) {
62
+ const client = this.clients.get(clientName);
63
+ if (!client) return;
64
+ const hadServerTools = this.serverToolsMap.has(clientName);
65
+ this.serverToolsMap.delete(clientName);
66
+ const sanitizedName = this.sanitizeServerName(clientName);
67
+ if (this.sanitizedNameToServerMap.get(sanitizedName) === clientName) {
68
+ this.sanitizedNameToServerMap.delete(sanitizedName);
69
+ }
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
+ }
77
+ }
78
+ );
79
+ if (hadServerTools) {
80
+ this.rebuildToolConflicts();
81
+ }
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);
90
+ }
91
+ }
92
+ for (const [toolName, count] of toolCounts.entries()) {
93
+ if (count > 1) {
94
+ this.toolConflicts.add(toolName);
95
+ this.toolToClientMap.delete(toolName);
96
+ }
97
+ }
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
+ }
103
+ }
104
+ }
105
+ }
106
+ /**
107
+ * Sanitize server name for use in tool prefixing.
108
+ * Ensures the name is safe for LLM provider tool naming constraints.
109
+ */
110
+ sanitizeServerName(serverName) {
111
+ return serverName.replace(/[^a-zA-Z0-9_-]/g, "_");
112
+ }
113
+ async updateClientCache(clientName, client) {
114
+ const serverTools = /* @__PURE__ */ new Map();
115
+ this.serverToolsMap.set(clientName, serverTools);
116
+ try {
117
+ const tools = await client.getTools();
118
+ import_logger.logger.debug(
119
+ `\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
120
+ );
121
+ for (const toolName in tools) {
122
+ serverTools.set(toolName, client);
123
+ const existingClient = this.toolToClientMap.get(toolName);
124
+ if (existingClient && existingClient !== client) {
125
+ this.toolConflicts.add(toolName);
126
+ this.toolToClientMap.delete(toolName);
127
+ import_logger.logger.warn(
128
+ `\u26A0\uFE0F Tool conflict detected for '${toolName}' - will use server prefix`
129
+ );
130
+ } else if (!this.toolConflicts.has(toolName)) {
131
+ this.toolToClientMap.set(toolName, client);
132
+ import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
133
+ }
134
+ }
135
+ import_logger.logger.debug(
136
+ `\u2705 Successfully cached ${Object.keys(tools).length} tools for client: ${clientName}`
137
+ );
138
+ } catch (error) {
139
+ import_logger.logger.error(
140
+ `\u274C Error retrieving tools for client ${clientName}: ${error instanceof Error ? error.message : String(error)}`
141
+ );
142
+ return;
143
+ }
144
+ try {
145
+ 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}`);
150
+ } catch (error) {
151
+ import_logger.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
152
+ }
153
+ try {
154
+ const resources = await client.listResources();
155
+ resources.forEach((resourceUri) => {
156
+ this.resourceToClientMap.set(resourceUri, client);
157
+ });
158
+ import_logger.logger.debug(`Cached resources for client: ${clientName}`);
159
+ } catch (error) {
160
+ import_logger.logger.debug(`Skipping resources for client ${clientName}: ${error}`);
161
+ }
162
+ }
163
+ /**
164
+ * Get all available MCP tools from all connected clients, updating the cache.
165
+ * Conflicted tools are prefixed with server name using distinctive delimiter.
166
+ * @returns Promise resolving to a ToolSet mapping tool names to Tool definitions
167
+ */
168
+ async getAllTools() {
169
+ 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
+ }
199
+ }
200
+ }
201
+ 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(", ")}`
203
+ );
204
+ if (import_logger.logger.getLevel() === "debug") {
205
+ Object.keys(allTools).forEach((toolName) => {
206
+ if (toolName.includes(MCPManager.SERVER_DELIMITER)) {
207
+ import_logger.logger.debug(` - ${toolName} (qualified)`);
208
+ } else {
209
+ import_logger.logger.debug(` - ${toolName}`);
210
+ }
211
+ });
212
+ }
213
+ import_logger.logger.silly(`MCP tools: ${JSON.stringify(allTools, null, 2)}`);
214
+ return allTools;
215
+ }
216
+ /**
217
+ * Parse a qualified tool name to extract server name and actual tool name.
218
+ * Uses distinctive delimiter to avoid ambiguity and splits on last occurrence.
219
+ */
220
+ parseQualifiedToolName(toolName) {
221
+ const delimiterIndex = toolName.lastIndexOf(MCPManager.SERVER_DELIMITER);
222
+ if (delimiterIndex === -1) {
223
+ return null;
224
+ }
225
+ const serverPrefix = toolName.substring(0, delimiterIndex);
226
+ const actualToolName = toolName.substring(
227
+ delimiterIndex + MCPManager.SERVER_DELIMITER.length
228
+ );
229
+ const originalServerName = this.sanitizedNameToServerMap.get(serverPrefix);
230
+ if (originalServerName && this.serverToolsMap.get(originalServerName)?.has(actualToolName)) {
231
+ return { serverName: originalServerName, toolName: actualToolName };
232
+ }
233
+ return null;
234
+ }
235
+ /**
236
+ * Get client that provides a specific tool from the cache.
237
+ * Handles both simple tool names and server-prefixed tool names.
238
+ * @param toolName Name of the tool (may include server prefix)
239
+ * @returns The client that provides the tool, or undefined if not found
240
+ */
241
+ 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);
248
+ }
249
+ /**
250
+ * Execute a specific MCP tool with the given arguments.
251
+ * @param toolName Name of the MCP tool to execute (may include server prefix)
252
+ * @param args Arguments to pass to the tool
253
+ * @param sessionId Optional session ID
254
+ * @returns Promise resolving to the tool execution result
255
+ */
256
+ async executeTool(toolName, args, _sessionId) {
257
+ const client = this.getToolClient(toolName);
258
+ if (!client) {
259
+ 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
+ );
263
+ 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
+ throw import_errors.MCPError.toolNotFound(toolName);
268
+ }
269
+ const parsed = this.parseQualifiedToolName(toolName);
270
+ const actualToolName = parsed ? parsed.toolName : toolName;
271
+ const serverName = parsed ? parsed.serverName : "direct";
272
+ import_logger.logger.debug(`\u25B6\uFE0F Executing MCP tool '${actualToolName}' on server '${serverName}'...`);
273
+ try {
274
+ const result = await client.callTool(actualToolName, args);
275
+ return result;
276
+ } catch (error) {
277
+ import_logger.logger.error(
278
+ `\u274C MCP tool execution failed: '${actualToolName}' - ${error instanceof Error ? error.message : String(error)}`
279
+ );
280
+ throw error;
281
+ }
282
+ }
283
+ /**
284
+ * Get all available prompt names from all connected clients, updating the cache.
285
+ * @returns Promise resolving to an array of unique prompt names.
286
+ */
287
+ async listAllPrompts() {
288
+ return Array.from(this.promptToClientMap.keys());
289
+ }
290
+ /**
291
+ * Get the client that provides a specific prompt from the cache.
292
+ * @param promptName Name of the prompt.
293
+ * @returns The client instance or undefined.
294
+ */
295
+ getPromptClient(promptName) {
296
+ return this.promptToClientMap.get(promptName);
297
+ }
298
+ /**
299
+ * Get a specific prompt definition by name.
300
+ * @param name Name of the prompt.
301
+ * @param args Arguments for the prompt (optional).
302
+ * @returns Promise resolving to the prompt definition.
303
+ */
304
+ async getPrompt(name, args) {
305
+ const client = this.getPromptClient(name);
306
+ if (!client) {
307
+ throw import_errors.MCPError.promptNotFound(name);
308
+ }
309
+ return await client.getPrompt(name, args);
310
+ }
311
+ /**
312
+ * Get all available resource URIs from all connected clients, updating the cache.
313
+ * @returns Promise resolving to an array of unique resource URIs.
314
+ */
315
+ async listAllResources() {
316
+ return Array.from(this.resourceToClientMap.keys());
317
+ }
318
+ /**
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.
322
+ */
323
+ getResourceClient(resourceUri) {
324
+ return this.resourceToClientMap.get(resourceUri);
325
+ }
326
+ /**
327
+ * Read a specific resource by URI.
328
+ * @param uri URI of the resource.
329
+ * @returns Promise resolving to the resource content.
330
+ */
331
+ async readResource(uri) {
332
+ const client = this.getResourceClient(uri);
333
+ if (!client) {
334
+ throw import_errors.MCPError.resourceNotFound(uri);
335
+ }
336
+ return await client.readResource(uri);
337
+ }
338
+ /**
339
+ * Initialize clients from server configurations
340
+ * @param serverConfigs Server configurations with individual connection modes
341
+ * @returns Promise resolving when initialization is complete
342
+ */
343
+ async initializeFromConfig(serverConfigs) {
344
+ if (Object.keys(serverConfigs).length === 0) {
345
+ import_logger.logger.info("No MCP servers configured - running without external tools");
346
+ return;
347
+ }
348
+ const successfulConnections = [];
349
+ const connectionPromises = [];
350
+ const strictServers = [];
351
+ const lenientServers = [];
352
+ for (const [name, config] of Object.entries(serverConfigs)) {
353
+ const effectiveMode = config.connectionMode || "lenient";
354
+ if (effectiveMode === "strict") {
355
+ strictServers.push(name);
356
+ } else {
357
+ lenientServers.push(name);
358
+ }
359
+ const connectPromise = this.connectServer(name, config).then(() => {
360
+ successfulConnections.push(name);
361
+ }).catch((error) => {
362
+ import_logger.logger.debug(
363
+ `Handled connection error for '${name}' during initialization: ${error.message}`
364
+ );
365
+ });
366
+ connectionPromises.push(connectPromise);
367
+ }
368
+ await Promise.all(connectionPromises);
369
+ const failedStrictServers = strictServers.filter(
370
+ (name) => !successfulConnections.includes(name)
371
+ );
372
+ if (failedStrictServers.length > 0) {
373
+ const strictErrors = failedStrictServers.map((name) => `${name}: ${this.connectionErrors[name] || "Unknown error"}`).join("; ");
374
+ throw import_errors.MCPError.connectionFailed("strict servers", strictErrors);
375
+ }
376
+ }
377
+ /**
378
+ * Dynamically connect to a new MCP server.
379
+ * @param name The unique name for the new server connection.
380
+ * @param config The configuration for the server.
381
+ * @returns Promise resolving when the connection attempt is complete.
382
+ * @throws Error if the connection fails.
383
+ */
384
+ async connectServer(name, config) {
385
+ if (this.clients.has(name)) {
386
+ import_logger.logger.warn(`Client '${name}' is already connected or registered.`);
387
+ return;
388
+ }
389
+ const client = new import_mcp_client.MCPClient();
390
+ try {
391
+ import_logger.logger.info(`Attempting to connect to new server '${name}'...`);
392
+ await client.connect(config, name);
393
+ this.registerClient(name, client);
394
+ await this.updateClientCache(name, client);
395
+ import_logger.logger.info(`Successfully connected and cached new server '${name}'`);
396
+ } catch (error) {
397
+ const errorMsg = error instanceof Error ? error.message : String(error);
398
+ this.connectionErrors[name] = errorMsg;
399
+ import_logger.logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
400
+ this.clients.delete(name);
401
+ throw import_errors.MCPError.connectionFailed(name, errorMsg);
402
+ }
403
+ }
404
+ /**
405
+ * Get all registered clients
406
+ * @returns Map of client names to client instances
407
+ */
408
+ getClients() {
409
+ return this.clients;
410
+ }
411
+ /**
412
+ * Get the errors from failed connections
413
+ * @returns Map of server names to error messages
414
+ */
415
+ getFailedConnections() {
416
+ return this.connectionErrors;
417
+ }
418
+ /**
419
+ * Disconnect and remove a specific client by name.
420
+ * @param name The name of the client to remove.
421
+ */
422
+ async removeClient(name) {
423
+ const client = this.clients.get(name);
424
+ 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
+ }
434
+ }
435
+ this.clearClientCache(name);
436
+ this.clients.delete(name);
437
+ import_logger.logger.info(`Removed client from manager: ${name}`);
438
+ }
439
+ if (this.connectionErrors[name]) {
440
+ delete this.connectionErrors[name];
441
+ import_logger.logger.info(`Cleared connection error for removed client: ${name}`);
442
+ }
443
+ }
444
+ /**
445
+ * Disconnect all clients and clear caches
446
+ */
447
+ async disconnectAll() {
448
+ const disconnectPromises = [];
449
+ 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
+ }
457
+ }
458
+ await Promise.all(disconnectPromises);
459
+ this.clients.clear();
460
+ this.connectionErrors = {};
461
+ this.toolToClientMap.clear();
462
+ this.serverToolsMap.clear();
463
+ this.toolConflicts.clear();
464
+ this.promptToClientMap.clear();
465
+ this.resourceToClientMap.clear();
466
+ this.sanitizedNameToServerMap.clear();
467
+ import_logger.logger.info("Disconnected all clients and cleared caches.");
468
+ }
469
+ }
470
+ // Annotate the CommonJS export names for ESM import in node:
471
+ 0 && (module.exports = {
472
+ MCPManager
473
+ });