@1mcp/agent 0.28.1 → 0.29.0-beta2

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 (399) hide show
  1. package/build/auth/sessionTypes.d.ts +19 -0
  2. package/build/auth/sessionTypes.d.ts.map +1 -1
  3. package/build/commands/app/backups.d.ts.map +1 -1
  4. package/build/commands/app/backups.js +52 -42
  5. package/build/commands/app/backups.js.map +1 -1
  6. package/build/commands/app/consolidate.d.ts.map +1 -1
  7. package/build/commands/app/consolidate.js +66 -55
  8. package/build/commands/app/consolidate.js.map +1 -1
  9. package/build/commands/app/discover.d.ts.map +1 -1
  10. package/build/commands/app/discover.js +32 -25
  11. package/build/commands/app/discover.js.map +1 -1
  12. package/build/commands/app/index.d.ts.map +1 -1
  13. package/build/commands/app/index.js +2 -1
  14. package/build/commands/app/index.js.map +1 -1
  15. package/build/commands/app/list.d.ts.map +1 -1
  16. package/build/commands/app/list.js +35 -28
  17. package/build/commands/app/list.js.map +1 -1
  18. package/build/commands/app/restore.d.ts.map +1 -1
  19. package/build/commands/app/restore.js +74 -63
  20. package/build/commands/app/restore.js.map +1 -1
  21. package/build/commands/app/status.d.ts.map +1 -1
  22. package/build/commands/app/status.js +51 -43
  23. package/build/commands/app/status.js.map +1 -1
  24. package/build/commands/mcp/add.d.ts.map +1 -1
  25. package/build/commands/mcp/add.js +29 -23
  26. package/build/commands/mcp/add.js.map +1 -1
  27. package/build/commands/mcp/enable.d.ts.map +1 -1
  28. package/build/commands/mcp/enable.js +16 -15
  29. package/build/commands/mcp/enable.js.map +1 -1
  30. package/build/commands/mcp/index.d.ts.map +1 -1
  31. package/build/commands/mcp/index.js +2 -1
  32. package/build/commands/mcp/index.js.map +1 -1
  33. package/build/commands/mcp/install.d.ts.map +1 -1
  34. package/build/commands/mcp/install.js +44 -46
  35. package/build/commands/mcp/install.js.map +1 -1
  36. package/build/commands/mcp/list.d.ts.map +1 -1
  37. package/build/commands/mcp/list.js +51 -37
  38. package/build/commands/mcp/list.js.map +1 -1
  39. package/build/commands/mcp/remove.d.ts.map +1 -1
  40. package/build/commands/mcp/remove.js +23 -16
  41. package/build/commands/mcp/remove.js.map +1 -1
  42. package/build/commands/mcp/status.d.ts.map +1 -1
  43. package/build/commands/mcp/status.js +81 -73
  44. package/build/commands/mcp/status.js.map +1 -1
  45. package/build/commands/mcp/tokens.d.ts.map +1 -1
  46. package/build/commands/mcp/tokens.js +46 -47
  47. package/build/commands/mcp/tokens.js.map +1 -1
  48. package/build/commands/mcp/uninstall.d.ts.map +1 -1
  49. package/build/commands/mcp/uninstall.js +8 -6
  50. package/build/commands/mcp/uninstall.js.map +1 -1
  51. package/build/commands/mcp/update.d.ts.map +1 -1
  52. package/build/commands/mcp/update.js +11 -8
  53. package/build/commands/mcp/update.js.map +1 -1
  54. package/build/commands/mcp/utils/installWizard.d.ts.map +1 -1
  55. package/build/commands/mcp/utils/installWizard.js +3 -2
  56. package/build/commands/mcp/utils/installWizard.js.map +1 -1
  57. package/build/commands/mcp/utils/serverUtils.d.ts +8 -4
  58. package/build/commands/mcp/utils/serverUtils.d.ts.map +1 -1
  59. package/build/commands/mcp/utils/serverUtils.js +0 -3
  60. package/build/commands/mcp/utils/serverUtils.js.map +1 -1
  61. package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts.map +1 -1
  62. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js +4 -3
  63. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js.map +1 -1
  64. package/build/commands/mcp/wizard/components/stepIndicator.d.ts.map +1 -1
  65. package/build/commands/mcp/wizard/components/stepIndicator.js +3 -2
  66. package/build/commands/mcp/wizard/components/stepIndicator.js.map +1 -1
  67. package/build/commands/mcp/wizard/components/welcomeScreen.d.ts.map +1 -1
  68. package/build/commands/mcp/wizard/components/welcomeScreen.js +2 -1
  69. package/build/commands/mcp/wizard/components/welcomeScreen.js.map +1 -1
  70. package/build/commands/mcp/wizard/configuration.d.ts.map +1 -1
  71. package/build/commands/mcp/wizard/configuration.js +10 -9
  72. package/build/commands/mcp/wizard/configuration.js.map +1 -1
  73. package/build/commands/mcp/wizard/display.d.ts.map +1 -1
  74. package/build/commands/mcp/wizard/display.js +9 -8
  75. package/build/commands/mcp/wizard/display.js.map +1 -1
  76. package/build/commands/mcp/wizard/search.d.ts.map +1 -1
  77. package/build/commands/mcp/wizard/search.js +4 -3
  78. package/build/commands/mcp/wizard/search.js.map +1 -1
  79. package/build/commands/preset/create.d.ts.map +1 -1
  80. package/build/commands/preset/create.js +7 -6
  81. package/build/commands/preset/create.js.map +1 -1
  82. package/build/commands/preset/delete.d.ts.map +1 -1
  83. package/build/commands/preset/delete.js +4 -2
  84. package/build/commands/preset/delete.js.map +1 -1
  85. package/build/commands/preset/edit.d.ts.map +1 -1
  86. package/build/commands/preset/edit.js +8 -5
  87. package/build/commands/preset/edit.js.map +1 -1
  88. package/build/commands/preset/interactive.d.ts.map +1 -1
  89. package/build/commands/preset/interactive.js +24 -15
  90. package/build/commands/preset/interactive.js.map +1 -1
  91. package/build/commands/preset/list.d.ts.map +1 -1
  92. package/build/commands/preset/list.js +12 -10
  93. package/build/commands/preset/list.js.map +1 -1
  94. package/build/commands/preset/show.d.ts.map +1 -1
  95. package/build/commands/preset/show.js +3 -2
  96. package/build/commands/preset/show.js.map +1 -1
  97. package/build/commands/preset/test.d.ts.map +1 -1
  98. package/build/commands/preset/test.js +2 -1
  99. package/build/commands/preset/test.js.map +1 -1
  100. package/build/commands/preset/url.d.ts.map +1 -1
  101. package/build/commands/preset/url.js +2 -1
  102. package/build/commands/preset/url.js.map +1 -1
  103. package/build/commands/proxy/index.d.ts.map +1 -1
  104. package/build/commands/proxy/index.js +5 -0
  105. package/build/commands/proxy/index.js.map +1 -1
  106. package/build/commands/proxy/proxy.d.ts.map +1 -1
  107. package/build/commands/proxy/proxy.js +1 -0
  108. package/build/commands/proxy/proxy.js.map +1 -1
  109. package/build/commands/registry/index.d.ts.map +1 -1
  110. package/build/commands/registry/index.js +2 -1
  111. package/build/commands/registry/index.js.map +1 -1
  112. package/build/commands/registry/search.d.ts.map +1 -1
  113. package/build/commands/registry/search.js +42 -37
  114. package/build/commands/registry/search.js.map +1 -1
  115. package/build/commands/registry/show.d.ts.map +1 -1
  116. package/build/commands/registry/show.js +8 -7
  117. package/build/commands/registry/show.js.map +1 -1
  118. package/build/commands/registry/status.d.ts.map +1 -1
  119. package/build/commands/registry/status.js +26 -16
  120. package/build/commands/registry/status.js.map +1 -1
  121. package/build/commands/registry/versions.d.ts.map +1 -1
  122. package/build/commands/registry/versions.js +8 -7
  123. package/build/commands/registry/versions.js.map +1 -1
  124. package/build/config/configChangeDetector.d.ts +8 -0
  125. package/build/config/configChangeDetector.d.ts.map +1 -0
  126. package/build/config/configChangeDetector.js +49 -0
  127. package/build/config/configChangeDetector.js.map +1 -0
  128. package/build/config/configLoader.d.ts +16 -0
  129. package/build/config/configLoader.d.ts.map +1 -0
  130. package/build/config/configLoader.js +155 -0
  131. package/build/config/configLoader.js.map +1 -0
  132. package/build/config/configManager.d.ts +49 -86
  133. package/build/config/configManager.d.ts.map +1 -1
  134. package/build/config/configManager.js +188 -301
  135. package/build/config/configManager.js.map +1 -1
  136. package/build/config/configWatcher.d.ts +18 -0
  137. package/build/config/configWatcher.d.ts.map +1 -0
  138. package/build/config/configWatcher.js +78 -0
  139. package/build/config/configWatcher.js.map +1 -0
  140. package/build/config/projectConfigTypes.d.ts +40 -0
  141. package/build/config/projectConfigTypes.d.ts.map +1 -1
  142. package/build/config/projectConfigTypes.js +21 -0
  143. package/build/config/projectConfigTypes.js.map +1 -1
  144. package/build/config/templateProcessor.d.ts +14 -0
  145. package/build/config/templateProcessor.d.ts.map +1 -0
  146. package/build/config/templateProcessor.js +102 -0
  147. package/build/config/templateProcessor.js.map +1 -0
  148. package/build/config/types.d.ts +36 -0
  149. package/build/config/types.d.ts.map +1 -0
  150. package/build/config/types.js +14 -0
  151. package/build/config/types.js.map +1 -0
  152. package/build/constants/mcp.d.ts +1 -1
  153. package/build/constants/mcp.d.ts.map +1 -1
  154. package/build/constants/mcp.js +1 -1
  155. package/build/constants/mcp.js.map +1 -1
  156. package/build/core/client/clientFactory.d.ts +7 -0
  157. package/build/core/client/clientFactory.d.ts.map +1 -0
  158. package/build/core/client/clientFactory.js +36 -0
  159. package/build/core/client/clientFactory.js.map +1 -0
  160. package/build/core/client/clientManager.d.ts +13 -101
  161. package/build/core/client/clientManager.d.ts.map +1 -1
  162. package/build/core/client/clientManager.js +115 -418
  163. package/build/core/client/clientManager.js.map +1 -1
  164. package/build/core/client/connectionHandler.d.ts +8 -0
  165. package/build/core/client/connectionHandler.d.ts.map +1 -0
  166. package/build/core/client/connectionHandler.js +80 -0
  167. package/build/core/client/connectionHandler.js.map +1 -0
  168. package/build/core/client/oauthFlowHandler.d.ts +10 -0
  169. package/build/core/client/oauthFlowHandler.d.ts.map +1 -0
  170. package/build/core/client/oauthFlowHandler.js +81 -0
  171. package/build/core/client/oauthFlowHandler.js.map +1 -0
  172. package/build/core/client/transportRecreator.d.ts +5 -0
  173. package/build/core/client/transportRecreator.d.ts.map +1 -0
  174. package/build/core/client/transportRecreator.js +23 -0
  175. package/build/core/client/transportRecreator.js.map +1 -0
  176. package/build/core/client/types.d.ts +7 -0
  177. package/build/core/client/types.d.ts.map +1 -0
  178. package/build/core/client/types.js +11 -0
  179. package/build/core/client/types.js.map +1 -0
  180. package/build/core/configChangeHandler.d.ts.map +1 -1
  181. package/build/core/configChangeHandler.js +11 -5
  182. package/build/core/configChangeHandler.js.map +1 -1
  183. package/build/core/context/globalContextManager.d.ts +58 -0
  184. package/build/core/context/globalContextManager.d.ts.map +1 -0
  185. package/build/core/context/globalContextManager.js +190 -0
  186. package/build/core/context/globalContextManager.js.map +1 -0
  187. package/build/core/filtering/clientFiltering.d.ts +1 -2
  188. package/build/core/filtering/clientFiltering.d.ts.map +1 -1
  189. package/build/core/filtering/clientTemplateTracker.d.ts +116 -0
  190. package/build/core/filtering/clientTemplateTracker.d.ts.map +1 -0
  191. package/build/core/filtering/clientTemplateTracker.js +286 -0
  192. package/build/core/filtering/clientTemplateTracker.js.map +1 -0
  193. package/build/core/filtering/filterCache.d.ts +121 -0
  194. package/build/core/filtering/filterCache.d.ts.map +1 -0
  195. package/build/core/filtering/filterCache.js +359 -0
  196. package/build/core/filtering/filterCache.js.map +1 -0
  197. package/build/core/filtering/index.d.ts +16 -0
  198. package/build/core/filtering/index.d.ts.map +1 -0
  199. package/build/core/filtering/index.js +16 -0
  200. package/build/core/filtering/index.js.map +1 -0
  201. package/build/core/filtering/templateFilteringService.d.ts +72 -0
  202. package/build/core/filtering/templateFilteringService.d.ts.map +1 -0
  203. package/build/core/filtering/templateFilteringService.js +293 -0
  204. package/build/core/filtering/templateFilteringService.js.map +1 -0
  205. package/build/core/filtering/templateIndex.d.ts +132 -0
  206. package/build/core/filtering/templateIndex.d.ts.map +1 -0
  207. package/build/core/filtering/templateIndex.js +368 -0
  208. package/build/core/filtering/templateIndex.js.map +1 -0
  209. package/build/core/flags/flagManager.d.ts +8 -4
  210. package/build/core/flags/flagManager.d.ts.map +1 -1
  211. package/build/core/flags/flagManager.js.map +1 -1
  212. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  213. package/build/core/protocol/requestHandlers.js +208 -46
  214. package/build/core/protocol/requestHandlers.js.map +1 -1
  215. package/build/core/server/clientInstancePool.d.ts +146 -0
  216. package/build/core/server/clientInstancePool.d.ts.map +1 -0
  217. package/build/core/server/clientInstancePool.js +407 -0
  218. package/build/core/server/clientInstancePool.js.map +1 -0
  219. package/build/core/server/connectionManager.d.ts +70 -0
  220. package/build/core/server/connectionManager.d.ts.map +1 -0
  221. package/build/core/server/connectionManager.js +240 -0
  222. package/build/core/server/connectionManager.js.map +1 -0
  223. package/build/core/server/mcpServerLifecycleManager.d.ts +55 -0
  224. package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -0
  225. package/build/core/server/mcpServerLifecycleManager.js +272 -0
  226. package/build/core/server/mcpServerLifecycleManager.js.map +1 -0
  227. package/build/core/server/serverManager.d.ts +56 -56
  228. package/build/core/server/serverManager.d.ts.map +1 -1
  229. package/build/core/server/serverManager.js +160 -431
  230. package/build/core/server/serverManager.js.map +1 -1
  231. package/build/core/server/templateConfigurationManager.d.ts +51 -0
  232. package/build/core/server/templateConfigurationManager.d.ts.map +1 -0
  233. package/build/core/server/templateConfigurationManager.js +160 -0
  234. package/build/core/server/templateConfigurationManager.js.map +1 -0
  235. package/build/core/server/templateServerManager.d.ts +92 -0
  236. package/build/core/server/templateServerManager.d.ts.map +1 -0
  237. package/build/core/server/templateServerManager.js +367 -0
  238. package/build/core/server/templateServerManager.js.map +1 -0
  239. package/build/core/tools/handlers/serverManagementHandler.d.ts +51 -1
  240. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  241. package/build/core/tools/handlers/serverManagementHandler.js +42 -0
  242. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  243. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +11 -1
  244. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  245. package/build/core/tools/internal/adapters/installation/types.d.ts +2 -4
  246. package/build/core/tools/internal/adapters/installation/types.d.ts.map +1 -1
  247. package/build/core/tools/internal/adapters/installationAdapter.d.ts +2 -4
  248. package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -1
  249. package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -1
  250. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -5
  251. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
  252. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
  253. package/build/core/tools/internal/adapters/management/types.d.ts +8 -4
  254. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  255. package/build/core/tools/internal/index.d.ts +0 -31
  256. package/build/core/tools/internal/index.d.ts.map +1 -1
  257. package/build/core/tools/internal/index.js +4 -3
  258. package/build/core/tools/internal/index.js.map +1 -1
  259. package/build/core/tools/internal/schemas/index.d.ts +3 -3
  260. package/build/core/tools/internal/schemas/management.d.ts +3 -3
  261. package/build/core/types/server.d.ts +19 -0
  262. package/build/core/types/server.d.ts.map +1 -1
  263. package/build/core/types/server.js.map +1 -1
  264. package/build/core/types/transport.d.ts +178 -0
  265. package/build/core/types/transport.d.ts.map +1 -1
  266. package/build/core/types/transport.js +34 -0
  267. package/build/core/types/transport.js.map +1 -1
  268. package/build/core/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
  269. package/build/core/validation/CustomJsonSchemaValidator.js +4 -3
  270. package/build/core/validation/CustomJsonSchemaValidator.js.map +1 -1
  271. package/build/domains/discovery/appPresets.d.ts.map +1 -1
  272. package/build/domains/discovery/appPresets.js +9 -7
  273. package/build/domains/discovery/appPresets.js.map +1 -1
  274. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts.map +1 -1
  275. package/build/domains/installation/configurators/cliArgsConfigurator.js +8 -4
  276. package/build/domains/installation/configurators/cliArgsConfigurator.js.map +1 -1
  277. package/build/domains/installation/configurators/envVarConfigurator.d.ts.map +1 -1
  278. package/build/domains/installation/configurators/envVarConfigurator.js +8 -4
  279. package/build/domains/installation/configurators/envVarConfigurator.js.map +1 -1
  280. package/build/domains/installation/configurators/tagsConfigurator.d.ts +2 -4
  281. package/build/domains/installation/configurators/tagsConfigurator.d.ts.map +1 -1
  282. package/build/domains/installation/configurators/tagsConfigurator.js +4 -7
  283. package/build/domains/installation/configurators/tagsConfigurator.js.map +1 -1
  284. package/build/domains/installation/validators/conflictDetector.d.ts +6 -4
  285. package/build/domains/installation/validators/conflictDetector.d.ts.map +1 -1
  286. package/build/domains/installation/validators/conflictDetector.js +0 -3
  287. package/build/domains/installation/validators/conflictDetector.js.map +1 -1
  288. package/build/domains/preset/manager/presetManager.js +1 -1
  289. package/build/domains/preset/manager/presetManager.js.map +1 -1
  290. package/build/domains/preset/parsers/tagQueryEvaluator.d.ts +8 -4
  291. package/build/domains/preset/parsers/tagQueryEvaluator.d.ts.map +1 -1
  292. package/build/domains/preset/parsers/tagQueryEvaluator.js.map +1 -1
  293. package/build/domains/preset/services/presetErrorHandler.d.ts +0 -7
  294. package/build/domains/preset/services/presetErrorHandler.d.ts.map +1 -1
  295. package/build/domains/preset/services/presetErrorHandler.js +10 -37
  296. package/build/domains/preset/services/presetErrorHandler.js.map +1 -1
  297. package/build/domains/registry/cacheManager.d.ts +11 -1
  298. package/build/domains/registry/cacheManager.d.ts.map +1 -1
  299. package/build/domains/registry/cacheManager.js +21 -3
  300. package/build/domains/registry/cacheManager.js.map +1 -1
  301. package/build/domains/registry/formatters/serverDetailFormatter.d.ts.map +1 -1
  302. package/build/domains/registry/formatters/serverDetailFormatter.js +57 -8
  303. package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -1
  304. package/build/domains/registry/formatters/versionsFormatter.d.ts.map +1 -1
  305. package/build/domains/registry/formatters/versionsFormatter.js +8 -3
  306. package/build/domains/registry/formatters/versionsFormatter.js.map +1 -1
  307. package/build/logger/logger.d.ts +8 -4
  308. package/build/logger/logger.d.ts.map +1 -1
  309. package/build/logger/logger.js.map +1 -1
  310. package/build/server.d.ts +2 -1
  311. package/build/server.d.ts.map +1 -1
  312. package/build/server.js +16 -7
  313. package/build/server.js.map +1 -1
  314. package/build/template/handlebarsTemplateRenderer.d.ts +34 -0
  315. package/build/template/handlebarsTemplateRenderer.d.ts.map +1 -0
  316. package/build/template/handlebarsTemplateRenderer.js +92 -0
  317. package/build/template/handlebarsTemplateRenderer.js.map +1 -0
  318. package/build/template/index.d.ts +2 -0
  319. package/build/template/index.d.ts.map +1 -0
  320. package/build/template/index.js +3 -0
  321. package/build/template/index.js.map +1 -0
  322. package/build/transport/http/middlewares/securityMiddleware.js +1 -1
  323. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -1
  324. package/build/transport/http/restorableStreamableTransport.d.ts +8 -4
  325. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
  326. package/build/transport/http/restorableStreamableTransport.js.map +1 -1
  327. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  328. package/build/transport/http/routes/sseRoutes.js +15 -0
  329. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  330. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  331. package/build/transport/http/routes/streamableHttpRoutes.js +88 -12
  332. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  333. package/build/transport/http/server.d.ts +1 -0
  334. package/build/transport/http/server.d.ts.map +1 -1
  335. package/build/transport/http/server.js +1 -0
  336. package/build/transport/http/server.js.map +1 -1
  337. package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -1
  338. package/build/transport/http/storage/streamableSessionRepository.js +2 -0
  339. package/build/transport/http/storage/streamableSessionRepository.js.map +1 -1
  340. package/build/transport/http/utils/contextExtractor.d.ts +23 -0
  341. package/build/transport/http/utils/contextExtractor.d.ts.map +1 -0
  342. package/build/transport/http/utils/contextExtractor.js +58 -0
  343. package/build/transport/http/utils/contextExtractor.js.map +1 -0
  344. package/build/transport/restartableStdioTransport.d.ts +8 -4
  345. package/build/transport/restartableStdioTransport.d.ts.map +1 -1
  346. package/build/transport/restartableStdioTransport.js.map +1 -1
  347. package/build/transport/stdioProxyTransport.d.ts +29 -0
  348. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  349. package/build/transport/stdioProxyTransport.js +236 -53
  350. package/build/transport/stdioProxyTransport.js.map +1 -1
  351. package/build/transport/transportFactory.d.ts +8 -0
  352. package/build/transport/transportFactory.d.ts.map +1 -1
  353. package/build/transport/transportFactory.js +47 -0
  354. package/build/transport/transportFactory.js.map +1 -1
  355. package/build/types/context.d.ts +120 -0
  356. package/build/types/context.d.ts.map +1 -0
  357. package/build/types/context.js +4 -0
  358. package/build/types/context.js.map +1 -0
  359. package/build/types/validation.d.ts +30 -0
  360. package/build/types/validation.d.ts.map +1 -0
  361. package/build/types/validation.js +5 -0
  362. package/build/types/validation.js.map +1 -0
  363. package/build/utils/client/clientInfoExtractor.d.ts +26 -0
  364. package/build/utils/client/clientInfoExtractor.d.ts.map +1 -0
  365. package/build/utils/client/clientInfoExtractor.js +65 -0
  366. package/build/utils/client/clientInfoExtractor.js.map +1 -0
  367. package/build/utils/core/errorHandling.d.ts +9 -5
  368. package/build/utils/core/errorHandling.d.ts.map +1 -1
  369. package/build/utils/core/errorHandling.js.map +1 -1
  370. package/build/utils/core/parsing.d.ts +8 -4
  371. package/build/utils/core/parsing.d.ts.map +1 -1
  372. package/build/utils/core/parsing.js.map +1 -1
  373. package/build/utils/crypto.d.ts +10 -0
  374. package/build/utils/crypto.d.ts.map +1 -0
  375. package/build/utils/crypto.js +20 -0
  376. package/build/utils/crypto.js.map +1 -0
  377. package/build/utils/ui/interactiveSelector.d.ts +16 -6
  378. package/build/utils/ui/interactiveSelector.d.ts.map +1 -1
  379. package/build/utils/ui/interactiveSelector.js +7 -31
  380. package/build/utils/ui/interactiveSelector.js.map +1 -1
  381. package/build/utils/ui/pagination.d.ts +6 -2
  382. package/build/utils/ui/pagination.d.ts.map +1 -1
  383. package/build/utils/ui/pagination.js.map +1 -1
  384. package/build/utils/ui/printer.d.ts +76 -0
  385. package/build/utils/ui/printer.d.ts.map +1 -0
  386. package/build/utils/ui/printer.js +172 -0
  387. package/build/utils/ui/printer.js.map +1 -0
  388. package/build/utils/ui/spinner.d.ts +19 -0
  389. package/build/utils/ui/spinner.d.ts.map +1 -0
  390. package/build/utils/ui/spinner.js +51 -0
  391. package/build/utils/ui/spinner.js.map +1 -0
  392. package/build/utils/ui/table.d.ts +16 -0
  393. package/build/utils/ui/table.d.ts.map +1 -0
  394. package/build/utils/ui/table.js +70 -0
  395. package/build/utils/ui/table.js.map +1 -0
  396. package/build/utils/validation/validationHelpers.d.ts +7 -3
  397. package/build/utils/validation/validationHelpers.d.ts.map +1 -1
  398. package/build/utils/validation/validationHelpers.js.map +1 -1
  399. package/package.json +2 -1
@@ -0,0 +1,240 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { setupCapabilities } from '../../core/capabilities/capabilityManager.js';
3
+ import { ServerStatus } from '../../core/types/index.js';
4
+ import { PresetNotificationService, } from '../../domains/preset/services/presetNotificationService.js';
5
+ import logger, { debugIf } from '../../logger/logger.js';
6
+ import { enhanceServerWithLogging } from '../../logger/mcpLoggingEnhancer.js';
7
+ import { executeOperation } from '../../utils/core/operationExecution.js';
8
+ /**
9
+ * Manages transport connection lifecycle and inbound connections
10
+ */
11
+ export class ConnectionManager {
12
+ serverConfig;
13
+ serverCapabilities;
14
+ outboundConns;
15
+ inboundConns = new Map();
16
+ connectionSemaphore = new Map();
17
+ disconnectingIds = new Set();
18
+ constructor(serverConfig, serverCapabilities, outboundConns) {
19
+ this.serverConfig = serverConfig;
20
+ this.serverCapabilities = serverCapabilities;
21
+ this.outboundConns = outboundConns;
22
+ }
23
+ /**
24
+ * Connect a transport with the given session ID and configuration
25
+ */
26
+ async connectTransport(transport, sessionId, opts, context, filteredInstructions) {
27
+ // Check if a connection is already in progress for this session
28
+ const existingConnection = this.connectionSemaphore.get(sessionId);
29
+ if (existingConnection) {
30
+ logger.warn(`Connection already in progress for session ${sessionId}, waiting...`);
31
+ await existingConnection;
32
+ return;
33
+ }
34
+ // Check if transport is already connected
35
+ if (this.inboundConns.has(sessionId)) {
36
+ logger.warn(`Transport already connected for session ${sessionId}`);
37
+ return;
38
+ }
39
+ // Create connection promise to prevent race conditions
40
+ const connectionPromise = this.performConnection(transport, sessionId, opts, context, filteredInstructions);
41
+ this.connectionSemaphore.set(sessionId, connectionPromise);
42
+ try {
43
+ await connectionPromise;
44
+ }
45
+ finally {
46
+ // Clean up the semaphore entry
47
+ this.connectionSemaphore.delete(sessionId);
48
+ }
49
+ }
50
+ /**
51
+ * Disconnect a transport by session ID
52
+ */
53
+ async disconnectTransport(sessionId, forceClose = false) {
54
+ // Prevent recursive disconnection calls
55
+ if (this.disconnectingIds.has(sessionId)) {
56
+ return;
57
+ }
58
+ const server = this.inboundConns.get(sessionId);
59
+ if (server) {
60
+ this.disconnectingIds.add(sessionId);
61
+ try {
62
+ // Update status to Disconnected
63
+ server.status = ServerStatus.Disconnected;
64
+ // Only close the transport if explicitly requested
65
+ if (forceClose && server.server.transport) {
66
+ try {
67
+ server.server.transport.close();
68
+ }
69
+ catch (error) {
70
+ logger.error(`Error closing transport for session ${sessionId}:`, error);
71
+ }
72
+ }
73
+ // Untrack client from preset notification service
74
+ const notificationService = PresetNotificationService.getInstance();
75
+ notificationService.untrackClient(sessionId);
76
+ debugIf(() => ({ message: 'Untracked client from preset notifications', meta: { sessionId } }));
77
+ this.inboundConns.delete(sessionId);
78
+ logger.info(`Disconnected transport for session ${sessionId}`);
79
+ }
80
+ finally {
81
+ this.disconnectingIds.delete(sessionId);
82
+ }
83
+ }
84
+ }
85
+ /**
86
+ * Get transport by session ID
87
+ */
88
+ getTransport(sessionId) {
89
+ return this.inboundConns.get(sessionId)?.server.transport;
90
+ }
91
+ /**
92
+ * Get all active transports
93
+ */
94
+ getTransports() {
95
+ const transports = new Map();
96
+ for (const [id, server] of this.inboundConns.entries()) {
97
+ if (server.server.transport) {
98
+ transports.set(id, server.server.transport);
99
+ }
100
+ }
101
+ return transports;
102
+ }
103
+ /**
104
+ * Get server connection by session ID
105
+ */
106
+ getServer(sessionId) {
107
+ return this.inboundConns.get(sessionId);
108
+ }
109
+ /**
110
+ * Get all inbound connections
111
+ */
112
+ getInboundConnections() {
113
+ return this.inboundConns;
114
+ }
115
+ /**
116
+ * Get count of active transports
117
+ */
118
+ getActiveTransportsCount() {
119
+ return this.inboundConns.size;
120
+ }
121
+ /**
122
+ * Execute a server operation with error handling
123
+ */
124
+ async executeServerOperation(inboundConn, operation, options = {}) {
125
+ // Check connection status before executing operation
126
+ if (inboundConn.status !== ServerStatus.Connected || !inboundConn.server.transport) {
127
+ throw new Error(`Cannot execute operation: server status is ${inboundConn.status}`);
128
+ }
129
+ return executeOperation(() => operation(inboundConn), 'server', options);
130
+ }
131
+ /**
132
+ * Perform the actual connection
133
+ */
134
+ async performConnection(transport, sessionId, opts, context, filteredInstructions) {
135
+ // Set connection timeout
136
+ const connectionTimeoutMs = 30000; // 30 seconds
137
+ const timeoutPromise = new Promise((_, reject) => {
138
+ setTimeout(() => reject(new Error(`Connection timeout for session ${sessionId}`)), connectionTimeoutMs);
139
+ });
140
+ try {
141
+ await Promise.race([this.doConnect(transport, sessionId, opts, context, filteredInstructions), timeoutPromise]);
142
+ }
143
+ catch (error) {
144
+ // Update status to Error if connection exists
145
+ const connection = this.inboundConns.get(sessionId);
146
+ if (connection) {
147
+ connection.status = ServerStatus.Error;
148
+ connection.lastError = error instanceof Error ? error : new Error(String(error));
149
+ }
150
+ logger.error(`Failed to connect transport for session ${sessionId}:`, error);
151
+ throw error;
152
+ }
153
+ }
154
+ /**
155
+ * Do the actual connection work
156
+ */
157
+ async doConnect(transport, sessionId, opts, context, filteredInstructions) {
158
+ // Create server capabilities with filtered instructions
159
+ const serverOptionsWithInstructions = {
160
+ ...this.serverCapabilities,
161
+ instructions: filteredInstructions || undefined,
162
+ };
163
+ // Create a new server instance for this transport
164
+ const server = new Server(this.serverConfig, serverOptionsWithInstructions);
165
+ // Create server info object, merging context if provided
166
+ const serverInfo = {
167
+ server,
168
+ status: ServerStatus.Connecting,
169
+ connectedAt: new Date(),
170
+ ...opts,
171
+ // Ensure context is properly set from the context parameter if opts.context is missing
172
+ // This ensures sessionId is available for session-scoped template server filtering
173
+ context: context ? { ...context, ...opts.context } : opts.context,
174
+ };
175
+ // Enhance server with logging middleware
176
+ enhanceServerWithLogging(server);
177
+ // Set up capabilities for this server instance
178
+ await setupCapabilities(this.outboundConns, serverInfo);
179
+ // Store the server instance
180
+ this.inboundConns.set(sessionId, serverInfo);
181
+ // Connect the transport to the new server instance
182
+ await server.connect(transport);
183
+ // Update status to Connected after successful connection
184
+ serverInfo.status = ServerStatus.Connected;
185
+ serverInfo.lastConnected = new Date();
186
+ // Register client with preset notification service if preset is used
187
+ if (opts.presetName) {
188
+ await this.registerClientForPresets(sessionId, opts.presetName, serverInfo);
189
+ }
190
+ logger.info(`Connected transport for session ${sessionId}`);
191
+ }
192
+ /**
193
+ * Register client with preset notification service
194
+ */
195
+ async registerClientForPresets(sessionId, presetName, serverInfo) {
196
+ const notificationService = PresetNotificationService.getInstance();
197
+ const clientConnection = {
198
+ id: sessionId,
199
+ presetName,
200
+ sendNotification: async (method, params) => {
201
+ try {
202
+ if (serverInfo.status === ServerStatus.Connected && serverInfo.server.transport) {
203
+ await serverInfo.server.notification({ method, params: params || {} });
204
+ debugIf(() => ({ message: 'Sent notification to client', meta: { sessionId, method } }));
205
+ }
206
+ else {
207
+ logger.warn('Cannot send notification to disconnected client', { sessionId, method });
208
+ }
209
+ }
210
+ catch (error) {
211
+ logger.error('Failed to send notification to client', {
212
+ sessionId,
213
+ method,
214
+ error: error instanceof Error ? error.message : 'Unknown error',
215
+ });
216
+ throw error;
217
+ }
218
+ },
219
+ isConnected: () => serverInfo.status === ServerStatus.Connected && !!serverInfo.server.transport,
220
+ };
221
+ notificationService.trackClient(clientConnection, presetName);
222
+ logger.info('Registered client for preset notifications', {
223
+ sessionId,
224
+ presetName,
225
+ });
226
+ }
227
+ /**
228
+ * Clean up all connections (for shutdown)
229
+ */
230
+ async cleanup() {
231
+ // Clean up existing connections with forced close
232
+ for (const [sessionId] of this.inboundConns) {
233
+ await this.disconnectTransport(sessionId, true);
234
+ }
235
+ this.inboundConns.clear();
236
+ this.connectionSemaphore.clear();
237
+ this.disconnectingIds.clear();
238
+ }
239
+ }
240
+ //# sourceMappingURL=connectionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionManager.js","sourceRoot":"","sources":["../../../src/core/server/connectionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
+ import type { OutboundConnections } from '../../core/types/client.js';
3
+ import { MCPServerParams } from '../../core/types/index.js';
4
+ /**
5
+ * Manages the lifecycle of MCP server instances (start, stop, restart)
6
+ */
7
+ export declare class MCPServerLifecycleManager {
8
+ private mcpServers;
9
+ private clientManager?;
10
+ constructor();
11
+ /**
12
+ * Start a new MCP server instance
13
+ */
14
+ startServer(serverName: string, config: MCPServerParams, outboundConns: OutboundConnections, transports: Record<string, Transport>): Promise<void>;
15
+ /**
16
+ * Stop a server instance
17
+ */
18
+ stopServer(serverName: string, outboundConns: OutboundConnections, transports: Record<string, Transport>): Promise<void>;
19
+ /**
20
+ * Restart a server instance
21
+ */
22
+ restartServer(serverName: string, config: MCPServerParams, outboundConns: OutboundConnections, transports: Record<string, Transport>): Promise<void>;
23
+ /**
24
+ * Get the status of all managed MCP servers
25
+ */
26
+ getMcpServerStatus(): Map<string, {
27
+ running: boolean;
28
+ config: MCPServerParams;
29
+ }>;
30
+ /**
31
+ * Check if a specific MCP server is running
32
+ */
33
+ isMcpServerRunning(serverName: string): boolean;
34
+ /**
35
+ * Update metadata for a running server without restarting it
36
+ */
37
+ updateServerMetadata(serverName: string, newConfig: MCPServerParams, outboundConns: OutboundConnections): Promise<void>;
38
+ /**
39
+ * Process server configuration to handle environment variables
40
+ */
41
+ private processServerConfig;
42
+ /**
43
+ * Create a transport for the given server configuration
44
+ */
45
+ private createServerTransport;
46
+ /**
47
+ * Connect to a server using ClientManager
48
+ */
49
+ private connectToServer;
50
+ /**
51
+ * Disconnect from a server using ClientManager
52
+ */
53
+ private disconnectFromServer;
54
+ }
55
+ //# sourceMappingURL=mcpServerLifecycleManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServerLifecycleManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/mcpServerLifecycleManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAyB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIlF;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,UAAU,CAAyF;IAC3G,OAAO,CAAC,aAAa,CAAC,CAAgB;;IAMtC;;OAEG;IACU,WAAW,CACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAyChB;;OAEG;IACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACU,aAAa,CACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACI,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;IAavF;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItD;;OAEG;IACU,oBAAoB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,IAAI,CAAC;IA6ChB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;YACW,qBAAqB;IAgCnC;;OAEG;YACW,eAAe;IAgC7B;;OAEG;YACW,oBAAoB;CA0BnC"}
@@ -0,0 +1,272 @@
1
+ import { processEnvironment } from '../../config/envProcessor.js';
2
+ import { ClientManager } from '../../core/client/clientManager.js';
3
+ import { getGlobalContextManager } from '../../core/context/globalContextManager.js';
4
+ import logger, { debugIf } from '../../logger/logger.js';
5
+ import { createTransports, createTransportsWithContext, inferTransportType } from '../../transport/transportFactory.js';
6
+ /**
7
+ * Manages the lifecycle of MCP server instances (start, stop, restart)
8
+ */
9
+ export class MCPServerLifecycleManager {
10
+ mcpServers = new Map();
11
+ clientManager;
12
+ constructor() {
13
+ this.clientManager = ClientManager.getOrCreateInstance();
14
+ }
15
+ /**
16
+ * Start a new MCP server instance
17
+ */
18
+ async startServer(serverName, config, outboundConns, transports) {
19
+ try {
20
+ logger.info(`Starting MCP server: ${serverName}`);
21
+ // Check if server is already running
22
+ if (this.mcpServers.has(serverName)) {
23
+ logger.warn(`Server ${serverName} is already running`);
24
+ return;
25
+ }
26
+ // Skip disabled servers
27
+ if (config.disabled) {
28
+ logger.info(`Server ${serverName} is disabled, skipping start`);
29
+ return;
30
+ }
31
+ // Process environment variables in config
32
+ const processedConfig = this.processServerConfig(config);
33
+ // Infer transport type if not specified
34
+ const configWithType = inferTransportType(processedConfig, serverName);
35
+ // Create transport for the server
36
+ const transport = await this.createServerTransport(serverName, configWithType);
37
+ // Store server info
38
+ this.mcpServers.set(serverName, {
39
+ transport,
40
+ config: configWithType,
41
+ });
42
+ // Create client connection to the server using ClientManager
43
+ await this.connectToServer(serverName, transport, configWithType, outboundConns, transports);
44
+ logger.info(`Successfully started MCP server: ${serverName}`);
45
+ }
46
+ catch (error) {
47
+ logger.error(`Failed to start MCP server ${serverName}:`, error);
48
+ throw error;
49
+ }
50
+ }
51
+ /**
52
+ * Stop a server instance
53
+ */
54
+ async stopServer(serverName, outboundConns, transports) {
55
+ try {
56
+ logger.info(`Stopping MCP server: ${serverName}`);
57
+ // Check if server is running
58
+ const serverInfo = this.mcpServers.get(serverName);
59
+ if (!serverInfo) {
60
+ logger.warn(`Server ${serverName} is not running`);
61
+ return;
62
+ }
63
+ // Disconnect client from the server using ClientManager
64
+ await this.disconnectFromServer(serverName, outboundConns, transports);
65
+ // Clean up transport
66
+ const { transport } = serverInfo;
67
+ try {
68
+ if (transport.close) {
69
+ await transport.close();
70
+ }
71
+ }
72
+ catch (error) {
73
+ logger.warn(`Error closing transport for server ${serverName}:`, error);
74
+ }
75
+ // Remove from tracking
76
+ this.mcpServers.delete(serverName);
77
+ logger.info(`Successfully stopped MCP server: ${serverName}`);
78
+ }
79
+ catch (error) {
80
+ logger.error(`Failed to stop MCP server ${serverName}:`, error);
81
+ throw error;
82
+ }
83
+ }
84
+ /**
85
+ * Restart a server instance
86
+ */
87
+ async restartServer(serverName, config, outboundConns, transports) {
88
+ try {
89
+ logger.info(`Restarting MCP server: ${serverName}`);
90
+ // Check if server is currently running and stop it
91
+ const isCurrentlyRunning = this.mcpServers.has(serverName);
92
+ if (isCurrentlyRunning) {
93
+ logger.info(`Stopping existing server ${serverName} before restart`);
94
+ await this.stopServer(serverName, outboundConns, transports);
95
+ }
96
+ // Start the server with new configuration
97
+ await this.startServer(serverName, config, outboundConns, transports);
98
+ logger.info(`Successfully restarted MCP server: ${serverName}`);
99
+ }
100
+ catch (error) {
101
+ logger.error(`Failed to restart MCP server ${serverName}:`, error);
102
+ throw error;
103
+ }
104
+ }
105
+ /**
106
+ * Get the status of all managed MCP servers
107
+ */
108
+ getMcpServerStatus() {
109
+ const status = new Map();
110
+ for (const [serverName, serverInfo] of this.mcpServers.entries()) {
111
+ status.set(serverName, {
112
+ running: true,
113
+ config: serverInfo.config,
114
+ });
115
+ }
116
+ return status;
117
+ }
118
+ /**
119
+ * Check if a specific MCP server is running
120
+ */
121
+ isMcpServerRunning(serverName) {
122
+ return this.mcpServers.has(serverName);
123
+ }
124
+ /**
125
+ * Update metadata for a running server without restarting it
126
+ */
127
+ async updateServerMetadata(serverName, newConfig, outboundConns) {
128
+ try {
129
+ const serverInfo = this.mcpServers.get(serverName);
130
+ if (!serverInfo) {
131
+ logger.warn(`Cannot update metadata for ${serverName}: server not running`);
132
+ return;
133
+ }
134
+ debugIf(() => ({
135
+ message: `Updating metadata for server ${serverName}`,
136
+ meta: {
137
+ oldConfig: serverInfo.config,
138
+ newConfig,
139
+ },
140
+ }));
141
+ // Update the stored configuration with new metadata
142
+ serverInfo.config = { ...serverInfo.config, ...newConfig };
143
+ // Update transport metadata if supported
144
+ const { transport } = serverInfo;
145
+ if (transport && 'tags' in transport) {
146
+ // Update tags and other metadata on transport
147
+ if (newConfig.tags) {
148
+ transport.tags = newConfig.tags;
149
+ }
150
+ }
151
+ // Update outbound connections metadata
152
+ const outboundConn = outboundConns.get(serverName);
153
+ if (outboundConn && outboundConn.transport && 'tags' in outboundConn.transport) {
154
+ // Update tags in the outbound connection
155
+ outboundConn.transport.tags = newConfig.tags;
156
+ }
157
+ debugIf(() => ({
158
+ message: `Successfully updated metadata for server ${serverName}`,
159
+ meta: { newTags: newConfig.tags },
160
+ }));
161
+ }
162
+ catch (error) {
163
+ logger.error(`Failed to update metadata for server ${serverName}:`, error);
164
+ throw error;
165
+ }
166
+ }
167
+ /**
168
+ * Process server configuration to handle environment variables
169
+ */
170
+ processServerConfig(config) {
171
+ try {
172
+ // Create a mutable copy for processing
173
+ const processedConfig = { ...config };
174
+ // Process environment variables if enabled - only pass env-related fields
175
+ const envConfig = {
176
+ inheritParentEnv: config.inheritParentEnv,
177
+ envFilter: config.envFilter,
178
+ env: config.env,
179
+ };
180
+ const processedEnv = processEnvironment(envConfig);
181
+ // Replace environment variables in the config while preserving all other fields
182
+ if (processedEnv.processedEnv && Object.keys(processedEnv.processedEnv).length > 0) {
183
+ processedConfig.env = processedEnv.processedEnv;
184
+ }
185
+ return processedConfig;
186
+ }
187
+ catch (error) {
188
+ logger.warn(`Failed to process environment variables for server config:`, error);
189
+ return config;
190
+ }
191
+ }
192
+ /**
193
+ * Create a transport for the given server configuration
194
+ */
195
+ async createServerTransport(serverName, config) {
196
+ try {
197
+ debugIf(() => ({
198
+ message: `Creating transport for server ${serverName}`,
199
+ meta: { serverName, type: config.type, command: config.command, url: config.url },
200
+ }));
201
+ // Create transport using the factory pattern with context awareness
202
+ const globalContextManager = getGlobalContextManager();
203
+ const currentContext = globalContextManager.getContext();
204
+ const transports = currentContext
205
+ ? await createTransportsWithContext({ [serverName]: config }, currentContext)
206
+ : createTransports({ [serverName]: config });
207
+ const transport = transports[serverName];
208
+ if (!transport) {
209
+ throw new Error(`Failed to create transport for server ${serverName}`);
210
+ }
211
+ debugIf(() => ({
212
+ message: `Successfully created transport for server ${serverName}`,
213
+ meta: { serverName, transportType: config.type },
214
+ }));
215
+ return transport;
216
+ }
217
+ catch (error) {
218
+ logger.error(`Failed to create transport for server ${serverName}:`, error);
219
+ throw error;
220
+ }
221
+ }
222
+ /**
223
+ * Connect to a server using ClientManager
224
+ */
225
+ async connectToServer(serverName, transport, _config, outboundConns, transports) {
226
+ try {
227
+ if (!this.clientManager) {
228
+ throw new Error('ClientManager not initialized');
229
+ }
230
+ // Create client connection using the existing ClientManager infrastructure
231
+ const clients = await this.clientManager.createClients({ [serverName]: transport });
232
+ // Update our local outbound connections
233
+ const newClient = clients.get(serverName);
234
+ if (newClient) {
235
+ outboundConns.set(serverName, newClient);
236
+ transports[serverName] = transport;
237
+ }
238
+ debugIf(() => ({
239
+ message: `Successfully connected to server ${serverName}`,
240
+ meta: { serverName, status: newClient?.status },
241
+ }));
242
+ }
243
+ catch (error) {
244
+ logger.error(`Failed to connect to server ${serverName}:`, error);
245
+ throw error;
246
+ }
247
+ }
248
+ /**
249
+ * Disconnect from a server using ClientManager
250
+ */
251
+ async disconnectFromServer(serverName, outboundConns, transports) {
252
+ try {
253
+ if (!this.clientManager) {
254
+ throw new Error('ClientManager not initialized');
255
+ }
256
+ // Remove from outbound connections
257
+ outboundConns.delete(serverName);
258
+ delete transports[serverName];
259
+ // ClientManager doesn't have explicit disconnect method, so we clean up our references
260
+ // The actual transport cleanup happens in stopServer
261
+ debugIf(() => ({
262
+ message: `Successfully disconnected from server ${serverName}`,
263
+ meta: { serverName },
264
+ }));
265
+ }
266
+ catch (error) {
267
+ logger.error(`Failed to disconnect from server ${serverName}:`, error);
268
+ throw error;
269
+ }
270
+ }
271
+ }
272
+ //# sourceMappingURL=mcpServerLifecycleManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpServerLifecycleManager.js","sourceRoot":"","sources":["../../../src/core/server/mcpServerLifecycleManager.ts"],"names":[],"mappings":"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"}