@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,420 @@
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 mcp_client_exports = {};
20
+ __export(mcp_client_exports, {
21
+ MCPClient: () => MCPClient
22
+ });
23
+ module.exports = __toCommonJS(mcp_client_exports);
24
+ var import_client = require("@modelcontextprotocol/sdk/client/index.js");
25
+ var import_stdio = require("@modelcontextprotocol/sdk/client/stdio.js");
26
+ var import_sse = require("@modelcontextprotocol/sdk/client/sse.js");
27
+ var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
28
+ var import_logger = require("../logger/index.js");
29
+ var import_path = require("../utils/path.js");
30
+ var import_errors = require("./errors.js");
31
+ class MCPClient {
32
+ client = null;
33
+ transport = null;
34
+ isConnected = false;
35
+ serverCommand = null;
36
+ originalArgs = null;
37
+ resolvedArgs = null;
38
+ serverEnv = null;
39
+ serverSpawned = false;
40
+ serverPid = null;
41
+ serverAlias = null;
42
+ timeout = 6e4;
43
+ // Default timeout value
44
+ async connect(config, serverName) {
45
+ this.timeout = config.timeout ?? 3e4;
46
+ if (config.type === "stdio") {
47
+ const stdioConfig = config;
48
+ let command = stdioConfig.command;
49
+ if (process.platform === "win32" && command === "npx") {
50
+ command = "C:\\Program Files\\nodejs\\npx.cmd";
51
+ }
52
+ return this.connectViaStdio(command, stdioConfig.args, stdioConfig.env, serverName);
53
+ } else if (config.type === "sse") {
54
+ const sseConfig = config;
55
+ return this.connectViaSSE(sseConfig.url, sseConfig.headers, serverName);
56
+ } else if (config.type === "http") {
57
+ const httpConfig = config;
58
+ return this.connectViaHttp(httpConfig.url, httpConfig.headers || {}, serverName);
59
+ } else {
60
+ const _exhaustive = config;
61
+ throw import_errors.MCPError.protocolError(`Unsupported server type: ${JSON.stringify(_exhaustive)}`);
62
+ }
63
+ }
64
+ /**
65
+ * Connect to an MCP server via stdio
66
+ * @param command Command to run
67
+ * @param args Arguments for the command
68
+ * @param env Environment variables
69
+ * @param serverAlias Optional server alias/name to show in logs
70
+ */
71
+ async connectViaStdio(command, args = [], env, serverAlias) {
72
+ this.serverCommand = command;
73
+ this.originalArgs = [...args];
74
+ this.resolvedArgs = [...this.originalArgs];
75
+ this.serverEnv = env || null;
76
+ this.serverAlias = serverAlias || null;
77
+ if (command === "node" && this.resolvedArgs && this.resolvedArgs.length > 0 && this.resolvedArgs[0]?.startsWith("dist/")) {
78
+ try {
79
+ const scriptRelativePath = this.resolvedArgs[0];
80
+ this.resolvedArgs[0] = (0, import_path.resolveBundledScript)(scriptRelativePath);
81
+ import_logger.logger.debug(
82
+ `Resolved bundled script path: ${scriptRelativePath} -> ${this.resolvedArgs[0]}`
83
+ );
84
+ } catch (e) {
85
+ import_logger.logger.warn(
86
+ `Failed to resolve path for bundled script ${this.resolvedArgs[0]}: ${JSON.stringify(e, null, 2)}`
87
+ );
88
+ }
89
+ }
90
+ import_logger.logger.info("=======================================");
91
+ import_logger.logger.info(`MCP SERVER: ${command} ${this.resolvedArgs.join(" ")}`, null, "magenta");
92
+ if (env) {
93
+ import_logger.logger.info("Environment:");
94
+ Object.entries(env).forEach(([key, _]) => {
95
+ import_logger.logger.info(` ${key}= [value hidden]`);
96
+ });
97
+ }
98
+ import_logger.logger.info("=======================================\n");
99
+ const serverName = this.serverAlias ? `"${this.serverAlias}" (${command} ${this.resolvedArgs.join(" ")})` : `${command} ${this.resolvedArgs.join(" ")}`;
100
+ import_logger.logger.info(`Connecting to MCP server: ${serverName}`);
101
+ const expandedEnv = {
102
+ ...process.env,
103
+ ...env || {}
104
+ };
105
+ this.transport = new import_stdio.StdioClientTransport({
106
+ command,
107
+ args: this.resolvedArgs,
108
+ env: expandedEnv
109
+ });
110
+ this.client = new import_client.Client(
111
+ {
112
+ name: "Dexto-stdio-mcp-client",
113
+ version: "1.0.0"
114
+ },
115
+ {
116
+ capabilities: { tools: {} }
117
+ }
118
+ );
119
+ try {
120
+ import_logger.logger.info("Establishing connection...");
121
+ await this.client.connect(this.transport);
122
+ this.serverSpawned = true;
123
+ import_logger.logger.info(`\u2705 Stdio SERVER ${serverName} SPAWNED`);
124
+ import_logger.logger.info("Connection established!\n\n");
125
+ this.isConnected = true;
126
+ return this.client;
127
+ } catch (error) {
128
+ import_logger.logger.error(
129
+ `Failed to connect to MCP server ${serverName}: ${JSON.stringify(error.message, null, 2)}`
130
+ );
131
+ throw error;
132
+ }
133
+ }
134
+ async connectViaSSE(url, headers = {}, serverName) {
135
+ import_logger.logger.debug(`Connecting to SSE MCP server at url: ${url}`);
136
+ this.transport = new import_sse.SSEClientTransport(new URL(url), {
137
+ // For regular HTTP requests
138
+ requestInit: {
139
+ headers
140
+ }
141
+ // Need to implement eventSourceInit for SSE events.
142
+ });
143
+ import_logger.logger.debug(`[connectViaSSE] SSE transport: ${JSON.stringify(this.transport, null, 2)}`);
144
+ this.client = new import_client.Client(
145
+ {
146
+ name: "Dexto-sse-mcp-client",
147
+ version: "1.0.0"
148
+ },
149
+ {
150
+ capabilities: { tools: {} }
151
+ }
152
+ );
153
+ try {
154
+ import_logger.logger.info("Establishing connection...");
155
+ await this.client.connect(this.transport);
156
+ this.serverSpawned = true;
157
+ import_logger.logger.info(`\u2705 ${serverName} SSE SERVER SPAWNED`);
158
+ import_logger.logger.info("Connection established!\n\n");
159
+ this.isConnected = true;
160
+ return this.client;
161
+ } catch (error) {
162
+ import_logger.logger.error(
163
+ `Failed to connect to SSE MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
164
+ );
165
+ throw error;
166
+ }
167
+ }
168
+ /**
169
+ * Connect to an MCP server via Streamable HTTP transport
170
+ */
171
+ async connectViaHttp(url, headers = {}, serverAlias) {
172
+ import_logger.logger.info(`Connecting to HTTP MCP server at ${url}`);
173
+ this.transport = new import_streamableHttp.StreamableHTTPClientTransport(new URL(url), {
174
+ requestInit: { headers: headers || {} }
175
+ });
176
+ this.client = new import_client.Client(
177
+ { name: "Dexto-http-mcp-client", version: "1.0.0" },
178
+ { capabilities: { tools: {} } }
179
+ );
180
+ try {
181
+ import_logger.logger.info("Establishing HTTP connection...");
182
+ await this.client.connect(this.transport);
183
+ this.isConnected = true;
184
+ import_logger.logger.info(`\u2705 HTTP SERVER ${serverAlias ?? url} CONNECTED`);
185
+ return this.client;
186
+ } catch (error) {
187
+ import_logger.logger.error(
188
+ `Failed to connect to HTTP MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
189
+ );
190
+ throw error;
191
+ }
192
+ }
193
+ /**
194
+ * Disconnect from the server
195
+ */
196
+ async disconnect() {
197
+ if (this.transport && typeof this.transport.close === "function") {
198
+ try {
199
+ await this.transport.close();
200
+ this.isConnected = false;
201
+ this.serverSpawned = false;
202
+ import_logger.logger.info("Disconnected from MCP server");
203
+ } catch (error) {
204
+ import_logger.logger.error(
205
+ `Error disconnecting from MCP server: ${JSON.stringify(error.message, null, 2)}`
206
+ );
207
+ }
208
+ }
209
+ }
210
+ /**
211
+ * Call a tool with given name and arguments
212
+ * @param name Tool name
213
+ * @param args Tool arguments
214
+ * @returns Result of the tool execution
215
+ */
216
+ async callTool(name, args) {
217
+ this.ensureConnected();
218
+ try {
219
+ import_logger.logger.debug(`Calling tool '${name}' with args: ${JSON.stringify(args, null, 2)}`);
220
+ let toolArgs = args;
221
+ if (typeof args === "string") {
222
+ try {
223
+ toolArgs = JSON.parse(args);
224
+ } catch {
225
+ toolArgs = { input: args };
226
+ }
227
+ }
228
+ import_logger.logger.debug(`Using timeout: ${this.timeout}`);
229
+ const result = await this.client.callTool(
230
+ { name, arguments: toolArgs },
231
+ void 0,
232
+ // resultSchema (optional)
233
+ { timeout: this.timeout }
234
+ // Use server-specific timeout, default 1 minute
235
+ );
236
+ const logResult = JSON.stringify(
237
+ result,
238
+ (key, value) => {
239
+ if (key === "data" && typeof value === "string" && value.length > 100) {
240
+ return `[Base64 data: ${value.length} chars]`;
241
+ }
242
+ return value;
243
+ },
244
+ 2
245
+ );
246
+ import_logger.logger.debug(`Tool '${name}' result: ${logResult}`);
247
+ if (result === null || result === void 0) {
248
+ return "Tool executed successfully with no result data.";
249
+ }
250
+ return result;
251
+ } catch (error) {
252
+ import_logger.logger.error(`Tool call '${name}' failed: ${JSON.stringify(error, null, 2)}`);
253
+ return `Error executing tool '${name}': ${error instanceof Error ? error.message : String(error)}`;
254
+ }
255
+ }
256
+ /**
257
+ * Get the list of tools provided by this client
258
+ * @returns Array of available tools
259
+ */
260
+ async getTools() {
261
+ this.ensureConnected();
262
+ const tools = {};
263
+ try {
264
+ const listToolResult = await this.client.listTools({});
265
+ import_logger.logger.silly(`listTools result: ${JSON.stringify(listToolResult, null, 2)}`);
266
+ if (listToolResult && listToolResult.tools) {
267
+ listToolResult.tools.forEach((tool) => {
268
+ if (!tool.description) {
269
+ import_logger.logger.warn(`Tool '${tool.name}' is missing a description`);
270
+ }
271
+ if (!tool.inputSchema) {
272
+ throw import_errors.MCPError.invalidToolSchema(tool.name, "missing input schema");
273
+ }
274
+ tools[tool.name] = {
275
+ description: tool.description ?? "",
276
+ parameters: tool.inputSchema
277
+ };
278
+ });
279
+ } else {
280
+ throw import_errors.MCPError.protocolError(
281
+ "listTools did not return the expected structure: missing tools"
282
+ );
283
+ }
284
+ } catch (error) {
285
+ import_logger.logger.warn(
286
+ `Failed to get tools from MCP server, proceeding with zero tools: ${JSON.stringify(error, null, 2)}`
287
+ );
288
+ return tools;
289
+ }
290
+ return tools;
291
+ }
292
+ /**
293
+ * Get the list of prompts provided by this client
294
+ * @returns Array of available prompt names
295
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
296
+ */
297
+ async listPrompts() {
298
+ this.ensureConnected();
299
+ try {
300
+ const response = await this.client.listPrompts();
301
+ import_logger.logger.debug(`listPrompts response: ${JSON.stringify(response, null, 2)}`);
302
+ return response.prompts.map((p) => p.name);
303
+ } catch (error) {
304
+ import_logger.logger.debug(
305
+ `Failed to list prompts from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
306
+ );
307
+ return [];
308
+ }
309
+ }
310
+ /**
311
+ * Get a specific prompt definition
312
+ * @param name Name of the prompt
313
+ * @param args Arguments for the prompt (optional)
314
+ * @returns Prompt definition (structure depends on SDK)
315
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
316
+ */
317
+ async getPrompt(name, args) {
318
+ this.ensureConnected();
319
+ try {
320
+ import_logger.logger.debug(`Getting prompt '${name}' with args: ${JSON.stringify(args, null, 2)}`);
321
+ const response = await this.client.getPrompt(
322
+ { name, arguments: args },
323
+ { timeout: this.timeout }
324
+ );
325
+ import_logger.logger.debug(`getPrompt '${name}' response: ${JSON.stringify(response, null, 2)}`);
326
+ return response;
327
+ } catch (error) {
328
+ import_logger.logger.debug(
329
+ `Failed to get prompt '${name}' from MCP server: ${JSON.stringify(error, null, 2)}`
330
+ );
331
+ throw import_errors.MCPError.protocolError(
332
+ `Error getting prompt '${name}': ${error instanceof Error ? error.message : String(error)}`
333
+ );
334
+ }
335
+ }
336
+ /**
337
+ * Get the list of resources provided by this client
338
+ * @returns Array of available resource URIs
339
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
340
+ */
341
+ async listResources() {
342
+ this.ensureConnected();
343
+ try {
344
+ const response = await this.client.listResources();
345
+ import_logger.logger.debug(`listResources response: ${JSON.stringify(response, null, 2)}`);
346
+ return response.resources.map((r) => r.uri);
347
+ } catch (error) {
348
+ import_logger.logger.debug(
349
+ `Failed to list resources from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
350
+ );
351
+ return [];
352
+ }
353
+ }
354
+ /**
355
+ * Read the content of a specific resource
356
+ * @param uri URI of the resource
357
+ * @returns Content of the resource (structure depends on SDK)
358
+ */
359
+ async readResource(uri) {
360
+ this.ensureConnected();
361
+ try {
362
+ import_logger.logger.debug(`Reading resource '${uri}'`);
363
+ const response = await this.client.readResource({ uri }, { timeout: this.timeout });
364
+ import_logger.logger.debug(`readResource '${uri}' response: ${JSON.stringify(response, null, 2)}`);
365
+ return response;
366
+ } catch (error) {
367
+ import_logger.logger.debug(
368
+ `Failed to read resource '${uri}' from MCP server: ${JSON.stringify(error, null, 2)}`
369
+ );
370
+ throw import_errors.MCPError.protocolError(
371
+ `Error reading resource '${uri}': ${error instanceof Error ? error.message : String(error)}`
372
+ );
373
+ }
374
+ }
375
+ /**
376
+ * Check if the client is connected
377
+ */
378
+ getConnectionStatus() {
379
+ return this.isConnected;
380
+ }
381
+ /**
382
+ * Get the connected client
383
+ */
384
+ getClient() {
385
+ return this.client;
386
+ }
387
+ /**
388
+ * Get server status information
389
+ */
390
+ getServerInfo() {
391
+ return {
392
+ spawned: this.serverSpawned,
393
+ pid: this.serverPid,
394
+ command: this.serverCommand,
395
+ originalArgs: this.originalArgs,
396
+ resolvedArgs: this.resolvedArgs,
397
+ env: this.serverEnv,
398
+ alias: this.serverAlias
399
+ };
400
+ }
401
+ /**
402
+ * Get the client instance once connected
403
+ * @returns Promise with the MCP client
404
+ */
405
+ async getConnectedClient() {
406
+ if (!this.client || !this.isConnected) {
407
+ throw import_errors.MCPError.clientNotConnected();
408
+ }
409
+ return this.client;
410
+ }
411
+ ensureConnected() {
412
+ if (!this.isConnected || !this.client) {
413
+ throw import_errors.MCPError.clientNotConnected("Please call connect() first");
414
+ }
415
+ }
416
+ }
417
+ // Annotate the CommonJS export names for ESM import in node:
418
+ 0 && (module.exports = {
419
+ MCPClient
420
+ });
@@ -0,0 +1,108 @@
1
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
+ import { ValidatedMcpServerConfig } from './schemas.cjs';
3
+ import { ToolSet } from '../tools/types.cjs';
4
+ import { IMCPClient } from './types.cjs';
5
+ import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
6
+ import 'zod';
7
+ import 'json-schema';
8
+
9
+ /**
10
+ * Wrapper on top of Client class provided in model context protocol SDK, to add additional metadata about the server
11
+ */
12
+ declare class MCPClient implements IMCPClient {
13
+ private client;
14
+ private transport;
15
+ private isConnected;
16
+ private serverCommand;
17
+ private originalArgs;
18
+ private resolvedArgs;
19
+ private serverEnv;
20
+ private serverSpawned;
21
+ private serverPid;
22
+ private serverAlias;
23
+ private timeout;
24
+ connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
25
+ /**
26
+ * Connect to an MCP server via stdio
27
+ * @param command Command to run
28
+ * @param args Arguments for the command
29
+ * @param env Environment variables
30
+ * @param serverAlias Optional server alias/name to show in logs
31
+ */
32
+ connectViaStdio(command: string, args?: string[], env?: Record<string, string>, serverAlias?: string): Promise<Client>;
33
+ connectViaSSE(url: string, headers: Record<string, string> | undefined, serverName: string): Promise<Client>;
34
+ /**
35
+ * Connect to an MCP server via Streamable HTTP transport
36
+ */
37
+ private connectViaHttp;
38
+ /**
39
+ * Disconnect from the server
40
+ */
41
+ disconnect(): Promise<void>;
42
+ /**
43
+ * Call a tool with given name and arguments
44
+ * @param name Tool name
45
+ * @param args Tool arguments
46
+ * @returns Result of the tool execution
47
+ */
48
+ callTool(name: string, args: any): Promise<any>;
49
+ /**
50
+ * Get the list of tools provided by this client
51
+ * @returns Array of available tools
52
+ */
53
+ getTools(): Promise<ToolSet>;
54
+ /**
55
+ * Get the list of prompts provided by this client
56
+ * @returns Array of available prompt names
57
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
58
+ */
59
+ listPrompts(): Promise<string[]>;
60
+ /**
61
+ * Get a specific prompt definition
62
+ * @param name Name of the prompt
63
+ * @param args Arguments for the prompt (optional)
64
+ * @returns Prompt definition (structure depends on SDK)
65
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
66
+ */
67
+ getPrompt(name: string, args?: any): Promise<GetPromptResult>;
68
+ /**
69
+ * Get the list of resources provided by this client
70
+ * @returns Array of available resource URIs
71
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
72
+ */
73
+ listResources(): Promise<string[]>;
74
+ /**
75
+ * Read the content of a specific resource
76
+ * @param uri URI of the resource
77
+ * @returns Content of the resource (structure depends on SDK)
78
+ */
79
+ readResource(uri: string): Promise<ReadResourceResult>;
80
+ /**
81
+ * Check if the client is connected
82
+ */
83
+ getConnectionStatus(): boolean;
84
+ /**
85
+ * Get the connected client
86
+ */
87
+ getClient(): Client | null;
88
+ /**
89
+ * Get server status information
90
+ */
91
+ getServerInfo(): {
92
+ spawned: boolean;
93
+ pid: number | null;
94
+ command: string | null;
95
+ originalArgs: string[] | null;
96
+ resolvedArgs: string[] | null;
97
+ env: Record<string, string> | null;
98
+ alias: string | null;
99
+ };
100
+ /**
101
+ * Get the client instance once connected
102
+ * @returns Promise with the MCP client
103
+ */
104
+ getConnectedClient(): Promise<Client>;
105
+ private ensureConnected;
106
+ }
107
+
108
+ export { MCPClient };
@@ -0,0 +1,108 @@
1
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
+ import { ValidatedMcpServerConfig } from './schemas.js';
3
+ import { ToolSet } from '../tools/types.js';
4
+ import { IMCPClient } from './types.js';
5
+ import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
6
+ import 'zod';
7
+ import 'json-schema';
8
+
9
+ /**
10
+ * Wrapper on top of Client class provided in model context protocol SDK, to add additional metadata about the server
11
+ */
12
+ declare class MCPClient implements IMCPClient {
13
+ private client;
14
+ private transport;
15
+ private isConnected;
16
+ private serverCommand;
17
+ private originalArgs;
18
+ private resolvedArgs;
19
+ private serverEnv;
20
+ private serverSpawned;
21
+ private serverPid;
22
+ private serverAlias;
23
+ private timeout;
24
+ connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
25
+ /**
26
+ * Connect to an MCP server via stdio
27
+ * @param command Command to run
28
+ * @param args Arguments for the command
29
+ * @param env Environment variables
30
+ * @param serverAlias Optional server alias/name to show in logs
31
+ */
32
+ connectViaStdio(command: string, args?: string[], env?: Record<string, string>, serverAlias?: string): Promise<Client>;
33
+ connectViaSSE(url: string, headers: Record<string, string> | undefined, serverName: string): Promise<Client>;
34
+ /**
35
+ * Connect to an MCP server via Streamable HTTP transport
36
+ */
37
+ private connectViaHttp;
38
+ /**
39
+ * Disconnect from the server
40
+ */
41
+ disconnect(): Promise<void>;
42
+ /**
43
+ * Call a tool with given name and arguments
44
+ * @param name Tool name
45
+ * @param args Tool arguments
46
+ * @returns Result of the tool execution
47
+ */
48
+ callTool(name: string, args: any): Promise<any>;
49
+ /**
50
+ * Get the list of tools provided by this client
51
+ * @returns Array of available tools
52
+ */
53
+ getTools(): Promise<ToolSet>;
54
+ /**
55
+ * Get the list of prompts provided by this client
56
+ * @returns Array of available prompt names
57
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
58
+ */
59
+ listPrompts(): Promise<string[]>;
60
+ /**
61
+ * Get a specific prompt definition
62
+ * @param name Name of the prompt
63
+ * @param args Arguments for the prompt (optional)
64
+ * @returns Prompt definition (structure depends on SDK)
65
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
66
+ */
67
+ getPrompt(name: string, args?: any): Promise<GetPromptResult>;
68
+ /**
69
+ * Get the list of resources provided by this client
70
+ * @returns Array of available resource URIs
71
+ * TODO: Turn exception logs back into error and only call this based on capabilities of the server
72
+ */
73
+ listResources(): Promise<string[]>;
74
+ /**
75
+ * Read the content of a specific resource
76
+ * @param uri URI of the resource
77
+ * @returns Content of the resource (structure depends on SDK)
78
+ */
79
+ readResource(uri: string): Promise<ReadResourceResult>;
80
+ /**
81
+ * Check if the client is connected
82
+ */
83
+ getConnectionStatus(): boolean;
84
+ /**
85
+ * Get the connected client
86
+ */
87
+ getClient(): Client | null;
88
+ /**
89
+ * Get server status information
90
+ */
91
+ getServerInfo(): {
92
+ spawned: boolean;
93
+ pid: number | null;
94
+ command: string | null;
95
+ originalArgs: string[] | null;
96
+ resolvedArgs: string[] | null;
97
+ env: Record<string, string> | null;
98
+ alias: string | null;
99
+ };
100
+ /**
101
+ * Get the client instance once connected
102
+ * @returns Promise with the MCP client
103
+ */
104
+ getConnectedClient(): Promise<Client>;
105
+ private ensureConnected;
106
+ }
107
+
108
+ export { MCPClient };