@1mcp/agent 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (809) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-BHyDoEos.js → admin-OAuthServicesWorkspace-CzXIIHM0.js} +1 -1
  2. package/build/admin/assets/{admin-console-DnlZpz5X.js → admin-console-Mv3xmdoU.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/application/services/healthService.d.ts +6 -6
  5. package/build/application/services/healthService.d.ts.map +1 -1
  6. package/build/application/services/healthService.js +1 -1
  7. package/build/application/services/healthService.js.map +1 -1
  8. package/build/application/services/tokenEstimationService.d.ts +1 -1
  9. package/build/application/services/tokenEstimationService.d.ts.map +1 -1
  10. package/build/application/services/tokenEstimationService.js.map +1 -1
  11. package/build/auth/oauthAuthorizationFlow.d.ts +13 -11
  12. package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
  13. package/build/auth/oauthAuthorizationFlow.js +4 -17
  14. package/build/auth/oauthAuthorizationFlow.js.map +1 -1
  15. package/build/auth/sdkOAuthClientProvider.d.ts +2 -97
  16. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  17. package/build/auth/sdkOAuthClientProvider.js +1 -242
  18. package/build/auth/sdkOAuthClientProvider.js.map +1 -1
  19. package/build/auth/sdkOAuthServerProvider.d.ts +1 -68
  20. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -1
  21. package/build/auth/sdkOAuthServerProvider.js +1 -483
  22. package/build/auth/sdkOAuthServerProvider.js.map +1 -1
  23. package/build/auth/sessionTypes.d.ts +1 -1
  24. package/build/auth/sessionTypes.d.ts.map +1 -1
  25. package/build/auth/sessionTypes.js.map +1 -1
  26. package/build/auth/storage/clientDataRepository.d.ts +1 -1
  27. package/build/auth/storage/clientDataRepository.d.ts.map +1 -1
  28. package/build/auth/storage/clientDataRepository.js.map +1 -1
  29. package/build/auth/storage/fileStorageService.d.ts +2 -0
  30. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  31. package/build/auth/storage/fileStorageService.js +61 -7
  32. package/build/auth/storage/fileStorageService.js.map +1 -1
  33. package/build/commands/inspect/inspect.d.ts +1 -1
  34. package/build/commands/inspect/inspect.d.ts.map +1 -1
  35. package/build/commands/inspect/inspect.js +6 -9
  36. package/build/commands/inspect/inspect.js.map +1 -1
  37. package/build/commands/inspect/inspectUtils.d.ts +1 -1
  38. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  39. package/build/commands/inspect/inspectUtils.js +4 -13
  40. package/build/commands/inspect/inspectUtils.js.map +1 -1
  41. package/build/commands/run/run.d.ts +1 -1
  42. package/build/commands/run/run.d.ts.map +1 -1
  43. package/build/commands/run/run.js +5 -5
  44. package/build/commands/run/run.js.map +1 -1
  45. package/build/commands/run/runUtils.d.ts +1 -1
  46. package/build/commands/run/runUtils.d.ts.map +1 -1
  47. package/build/commands/run/runUtils.js.map +1 -1
  48. package/build/commands/serve/asyncLoadingOptions.d.ts.map +1 -1
  49. package/build/commands/serve/asyncLoadingOptions.js +1 -1
  50. package/build/commands/serve/asyncLoadingOptions.js.map +1 -1
  51. package/build/commands/serve/serve.d.ts +1 -89
  52. package/build/commands/serve/serve.d.ts.map +1 -1
  53. package/build/commands/serve/serve.js +1 -550
  54. package/build/commands/serve/serve.js.map +1 -1
  55. package/build/commands/serve/serveBackground.d.ts +1 -1
  56. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  57. package/build/commands/serve/serveBackground.js.map +1 -1
  58. package/build/commands/shared/authProfileStore.d.ts.map +1 -1
  59. package/build/commands/shared/authProfileStore.js +54 -10
  60. package/build/commands/shared/authProfileStore.js.map +1 -1
  61. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  62. package/build/commands/shared/clientSurfaceAttachment.js +16 -4
  63. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  64. package/build/commands/shared/connectionHelper.d.ts +4 -4
  65. package/build/commands/shared/connectionHelper.d.ts.map +1 -1
  66. package/build/commands/shared/connectionHelper.js +9 -26
  67. package/build/commands/shared/connectionHelper.js.map +1 -1
  68. package/build/commands/shared/inspectApiSchemas.d.ts +8 -8
  69. package/build/commands/shared/serveClient.d.ts +1 -69
  70. package/build/commands/shared/serveClient.d.ts.map +1 -1
  71. package/build/commands/shared/serveClient.js +1 -234
  72. package/build/commands/shared/serveClient.js.map +1 -1
  73. package/build/config/configManager.js +1 -1
  74. package/build/config/configManager.js.map +1 -1
  75. package/build/config/envProcessor.d.ts.map +1 -1
  76. package/build/config/envProcessor.js +26 -1
  77. package/build/config/envProcessor.js.map +1 -1
  78. package/build/constants/auth.d.ts +7 -0
  79. package/build/constants/auth.d.ts.map +1 -1
  80. package/build/constants/auth.js +6 -1
  81. package/build/constants/auth.js.map +1 -1
  82. package/build/constants/mcp.d.ts +2 -2
  83. package/build/constants/mcp.d.ts.map +1 -1
  84. package/build/constants/mcp.js +1 -1
  85. package/build/core/capabilities/capabilityAggregator.d.ts +18 -88
  86. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  87. package/build/core/capabilities/capabilityAggregator.js +75 -269
  88. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  89. package/build/core/capabilities/capabilityCatalog.d.ts +3 -4
  90. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  91. package/build/core/capabilities/capabilityCatalog.js +46 -16
  92. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  93. package/build/core/capabilities/capabilityManager.d.ts +9 -32
  94. package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
  95. package/build/core/capabilities/capabilityManager.js +5 -4
  96. package/build/core/capabilities/capabilityManager.js.map +1 -1
  97. package/build/core/capabilities/capabilityNotificationFacts.js +1 -1
  98. package/build/core/capabilities/capabilityNotificationFacts.js.map +1 -1
  99. package/build/core/capabilities/capabilityPagination.d.ts +2 -0
  100. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  101. package/build/core/capabilities/capabilityPagination.js +59 -32
  102. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  103. package/build/core/capabilities/catalogGeneration.d.ts +47 -0
  104. package/build/core/capabilities/catalogGeneration.d.ts.map +1 -0
  105. package/build/core/capabilities/catalogGeneration.js +145 -0
  106. package/build/core/capabilities/catalogGeneration.js.map +1 -0
  107. package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -1
  108. package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
  109. package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
  110. package/build/core/capabilities/internal/discoveryTools.d.ts +1 -7
  111. package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -1
  112. package/build/core/capabilities/internal/discoveryTools.js +6 -0
  113. package/build/core/capabilities/internal/discoveryTools.js.map +1 -1
  114. package/build/core/capabilities/internal/installationTools.d.ts +1 -7
  115. package/build/core/capabilities/internal/installationTools.d.ts.map +1 -1
  116. package/build/core/capabilities/internal/installationTools.js +6 -0
  117. package/build/core/capabilities/internal/installationTools.js.map +1 -1
  118. package/build/core/capabilities/internal/lazyTools.d.ts +1 -1
  119. package/build/core/capabilities/internal/lazyTools.d.ts.map +1 -1
  120. package/build/core/capabilities/internal/lazyTools.js.map +1 -1
  121. package/build/core/capabilities/internal/managementTools.d.ts +1 -7
  122. package/build/core/capabilities/internal/managementTools.d.ts.map +1 -1
  123. package/build/core/capabilities/internal/managementTools.js +6 -0
  124. package/build/core/capabilities/internal/managementTools.js.map +1 -1
  125. package/build/core/capabilities/internalCapabilitiesProvider.d.ts +1 -1
  126. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
  127. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
  128. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  129. package/build/core/capabilities/lazyLoadingOrchestrator.js +19 -78
  130. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  131. package/build/core/capabilities/metaToolProvider.d.ts +1 -1
  132. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  133. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  134. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +48 -0
  135. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -0
  136. package/build/core/capabilities/runtimeCapabilityCatalog.js +409 -0
  137. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -0
  138. package/build/core/capabilities/schemaCache.d.ts +1 -1
  139. package/build/core/capabilities/schemaCache.d.ts.map +1 -1
  140. package/build/core/capabilities/schemaCache.js.map +1 -1
  141. package/build/core/capabilities/schemas/metaToolSchemas.d.ts +3 -3
  142. package/build/core/capabilities/toolRegistry.d.ts +11 -1
  143. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  144. package/build/core/capabilities/toolRegistry.js +51 -32
  145. package/build/core/capabilities/toolRegistry.js.map +1 -1
  146. package/build/core/client/clientFactory.d.ts +1 -6
  147. package/build/core/client/clientFactory.d.ts.map +1 -1
  148. package/build/core/client/clientFactory.js +1 -35
  149. package/build/core/client/clientFactory.js.map +1 -1
  150. package/build/core/client/clientManager.d.ts +1 -89
  151. package/build/core/client/clientManager.d.ts.map +1 -1
  152. package/build/core/client/clientManager.js +1 -728
  153. package/build/core/client/clientManager.js.map +1 -1
  154. package/build/core/client/connectedClient.d.ts +1 -6
  155. package/build/core/client/connectedClient.d.ts.map +1 -1
  156. package/build/core/client/connectionHandler.d.ts +1 -8
  157. package/build/core/client/connectionHandler.d.ts.map +1 -1
  158. package/build/core/client/connectionHandler.js +1 -96
  159. package/build/core/client/connectionHandler.js.map +1 -1
  160. package/build/core/client/legacyAdapterRequest.d.ts +6 -0
  161. package/build/core/client/legacyAdapterRequest.d.ts.map +1 -0
  162. package/build/core/client/legacyAdapterRequest.js +55 -0
  163. package/build/core/client/legacyAdapterRequest.js.map +1 -0
  164. package/build/core/client/oauthFlowHandler.d.ts +1 -9
  165. package/build/core/client/oauthFlowHandler.d.ts.map +1 -1
  166. package/build/core/client/oauthFlowHandler.js +1 -80
  167. package/build/core/client/oauthFlowHandler.js.map +1 -1
  168. package/build/core/client/postAuthOAuthRecovery.d.ts +2 -2
  169. package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
  170. package/build/core/client/postAuthOAuthRecovery.js +4 -16
  171. package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
  172. package/build/core/client/recreateHttpTransportOptions.d.ts +1 -13
  173. package/build/core/client/recreateHttpTransportOptions.d.ts.map +1 -1
  174. package/build/core/client/renderableOutboundConnection.d.ts +5 -0
  175. package/build/core/client/renderableOutboundConnection.d.ts.map +1 -0
  176. package/build/core/client/renderableOutboundConnection.js +38 -0
  177. package/build/core/client/renderableOutboundConnection.js.map +1 -0
  178. package/build/core/client/transportRecreationState.d.ts +1 -10
  179. package/build/core/client/transportRecreationState.d.ts.map +1 -1
  180. package/build/core/client/transportRecreator.d.ts +1 -13
  181. package/build/core/client/transportRecreator.d.ts.map +1 -1
  182. package/build/core/client/transportRecreator.js +1 -51
  183. package/build/core/client/transportRecreator.js.map +1 -1
  184. package/build/core/client/types.d.ts +1 -6
  185. package/build/core/client/types.d.ts.map +1 -1
  186. package/build/core/client/types.js +1 -10
  187. package/build/core/client/types.js.map +1 -1
  188. package/build/core/configChangeHandler.d.ts.map +1 -1
  189. package/build/core/configChangeHandler.js +2 -5
  190. package/build/core/configChangeHandler.js.map +1 -1
  191. package/build/core/context/templateContextTrust.d.ts.map +1 -1
  192. package/build/core/context/templateContextTrust.js +22 -4
  193. package/build/core/context/templateContextTrust.js.map +1 -1
  194. package/build/core/filtering/clientFiltering.d.ts +1 -1
  195. package/build/core/filtering/clientFiltering.d.ts.map +1 -1
  196. package/build/core/filtering/clientFiltering.js +3 -3
  197. package/build/core/filtering/clientFiltering.js.map +1 -1
  198. package/build/core/filtering/filteringService.d.ts +1 -1
  199. package/build/core/filtering/filteringService.d.ts.map +1 -1
  200. package/build/core/filtering/filteringService.js +3 -3
  201. package/build/core/filtering/filteringService.js.map +1 -1
  202. package/build/core/loading/mcpLoadingManager.d.ts +4 -1
  203. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  204. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  205. package/build/core/notifications/notificationManager.d.ts +3 -2
  206. package/build/core/notifications/notificationManager.d.ts.map +1 -1
  207. package/build/core/notifications/notificationManager.js +13 -11
  208. package/build/core/notifications/notificationManager.js.map +1 -1
  209. package/build/core/protocol/notificationHandlers.d.ts +1 -13
  210. package/build/core/protocol/notificationHandlers.d.ts.map +1 -1
  211. package/build/core/protocol/notificationHandlers.js +1 -123
  212. package/build/core/protocol/notificationHandlers.js.map +1 -1
  213. package/build/core/protocol/promptRequestHandlers.d.ts +1 -3
  214. package/build/core/protocol/promptRequestHandlers.d.ts.map +1 -1
  215. package/build/core/protocol/promptRequestHandlers.js +1 -72
  216. package/build/core/protocol/promptRequestHandlers.js.map +1 -1
  217. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  218. package/build/core/protocol/requestHandlerUtils.js +5 -24
  219. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  220. package/build/core/protocol/requestHandlers.d.ts +1 -12
  221. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  222. package/build/core/protocol/requestHandlers.js +1 -92
  223. package/build/core/protocol/requestHandlers.js.map +1 -1
  224. package/build/core/protocol/resourceRequestHandlers.d.ts +1 -2
  225. package/build/core/protocol/resourceRequestHandlers.d.ts.map +1 -1
  226. package/build/core/protocol/resourceRequestHandlers.js +1 -95
  227. package/build/core/protocol/resourceRequestHandlers.js.map +1 -1
  228. package/build/core/protocol/toolRequestHandlers.d.ts +1 -3
  229. package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
  230. package/build/core/protocol/toolRequestHandlers.js +1 -187
  231. package/build/core/protocol/toolRequestHandlers.js.map +1 -1
  232. package/build/core/server/clientInstanceFactory.d.ts +1 -13
  233. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  234. package/build/core/server/clientInstanceFactory.js +1 -48
  235. package/build/core/server/clientInstanceFactory.js.map +1 -1
  236. package/build/core/server/clientInstancePool.d.ts +1 -115
  237. package/build/core/server/clientInstancePool.d.ts.map +1 -1
  238. package/build/core/server/clientInstancePool.js +1 -599
  239. package/build/core/server/clientInstancePool.js.map +1 -1
  240. package/build/core/server/clientInstancePoolTypes.d.ts +1 -66
  241. package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
  242. package/build/core/server/clientInstancePoolTypes.js +1 -14
  243. package/build/core/server/clientInstancePoolTypes.js.map +1 -1
  244. package/build/core/server/connectionManager.d.ts +1 -79
  245. package/build/core/server/connectionManager.d.ts.map +1 -1
  246. package/build/core/server/connectionManager.js +1 -262
  247. package/build/core/server/connectionManager.js.map +1 -1
  248. package/build/core/server/disabledTools.d.ts +7 -1
  249. package/build/core/server/disabledTools.d.ts.map +1 -1
  250. package/build/core/server/disabledTools.js +13 -0
  251. package/build/core/server/disabledTools.js.map +1 -1
  252. package/build/core/server/mcpServerLifecycleManager.d.ts +1 -58
  253. package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -1
  254. package/build/core/server/mcpServerLifecycleManager.js +1 -271
  255. package/build/core/server/mcpServerLifecycleManager.js.map +1 -1
  256. package/build/core/server/requestContextPreparation.d.ts +1 -38
  257. package/build/core/server/requestContextPreparation.d.ts.map +1 -1
  258. package/build/core/server/requestContextPreparation.js +1 -49
  259. package/build/core/server/requestContextPreparation.js.map +1 -1
  260. package/build/core/server/serverManager.d.ts +1 -130
  261. package/build/core/server/serverManager.d.ts.map +1 -1
  262. package/build/core/server/serverManager.js +1 -457
  263. package/build/core/server/serverManager.js.map +1 -1
  264. package/build/core/server/templateServerCleanup.d.ts +1 -22
  265. package/build/core/server/templateServerCleanup.d.ts.map +1 -1
  266. package/build/core/server/templateServerCleanup.js +1 -160
  267. package/build/core/server/templateServerCleanup.js.map +1 -1
  268. package/build/core/server/templateServerManager.d.ts +1 -154
  269. package/build/core/server/templateServerManager.d.ts.map +1 -1
  270. package/build/core/server/templateServerManager.js +1 -603
  271. package/build/core/server/templateServerManager.js.map +1 -1
  272. package/build/core/server/toolDescriptionOverrides.d.ts +5 -1
  273. package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
  274. package/build/core/server/toolDescriptionOverrides.js +6 -0
  275. package/build/core/server/toolDescriptionOverrides.js.map +1 -1
  276. package/build/core/tools/handlers/serverManagementHandler.d.ts +29 -21
  277. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  278. package/build/core/tools/handlers/serverManagementHandler.js +1 -1
  279. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  280. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -1
  281. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  282. package/build/core/tools/internal/adapters/management/types.d.ts +17 -7
  283. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  284. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
  285. package/build/core/tools/internal/managementHandlers.js +11 -2
  286. package/build/core/tools/internal/managementHandlers.js.map +1 -1
  287. package/build/core/tools/internal/schemas/discovery.d.ts +5 -5
  288. package/build/core/tools/internal/schemas/index.d.ts +14 -14
  289. package/build/core/tools/internal/schemas/installation.d.ts +1 -1
  290. package/build/core/tools/internal/schemas/management.d.ts +8 -8
  291. package/build/core/types/client.d.ts +30 -17
  292. package/build/core/types/client.d.ts.map +1 -1
  293. package/build/core/types/client.js.map +1 -1
  294. package/build/core/types/server.d.ts +16 -9
  295. package/build/core/types/server.d.ts.map +1 -1
  296. package/build/core/types/server.js.map +1 -1
  297. package/build/core/types/transport.d.ts +18 -19
  298. package/build/core/types/transport.d.ts.map +1 -1
  299. package/build/core/types/transport.js +4 -0
  300. package/build/core/types/transport.js.map +1 -1
  301. package/build/core/validation/CustomJsonSchemaValidator.d.ts +1 -62
  302. package/build/core/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
  303. package/build/core/validation/CustomJsonSchemaValidator.js +1 -309
  304. package/build/core/validation/CustomJsonSchemaValidator.js.map +1 -1
  305. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
  306. package/build/domains/admin/adminConfiguredServerService.js +10 -6
  307. package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
  308. package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -1
  309. package/build/domains/admin/adminInstructionPreviewRuntime.js +2 -9
  310. package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -1
  311. package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
  312. package/build/domains/admin/configuredToolInventory.js.map +1 -1
  313. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -1
  314. package/build/domains/admin/runtimeConfiguredToolInspectionService.js +6 -12
  315. package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
  316. package/build/domains/admin/runtimeServerManagerBackendRestartService.js +1 -1
  317. package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -1
  318. package/build/gateway/adapters/index.d.ts +3 -0
  319. package/build/gateway/adapters/index.d.ts.map +1 -0
  320. package/build/gateway/adapters/index.js +3 -0
  321. package/build/gateway/adapters/index.js.map +1 -0
  322. package/build/gateway/adapters/legacy/index.d.ts +3 -0
  323. package/build/gateway/adapters/legacy/index.d.ts.map +1 -0
  324. package/build/gateway/adapters/legacy/index.js +3 -0
  325. package/build/gateway/adapters/legacy/index.js.map +1 -0
  326. package/build/gateway/adapters/legacy/legacyEraPin.d.ts +3 -0
  327. package/build/gateway/adapters/legacy/legacyEraPin.d.ts.map +1 -0
  328. package/build/gateway/adapters/legacy/legacyEraPin.js +12 -0
  329. package/build/gateway/adapters/legacy/legacyEraPin.js.map +1 -0
  330. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts +19 -0
  331. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts.map +1 -0
  332. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js +86 -0
  333. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js.map +1 -0
  334. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts +19 -0
  335. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts.map +1 -0
  336. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js +76 -0
  337. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js.map +1 -0
  338. package/build/gateway/adapters/modern/index.d.ts +3 -0
  339. package/build/gateway/adapters/modern/index.d.ts.map +1 -0
  340. package/build/gateway/adapters/modern/index.js +3 -0
  341. package/build/gateway/adapters/modern/index.js.map +1 -0
  342. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts +32 -0
  343. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -0
  344. package/build/gateway/adapters/modern/modernInboundEraAdapter.js +150 -0
  345. package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -0
  346. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts +24 -0
  347. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -0
  348. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +75 -0
  349. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -0
  350. package/build/gateway/adapters/modern/modernPin.d.ts +9 -0
  351. package/build/gateway/adapters/modern/modernPin.d.ts.map +1 -0
  352. package/build/gateway/adapters/modern/modernPin.js +14 -0
  353. package/build/gateway/adapters/modern/modernPin.js.map +1 -0
  354. package/build/gateway/contracts/effectiveRequestAuthority.d.ts +12 -0
  355. package/build/gateway/contracts/effectiveRequestAuthority.d.ts.map +1 -0
  356. package/build/gateway/contracts/effectiveRequestAuthority.js +30 -0
  357. package/build/gateway/contracts/effectiveRequestAuthority.js.map +1 -0
  358. package/build/gateway/contracts/gatewayFailure.d.ts +25 -0
  359. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -0
  360. package/build/gateway/contracts/gatewayFailure.js +72 -0
  361. package/build/gateway/contracts/gatewayFailure.js.map +1 -0
  362. package/build/gateway/contracts/gatewayRequest.d.ts +32 -0
  363. package/build/gateway/contracts/gatewayRequest.d.ts.map +1 -0
  364. package/build/gateway/contracts/gatewayRequest.js +50 -0
  365. package/build/gateway/contracts/gatewayRequest.js.map +1 -0
  366. package/build/gateway/contracts/immutableJson.d.ts +6 -0
  367. package/build/gateway/contracts/immutableJson.d.ts.map +1 -0
  368. package/build/gateway/contracts/immutableJson.js +14 -0
  369. package/build/gateway/contracts/immutableJson.js.map +1 -0
  370. package/build/gateway/contracts/index.d.ts +6 -0
  371. package/build/gateway/contracts/index.d.ts.map +1 -0
  372. package/build/gateway/contracts/index.js +6 -0
  373. package/build/gateway/contracts/index.js.map +1 -0
  374. package/build/gateway/contracts/protocolEra.d.ts +22 -0
  375. package/build/gateway/contracts/protocolEra.d.ts.map +1 -0
  376. package/build/gateway/contracts/protocolEra.js +68 -0
  377. package/build/gateway/contracts/protocolEra.js.map +1 -0
  378. package/build/gateway/core/gatewayDispatcher.d.ts +15 -0
  379. package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -0
  380. package/build/gateway/core/gatewayDispatcher.js +77 -0
  381. package/build/gateway/core/gatewayDispatcher.js.map +1 -0
  382. package/build/gateway/core/gatewaySession.d.ts +13 -0
  383. package/build/gateway/core/gatewaySession.d.ts.map +1 -0
  384. package/build/gateway/core/gatewaySession.js +61 -0
  385. package/build/gateway/core/gatewaySession.js.map +1 -0
  386. package/build/gateway/core/index.d.ts +3 -0
  387. package/build/gateway/core/index.d.ts.map +1 -0
  388. package/build/gateway/core/index.js +3 -0
  389. package/build/gateway/core/index.js.map +1 -0
  390. package/build/gateway/index.d.ts +5 -0
  391. package/build/gateway/index.d.ts.map +1 -0
  392. package/build/gateway/index.js +5 -0
  393. package/build/gateway/index.js.map +1 -0
  394. package/build/gateway/ports/inboundEraAdapter.d.ts +27 -0
  395. package/build/gateway/ports/inboundEraAdapter.d.ts.map +1 -0
  396. package/build/gateway/ports/inboundEraAdapter.js +2 -0
  397. package/build/gateway/ports/inboundEraAdapter.js.map +1 -0
  398. package/build/gateway/ports/index.d.ts +3 -0
  399. package/build/gateway/ports/index.d.ts.map +1 -0
  400. package/build/gateway/ports/index.js +3 -0
  401. package/build/gateway/ports/index.js.map +1 -0
  402. package/build/gateway/ports/outboundEraAdapter.d.ts +16 -0
  403. package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -0
  404. package/build/gateway/ports/outboundEraAdapter.js +2 -0
  405. package/build/gateway/ports/outboundEraAdapter.js.map +1 -0
  406. package/build/logger/mcpLoggingEnhancer.d.ts +1 -5
  407. package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
  408. package/build/logger/mcpLoggingEnhancer.js +1 -192
  409. package/build/logger/mcpLoggingEnhancer.js.map +1 -1
  410. package/build/sdk/contracts/index.d.ts +5 -0
  411. package/build/sdk/contracts/index.d.ts.map +1 -0
  412. package/build/sdk/contracts/index.js +5 -0
  413. package/build/sdk/contracts/index.js.map +1 -0
  414. package/build/sdk/contracts/jsonValue.d.ts +21 -0
  415. package/build/sdk/contracts/jsonValue.d.ts.map +1 -0
  416. package/build/sdk/contracts/jsonValue.js +127 -0
  417. package/build/sdk/contracts/jsonValue.js.map +1 -0
  418. package/build/sdk/contracts/legacySdkAdapter.d.ts +73 -0
  419. package/build/sdk/contracts/legacySdkAdapter.d.ts.map +1 -0
  420. package/build/sdk/contracts/legacySdkAdapter.js +7 -0
  421. package/build/sdk/contracts/legacySdkAdapter.js.map +1 -0
  422. package/build/sdk/contracts/oneMcpProtocolError.d.ts +18 -0
  423. package/build/sdk/contracts/oneMcpProtocolError.d.ts.map +1 -0
  424. package/build/sdk/contracts/oneMcpProtocolError.js +39 -0
  425. package/build/sdk/contracts/oneMcpProtocolError.js.map +1 -0
  426. package/build/sdk/contracts/protocol.d.ts +240 -0
  427. package/build/sdk/contracts/protocol.d.ts.map +1 -0
  428. package/build/sdk/contracts/protocol.js +187 -0
  429. package/build/sdk/contracts/protocol.js.map +1 -0
  430. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +98 -0
  431. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -0
  432. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +243 -0
  433. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -0
  434. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts +69 -0
  435. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -0
  436. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +519 -0
  437. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -0
  438. package/build/sdk/legacy/client/auth.d.ts +2 -0
  439. package/build/sdk/legacy/client/auth.d.ts.map +1 -0
  440. package/build/sdk/legacy/client/auth.js +2 -0
  441. package/build/sdk/legacy/client/auth.js.map +1 -0
  442. package/build/sdk/legacy/client/index.d.ts +2 -0
  443. package/build/sdk/legacy/client/index.d.ts.map +1 -0
  444. package/build/sdk/legacy/client/index.js +2 -0
  445. package/build/sdk/legacy/client/index.js.map +1 -0
  446. package/build/sdk/legacy/client/runtime/clientFactory.d.ts +10 -0
  447. package/build/sdk/legacy/client/runtime/clientFactory.d.ts.map +1 -0
  448. package/build/sdk/legacy/client/runtime/clientFactory.js +56 -0
  449. package/build/sdk/legacy/client/runtime/clientFactory.js.map +1 -0
  450. package/build/sdk/legacy/client/runtime/clientManager.d.ts +94 -0
  451. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -0
  452. package/build/sdk/legacy/client/runtime/clientManager.js +834 -0
  453. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -0
  454. package/build/sdk/legacy/client/runtime/connectedClient.d.ts +7 -0
  455. package/build/sdk/legacy/client/runtime/connectedClient.d.ts.map +1 -0
  456. package/build/sdk/legacy/client/runtime/connectedClient.js +2 -0
  457. package/build/sdk/legacy/client/runtime/connectedClient.js.map +1 -0
  458. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts +10 -0
  459. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -0
  460. package/build/sdk/legacy/client/runtime/connectionHandler.js +139 -0
  461. package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -0
  462. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts +14 -0
  463. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts.map +1 -0
  464. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js +66 -0
  465. package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js.map +1 -0
  466. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts +50 -0
  467. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts.map +1 -0
  468. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js +93 -0
  469. package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js.map +1 -0
  470. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts +37 -0
  471. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -0
  472. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +240 -0
  473. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -0
  474. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +32 -0
  475. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -0
  476. package/build/sdk/legacy/client/runtime/legacyTransport.js +2 -0
  477. package/build/sdk/legacy/client/runtime/legacyTransport.js.map +1 -0
  478. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +40 -0
  479. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -0
  480. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +238 -0
  481. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -0
  482. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +12 -0
  483. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -0
  484. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +93 -0
  485. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -0
  486. package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts +4 -0
  487. package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts.map +1 -0
  488. package/build/sdk/legacy/client/runtime/outboundRequestParams.js +8 -0
  489. package/build/sdk/legacy/client/runtime/outboundRequestParams.js.map +1 -0
  490. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts +12 -0
  491. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts.map +1 -0
  492. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js +2 -0
  493. package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js.map +1 -0
  494. package/build/sdk/legacy/client/runtime/sdkClient.d.ts +5 -0
  495. package/build/sdk/legacy/client/runtime/sdkClient.d.ts.map +1 -0
  496. package/build/sdk/legacy/client/runtime/sdkClient.js +5 -0
  497. package/build/sdk/legacy/client/runtime/sdkClient.js.map +1 -0
  498. package/build/sdk/legacy/client/runtime/serveClient.d.ts +70 -0
  499. package/build/sdk/legacy/client/runtime/serveClient.d.ts.map +1 -0
  500. package/build/sdk/legacy/client/runtime/serveClient.js +235 -0
  501. package/build/sdk/legacy/client/runtime/serveClient.js.map +1 -0
  502. package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts +14 -0
  503. package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts.map +1 -0
  504. package/build/sdk/legacy/client/runtime/transportRecreationState.js +2 -0
  505. package/build/sdk/legacy/client/runtime/transportRecreationState.js.map +1 -0
  506. package/build/sdk/legacy/client/runtime/transportRecreator.d.ts +14 -0
  507. package/build/sdk/legacy/client/runtime/transportRecreator.d.ts.map +1 -0
  508. package/build/sdk/legacy/client/runtime/transportRecreator.js +89 -0
  509. package/build/sdk/legacy/client/runtime/transportRecreator.js.map +1 -0
  510. package/build/sdk/legacy/client/runtime/types.d.ts +9 -0
  511. package/build/sdk/legacy/client/runtime/types.d.ts.map +1 -0
  512. package/build/sdk/legacy/client/runtime/types.js +13 -0
  513. package/build/sdk/legacy/client/runtime/types.js.map +1 -0
  514. package/build/sdk/legacy/client/sse.d.ts +2 -0
  515. package/build/sdk/legacy/client/sse.d.ts.map +1 -0
  516. package/build/sdk/legacy/client/sse.js +2 -0
  517. package/build/sdk/legacy/client/sse.js.map +1 -0
  518. package/build/sdk/legacy/client/stdio.d.ts +2 -0
  519. package/build/sdk/legacy/client/stdio.d.ts.map +1 -0
  520. package/build/sdk/legacy/client/stdio.js +2 -0
  521. package/build/sdk/legacy/client/stdio.js.map +1 -0
  522. package/build/sdk/legacy/client/streamableHttp.d.ts +2 -0
  523. package/build/sdk/legacy/client/streamableHttp.d.ts.map +1 -0
  524. package/build/sdk/legacy/client/streamableHttp.js +2 -0
  525. package/build/sdk/legacy/client/streamableHttp.js.map +1 -0
  526. package/build/sdk/legacy/commands/serve.d.ts +90 -0
  527. package/build/sdk/legacy/commands/serve.d.ts.map +1 -0
  528. package/build/sdk/legacy/commands/serve.js +561 -0
  529. package/build/sdk/legacy/commands/serve.js.map +1 -0
  530. package/build/sdk/legacy/server/auth/clients.d.ts +2 -0
  531. package/build/sdk/legacy/server/auth/clients.d.ts.map +1 -0
  532. package/build/sdk/legacy/server/auth/clients.js +2 -0
  533. package/build/sdk/legacy/server/auth/clients.js.map +1 -0
  534. package/build/sdk/legacy/server/auth/errors.d.ts +2 -0
  535. package/build/sdk/legacy/server/auth/errors.d.ts.map +1 -0
  536. package/build/sdk/legacy/server/auth/errors.js +2 -0
  537. package/build/sdk/legacy/server/auth/errors.js.map +1 -0
  538. package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts +2 -0
  539. package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts.map +1 -0
  540. package/build/sdk/legacy/server/auth/middleware/bearerAuth.js +2 -0
  541. package/build/sdk/legacy/server/auth/middleware/bearerAuth.js.map +1 -0
  542. package/build/sdk/legacy/server/auth/provider.d.ts +2 -0
  543. package/build/sdk/legacy/server/auth/provider.d.ts.map +1 -0
  544. package/build/sdk/legacy/server/auth/provider.js +2 -0
  545. package/build/sdk/legacy/server/auth/provider.js.map +1 -0
  546. package/build/sdk/legacy/server/auth/router.d.ts +2 -0
  547. package/build/sdk/legacy/server/auth/router.d.ts.map +1 -0
  548. package/build/sdk/legacy/server/auth/router.js +2 -0
  549. package/build/sdk/legacy/server/auth/router.js.map +1 -0
  550. package/build/sdk/legacy/server/auth/types.d.ts +2 -0
  551. package/build/sdk/legacy/server/auth/types.d.ts.map +1 -0
  552. package/build/sdk/legacy/server/auth/types.js +2 -0
  553. package/build/sdk/legacy/server/auth/types.js.map +1 -0
  554. package/build/sdk/legacy/server/index.d.ts +2 -0
  555. package/build/sdk/legacy/server/index.d.ts.map +1 -0
  556. package/build/sdk/legacy/server/index.js +2 -0
  557. package/build/sdk/legacy/server/index.js.map +1 -0
  558. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts +15 -0
  559. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -0
  560. package/build/sdk/legacy/server/protocol/notificationHandlers.js +146 -0
  561. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -0
  562. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts +5 -0
  563. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -0
  564. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +50 -0
  565. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -0
  566. package/build/sdk/legacy/server/protocol/requestHandlers.d.ts +14 -0
  567. package/build/sdk/legacy/server/protocol/requestHandlers.d.ts.map +1 -0
  568. package/build/sdk/legacy/server/protocol/requestHandlers.js +96 -0
  569. package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -0
  570. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts +4 -0
  571. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -0
  572. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +62 -0
  573. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -0
  574. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts +5 -0
  575. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -0
  576. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +87 -0
  577. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -0
  578. package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts +14 -0
  579. package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts.map +1 -0
  580. package/build/sdk/legacy/server/runtime/clientInstanceFactory.js +49 -0
  581. package/build/sdk/legacy/server/runtime/clientInstanceFactory.js.map +1 -0
  582. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts +116 -0
  583. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -0
  584. package/build/sdk/legacy/server/runtime/clientInstancePool.js +600 -0
  585. package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -0
  586. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts +67 -0
  587. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts.map +1 -0
  588. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js +15 -0
  589. package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js.map +1 -0
  590. package/build/sdk/legacy/server/runtime/connectionManager.d.ts +82 -0
  591. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -0
  592. package/build/sdk/legacy/server/runtime/connectionManager.js +298 -0
  593. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -0
  594. package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts +17 -0
  595. package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts.map +1 -0
  596. package/build/sdk/legacy/server/runtime/legacyInboundConnection.js +22 -0
  597. package/build/sdk/legacy/server/runtime/legacyInboundConnection.js.map +1 -0
  598. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +18 -0
  599. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -0
  600. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +82 -0
  601. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -0
  602. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts +6 -0
  603. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -0
  604. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +193 -0
  605. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -0
  606. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts +60 -0
  607. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts.map +1 -0
  608. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js +274 -0
  609. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js.map +1 -0
  610. package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts +39 -0
  611. package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts.map +1 -0
  612. package/build/sdk/legacy/server/runtime/requestContextPreparation.js +50 -0
  613. package/build/sdk/legacy/server/runtime/requestContextPreparation.js.map +1 -0
  614. package/build/sdk/legacy/server/runtime/serverManager.d.ts +132 -0
  615. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -0
  616. package/build/sdk/legacy/server/runtime/serverManager.js +462 -0
  617. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -0
  618. package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts +23 -0
  619. package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts.map +1 -0
  620. package/build/sdk/legacy/server/runtime/templateServerCleanup.js +161 -0
  621. package/build/sdk/legacy/server/runtime/templateServerCleanup.js.map +1 -0
  622. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts +155 -0
  623. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -0
  624. package/build/sdk/legacy/server/runtime/templateServerManager.js +606 -0
  625. package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -0
  626. package/build/sdk/legacy/server/sse.d.ts +2 -0
  627. package/build/sdk/legacy/server/sse.d.ts.map +1 -0
  628. package/build/sdk/legacy/server/sse.js +2 -0
  629. package/build/sdk/legacy/server/sse.js.map +1 -0
  630. package/build/sdk/legacy/server/stdio.d.ts +2 -0
  631. package/build/sdk/legacy/server/stdio.d.ts.map +1 -0
  632. package/build/sdk/legacy/server/stdio.js +2 -0
  633. package/build/sdk/legacy/server/stdio.js.map +1 -0
  634. package/build/sdk/legacy/server/streamableHttp.d.ts +2 -0
  635. package/build/sdk/legacy/server/streamableHttp.d.ts.map +1 -0
  636. package/build/sdk/legacy/server/streamableHttp.js +2 -0
  637. package/build/sdk/legacy/server/streamableHttp.js.map +1 -0
  638. package/build/sdk/legacy/shared/auth.d.ts +2 -0
  639. package/build/sdk/legacy/shared/auth.d.ts.map +1 -0
  640. package/build/sdk/legacy/shared/auth.js +2 -0
  641. package/build/sdk/legacy/shared/auth.js.map +1 -0
  642. package/build/sdk/legacy/shared/capabilityListCapture.d.ts +4 -0
  643. package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -0
  644. package/build/sdk/legacy/shared/capabilityListCapture.js +30 -0
  645. package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -0
  646. package/build/sdk/legacy/shared/protocol.d.ts +2 -0
  647. package/build/sdk/legacy/shared/protocol.d.ts.map +1 -0
  648. package/build/sdk/legacy/shared/protocol.js +2 -0
  649. package/build/sdk/legacy/shared/protocol.js.map +1 -0
  650. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts +12 -0
  651. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -0
  652. package/build/sdk/legacy/shared/resourceTemplateRouting.js +66 -0
  653. package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -0
  654. package/build/sdk/legacy/shared/transport.d.ts +2 -0
  655. package/build/sdk/legacy/shared/transport.d.ts.map +1 -0
  656. package/build/sdk/legacy/shared/transport.js +2 -0
  657. package/build/sdk/legacy/shared/transport.js.map +1 -0
  658. package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts +13 -0
  659. package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts.map +1 -0
  660. package/build/sdk/legacy/transport/http/loggingSseTransport.js +43 -0
  661. package/build/sdk/legacy/transport/http/loggingSseTransport.js.map +1 -0
  662. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +91 -0
  663. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
  664. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +240 -0
  665. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
  666. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +14 -0
  667. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -0
  668. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +50 -0
  669. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -0
  670. package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts +58 -0
  671. package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts.map +1 -0
  672. package/build/sdk/legacy/transport/http/restorableStreamableTransport.js +59 -0
  673. package/build/sdk/legacy/transport/http/restorableStreamableTransport.js.map +1 -0
  674. package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts +5 -0
  675. package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts.map +1 -0
  676. package/build/sdk/legacy/transport/http/routes/sseRoutes.js +105 -0
  677. package/build/sdk/legacy/transport/http/routes/sseRoutes.js.map +1 -0
  678. package/build/sdk/legacy/transport/http/server.d.ts +90 -0
  679. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -0
  680. package/build/sdk/legacy/transport/http/server.js +487 -0
  681. package/build/sdk/legacy/transport/http/server.js.map +1 -0
  682. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts +92 -0
  683. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts.map +1 -0
  684. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js +372 -0
  685. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js.map +1 -0
  686. package/build/sdk/legacy/transport/restartableStdioTransport.d.ts +90 -0
  687. package/build/sdk/legacy/transport/restartableStdioTransport.d.ts.map +1 -0
  688. package/build/sdk/legacy/transport/restartableStdioTransport.js +192 -0
  689. package/build/sdk/legacy/transport/restartableStdioTransport.js.map +1 -0
  690. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts +92 -0
  691. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -0
  692. package/build/sdk/legacy/transport/stdioProxyTransport.js +388 -0
  693. package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -0
  694. package/build/sdk/legacy/transport/transportFactory.d.ts +25 -0
  695. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -0
  696. package/build/sdk/legacy/transport/transportFactory.js +404 -0
  697. package/build/sdk/legacy/transport/transportFactory.js.map +1 -0
  698. package/build/sdk/legacy/types.d.ts +2 -0
  699. package/build/sdk/legacy/types.d.ts.map +1 -0
  700. package/build/sdk/legacy/types.js +3 -0
  701. package/build/sdk/legacy/types.js.map +1 -0
  702. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts +57 -0
  703. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts.map +1 -0
  704. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js +316 -0
  705. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js.map +1 -0
  706. package/build/sdk/legacy/validation.d.ts +2 -0
  707. package/build/sdk/legacy/validation.d.ts.map +1 -0
  708. package/build/sdk/legacy/validation.js +2 -0
  709. package/build/sdk/legacy/validation.js.map +1 -0
  710. package/build/server.d.ts.map +1 -1
  711. package/build/server.js +12 -3
  712. package/build/server.js.map +1 -1
  713. package/build/transport/http/loggingSseTransport.d.ts +1 -12
  714. package/build/transport/http/loggingSseTransport.d.ts.map +1 -1
  715. package/build/transport/http/loggingSseTransport.js +1 -42
  716. package/build/transport/http/loggingSseTransport.js.map +1 -1
  717. package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -1
  718. package/build/transport/http/middlewares/errorHandler.js +18 -1
  719. package/build/transport/http/middlewares/errorHandler.js.map +1 -1
  720. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -90
  721. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  722. package/build/transport/http/middlewares/scopeAuthMiddleware.js +2 -239
  723. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  724. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
  725. package/build/transport/http/middlewares/tagsExtractor.js +1 -1
  726. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
  727. package/build/transport/http/restorableStreamableTransport.d.ts +2 -57
  728. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
  729. package/build/transport/http/restorableStreamableTransport.js +1 -58
  730. package/build/transport/http/restorableStreamableTransport.js.map +1 -1
  731. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  732. package/build/transport/http/routes/adminRoutes.js +3 -1
  733. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  734. package/build/transport/http/routes/apiRoutes.d.ts +5 -1
  735. package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
  736. package/build/transport/http/routes/apiRoutes.js +15 -3
  737. package/build/transport/http/routes/apiRoutes.js.map +1 -1
  738. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  739. package/build/transport/http/routes/inspectHelpers.d.ts +1 -1
  740. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
  741. package/build/transport/http/routes/inspectHelpers.js +9 -5
  742. package/build/transport/http/routes/inspectHelpers.js.map +1 -1
  743. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  744. package/build/transport/http/routes/inspectRoutes.js +39 -25
  745. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  746. package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -1
  747. package/build/transport/http/routes/instructionsRoutes.js +2 -9
  748. package/build/transport/http/routes/instructionsRoutes.js.map +1 -1
  749. package/build/transport/http/routes/modernHttpRoutes.d.ts +29 -0
  750. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -0
  751. package/build/transport/http/routes/modernHttpRoutes.js +241 -0
  752. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -0
  753. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  754. package/build/transport/http/routes/oauthRoutes.js +8 -4
  755. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  756. package/build/transport/http/routes/sseRoutes.d.ts +1 -4
  757. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  758. package/build/transport/http/routes/sseRoutes.js +1 -109
  759. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  760. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  761. package/build/transport/http/routes/toolRoutes.js +21 -10
  762. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  763. package/build/transport/http/server.d.ts +1 -84
  764. package/build/transport/http/server.d.ts.map +1 -1
  765. package/build/transport/http/server.js +1 -449
  766. package/build/transport/http/server.js.map +1 -1
  767. package/build/transport/http/streamableSessionLifecycle.d.ts +1 -91
  768. package/build/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
  769. package/build/transport/http/streamableSessionLifecycle.js +1 -376
  770. package/build/transport/http/streamableSessionLifecycle.js.map +1 -1
  771. package/build/transport/http/utils/httpErrorHandler.js +1 -1
  772. package/build/transport/http/utils/httpErrorHandler.js.map +1 -1
  773. package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -1
  774. package/build/transport/http/utils/templateContextAuthority.js +19 -6
  775. package/build/transport/http/utils/templateContextAuthority.js.map +1 -1
  776. package/build/transport/restartableStdioTransport.d.ts +1 -89
  777. package/build/transport/restartableStdioTransport.d.ts.map +1 -1
  778. package/build/transport/restartableStdioTransport.js +1 -191
  779. package/build/transport/restartableStdioTransport.js.map +1 -1
  780. package/build/transport/stdioProxyTransport.d.ts +1 -82
  781. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  782. package/build/transport/stdioProxyTransport.js +1 -278
  783. package/build/transport/stdioProxyTransport.js.map +1 -1
  784. package/build/transport/transportFactory.d.ts +1 -23
  785. package/build/transport/transportFactory.d.ts.map +1 -1
  786. package/build/transport/transportFactory.js +1 -379
  787. package/build/transport/transportFactory.js.map +1 -1
  788. package/build/transport/transportFactory.testSetup.js +13 -0
  789. package/build/transport/transportFactory.testSetup.js.map +1 -1
  790. package/build/utils/client/clientInfoExtractor.d.ts +1 -1
  791. package/build/utils/client/clientInfoExtractor.d.ts.map +1 -1
  792. package/build/utils/client/clientInfoExtractor.js.map +1 -1
  793. package/build/utils/core/errorHandling.d.ts.map +1 -1
  794. package/build/utils/core/errorHandling.js +1 -1
  795. package/build/utils/core/errorHandling.js.map +1 -1
  796. package/build/utils/core/errorTypes.js +1 -1
  797. package/build/utils/core/errorTypes.js.map +1 -1
  798. package/build/utils/core/operationExecution.d.ts.map +1 -1
  799. package/build/utils/core/operationExecution.js +1 -1
  800. package/build/utils/core/operationExecution.js.map +1 -1
  801. package/build/utils/crypto.d.ts +5 -1
  802. package/build/utils/crypto.d.ts.map +1 -1
  803. package/build/utils/crypto.js +8 -3
  804. package/build/utils/crypto.js.map +1 -1
  805. package/build/utils/filePermissions.d.ts +65 -0
  806. package/build/utils/filePermissions.d.ts.map +1 -0
  807. package/build/utils/filePermissions.js +212 -0
  808. package/build/utils/filePermissions.js.map +1 -0
  809. package/package.json +18 -5
@@ -0,0 +1,834 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { sanitizeRuntimeScopeError } from '../../../../config/runtimeScopeEnv.js';
3
+ import { MCP_SERVER_NAME } from '../../../../constants.js';
4
+ import { DEFAULT_MAX_CONCURRENT_LOADS } from '../../../../constants/mcp.js';
5
+ import { registerCapabilityPaginationNotifications } from '../../../../core/capabilities/capabilityPagination.js';
6
+ import { ParallelExecutor } from '../../../../core/loading/parallelExecutor.js';
7
+ import { BackendStdioSupervisor } from '../../../../core/server/backendStdioSupervisor.js';
8
+ import { ClientStatus } from '../../../../core/types/index.js';
9
+ import logger, { debugIf } from '../../../../logger/logger.js';
10
+ import { CapabilityError, ClientConnectionError, ClientNotFoundError } from '../../../../utils/core/errorTypes.js';
11
+ import { executeOperation } from '../../../../utils/core/operationExecution.js';
12
+ import { getConnectionTimeout } from '../../../../utils/core/timeoutUtils.js';
13
+ import { ClientFactory } from './clientFactory.js';
14
+ import { ConnectionHandler } from './connectionHandler.js';
15
+ import { createLegacyOutboundConnection, getLegacyClient, getLegacyTransport, snapshotSupervision, } from './legacyOutboundConnection.js';
16
+ import { OAuthFlowHandler } from './oauthFlowHandler.js';
17
+ import { TransportRecreator } from './transportRecreator.js';
18
+ import { OAuthRequiredError } from './types.js';
19
+ export { OAuthRequiredError };
20
+ export var ClientManagerEvent;
21
+ (function (ClientManagerEvent) {
22
+ ClientManagerEvent["BackendSupervisionStateChanged"] = "backend-supervision-state-changed";
23
+ })(ClientManagerEvent || (ClientManagerEvent = {}));
24
+ // Matches the two message shapes downstream servers are observed to send back
25
+ // when a Streamable HTTP / SSE session ID they issued no longer exists on
26
+ // their side (e.g. the backend process restarted and its in-memory session
27
+ // store was wiped): the MCP spec's own "Session not found" wording, and the
28
+ // free-form "Could not find session ID '...'" text some server SDKs use. The
29
+ // second alternative spells out "session id" (rather than a bare "session")
30
+ // so we don't also match unrelated "could not find session <noun>" wording
31
+ // that isn't the specific session-loss shape this recovery path handles.
32
+ const SESSION_LOST_PATTERN = /session (?:id )?not found|could not find session id/i;
33
+ function isSessionLostError(error) {
34
+ if (!(error instanceof Error)) {
35
+ return false;
36
+ }
37
+ return SESSION_LOST_PATTERN.test(error.message);
38
+ }
39
+ export class ClientManager extends EventEmitter {
40
+ static instance;
41
+ outboundConns = new Map();
42
+ transports = {};
43
+ connectionSemaphore = new Map();
44
+ bulkConnectionOperations = new Set();
45
+ // Backends currently running a session-loss recovery (see recoverFromSessionLoss).
46
+ // Guards against the same dead client's onerror firing more than once — e.g.
47
+ // several in-flight requests all failing around the same time — from each
48
+ // kicking off its own redundant recreateForSessionLoss + createSingleClient.
49
+ sessionLossRecoveries = new Set();
50
+ instructionAggregator;
51
+ clientFactory;
52
+ connectionHandler;
53
+ oauthFlowHandler;
54
+ transportRecreator;
55
+ backendSupervisors = new Map();
56
+ backendAvailabilityHandler;
57
+ isShuttingDown = false;
58
+ shutdownPromise;
59
+ constructor() {
60
+ super();
61
+ this.clientFactory = new ClientFactory();
62
+ this.connectionHandler = new ConnectionHandler();
63
+ this.oauthFlowHandler = new OAuthFlowHandler();
64
+ this.transportRecreator = new TransportRecreator();
65
+ }
66
+ static getOrCreateInstance() {
67
+ if (!ClientManager.instance) {
68
+ ClientManager.instance = new ClientManager();
69
+ }
70
+ return ClientManager.instance;
71
+ }
72
+ static get current() {
73
+ return ClientManager.instance;
74
+ }
75
+ static resetInstance() {
76
+ ClientManager.instance = undefined;
77
+ }
78
+ static async shutdownCurrent() {
79
+ await ClientManager.instance?.shutdown();
80
+ }
81
+ setInstructionAggregator(aggregator) {
82
+ this.instructionAggregator = aggregator;
83
+ }
84
+ setBackendAvailabilityHandler(handler) {
85
+ this.backendAvailabilityHandler = handler;
86
+ }
87
+ extractAndCacheInstructions(name, client) {
88
+ try {
89
+ const instructions = client.getInstructions();
90
+ const connectionInfo = this.outboundConns.get(name);
91
+ if (connectionInfo) {
92
+ connectionInfo.instructions = instructions;
93
+ }
94
+ // Use clean name from connection object for instruction aggregation
95
+ // Template servers use hash-based keys (e.g., "serena:6fa053f1...") but we want
96
+ // to display the clean name (e.g., "serena") in instructions
97
+ const cleanName = connectionInfo?.name || name;
98
+ if (this.instructionAggregator) {
99
+ this.instructionAggregator.setInstructions({ source: 'mcpServers', name: cleanName }, instructions, name);
100
+ }
101
+ if (instructions?.trim()) {
102
+ debugIf(() => ({
103
+ message: `Cached instructions for ${cleanName}: ${instructions.length} characters`,
104
+ meta: { name: cleanName, instructionLength: instructions.length },
105
+ }));
106
+ }
107
+ else {
108
+ debugIf(() => ({ message: `No instructions available for ${cleanName}`, meta: { name: cleanName } }));
109
+ }
110
+ }
111
+ catch (error) {
112
+ const errorMessage = error instanceof Error ? error.message : String(error);
113
+ logger.warn(`Failed to extract instructions from ${name}: ${errorMessage}`, {
114
+ error: errorMessage,
115
+ clientName: name,
116
+ transportType: this.outboundConns.has(name)
117
+ ? getLegacyTransport(this.outboundConns.get(name)).constructor.name
118
+ : undefined,
119
+ connectionStatus: this.outboundConns.get(name)?.status,
120
+ });
121
+ }
122
+ }
123
+ setupConnectionHandlers(name, client) {
124
+ client.onclose = () => {
125
+ if (this.isShuttingDown) {
126
+ return;
127
+ }
128
+ const clientInfo = this.outboundConns.get(name);
129
+ if (!clientInfo || getLegacyClient(clientInfo) !== client) {
130
+ return;
131
+ }
132
+ const supervision = getLegacyTransport(clientInfo).stdioSupervision;
133
+ if (supervision) {
134
+ this.getOrCreateBackendSupervisor(name, supervision).handleUnexpectedExit(supervision.getLastExit() ?? {
135
+ code: null,
136
+ signal: null,
137
+ pid: this.getTransportPid(getLegacyTransport(clientInfo)),
138
+ at: new Date(),
139
+ });
140
+ return;
141
+ }
142
+ if (clientInfo) {
143
+ clientInfo.status = ClientStatus.Disconnected;
144
+ }
145
+ // Use cleanName for removal to match the key used during caching
146
+ const cleanName = clientInfo?.name || name;
147
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: cleanName }, name);
148
+ logger.info(`Client ${name} disconnected`);
149
+ };
150
+ client.onerror = (error) => {
151
+ if (isUnknownMessageIdError(error)) {
152
+ logger.error(`Client ${name} received a response for an unknown message ID`);
153
+ return;
154
+ }
155
+ const safeError = sanitizeRuntimeScopeError(error);
156
+ logger.error(`Client ${name} error: ${safeError}`);
157
+ if (isSessionLostError(safeError)) {
158
+ this.recoverFromSessionLoss(name, client);
159
+ }
160
+ };
161
+ const connection = this.outboundConns.get(name);
162
+ if (connection && getLegacyClient(connection) === client) {
163
+ registerCapabilityPaginationNotifications(this.outboundConns, connection);
164
+ }
165
+ }
166
+ /**
167
+ * Reconnects a backend whose Streamable HTTP / SSE session was invalidated
168
+ * server-side (typically because the backend process restarted and lost its
169
+ * in-memory session store). Without this, the client keeps reusing the dead
170
+ * session ID on every subsequent request and the backend never recovers
171
+ * until the whole 1MCP process is restarted.
172
+ */
173
+ recoverFromSessionLoss(name, erroredClient) {
174
+ if (this.isShuttingDown) {
175
+ return;
176
+ }
177
+ // The client that errored may already have been superseded by a newer
178
+ // connection attempt (e.g. a concurrent recovery, or the server coming
179
+ // back mid-retry) — only recover if it's still the one on record.
180
+ const clientInfo = this.outboundConns.get(name);
181
+ if (!clientInfo || getLegacyClient(clientInfo) !== erroredClient) {
182
+ return;
183
+ }
184
+ // A recovery for this exact dead client is already in flight — e.g. several
185
+ // requests in flight against the same lost session can each independently
186
+ // fire onerror around the same time. Let the one already running finish
187
+ // rather than building a second, redundant replacement transport.
188
+ if (this.sessionLossRecoveries.has(name)) {
189
+ return;
190
+ }
191
+ this.sessionLossRecoveries.add(name);
192
+ logger.warn(`Session for ${name} was lost (backend likely restarted) — reconnecting with a fresh session`);
193
+ const staleTransport = this.transports[name] ?? getLegacyTransport(clientInfo);
194
+ let freshTransport;
195
+ try {
196
+ freshTransport = this.transportRecreator.recreateForSessionLoss(staleTransport, name);
197
+ }
198
+ catch (error) {
199
+ // recreateForSessionLoss only supports HTTP/SSE transports; a session-loss-shaped
200
+ // error message from some other transport kind must not escape client.onerror.
201
+ logger.error(`Cannot recover ${name} from session loss: ${error instanceof Error ? error.message : String(error)}`);
202
+ this.sessionLossRecoveries.delete(name);
203
+ return;
204
+ }
205
+ void this.createSingleClient(name, freshTransport)
206
+ .catch((error) => {
207
+ logger.error(`Failed to recover ${name} after session loss: ${error instanceof Error ? error.message : String(error)}`);
208
+ })
209
+ .finally(() => {
210
+ this.sessionLossRecoveries.delete(name);
211
+ // Whether recovery succeeded or failed, this dead client/transport is no
212
+ // longer on record for `name` (createSingleClient always replaces it,
213
+ // even with an error-status placeholder) — close it so its underlying
214
+ // connection and any pending SSE reconnection timers don't linger.
215
+ void this.disposeConnectedClient({ client: erroredClient, transport: staleTransport });
216
+ });
217
+ }
218
+ /**
219
+ * Create multiple MCP clients in parallel with controlled concurrency
220
+ *
221
+ * @remarks Uses ParallelExecutor to create clients concurrently with a maximum
222
+ * of DEFAULT_MAX_CONCURRENT_LOADS (5) simultaneous connections. Individual
223
+ * client creation failures are captured in the OutboundConnections map with
224
+ * appropriate error status, allowing other clients to continue loading.
225
+ *
226
+ * Error handling details:
227
+ * - OAuthRequiredError: Client status set to AwaitingOAuth
228
+ * - Other errors: Client status set to Error with lastError populated
229
+ *
230
+ * @param transports - Map of server names to their transport configurations
231
+ * @returns Map of all attempted connections (successful, failed, and awaiting OAuth)
232
+ */
233
+ async createClients(transports) {
234
+ this.assertActive();
235
+ const previousNames = [...this.outboundConns.keys()];
236
+ const nextNames = new Set(Object.keys(transports));
237
+ const executor = new ParallelExecutor();
238
+ const serverEntries = Object.entries(transports);
239
+ const initialCount = serverEntries.length;
240
+ const bulkOperation = executor.execute(serverEntries, async ([name, transport]) => this.createClient(name, transport, true), {
241
+ maxConcurrent: DEFAULT_MAX_CONCURRENT_LOADS,
242
+ });
243
+ this.bulkConnectionOperations.add(bulkOperation);
244
+ try {
245
+ await bulkOperation;
246
+ }
247
+ finally {
248
+ this.bulkConnectionOperations.delete(bulkOperation);
249
+ for (const name of previousNames) {
250
+ if (nextNames.has(name))
251
+ continue;
252
+ const connection = this.outboundConns.get(name);
253
+ // Revoke publication before closing: session recovery may have replaced
254
+ // the original snapshot, or still be connecting when this name is removed.
255
+ this.outboundConns.delete(name);
256
+ delete this.transports[name];
257
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: connection?.name || name }, name);
258
+ await this.disposeSupersededConnection(name, connection);
259
+ }
260
+ }
261
+ // Check for failures and log summary
262
+ let failedClientCount = 0;
263
+ for (const conn of this.outboundConns.values()) {
264
+ if (conn.status === ClientStatus.Error) {
265
+ failedClientCount++;
266
+ }
267
+ }
268
+ if (failedClientCount > 0) {
269
+ logger.error(`Some clients failed to initialize: ${failedClientCount}/${initialCount}`);
270
+ }
271
+ let oauthClientCount = 0;
272
+ for (const conn of this.outboundConns.values()) {
273
+ if (conn.status === ClientStatus.AwaitingOAuth) {
274
+ oauthClientCount++;
275
+ }
276
+ }
277
+ if (oauthClientCount > 0) {
278
+ logger.info(`Clients awaiting OAuth authorization: ${oauthClientCount}/${initialCount}`);
279
+ }
280
+ return this.outboundConns;
281
+ }
282
+ async createClient(name, transport, preserveHealthyConnection = false) {
283
+ logger.info(`Creating client for ${name}`);
284
+ if (this.isShuttingDown) {
285
+ return;
286
+ }
287
+ const existing = this.outboundConns.get(name);
288
+ const preserveExisting = preserveHealthyConnection && existing?.status === ClientStatus.Connected;
289
+ if (!preserveExisting)
290
+ this.transports[name] = transport;
291
+ try {
292
+ const client = this.clientFactory.createClient(transport);
293
+ const connected = await this.connectionHandler.connectWithRetry(client, transport, name, undefined, (t) => this.transportRecreator.recreateForRetry(t, name, { preserveSessionId: false }), (t) => this.clientFactory.createClient(t));
294
+ if (this.isShuttingDown) {
295
+ await this.disposeConnectedClient(connected);
296
+ return;
297
+ }
298
+ const superseded = this.outboundConns.get(name);
299
+ this.recordConnectedClient(name, connected);
300
+ await this.disposeSupersededConnection(name, superseded, connected.client);
301
+ }
302
+ catch (error) {
303
+ if (this.isShuttingDown) {
304
+ return;
305
+ }
306
+ if (preserveExisting) {
307
+ if (error instanceof OAuthRequiredError) {
308
+ error.client.onclose = undefined;
309
+ error.client.onerror = undefined;
310
+ await Promise.allSettled([error.client.close(), (error.transport ?? transport).close()]);
311
+ }
312
+ if (!(error instanceof OAuthRequiredError) || (error.transport && error.transport !== transport)) {
313
+ await transport.close().catch(() => undefined);
314
+ }
315
+ const safeError = sanitizeRuntimeScopeError(error);
316
+ logger.warn(`Keeping healthy client ${name} after replacement failed: ${safeError.message}`);
317
+ return;
318
+ }
319
+ this.handleClientCreationError(name, transport, sanitizeRuntimeScopeError(error));
320
+ }
321
+ }
322
+ handleClientCreationError(name, transport, error) {
323
+ if (error instanceof OAuthRequiredError) {
324
+ const activeTransport = error.transport ?? transport;
325
+ logger.info(`OAuth authorization required for ${name}`, {
326
+ reason: error.message,
327
+ hasAuthorizationUrl: !!this.oauthFlowHandler.extractAuthorizationUrl(activeTransport),
328
+ clientName: name,
329
+ transportType: activeTransport.constructor.name,
330
+ });
331
+ const authorizationUrl = this.oauthFlowHandler.extractAuthorizationUrl(activeTransport);
332
+ this.outboundConns.set(name, createLegacyOutboundConnection({
333
+ name,
334
+ transport: activeTransport,
335
+ client: error.client,
336
+ status: ClientStatus.AwaitingOAuth,
337
+ authorizationUrl,
338
+ oauthStartTime: new Date(),
339
+ }));
340
+ }
341
+ else {
342
+ const errorMessage = error instanceof Error ? error.message : String(error);
343
+ logger.error(`Failed to create client for ${name}: ${errorMessage}`, {
344
+ error: errorMessage,
345
+ clientName: name,
346
+ transportType: transport.constructor.name,
347
+ connectionStatus: this.outboundConns.get(name)?.status,
348
+ stack: error instanceof Error ? error.stack : undefined,
349
+ });
350
+ this.outboundConns.set(name, createLegacyOutboundConnection({
351
+ name,
352
+ transport,
353
+ client: this.clientFactory.createClient(transport),
354
+ status: ClientStatus.Error,
355
+ lastError: error,
356
+ }));
357
+ }
358
+ }
359
+ getClient(clientName) {
360
+ const client = this.outboundConns.get(clientName);
361
+ if (!client) {
362
+ throw new ClientNotFoundError(clientName);
363
+ }
364
+ return client;
365
+ }
366
+ getClients() {
367
+ return this.outboundConns;
368
+ }
369
+ async createSingleClient(name, transport, abortSignal) {
370
+ this.assertActive();
371
+ const existingPromise = this.connectionSemaphore.get(name);
372
+ if (existingPromise) {
373
+ await existingPromise;
374
+ return;
375
+ }
376
+ if (abortSignal?.aborted) {
377
+ throw new Error(`Operation aborted: ${abortSignal.reason || 'Request cancelled'}`);
378
+ }
379
+ const connectionPromise = this.createSingleClientInternal(name, transport, abortSignal);
380
+ this.connectionSemaphore.set(name, connectionPromise);
381
+ try {
382
+ await connectionPromise;
383
+ }
384
+ finally {
385
+ this.connectionSemaphore.delete(name);
386
+ }
387
+ }
388
+ async createSingleClientInternal(name, transport, abortSignal) {
389
+ logger.info(`Creating client for ${name}`);
390
+ const attemptTransport = this.prepareTransportForAttempt(name, transport);
391
+ this.transports[name] = attemptTransport;
392
+ try {
393
+ if (abortSignal?.aborted) {
394
+ throw new Error(`Operation aborted: ${abortSignal.reason || 'Request cancelled'}`);
395
+ }
396
+ const client = this.clientFactory.createClient(attemptTransport);
397
+ const connected = await this.connectionHandler.connectWithRetry(client, attemptTransport, name, abortSignal, (t) => this.transportRecreator.recreateForRetry(t, name, { preserveSessionId: false }), (t) => this.clientFactory.createClient(t));
398
+ if (this.isShuttingDown || this.transports[name] !== attemptTransport) {
399
+ await this.disposeConnectedClient(connected);
400
+ throw new Error(this.isShuttingDown ? 'ClientManager is shutting down' : `Client ${name} was removed or replaced`);
401
+ }
402
+ const superseded = this.outboundConns.get(name);
403
+ this.recordConnectedClient(name, connected);
404
+ await this.disposeSupersededConnection(name, superseded, connected.client);
405
+ }
406
+ catch (error) {
407
+ if (this.isShuttingDown || this.transports[name] !== attemptTransport) {
408
+ if (error instanceof OAuthRequiredError) {
409
+ await this.disposeConnectedClient({ client: error.client, transport: error.transport ?? attemptTransport });
410
+ }
411
+ throw sanitizeRuntimeScopeError(error);
412
+ }
413
+ const safeError = sanitizeRuntimeScopeError(error);
414
+ this.handleSingleClientError(name, attemptTransport, safeError);
415
+ throw safeError;
416
+ }
417
+ }
418
+ prepareTransportForAttempt(name, requestedTransport) {
419
+ const previousConnection = this.outboundConns.get(name);
420
+ if (previousConnection?.status !== ClientStatus.Error) {
421
+ return requestedTransport;
422
+ }
423
+ return this.transportRecreator.recreateForRetry(requestedTransport, name, { preserveSessionId: false });
424
+ }
425
+ recordConnectedClient(name, connected) {
426
+ const supervision = this.backendSupervisors.get(name)?.snapshot();
427
+ this.transports[name] = connected.transport;
428
+ this.outboundConns.set(name, createLegacyOutboundConnection({
429
+ name,
430
+ transport: connected.transport,
431
+ client: connected.client,
432
+ status: ClientStatus.Connected,
433
+ lastConnected: new Date(),
434
+ capabilities: connected.client.getServerCapabilities?.(),
435
+ supervision,
436
+ }));
437
+ logger.info(`Client created for ${name}`);
438
+ this.extractAndCacheInstructions(name, connected.client);
439
+ this.setupConnectionHandlers(name, connected.client);
440
+ const metadata = connected.transport.stdioSupervision;
441
+ if (metadata) {
442
+ const supervisor = this.getOrCreateBackendSupervisor(name, metadata);
443
+ this.applyBackendSupervisionState(name, supervisor.snapshot());
444
+ }
445
+ }
446
+ async disposeSupersededConnection(name, superseded, publishedClient) {
447
+ if (!superseded || (publishedClient && getLegacyClient(superseded) === publishedClient))
448
+ return;
449
+ getLegacyClient(superseded).onclose = undefined;
450
+ try {
451
+ await superseded.adapter.close();
452
+ }
453
+ catch (error) {
454
+ const safeError = sanitizeRuntimeScopeError(error);
455
+ logger.warn(`Could not close superseded client ${name}: ${safeError.message}`);
456
+ }
457
+ }
458
+ handleSingleClientError(name, transport, error) {
459
+ if (error instanceof OAuthRequiredError) {
460
+ const activeTransport = error.transport ?? transport;
461
+ logger.info(`OAuth authorization required for ${name}`, {
462
+ reason: error.message,
463
+ hasAuthorizationUrl: !!this.oauthFlowHandler.extractAuthorizationUrl(activeTransport),
464
+ clientName: name,
465
+ transportType: activeTransport.constructor.name,
466
+ });
467
+ const authorizationUrl = this.oauthFlowHandler.extractAuthorizationUrl(activeTransport);
468
+ this.outboundConns.set(name, createLegacyOutboundConnection({
469
+ name,
470
+ transport: activeTransport,
471
+ client: error.client,
472
+ status: ClientStatus.AwaitingOAuth,
473
+ authorizationUrl,
474
+ oauthStartTime: new Date(),
475
+ }));
476
+ }
477
+ else {
478
+ const errorMessage = error instanceof Error ? error.message : String(error);
479
+ logger.error(`Failed to create client for ${name}: ${errorMessage}`, {
480
+ error: errorMessage,
481
+ clientName: name,
482
+ transportType: transport.constructor.name,
483
+ connectionStatus: this.outboundConns.get(name)?.status,
484
+ stack: error instanceof Error ? error.stack : undefined,
485
+ });
486
+ this.outboundConns.set(name, createLegacyOutboundConnection({
487
+ name,
488
+ transport,
489
+ client: this.clientFactory.createClient(transport),
490
+ status: ClientStatus.Error,
491
+ lastError: error,
492
+ }));
493
+ }
494
+ }
495
+ initializeClientsAsync(transports) {
496
+ this.assertActive();
497
+ this.transports = transports;
498
+ this.outboundConns.clear();
499
+ logger.info(`Initialized client storage for ${Object.keys(transports).length} transports`);
500
+ return this.outboundConns;
501
+ }
502
+ getTransport(name) {
503
+ return this.transports[name];
504
+ }
505
+ getTransportNames() {
506
+ return Object.keys(this.transports);
507
+ }
508
+ async completeOAuthAndReconnect(serverName, authorizationCode) {
509
+ this.assertActive();
510
+ const clientInfo = this.outboundConns.get(serverName);
511
+ if (!clientInfo) {
512
+ throw new ClientNotFoundError(serverName);
513
+ }
514
+ const oldTransport = getLegacyTransport(clientInfo);
515
+ const newTransport = this.transportRecreator.recreateHttpTransport(oldTransport, serverName, {
516
+ preserveSessionId: false,
517
+ });
518
+ const updatedInfo = await this.oauthFlowHandler.completeOAuthAndReconnect(serverName, oldTransport, newTransport, authorizationCode, clientInfo);
519
+ if (this.isShuttingDown) {
520
+ getLegacyClient(updatedInfo).onclose = undefined;
521
+ await updatedInfo.adapter.close().catch(() => getLegacyTransport(updatedInfo)
522
+ .close()
523
+ .catch(() => undefined));
524
+ throw new Error('ClientManager is shutting down');
525
+ }
526
+ this.outboundConns.set(serverName, updatedInfo);
527
+ this.transports[serverName] = getLegacyTransport(updatedInfo);
528
+ this.extractAndCacheInstructions(serverName, getLegacyClient(updatedInfo));
529
+ this.setupConnectionHandlers(serverName, getLegacyClient(updatedInfo));
530
+ }
531
+ async executeClientOperation(clientName, operation, options = {}, requiredCapability) {
532
+ const outboundConn = this.getClient(clientName);
533
+ if (outboundConn.status !== ClientStatus.Connected) {
534
+ throw new ClientConnectionError(clientName, new Error('Client not connected'));
535
+ }
536
+ if (requiredCapability && !outboundConn.capabilities?.[requiredCapability]) {
537
+ throw new CapabilityError(clientName, String(requiredCapability));
538
+ }
539
+ return executeOperation(() => operation(outboundConn), `client ${clientName}`, options);
540
+ }
541
+ createClientInstance() {
542
+ return this.clientFactory.createClientInstance();
543
+ }
544
+ async initiateOAuth(serverName) {
545
+ this.assertActive();
546
+ const connection = this.getClient(serverName);
547
+ const superseded = { ...connection };
548
+ const transport = this.transportRecreator.recreateHttpTransport(getLegacyTransport(connection), serverName, {
549
+ preserveSessionId: false,
550
+ });
551
+ const client = this.clientFactory.createClient(transport);
552
+ let authorizationUrl;
553
+ try {
554
+ await client.connect(transport);
555
+ }
556
+ catch (error) {
557
+ authorizationUrl = this.oauthFlowHandler.extractAuthorizationUrl(transport);
558
+ if (!authorizationUrl) {
559
+ await this.disposeConnectedClient({ client, transport });
560
+ throw error;
561
+ }
562
+ }
563
+ if (this.isShuttingDown || this.outboundConns.get(serverName) !== connection) {
564
+ await this.disposeConnectedClient({ client, transport });
565
+ throw new Error(`Client ${serverName} was removed or replaced during OAuth initiation`);
566
+ }
567
+ // The authorization flow retains this snapshot while initiating OAuth.
568
+ // Keep its identity, but bind the candidate used to generate the callback state.
569
+ Object.assign(connection, createLegacyOutboundConnection({
570
+ name: serverName,
571
+ client,
572
+ transport,
573
+ status: authorizationUrl ? ClientStatus.AwaitingOAuth : ClientStatus.Connected,
574
+ authorizationUrl,
575
+ oauthStartTime: authorizationUrl ? new Date() : undefined,
576
+ capabilities: authorizationUrl ? undefined : client.getServerCapabilities(),
577
+ lastConnected: authorizationUrl ? undefined : new Date(),
578
+ }));
579
+ this.transports[serverName] = transport;
580
+ if (!authorizationUrl) {
581
+ connection.authorizationUrl = undefined;
582
+ connection.oauthStartTime = undefined;
583
+ this.extractAndCacheInstructions(serverName, client);
584
+ this.setupConnectionHandlers(serverName, client);
585
+ }
586
+ await this.disposeSupersededConnection(serverName, superseded, client);
587
+ }
588
+ createPooledClientInstance() {
589
+ return this.clientFactory.createPooledClientInstance();
590
+ }
591
+ async removeClient(name) {
592
+ const clientInfo = this.outboundConns.get(name);
593
+ if (!clientInfo) {
594
+ return;
595
+ }
596
+ logger.info(`Removing client ${name}...`);
597
+ try {
598
+ const supervisor = this.backendSupervisors.get(name);
599
+ if (supervisor) {
600
+ await supervisor.stop();
601
+ this.backendSupervisors.delete(name);
602
+ }
603
+ getLegacyClient(clientInfo).onclose = undefined;
604
+ const transport = getLegacyTransport(clientInfo);
605
+ if (transport) {
606
+ try {
607
+ await transport.close();
608
+ }
609
+ catch (error) {
610
+ const errorMessage = error instanceof Error ? error.message : String(error);
611
+ logger.warn(`Error closing transport for ${name}: ${errorMessage}`, {
612
+ error: errorMessage,
613
+ clientName: name,
614
+ transportType: transport.constructor.name,
615
+ });
616
+ }
617
+ }
618
+ this.outboundConns.delete(name);
619
+ delete this.transports[name];
620
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: clientInfo.name || name }, name);
621
+ logger.info(`Client ${name} removed successfully`);
622
+ }
623
+ catch (error) {
624
+ const errorMessage = error instanceof Error ? error.message : String(error);
625
+ logger.error(`Error removing client ${name}: ${errorMessage}`, {
626
+ error: errorMessage,
627
+ clientName: name,
628
+ stack: error instanceof Error ? error.stack : undefined,
629
+ });
630
+ throw error;
631
+ }
632
+ }
633
+ async restartBackend(name) {
634
+ this.assertActive();
635
+ const connection = this.getClient(name);
636
+ const metadata = getLegacyTransport(connection).stdioSupervision;
637
+ if (!metadata) {
638
+ throw new ClientConnectionError(name, new Error('Backend stdio supervision is not enabled'));
639
+ }
640
+ const supervisor = this.getOrCreateBackendSupervisor(name, metadata);
641
+ await supervisor.restartNow();
642
+ return supervisor.snapshot();
643
+ }
644
+ getBackendSupervision(name) {
645
+ return this.backendSupervisors.get(name)?.snapshot();
646
+ }
647
+ publishBackendSupervisionState(name, snapshot) {
648
+ this.applyBackendSupervisionState(name, snapshot);
649
+ }
650
+ async shutdown() {
651
+ if (this.shutdownPromise) {
652
+ return this.shutdownPromise;
653
+ }
654
+ this.isShuttingDown = true;
655
+ this.shutdownPromise = this.performShutdown();
656
+ return this.shutdownPromise;
657
+ }
658
+ async performShutdown() {
659
+ const supervisors = Array.from(this.backendSupervisors.values());
660
+ await Promise.allSettled(supervisors.map((supervisor) => supervisor.stop()));
661
+ this.backendSupervisors.clear();
662
+ // Initial connections are not supervisor-owned. Wait for both loading paths
663
+ // to observe the shutdown gate and dispose their just-connected clients
664
+ // before clearing the shared maps.
665
+ await Promise.allSettled([
666
+ ...Array.from(this.connectionSemaphore.values()),
667
+ ...Array.from(this.bulkConnectionOperations),
668
+ ]);
669
+ const connections = Array.from(this.outboundConns.entries());
670
+ for (const [, connection] of connections) {
671
+ getLegacyClient(connection).onclose = undefined;
672
+ }
673
+ await Promise.allSettled(connections.map(async ([name, connection]) => {
674
+ try {
675
+ await connection.adapter.close();
676
+ }
677
+ catch (error) {
678
+ const errorMessage = error instanceof Error ? error.message : String(error);
679
+ logger.warn(`Error closing client during shutdown for ${name}: ${errorMessage}`);
680
+ await getLegacyTransport(connection)
681
+ .close()
682
+ .catch(() => undefined);
683
+ }
684
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: connection.name }, name);
685
+ }));
686
+ this.outboundConns.clear();
687
+ this.transports = {};
688
+ this.connectionSemaphore.clear();
689
+ this.bulkConnectionOperations.clear();
690
+ this.backendAvailabilityHandler = undefined;
691
+ logger.info('ClientManager shutdown complete');
692
+ }
693
+ getOrCreateBackendSupervisor(name, metadata) {
694
+ this.assertActive();
695
+ const existing = this.backendSupervisors.get(name);
696
+ if (existing) {
697
+ return existing;
698
+ }
699
+ const supervisor = new BackendStdioSupervisor({
700
+ backendId: `static:${name}`,
701
+ policy: metadata.policy,
702
+ initialPid: this.outboundConns.has(name)
703
+ ? (getLegacyTransport(this.outboundConns.get(name)).pid ?? null)
704
+ : null,
705
+ recover: (signal) => this.recoverSupervisedBackend(name, metadata, signal),
706
+ onStateChange: (snapshot) => this.applyBackendSupervisionState(name, snapshot),
707
+ });
708
+ this.backendSupervisors.set(name, supervisor);
709
+ return supervisor;
710
+ }
711
+ async recoverSupervisedBackend(name, metadata, signal) {
712
+ const current = this.outboundConns.get(name);
713
+ if (current) {
714
+ getLegacyClient(current).onclose = undefined;
715
+ try {
716
+ await current.adapter.close();
717
+ }
718
+ catch (error) {
719
+ const safeError = sanitizeRuntimeScopeError(error);
720
+ debugIf(() => ({ message: `Could not close previous supervised client ${name}: ${safeError}` }));
721
+ }
722
+ }
723
+ if (signal.aborted) {
724
+ throw new Error(`Backend recovery cancelled for ${name}`);
725
+ }
726
+ let transport;
727
+ let client;
728
+ const dispose = async () => {
729
+ if (!client) {
730
+ await transport?.close().catch(() => undefined);
731
+ return;
732
+ }
733
+ client.onclose = undefined;
734
+ try {
735
+ await client.close();
736
+ }
737
+ catch {
738
+ await transport?.close().catch(() => undefined);
739
+ }
740
+ };
741
+ try {
742
+ transport = metadata.recreate();
743
+ client = this.clientFactory.createClient(transport);
744
+ const timeout = getConnectionTimeout(transport);
745
+ await client.connect(transport, timeout ? { timeout } : undefined);
746
+ const serverVersion = await client.getServerVersion();
747
+ if (serverVersion?.name === MCP_SERVER_NAME) {
748
+ throw new ClientConnectionError(name, new Error('Aborted to prevent circular dependency'));
749
+ }
750
+ if (signal.aborted) {
751
+ throw new Error(`Backend recovery cancelled for ${name}`);
752
+ }
753
+ const recoveredClient = client;
754
+ const recoveredTransport = transport;
755
+ return {
756
+ pid: this.getTransportPid(recoveredTransport),
757
+ activate: () => this.recordConnectedClient(name, { client: recoveredClient, transport: recoveredTransport }),
758
+ dispose,
759
+ };
760
+ }
761
+ catch (error) {
762
+ await dispose();
763
+ throw sanitizeRuntimeScopeError(error);
764
+ }
765
+ }
766
+ applyBackendSupervisionState(name, snapshot) {
767
+ const connection = this.outboundConns.get(name);
768
+ if (connection) {
769
+ connection.supervision = snapshotSupervision(snapshot);
770
+ logger.info(`Backend stdio supervision state changed for ${name}`, {
771
+ backendId: snapshot.backendId,
772
+ state: snapshot.state,
773
+ attempt: snapshot.attempt,
774
+ limit: snapshot.limit,
775
+ nextRetryAt: snapshot.nextRetryAt,
776
+ lastExit: snapshot.lastExit,
777
+ currentPid: snapshot.currentPid,
778
+ error: snapshot.lastError?.message,
779
+ });
780
+ if (snapshot.state === 'restarting') {
781
+ connection.status = ClientStatus.Restarting;
782
+ connection.capabilities = undefined;
783
+ connection.instructions = undefined;
784
+ if (snapshot.backendId.startsWith('static:')) {
785
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: connection.name }, name);
786
+ }
787
+ }
788
+ else if (snapshot.state === 'crash-loop') {
789
+ connection.status = ClientStatus.CrashLoop;
790
+ connection.capabilities = undefined;
791
+ connection.instructions = undefined;
792
+ if (snapshot.backendId.startsWith('static:')) {
793
+ this.instructionAggregator?.removeServer({ source: 'mcpServers', name: connection.name }, name);
794
+ }
795
+ }
796
+ else if (snapshot.state === 'connected') {
797
+ connection.status = ClientStatus.Connected;
798
+ }
799
+ }
800
+ this.emit(ClientManagerEvent.BackendSupervisionStateChanged, name, snapshot);
801
+ try {
802
+ void Promise.resolve(this.backendAvailabilityHandler?.(name, snapshot)).catch((error) => {
803
+ const message = error instanceof Error ? error.message : String(error);
804
+ logger.warn(`Failed to publish backend availability for ${name}: ${message}`);
805
+ });
806
+ }
807
+ catch (error) {
808
+ const message = error instanceof Error ? error.message : String(error);
809
+ logger.warn(`Failed to publish backend availability for ${name}: ${message}`);
810
+ }
811
+ }
812
+ getTransportPid(transport) {
813
+ return transport.pid ?? null;
814
+ }
815
+ assertActive() {
816
+ if (this.isShuttingDown) {
817
+ throw new Error('ClientManager is shutting down');
818
+ }
819
+ }
820
+ async disposeConnectedClient(connected) {
821
+ connected.client.onclose = undefined;
822
+ try {
823
+ await connected.client.close();
824
+ }
825
+ catch {
826
+ await connected.transport.close().catch(() => undefined);
827
+ }
828
+ }
829
+ }
830
+ function isUnknownMessageIdError(error) {
831
+ return error.message.startsWith('Received a response for an unknown message ID:');
832
+ }
833
+ export default ClientManager;
834
+ //# sourceMappingURL=clientManager.js.map