@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.
- package/build/admin/assets/{admin-OAuthServicesWorkspace-BHyDoEos.js → admin-OAuthServicesWorkspace-CzXIIHM0.js} +1 -1
- package/build/admin/assets/{admin-console-DnlZpz5X.js → admin-console-Mv3xmdoU.js} +3 -3
- package/build/admin/index.html +1 -1
- package/build/application/services/healthService.d.ts +6 -6
- package/build/application/services/healthService.d.ts.map +1 -1
- package/build/application/services/healthService.js +1 -1
- package/build/application/services/healthService.js.map +1 -1
- package/build/application/services/tokenEstimationService.d.ts +1 -1
- package/build/application/services/tokenEstimationService.d.ts.map +1 -1
- package/build/application/services/tokenEstimationService.js.map +1 -1
- package/build/auth/oauthAuthorizationFlow.d.ts +13 -11
- package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
- package/build/auth/oauthAuthorizationFlow.js +4 -17
- package/build/auth/oauthAuthorizationFlow.js.map +1 -1
- package/build/auth/sdkOAuthClientProvider.d.ts +2 -97
- package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
- package/build/auth/sdkOAuthClientProvider.js +1 -242
- package/build/auth/sdkOAuthClientProvider.js.map +1 -1
- package/build/auth/sdkOAuthServerProvider.d.ts +1 -68
- package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -1
- package/build/auth/sdkOAuthServerProvider.js +1 -483
- package/build/auth/sdkOAuthServerProvider.js.map +1 -1
- package/build/auth/sessionTypes.d.ts +1 -1
- package/build/auth/sessionTypes.d.ts.map +1 -1
- package/build/auth/sessionTypes.js.map +1 -1
- package/build/auth/storage/clientDataRepository.d.ts +1 -1
- package/build/auth/storage/clientDataRepository.d.ts.map +1 -1
- package/build/auth/storage/clientDataRepository.js.map +1 -1
- package/build/auth/storage/fileStorageService.d.ts +2 -0
- package/build/auth/storage/fileStorageService.d.ts.map +1 -1
- package/build/auth/storage/fileStorageService.js +61 -7
- package/build/auth/storage/fileStorageService.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts +1 -1
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +6 -9
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/inspect/inspectUtils.d.ts +1 -1
- package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
- package/build/commands/inspect/inspectUtils.js +4 -13
- package/build/commands/inspect/inspectUtils.js.map +1 -1
- package/build/commands/run/run.d.ts +1 -1
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +5 -5
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/run/runUtils.d.ts +1 -1
- package/build/commands/run/runUtils.d.ts.map +1 -1
- package/build/commands/run/runUtils.js.map +1 -1
- package/build/commands/serve/asyncLoadingOptions.d.ts.map +1 -1
- package/build/commands/serve/asyncLoadingOptions.js +1 -1
- package/build/commands/serve/asyncLoadingOptions.js.map +1 -1
- package/build/commands/serve/serve.d.ts +1 -89
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +1 -550
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts +1 -1
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/commands/shared/authProfileStore.d.ts.map +1 -1
- package/build/commands/shared/authProfileStore.js +54 -10
- package/build/commands/shared/authProfileStore.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +16 -4
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/connectionHelper.d.ts +4 -4
- package/build/commands/shared/connectionHelper.d.ts.map +1 -1
- package/build/commands/shared/connectionHelper.js +9 -26
- package/build/commands/shared/connectionHelper.js.map +1 -1
- package/build/commands/shared/inspectApiSchemas.d.ts +8 -8
- package/build/commands/shared/serveClient.d.ts +1 -69
- package/build/commands/shared/serveClient.d.ts.map +1 -1
- package/build/commands/shared/serveClient.js +1 -234
- package/build/commands/shared/serveClient.js.map +1 -1
- package/build/config/configManager.js +1 -1
- package/build/config/configManager.js.map +1 -1
- package/build/config/envProcessor.d.ts.map +1 -1
- package/build/config/envProcessor.js +26 -1
- package/build/config/envProcessor.js.map +1 -1
- package/build/constants/auth.d.ts +7 -0
- package/build/constants/auth.d.ts.map +1 -1
- package/build/constants/auth.js +6 -1
- package/build/constants/auth.js.map +1 -1
- package/build/constants/mcp.d.ts +2 -2
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts +18 -88
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +75 -269
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityCatalog.d.ts +3 -4
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +46 -16
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityManager.d.ts +9 -32
- package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
- package/build/core/capabilities/capabilityManager.js +5 -4
- package/build/core/capabilities/capabilityManager.js.map +1 -1
- package/build/core/capabilities/capabilityNotificationFacts.js +1 -1
- package/build/core/capabilities/capabilityNotificationFacts.js.map +1 -1
- package/build/core/capabilities/capabilityPagination.d.ts +2 -0
- package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
- package/build/core/capabilities/capabilityPagination.js +59 -32
- package/build/core/capabilities/capabilityPagination.js.map +1 -1
- package/build/core/capabilities/catalogGeneration.d.ts +47 -0
- package/build/core/capabilities/catalogGeneration.d.ts.map +1 -0
- package/build/core/capabilities/catalogGeneration.js +145 -0
- package/build/core/capabilities/catalogGeneration.js.map +1 -0
- package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -1
- package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
- package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
- package/build/core/capabilities/internal/discoveryTools.d.ts +1 -7
- package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/discoveryTools.js +6 -0
- package/build/core/capabilities/internal/discoveryTools.js.map +1 -1
- package/build/core/capabilities/internal/installationTools.d.ts +1 -7
- package/build/core/capabilities/internal/installationTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/installationTools.js +6 -0
- package/build/core/capabilities/internal/installationTools.js.map +1 -1
- package/build/core/capabilities/internal/lazyTools.d.ts +1 -1
- package/build/core/capabilities/internal/lazyTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/lazyTools.js.map +1 -1
- package/build/core/capabilities/internal/managementTools.d.ts +1 -7
- package/build/core/capabilities/internal/managementTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/managementTools.js +6 -0
- package/build/core/capabilities/internal/managementTools.js.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +19 -78
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +48 -0
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -0
- package/build/core/capabilities/runtimeCapabilityCatalog.js +409 -0
- package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -0
- package/build/core/capabilities/schemaCache.d.ts +1 -1
- package/build/core/capabilities/schemaCache.d.ts.map +1 -1
- package/build/core/capabilities/schemaCache.js.map +1 -1
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts +3 -3
- package/build/core/capabilities/toolRegistry.d.ts +11 -1
- package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
- package/build/core/capabilities/toolRegistry.js +51 -32
- package/build/core/capabilities/toolRegistry.js.map +1 -1
- package/build/core/client/clientFactory.d.ts +1 -6
- package/build/core/client/clientFactory.d.ts.map +1 -1
- package/build/core/client/clientFactory.js +1 -35
- package/build/core/client/clientFactory.js.map +1 -1
- package/build/core/client/clientManager.d.ts +1 -89
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +1 -728
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/client/connectedClient.d.ts +1 -6
- package/build/core/client/connectedClient.d.ts.map +1 -1
- package/build/core/client/connectionHandler.d.ts +1 -8
- package/build/core/client/connectionHandler.d.ts.map +1 -1
- package/build/core/client/connectionHandler.js +1 -96
- package/build/core/client/connectionHandler.js.map +1 -1
- package/build/core/client/legacyAdapterRequest.d.ts +6 -0
- package/build/core/client/legacyAdapterRequest.d.ts.map +1 -0
- package/build/core/client/legacyAdapterRequest.js +55 -0
- package/build/core/client/legacyAdapterRequest.js.map +1 -0
- package/build/core/client/oauthFlowHandler.d.ts +1 -9
- package/build/core/client/oauthFlowHandler.d.ts.map +1 -1
- package/build/core/client/oauthFlowHandler.js +1 -80
- package/build/core/client/oauthFlowHandler.js.map +1 -1
- package/build/core/client/postAuthOAuthRecovery.d.ts +2 -2
- package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
- package/build/core/client/postAuthOAuthRecovery.js +4 -16
- package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
- package/build/core/client/recreateHttpTransportOptions.d.ts +1 -13
- package/build/core/client/recreateHttpTransportOptions.d.ts.map +1 -1
- package/build/core/client/renderableOutboundConnection.d.ts +5 -0
- package/build/core/client/renderableOutboundConnection.d.ts.map +1 -0
- package/build/core/client/renderableOutboundConnection.js +38 -0
- package/build/core/client/renderableOutboundConnection.js.map +1 -0
- package/build/core/client/transportRecreationState.d.ts +1 -10
- package/build/core/client/transportRecreationState.d.ts.map +1 -1
- package/build/core/client/transportRecreator.d.ts +1 -13
- package/build/core/client/transportRecreator.d.ts.map +1 -1
- package/build/core/client/transportRecreator.js +1 -51
- package/build/core/client/transportRecreator.js.map +1 -1
- package/build/core/client/types.d.ts +1 -6
- package/build/core/client/types.d.ts.map +1 -1
- package/build/core/client/types.js +1 -10
- package/build/core/client/types.js.map +1 -1
- package/build/core/configChangeHandler.d.ts.map +1 -1
- package/build/core/configChangeHandler.js +2 -5
- package/build/core/configChangeHandler.js.map +1 -1
- package/build/core/context/templateContextTrust.d.ts.map +1 -1
- package/build/core/context/templateContextTrust.js +22 -4
- package/build/core/context/templateContextTrust.js.map +1 -1
- package/build/core/filtering/clientFiltering.d.ts +1 -1
- package/build/core/filtering/clientFiltering.d.ts.map +1 -1
- package/build/core/filtering/clientFiltering.js +3 -3
- package/build/core/filtering/clientFiltering.js.map +1 -1
- package/build/core/filtering/filteringService.d.ts +1 -1
- package/build/core/filtering/filteringService.d.ts.map +1 -1
- package/build/core/filtering/filteringService.js +3 -3
- package/build/core/filtering/filteringService.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts +4 -1
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/notifications/notificationManager.d.ts +3 -2
- package/build/core/notifications/notificationManager.d.ts.map +1 -1
- package/build/core/notifications/notificationManager.js +13 -11
- package/build/core/notifications/notificationManager.js.map +1 -1
- package/build/core/protocol/notificationHandlers.d.ts +1 -13
- package/build/core/protocol/notificationHandlers.d.ts.map +1 -1
- package/build/core/protocol/notificationHandlers.js +1 -123
- package/build/core/protocol/notificationHandlers.js.map +1 -1
- package/build/core/protocol/promptRequestHandlers.d.ts +1 -3
- package/build/core/protocol/promptRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/promptRequestHandlers.js +1 -72
- package/build/core/protocol/promptRequestHandlers.js.map +1 -1
- package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.js +5 -24
- package/build/core/protocol/requestHandlerUtils.js.map +1 -1
- package/build/core/protocol/requestHandlers.d.ts +1 -12
- package/build/core/protocol/requestHandlers.d.ts.map +1 -1
- package/build/core/protocol/requestHandlers.js +1 -92
- package/build/core/protocol/requestHandlers.js.map +1 -1
- package/build/core/protocol/resourceRequestHandlers.d.ts +1 -2
- package/build/core/protocol/resourceRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/resourceRequestHandlers.js +1 -95
- package/build/core/protocol/resourceRequestHandlers.js.map +1 -1
- package/build/core/protocol/toolRequestHandlers.d.ts +1 -3
- package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
- package/build/core/protocol/toolRequestHandlers.js +1 -187
- package/build/core/protocol/toolRequestHandlers.js.map +1 -1
- package/build/core/server/clientInstanceFactory.d.ts +1 -13
- package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
- package/build/core/server/clientInstanceFactory.js +1 -48
- package/build/core/server/clientInstanceFactory.js.map +1 -1
- package/build/core/server/clientInstancePool.d.ts +1 -115
- package/build/core/server/clientInstancePool.d.ts.map +1 -1
- package/build/core/server/clientInstancePool.js +1 -599
- package/build/core/server/clientInstancePool.js.map +1 -1
- package/build/core/server/clientInstancePoolTypes.d.ts +1 -66
- package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
- package/build/core/server/clientInstancePoolTypes.js +1 -14
- package/build/core/server/clientInstancePoolTypes.js.map +1 -1
- package/build/core/server/connectionManager.d.ts +1 -79
- package/build/core/server/connectionManager.d.ts.map +1 -1
- package/build/core/server/connectionManager.js +1 -262
- package/build/core/server/connectionManager.js.map +1 -1
- package/build/core/server/disabledTools.d.ts +7 -1
- package/build/core/server/disabledTools.d.ts.map +1 -1
- package/build/core/server/disabledTools.js +13 -0
- package/build/core/server/disabledTools.js.map +1 -1
- package/build/core/server/mcpServerLifecycleManager.d.ts +1 -58
- package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -1
- package/build/core/server/mcpServerLifecycleManager.js +1 -271
- package/build/core/server/mcpServerLifecycleManager.js.map +1 -1
- package/build/core/server/requestContextPreparation.d.ts +1 -38
- package/build/core/server/requestContextPreparation.d.ts.map +1 -1
- package/build/core/server/requestContextPreparation.js +1 -49
- package/build/core/server/requestContextPreparation.js.map +1 -1
- package/build/core/server/serverManager.d.ts +1 -130
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +1 -457
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateServerCleanup.d.ts +1 -22
- package/build/core/server/templateServerCleanup.d.ts.map +1 -1
- package/build/core/server/templateServerCleanup.js +1 -160
- package/build/core/server/templateServerCleanup.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +1 -154
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +1 -603
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/core/server/toolDescriptionOverrides.d.ts +5 -1
- package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
- package/build/core/server/toolDescriptionOverrides.js +6 -0
- package/build/core/server/toolDescriptionOverrides.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +29 -21
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.js +1 -1
- package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +2 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/management/types.d.ts +17 -7
- package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
- package/build/core/tools/internal/managementHandlers.js +11 -2
- package/build/core/tools/internal/managementHandlers.js.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +5 -5
- package/build/core/tools/internal/schemas/index.d.ts +14 -14
- package/build/core/tools/internal/schemas/installation.d.ts +1 -1
- package/build/core/tools/internal/schemas/management.d.ts +8 -8
- package/build/core/types/client.d.ts +30 -17
- package/build/core/types/client.d.ts.map +1 -1
- package/build/core/types/client.js.map +1 -1
- package/build/core/types/server.d.ts +16 -9
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/server.js.map +1 -1
- package/build/core/types/transport.d.ts +18 -19
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +4 -0
- package/build/core/types/transport.js.map +1 -1
- package/build/core/validation/CustomJsonSchemaValidator.d.ts +1 -62
- package/build/core/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
- package/build/core/validation/CustomJsonSchemaValidator.js +1 -309
- package/build/core/validation/CustomJsonSchemaValidator.js.map +1 -1
- package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
- package/build/domains/admin/adminConfiguredServerService.js +10 -6
- package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -1
- package/build/domains/admin/adminInstructionPreviewRuntime.js +2 -9
- package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -1
- package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
- package/build/domains/admin/configuredToolInventory.js.map +1 -1
- package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -1
- package/build/domains/admin/runtimeConfiguredToolInspectionService.js +6 -12
- package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js +1 -1
- package/build/domains/admin/runtimeServerManagerBackendRestartService.js.map +1 -1
- package/build/gateway/adapters/index.d.ts +3 -0
- package/build/gateway/adapters/index.d.ts.map +1 -0
- package/build/gateway/adapters/index.js +3 -0
- package/build/gateway/adapters/index.js.map +1 -0
- package/build/gateway/adapters/legacy/index.d.ts +3 -0
- package/build/gateway/adapters/legacy/index.d.ts.map +1 -0
- package/build/gateway/adapters/legacy/index.js +3 -0
- package/build/gateway/adapters/legacy/index.js.map +1 -0
- package/build/gateway/adapters/legacy/legacyEraPin.d.ts +3 -0
- package/build/gateway/adapters/legacy/legacyEraPin.d.ts.map +1 -0
- package/build/gateway/adapters/legacy/legacyEraPin.js +12 -0
- package/build/gateway/adapters/legacy/legacyEraPin.js.map +1 -0
- package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts +19 -0
- package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js +86 -0
- package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js.map +1 -0
- package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts +19 -0
- package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js +76 -0
- package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js.map +1 -0
- package/build/gateway/adapters/modern/index.d.ts +3 -0
- package/build/gateway/adapters/modern/index.d.ts.map +1 -0
- package/build/gateway/adapters/modern/index.js +3 -0
- package/build/gateway/adapters/modern/index.js.map +1 -0
- package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts +32 -0
- package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/adapters/modern/modernInboundEraAdapter.js +150 -0
- package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -0
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts +24 -0
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +75 -0
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -0
- package/build/gateway/adapters/modern/modernPin.d.ts +9 -0
- package/build/gateway/adapters/modern/modernPin.d.ts.map +1 -0
- package/build/gateway/adapters/modern/modernPin.js +14 -0
- package/build/gateway/adapters/modern/modernPin.js.map +1 -0
- package/build/gateway/contracts/effectiveRequestAuthority.d.ts +12 -0
- package/build/gateway/contracts/effectiveRequestAuthority.d.ts.map +1 -0
- package/build/gateway/contracts/effectiveRequestAuthority.js +30 -0
- package/build/gateway/contracts/effectiveRequestAuthority.js.map +1 -0
- package/build/gateway/contracts/gatewayFailure.d.ts +25 -0
- package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -0
- package/build/gateway/contracts/gatewayFailure.js +72 -0
- package/build/gateway/contracts/gatewayFailure.js.map +1 -0
- package/build/gateway/contracts/gatewayRequest.d.ts +32 -0
- package/build/gateway/contracts/gatewayRequest.d.ts.map +1 -0
- package/build/gateway/contracts/gatewayRequest.js +50 -0
- package/build/gateway/contracts/gatewayRequest.js.map +1 -0
- package/build/gateway/contracts/immutableJson.d.ts +6 -0
- package/build/gateway/contracts/immutableJson.d.ts.map +1 -0
- package/build/gateway/contracts/immutableJson.js +14 -0
- package/build/gateway/contracts/immutableJson.js.map +1 -0
- package/build/gateway/contracts/index.d.ts +6 -0
- package/build/gateway/contracts/index.d.ts.map +1 -0
- package/build/gateway/contracts/index.js +6 -0
- package/build/gateway/contracts/index.js.map +1 -0
- package/build/gateway/contracts/protocolEra.d.ts +22 -0
- package/build/gateway/contracts/protocolEra.d.ts.map +1 -0
- package/build/gateway/contracts/protocolEra.js +68 -0
- package/build/gateway/contracts/protocolEra.js.map +1 -0
- package/build/gateway/core/gatewayDispatcher.d.ts +15 -0
- package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -0
- package/build/gateway/core/gatewayDispatcher.js +77 -0
- package/build/gateway/core/gatewayDispatcher.js.map +1 -0
- package/build/gateway/core/gatewaySession.d.ts +13 -0
- package/build/gateway/core/gatewaySession.d.ts.map +1 -0
- package/build/gateway/core/gatewaySession.js +61 -0
- package/build/gateway/core/gatewaySession.js.map +1 -0
- package/build/gateway/core/index.d.ts +3 -0
- package/build/gateway/core/index.d.ts.map +1 -0
- package/build/gateway/core/index.js +3 -0
- package/build/gateway/core/index.js.map +1 -0
- package/build/gateway/index.d.ts +5 -0
- package/build/gateway/index.d.ts.map +1 -0
- package/build/gateway/index.js +5 -0
- package/build/gateway/index.js.map +1 -0
- package/build/gateway/ports/inboundEraAdapter.d.ts +27 -0
- package/build/gateway/ports/inboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/ports/inboundEraAdapter.js +2 -0
- package/build/gateway/ports/inboundEraAdapter.js.map +1 -0
- package/build/gateway/ports/index.d.ts +3 -0
- package/build/gateway/ports/index.d.ts.map +1 -0
- package/build/gateway/ports/index.js +3 -0
- package/build/gateway/ports/index.js.map +1 -0
- package/build/gateway/ports/outboundEraAdapter.d.ts +16 -0
- package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -0
- package/build/gateway/ports/outboundEraAdapter.js +2 -0
- package/build/gateway/ports/outboundEraAdapter.js.map +1 -0
- package/build/logger/mcpLoggingEnhancer.d.ts +1 -5
- package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -1
- package/build/logger/mcpLoggingEnhancer.js +1 -192
- package/build/logger/mcpLoggingEnhancer.js.map +1 -1
- package/build/sdk/contracts/index.d.ts +5 -0
- package/build/sdk/contracts/index.d.ts.map +1 -0
- package/build/sdk/contracts/index.js +5 -0
- package/build/sdk/contracts/index.js.map +1 -0
- package/build/sdk/contracts/jsonValue.d.ts +21 -0
- package/build/sdk/contracts/jsonValue.d.ts.map +1 -0
- package/build/sdk/contracts/jsonValue.js +127 -0
- package/build/sdk/contracts/jsonValue.js.map +1 -0
- package/build/sdk/contracts/legacySdkAdapter.d.ts +73 -0
- package/build/sdk/contracts/legacySdkAdapter.d.ts.map +1 -0
- package/build/sdk/contracts/legacySdkAdapter.js +7 -0
- package/build/sdk/contracts/legacySdkAdapter.js.map +1 -0
- package/build/sdk/contracts/oneMcpProtocolError.d.ts +18 -0
- package/build/sdk/contracts/oneMcpProtocolError.d.ts.map +1 -0
- package/build/sdk/contracts/oneMcpProtocolError.js +39 -0
- package/build/sdk/contracts/oneMcpProtocolError.js.map +1 -0
- package/build/sdk/contracts/protocol.d.ts +240 -0
- package/build/sdk/contracts/protocol.d.ts.map +1 -0
- package/build/sdk/contracts/protocol.js +187 -0
- package/build/sdk/contracts/protocol.js.map +1 -0
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +98 -0
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -0
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +243 -0
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -0
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts +69 -0
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -0
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +519 -0
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -0
- package/build/sdk/legacy/client/auth.d.ts +2 -0
- package/build/sdk/legacy/client/auth.d.ts.map +1 -0
- package/build/sdk/legacy/client/auth.js +2 -0
- package/build/sdk/legacy/client/auth.js.map +1 -0
- package/build/sdk/legacy/client/index.d.ts +2 -0
- package/build/sdk/legacy/client/index.d.ts.map +1 -0
- package/build/sdk/legacy/client/index.js +2 -0
- package/build/sdk/legacy/client/index.js.map +1 -0
- package/build/sdk/legacy/client/runtime/clientFactory.d.ts +10 -0
- package/build/sdk/legacy/client/runtime/clientFactory.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/clientFactory.js +56 -0
- package/build/sdk/legacy/client/runtime/clientFactory.js.map +1 -0
- package/build/sdk/legacy/client/runtime/clientManager.d.ts +94 -0
- package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/clientManager.js +834 -0
- package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -0
- package/build/sdk/legacy/client/runtime/connectedClient.d.ts +7 -0
- package/build/sdk/legacy/client/runtime/connectedClient.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/connectedClient.js +2 -0
- package/build/sdk/legacy/client/runtime/connectedClient.js.map +1 -0
- package/build/sdk/legacy/client/runtime/connectionHandler.d.ts +10 -0
- package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/connectionHandler.js +139 -0
- package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts +14 -0
- package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js +66 -0
- package/build/sdk/legacy/client/runtime/legacyGatewayClientAdapter.js.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts +50 -0
- package/build/sdk/legacy/client/runtime/legacyOutboundConnection.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js +93 -0
- package/build/sdk/legacy/client/runtime/legacyOutboundConnection.js.map +1 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts +37 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +240 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +32 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.js +2 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.js.map +1 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +40 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +238 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -0
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +12 -0
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +93 -0
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -0
- package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts +4 -0
- package/build/sdk/legacy/client/runtime/outboundRequestParams.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/outboundRequestParams.js +8 -0
- package/build/sdk/legacy/client/runtime/outboundRequestParams.js.map +1 -0
- package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts +12 -0
- package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js +2 -0
- package/build/sdk/legacy/client/runtime/recreateHttpTransportOptions.js.map +1 -0
- package/build/sdk/legacy/client/runtime/sdkClient.d.ts +5 -0
- package/build/sdk/legacy/client/runtime/sdkClient.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/sdkClient.js +5 -0
- package/build/sdk/legacy/client/runtime/sdkClient.js.map +1 -0
- package/build/sdk/legacy/client/runtime/serveClient.d.ts +70 -0
- package/build/sdk/legacy/client/runtime/serveClient.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/serveClient.js +235 -0
- package/build/sdk/legacy/client/runtime/serveClient.js.map +1 -0
- package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts +14 -0
- package/build/sdk/legacy/client/runtime/transportRecreationState.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/transportRecreationState.js +2 -0
- package/build/sdk/legacy/client/runtime/transportRecreationState.js.map +1 -0
- package/build/sdk/legacy/client/runtime/transportRecreator.d.ts +14 -0
- package/build/sdk/legacy/client/runtime/transportRecreator.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/transportRecreator.js +89 -0
- package/build/sdk/legacy/client/runtime/transportRecreator.js.map +1 -0
- package/build/sdk/legacy/client/runtime/types.d.ts +9 -0
- package/build/sdk/legacy/client/runtime/types.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/types.js +13 -0
- package/build/sdk/legacy/client/runtime/types.js.map +1 -0
- package/build/sdk/legacy/client/sse.d.ts +2 -0
- package/build/sdk/legacy/client/sse.d.ts.map +1 -0
- package/build/sdk/legacy/client/sse.js +2 -0
- package/build/sdk/legacy/client/sse.js.map +1 -0
- package/build/sdk/legacy/client/stdio.d.ts +2 -0
- package/build/sdk/legacy/client/stdio.d.ts.map +1 -0
- package/build/sdk/legacy/client/stdio.js +2 -0
- package/build/sdk/legacy/client/stdio.js.map +1 -0
- package/build/sdk/legacy/client/streamableHttp.d.ts +2 -0
- package/build/sdk/legacy/client/streamableHttp.d.ts.map +1 -0
- package/build/sdk/legacy/client/streamableHttp.js +2 -0
- package/build/sdk/legacy/client/streamableHttp.js.map +1 -0
- package/build/sdk/legacy/commands/serve.d.ts +90 -0
- package/build/sdk/legacy/commands/serve.d.ts.map +1 -0
- package/build/sdk/legacy/commands/serve.js +561 -0
- package/build/sdk/legacy/commands/serve.js.map +1 -0
- package/build/sdk/legacy/server/auth/clients.d.ts +2 -0
- package/build/sdk/legacy/server/auth/clients.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/clients.js +2 -0
- package/build/sdk/legacy/server/auth/clients.js.map +1 -0
- package/build/sdk/legacy/server/auth/errors.d.ts +2 -0
- package/build/sdk/legacy/server/auth/errors.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/errors.js +2 -0
- package/build/sdk/legacy/server/auth/errors.js.map +1 -0
- package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts +2 -0
- package/build/sdk/legacy/server/auth/middleware/bearerAuth.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/middleware/bearerAuth.js +2 -0
- package/build/sdk/legacy/server/auth/middleware/bearerAuth.js.map +1 -0
- package/build/sdk/legacy/server/auth/provider.d.ts +2 -0
- package/build/sdk/legacy/server/auth/provider.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/provider.js +2 -0
- package/build/sdk/legacy/server/auth/provider.js.map +1 -0
- package/build/sdk/legacy/server/auth/router.d.ts +2 -0
- package/build/sdk/legacy/server/auth/router.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/router.js +2 -0
- package/build/sdk/legacy/server/auth/router.js.map +1 -0
- package/build/sdk/legacy/server/auth/types.d.ts +2 -0
- package/build/sdk/legacy/server/auth/types.d.ts.map +1 -0
- package/build/sdk/legacy/server/auth/types.js +2 -0
- package/build/sdk/legacy/server/auth/types.js.map +1 -0
- package/build/sdk/legacy/server/index.d.ts +2 -0
- package/build/sdk/legacy/server/index.d.ts.map +1 -0
- package/build/sdk/legacy/server/index.js +2 -0
- package/build/sdk/legacy/server/index.js.map +1 -0
- package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts +15 -0
- package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/notificationHandlers.js +146 -0
- package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts +5 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +50 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -0
- package/build/sdk/legacy/server/protocol/requestHandlers.d.ts +14 -0
- package/build/sdk/legacy/server/protocol/requestHandlers.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/requestHandlers.js +96 -0
- package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts +4 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +62 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -0
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts +5 -0
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +87 -0
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts +14 -0
- package/build/sdk/legacy/server/runtime/clientInstanceFactory.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstanceFactory.js +49 -0
- package/build/sdk/legacy/server/runtime/clientInstanceFactory.js.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts +116 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.js +600 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts +67 -0
- package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js +15 -0
- package/build/sdk/legacy/server/runtime/clientInstancePoolTypes.js.map +1 -0
- package/build/sdk/legacy/server/runtime/connectionManager.d.ts +82 -0
- package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/connectionManager.js +298 -0
- package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -0
- package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts +17 -0
- package/build/sdk/legacy/server/runtime/legacyInboundConnection.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/legacyInboundConnection.js +22 -0
- package/build/sdk/legacy/server/runtime/legacyInboundConnection.js.map +1 -0
- package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +18 -0
- package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +82 -0
- package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -0
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts +6 -0
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +193 -0
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -0
- package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts +60 -0
- package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js +274 -0
- package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js.map +1 -0
- package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts +39 -0
- package/build/sdk/legacy/server/runtime/requestContextPreparation.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/requestContextPreparation.js +50 -0
- package/build/sdk/legacy/server/runtime/requestContextPreparation.js.map +1 -0
- package/build/sdk/legacy/server/runtime/serverManager.d.ts +132 -0
- package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/serverManager.js +462 -0
- package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -0
- package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts +23 -0
- package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/templateServerCleanup.js +161 -0
- package/build/sdk/legacy/server/runtime/templateServerCleanup.js.map +1 -0
- package/build/sdk/legacy/server/runtime/templateServerManager.d.ts +155 -0
- package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -0
- package/build/sdk/legacy/server/runtime/templateServerManager.js +606 -0
- package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -0
- package/build/sdk/legacy/server/sse.d.ts +2 -0
- package/build/sdk/legacy/server/sse.d.ts.map +1 -0
- package/build/sdk/legacy/server/sse.js +2 -0
- package/build/sdk/legacy/server/sse.js.map +1 -0
- package/build/sdk/legacy/server/stdio.d.ts +2 -0
- package/build/sdk/legacy/server/stdio.d.ts.map +1 -0
- package/build/sdk/legacy/server/stdio.js +2 -0
- package/build/sdk/legacy/server/stdio.js.map +1 -0
- package/build/sdk/legacy/server/streamableHttp.d.ts +2 -0
- package/build/sdk/legacy/server/streamableHttp.d.ts.map +1 -0
- package/build/sdk/legacy/server/streamableHttp.js +2 -0
- package/build/sdk/legacy/server/streamableHttp.js.map +1 -0
- package/build/sdk/legacy/shared/auth.d.ts +2 -0
- package/build/sdk/legacy/shared/auth.d.ts.map +1 -0
- package/build/sdk/legacy/shared/auth.js +2 -0
- package/build/sdk/legacy/shared/auth.js.map +1 -0
- package/build/sdk/legacy/shared/capabilityListCapture.d.ts +4 -0
- package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -0
- package/build/sdk/legacy/shared/capabilityListCapture.js +30 -0
- package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -0
- package/build/sdk/legacy/shared/protocol.d.ts +2 -0
- package/build/sdk/legacy/shared/protocol.d.ts.map +1 -0
- package/build/sdk/legacy/shared/protocol.js +2 -0
- package/build/sdk/legacy/shared/protocol.js.map +1 -0
- package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts +12 -0
- package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -0
- package/build/sdk/legacy/shared/resourceTemplateRouting.js +66 -0
- package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -0
- package/build/sdk/legacy/shared/transport.d.ts +2 -0
- package/build/sdk/legacy/shared/transport.d.ts.map +1 -0
- package/build/sdk/legacy/shared/transport.js +2 -0
- package/build/sdk/legacy/shared/transport.js.map +1 -0
- package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts +13 -0
- package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/loggingSseTransport.js +43 -0
- package/build/sdk/legacy/transport/http/loggingSseTransport.js.map +1 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +91 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +240 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +14 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +50 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -0
- package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts +58 -0
- package/build/sdk/legacy/transport/http/restorableStreamableTransport.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/restorableStreamableTransport.js +59 -0
- package/build/sdk/legacy/transport/http/restorableStreamableTransport.js.map +1 -0
- package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts +5 -0
- package/build/sdk/legacy/transport/http/routes/sseRoutes.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/routes/sseRoutes.js +105 -0
- package/build/sdk/legacy/transport/http/routes/sseRoutes.js.map +1 -0
- package/build/sdk/legacy/transport/http/server.d.ts +90 -0
- package/build/sdk/legacy/transport/http/server.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/server.js +487 -0
- package/build/sdk/legacy/transport/http/server.js.map +1 -0
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts +92 -0
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts.map +1 -0
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js +372 -0
- package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js.map +1 -0
- package/build/sdk/legacy/transport/restartableStdioTransport.d.ts +90 -0
- package/build/sdk/legacy/transport/restartableStdioTransport.d.ts.map +1 -0
- package/build/sdk/legacy/transport/restartableStdioTransport.js +192 -0
- package/build/sdk/legacy/transport/restartableStdioTransport.js.map +1 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.d.ts +92 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.js +388 -0
- package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -0
- package/build/sdk/legacy/transport/transportFactory.d.ts +25 -0
- package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -0
- package/build/sdk/legacy/transport/transportFactory.js +404 -0
- package/build/sdk/legacy/transport/transportFactory.js.map +1 -0
- package/build/sdk/legacy/types.d.ts +2 -0
- package/build/sdk/legacy/types.d.ts.map +1 -0
- package/build/sdk/legacy/types.js +3 -0
- package/build/sdk/legacy/types.js.map +1 -0
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts +57 -0
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts.map +1 -0
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js +316 -0
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js.map +1 -0
- package/build/sdk/legacy/validation.d.ts +2 -0
- package/build/sdk/legacy/validation.d.ts.map +1 -0
- package/build/sdk/legacy/validation.js +2 -0
- package/build/sdk/legacy/validation.js.map +1 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +12 -3
- package/build/server.js.map +1 -1
- package/build/transport/http/loggingSseTransport.d.ts +1 -12
- package/build/transport/http/loggingSseTransport.d.ts.map +1 -1
- package/build/transport/http/loggingSseTransport.js +1 -42
- package/build/transport/http/loggingSseTransport.js.map +1 -1
- package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -1
- package/build/transport/http/middlewares/errorHandler.js +18 -1
- package/build/transport/http/middlewares/errorHandler.js.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -90
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/transport/http/middlewares/scopeAuthMiddleware.js +2 -239
- package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/build/transport/http/restorableStreamableTransport.d.ts +2 -57
- package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
- package/build/transport/http/restorableStreamableTransport.js +1 -58
- package/build/transport/http/restorableStreamableTransport.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/adminRoutes.js +3 -1
- package/build/transport/http/routes/adminRoutes.js.map +1 -1
- package/build/transport/http/routes/apiRoutes.d.ts +5 -1
- package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/apiRoutes.js +15 -3
- package/build/transport/http/routes/apiRoutes.js.map +1 -1
- package/build/transport/http/routes/healthRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectHelpers.d.ts +1 -1
- package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
- package/build/transport/http/routes/inspectHelpers.js +9 -5
- package/build/transport/http/routes/inspectHelpers.js.map +1 -1
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRoutes.js +39 -25
- package/build/transport/http/routes/inspectRoutes.js.map +1 -1
- package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/instructionsRoutes.js +2 -9
- package/build/transport/http/routes/instructionsRoutes.js.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.d.ts +29 -0
- package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -0
- package/build/transport/http/routes/modernHttpRoutes.js +241 -0
- package/build/transport/http/routes/modernHttpRoutes.js.map +1 -0
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +8 -4
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts +1 -4
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +1 -109
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/toolRoutes.js +21 -10
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts +1 -84
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +1 -449
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/http/streamableSessionLifecycle.d.ts +1 -91
- package/build/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
- package/build/transport/http/streamableSessionLifecycle.js +1 -376
- package/build/transport/http/streamableSessionLifecycle.js.map +1 -1
- package/build/transport/http/utils/httpErrorHandler.js +1 -1
- package/build/transport/http/utils/httpErrorHandler.js.map +1 -1
- package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -1
- package/build/transport/http/utils/templateContextAuthority.js +19 -6
- package/build/transport/http/utils/templateContextAuthority.js.map +1 -1
- package/build/transport/restartableStdioTransport.d.ts +1 -89
- package/build/transport/restartableStdioTransport.d.ts.map +1 -1
- package/build/transport/restartableStdioTransport.js +1 -191
- package/build/transport/restartableStdioTransport.js.map +1 -1
- package/build/transport/stdioProxyTransport.d.ts +1 -82
- package/build/transport/stdioProxyTransport.d.ts.map +1 -1
- package/build/transport/stdioProxyTransport.js +1 -278
- package/build/transport/stdioProxyTransport.js.map +1 -1
- package/build/transport/transportFactory.d.ts +1 -23
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +1 -379
- package/build/transport/transportFactory.js.map +1 -1
- package/build/transport/transportFactory.testSetup.js +13 -0
- package/build/transport/transportFactory.testSetup.js.map +1 -1
- package/build/utils/client/clientInfoExtractor.d.ts +1 -1
- package/build/utils/client/clientInfoExtractor.d.ts.map +1 -1
- package/build/utils/client/clientInfoExtractor.js.map +1 -1
- package/build/utils/core/errorHandling.d.ts.map +1 -1
- package/build/utils/core/errorHandling.js +1 -1
- package/build/utils/core/errorHandling.js.map +1 -1
- package/build/utils/core/errorTypes.js +1 -1
- package/build/utils/core/errorTypes.js.map +1 -1
- package/build/utils/core/operationExecution.d.ts.map +1 -1
- package/build/utils/core/operationExecution.js +1 -1
- package/build/utils/core/operationExecution.js.map +1 -1
- package/build/utils/crypto.d.ts +5 -1
- package/build/utils/crypto.d.ts.map +1 -1
- package/build/utils/crypto.js +8 -3
- package/build/utils/crypto.js.map +1 -1
- package/build/utils/filePermissions.d.ts +65 -0
- package/build/utils/filePermissions.d.ts.map +1 -0
- package/build/utils/filePermissions.js +212 -0
- package/build/utils/filePermissions.js.map +1 -0
- package/package.json +18 -5
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import logger, { debugIf } from '../../../logger/logger.js';
|
|
2
|
+
import { StdioClientTransport } from '../../../sdk/legacy/client/stdio.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper around StdioClientTransport that provides automatic restart functionality
|
|
5
|
+
* Implements Transport interface and adds OAuth provider support
|
|
6
|
+
*/
|
|
7
|
+
export class RestartableStdioTransport {
|
|
8
|
+
serverParams;
|
|
9
|
+
restartConfig;
|
|
10
|
+
managedStderr;
|
|
11
|
+
_currentTransport = null;
|
|
12
|
+
_restartCount = 0;
|
|
13
|
+
_isStarting = false;
|
|
14
|
+
_isClosing = false;
|
|
15
|
+
_restartTimer = null;
|
|
16
|
+
// Extended properties for AuthProviderTransport compatibility
|
|
17
|
+
timeout;
|
|
18
|
+
tags;
|
|
19
|
+
oauthProvider;
|
|
20
|
+
// Event handlers
|
|
21
|
+
onclose;
|
|
22
|
+
onerror;
|
|
23
|
+
onmessage;
|
|
24
|
+
constructor(serverParams, restartConfig, managedStderr) {
|
|
25
|
+
this.serverParams = serverParams;
|
|
26
|
+
this.restartConfig = restartConfig;
|
|
27
|
+
this.managedStderr = managedStderr;
|
|
28
|
+
debugIf(() => ({
|
|
29
|
+
message: `Creating RestartableStdioTransport for command: ${serverParams.command}`,
|
|
30
|
+
meta: { command: serverParams.command },
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a new underlying transport instance
|
|
35
|
+
*/
|
|
36
|
+
createTransport() {
|
|
37
|
+
const transport = new StdioClientTransport(this.serverParams);
|
|
38
|
+
this.managedStderr?.attach(transport.stderr);
|
|
39
|
+
// Forward event handlers
|
|
40
|
+
transport.onclose = () => this.handleTransportClose();
|
|
41
|
+
transport.onerror = (error) => this.handleTransportError(error);
|
|
42
|
+
transport.onmessage = (message) => this.handleTransportMessage(message);
|
|
43
|
+
return transport;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Handles transport close events
|
|
47
|
+
*/
|
|
48
|
+
handleTransportClose() {
|
|
49
|
+
if (this._isClosing) {
|
|
50
|
+
// Expected close, forward the event
|
|
51
|
+
this.onclose?.();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// Unexpected close, attempt restart if configured
|
|
55
|
+
if (this.restartConfig.restartOnExit) {
|
|
56
|
+
this.attemptRestart();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// No restart configured, forward close event
|
|
60
|
+
this.onclose?.();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Handles transport error events
|
|
65
|
+
*/
|
|
66
|
+
handleTransportError(error) {
|
|
67
|
+
logger.error(`Transport error: ${error.message}`);
|
|
68
|
+
this.onerror?.(error);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Handles transport message events
|
|
72
|
+
*/
|
|
73
|
+
handleTransportMessage(message) {
|
|
74
|
+
this.onmessage?.(message);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Attempts to restart the transport
|
|
78
|
+
*/
|
|
79
|
+
attemptRestart() {
|
|
80
|
+
if (this._isClosing) {
|
|
81
|
+
return; // Don't restart if we're intentionally closing
|
|
82
|
+
}
|
|
83
|
+
const maxRestarts = this.restartConfig.maxRestarts;
|
|
84
|
+
if (maxRestarts !== undefined && this._restartCount >= maxRestarts) {
|
|
85
|
+
logger.error(`Max restart limit reached (${maxRestarts}), stopping transport`);
|
|
86
|
+
this.onerror?.(new Error(`Transport failed after ${maxRestarts} restart attempts`));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this._restartCount++;
|
|
90
|
+
const restartDelay = this.restartConfig.restartDelay ?? 1000;
|
|
91
|
+
logger.info(`Attempting transport restart ${this._restartCount} in ${restartDelay}ms...`);
|
|
92
|
+
this._restartTimer = setTimeout(async () => {
|
|
93
|
+
this._restartTimer = null;
|
|
94
|
+
try {
|
|
95
|
+
await this.restartTransport();
|
|
96
|
+
logger.info(`Transport restarted successfully (attempt ${this._restartCount})`);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
logger.error(`Transport restart failed: ${error}`);
|
|
100
|
+
this.onerror?.(error instanceof Error ? error : new Error(String(error)));
|
|
101
|
+
}
|
|
102
|
+
}, restartDelay);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Restarts the underlying transport
|
|
106
|
+
*/
|
|
107
|
+
async restartTransport() {
|
|
108
|
+
if (this._isStarting || this._isClosing) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this._isStarting = true;
|
|
112
|
+
try {
|
|
113
|
+
// Close old transport if it exists
|
|
114
|
+
if (this._currentTransport) {
|
|
115
|
+
await this._currentTransport.close();
|
|
116
|
+
}
|
|
117
|
+
// Create and start new transport
|
|
118
|
+
this._currentTransport = this.createTransport();
|
|
119
|
+
await this._currentTransport.start();
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
this._isStarting = false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Starts the transport
|
|
127
|
+
*/
|
|
128
|
+
async start() {
|
|
129
|
+
if (this._currentTransport) {
|
|
130
|
+
throw new Error('RestartableStdioTransport already started!');
|
|
131
|
+
}
|
|
132
|
+
this._isStarting = true;
|
|
133
|
+
this._restartCount = 0;
|
|
134
|
+
try {
|
|
135
|
+
this._currentTransport = this.createTransport();
|
|
136
|
+
await this._currentTransport.start();
|
|
137
|
+
debugIf('RestartableStdioTransport started successfully');
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
this._isStarting = false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Gets the stderr stream from the current transport
|
|
145
|
+
*/
|
|
146
|
+
get stderr() {
|
|
147
|
+
return this._currentTransport?.stderr ?? null;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Gets the process PID from the current transport
|
|
151
|
+
*/
|
|
152
|
+
get pid() {
|
|
153
|
+
return this._currentTransport?.pid ?? null;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Sends a message through the current transport
|
|
157
|
+
*/
|
|
158
|
+
async send(message) {
|
|
159
|
+
if (!this._currentTransport) {
|
|
160
|
+
throw new Error('Transport not started');
|
|
161
|
+
}
|
|
162
|
+
return this._currentTransport.send(message);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Closes the transport and prevents restart
|
|
166
|
+
*/
|
|
167
|
+
async close() {
|
|
168
|
+
this._isClosing = true;
|
|
169
|
+
// Clear any pending restart timer
|
|
170
|
+
if (this._restartTimer) {
|
|
171
|
+
clearTimeout(this._restartTimer);
|
|
172
|
+
this._restartTimer = null;
|
|
173
|
+
}
|
|
174
|
+
// Close current transport if it exists
|
|
175
|
+
if (this._currentTransport) {
|
|
176
|
+
await this._currentTransport.close();
|
|
177
|
+
this._currentTransport = null;
|
|
178
|
+
}
|
|
179
|
+
await this.managedStderr?.close();
|
|
180
|
+
debugIf('RestartableStdioTransport closed');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Gets restart statistics
|
|
184
|
+
*/
|
|
185
|
+
getRestartStats() {
|
|
186
|
+
return {
|
|
187
|
+
restartCount: this._restartCount,
|
|
188
|
+
isRestarting: this._isStarting,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=restartableStdioTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restartableStdioTransport.js","sourceRoot":"","sources":["../../../../src/sdk/legacy/transport/restartableStdioTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { TemplateContextProof } from '../../../core/context/templateContextTrust.js';
|
|
2
|
+
import type { ContextData } from '../../../types/context.js';
|
|
3
|
+
/**
|
|
4
|
+
* STDIO Proxy Transport Options
|
|
5
|
+
*/
|
|
6
|
+
export interface StdioProxyTransportOptions {
|
|
7
|
+
serverUrl: string;
|
|
8
|
+
bearerToken?: string;
|
|
9
|
+
preset?: string;
|
|
10
|
+
filter?: string;
|
|
11
|
+
tags?: string[];
|
|
12
|
+
timeout?: number;
|
|
13
|
+
context?: ContextData;
|
|
14
|
+
contextProof?: TemplateContextProof;
|
|
15
|
+
createContextProof?: (context: ContextData) => Promise<TemplateContextProof | undefined>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* STDIO Proxy Transport
|
|
19
|
+
*
|
|
20
|
+
* Provides a STDIO interface that proxies all requests to a running 1MCP HTTP server.
|
|
21
|
+
* Acts as a bridge between STDIO-only MCP clients and the centralized HTTP server.
|
|
22
|
+
*
|
|
23
|
+
* This implementation uses pure transport-to-transport forwarding without the Client layer,
|
|
24
|
+
* to avoid conflicts with MCP protocol message handling.
|
|
25
|
+
*/
|
|
26
|
+
export declare class StdioProxyTransport {
|
|
27
|
+
private options;
|
|
28
|
+
private stdioTransport;
|
|
29
|
+
private httpTransport;
|
|
30
|
+
private isConnected;
|
|
31
|
+
private httpStarted;
|
|
32
|
+
private stdioStarted;
|
|
33
|
+
private closePromise?;
|
|
34
|
+
private context;
|
|
35
|
+
private clientInfo;
|
|
36
|
+
private initializeIntercepted;
|
|
37
|
+
private serverUrl;
|
|
38
|
+
private downstreamPin?;
|
|
39
|
+
private legacyInitializeRequestId?;
|
|
40
|
+
constructor(options: StdioProxyTransportOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Start the proxy transport
|
|
43
|
+
*/
|
|
44
|
+
start(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Set up HTTP transport message handlers
|
|
47
|
+
* Extracted to allow re-setup after transport recreation
|
|
48
|
+
*/
|
|
49
|
+
private setupHttpTransportMessageHandlers;
|
|
50
|
+
/**
|
|
51
|
+
* Set up bidirectional message forwarding between STDIO and HTTP
|
|
52
|
+
*/
|
|
53
|
+
private setupMessageForwarding;
|
|
54
|
+
private classifyDownstreamFrame;
|
|
55
|
+
private observeUpstreamFrame;
|
|
56
|
+
private isProtocolFailure;
|
|
57
|
+
private failProtocolFrame;
|
|
58
|
+
/**
|
|
59
|
+
* Build User-Agent string with optional client info
|
|
60
|
+
*/
|
|
61
|
+
private buildUserAgent;
|
|
62
|
+
/**
|
|
63
|
+
* Create a custom fetch function that dynamically injects User-Agent header
|
|
64
|
+
*
|
|
65
|
+
* This ensures the HTTP server sees updated client info for all requests after
|
|
66
|
+
* the initialize message is processed. The custom fetch wraps the global fetch
|
|
67
|
+
* and merges the current User-Agent (which includes client info if available)
|
|
68
|
+
* with the request headers.
|
|
69
|
+
*
|
|
70
|
+
* Why custom fetch instead of requestInit?
|
|
71
|
+
* - The SDK's StreamableHTTPClientTransport uses _fetch directly for all requests
|
|
72
|
+
* - Updating requestInit after transport creation doesn't affect existing connections
|
|
73
|
+
* - Custom fetch allows dynamic header injection without recreating the transport
|
|
74
|
+
* - Avoids "Transport closed" errors from mid-session transport recreation
|
|
75
|
+
*
|
|
76
|
+
* @returns A fetch function that injects the current User-Agent header
|
|
77
|
+
*/
|
|
78
|
+
private createDynamicHeaderFetch;
|
|
79
|
+
/**
|
|
80
|
+
* Type guard to check if a JSON-RPC message is a request
|
|
81
|
+
*/
|
|
82
|
+
private isRequest;
|
|
83
|
+
/**
|
|
84
|
+
* Add context metadata to message using _meta field
|
|
85
|
+
*/
|
|
86
|
+
private addContextMeta;
|
|
87
|
+
/**
|
|
88
|
+
* Close the proxy transport
|
|
89
|
+
*/
|
|
90
|
+
close(): Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=stdioProxyTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdioProxyTransport.d.ts","sourceRoot":"","sources":["../../../../src/sdk/legacy/transport/stdioProxyTransport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAWtF,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAC1F;AASD;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAclB,OAAO,CAAC,OAAO;IAb3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,yBAAyB,CAAC,CAAkB;gBAEhC,OAAO,EAAE,0BAA0B;IAgDvD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAyBzC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoD9B,OAAO,CAAC,uBAAuB;IAyC/B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,iBAAiB;YAMX,iBAAiB;IAkB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;YACW,cAAc;IAqC5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B7B"}
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
import { PROTOCOL_VERSION_META_KEY, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
|
|
2
|
+
import { buildCliContext, generateStreamableSessionId } from '../../../commands/shared/cliContext.js';
|
|
3
|
+
import { MCP_SERVER_VERSION } from '../../../constants/mcp.js';
|
|
4
|
+
import { classifyProtocolEra, createGatewayFailure, } from '../../../gateway/contracts/index.js';
|
|
5
|
+
import logger from '../../../logger/logger.js';
|
|
6
|
+
import { toProtocolJSONRPCMessage } from '../../../sdk/contracts/index.js';
|
|
7
|
+
import { StdioServerTransport } from '../../../sdk/legacy/server/stdio.js';
|
|
8
|
+
import { ClientInfoExtractor } from '../../../utils/client/clientInfoExtractor.js';
|
|
9
|
+
/**
|
|
10
|
+
* Generate a secure mcp-session-id for the proxy with the correct prefix
|
|
11
|
+
*/
|
|
12
|
+
function generateMcpSessionId() {
|
|
13
|
+
return generateStreamableSessionId();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* STDIO Proxy Transport
|
|
17
|
+
*
|
|
18
|
+
* Provides a STDIO interface that proxies all requests to a running 1MCP HTTP server.
|
|
19
|
+
* Acts as a bridge between STDIO-only MCP clients and the centralized HTTP server.
|
|
20
|
+
*
|
|
21
|
+
* This implementation uses pure transport-to-transport forwarding without the Client layer,
|
|
22
|
+
* to avoid conflicts with MCP protocol message handling.
|
|
23
|
+
*/
|
|
24
|
+
export class StdioProxyTransport {
|
|
25
|
+
options;
|
|
26
|
+
stdioTransport;
|
|
27
|
+
httpTransport;
|
|
28
|
+
isConnected = false;
|
|
29
|
+
httpStarted = false;
|
|
30
|
+
stdioStarted = false;
|
|
31
|
+
closePromise;
|
|
32
|
+
context;
|
|
33
|
+
clientInfo = null;
|
|
34
|
+
initializeIntercepted = false;
|
|
35
|
+
serverUrl;
|
|
36
|
+
downstreamPin;
|
|
37
|
+
legacyInitializeRequestId;
|
|
38
|
+
constructor(options) {
|
|
39
|
+
this.options = options;
|
|
40
|
+
// Reset any previous state
|
|
41
|
+
ClientInfoExtractor.reset();
|
|
42
|
+
this.context =
|
|
43
|
+
this.options.context ||
|
|
44
|
+
buildCliContext({
|
|
45
|
+
cwd: process.cwd(),
|
|
46
|
+
projectRoot: process.cwd(),
|
|
47
|
+
transportType: 'stdio-proxy',
|
|
48
|
+
version: MCP_SERVER_VERSION,
|
|
49
|
+
sessionId: generateMcpSessionId(),
|
|
50
|
+
});
|
|
51
|
+
logger.info('🔍 Detected proxy context', {
|
|
52
|
+
projectPath: this.context.project.path,
|
|
53
|
+
projectName: this.context.project.name,
|
|
54
|
+
sessionId: this.context.sessionId,
|
|
55
|
+
});
|
|
56
|
+
// Create STDIO server transport (for client communication)
|
|
57
|
+
this.stdioTransport = new StdioServerTransport();
|
|
58
|
+
// Prepare the server URL (no query parameters needed - using context headers)
|
|
59
|
+
this.serverUrl = new URL(this.options.serverUrl);
|
|
60
|
+
// Apply priority: preset > filter > tags (only one will be added)
|
|
61
|
+
if (this.options.preset) {
|
|
62
|
+
this.serverUrl.searchParams.set('preset', this.options.preset);
|
|
63
|
+
}
|
|
64
|
+
else if (this.options.filter) {
|
|
65
|
+
this.serverUrl.searchParams.set('filter', this.options.filter);
|
|
66
|
+
}
|
|
67
|
+
else if (this.options.tags && this.options.tags.length > 0) {
|
|
68
|
+
this.serverUrl.searchParams.set('tags', this.options.tags.join(','));
|
|
69
|
+
}
|
|
70
|
+
logger.info('📡 Proxy connecting with _meta field approach', {
|
|
71
|
+
url: this.serverUrl.toString(),
|
|
72
|
+
contextProvided: true,
|
|
73
|
+
});
|
|
74
|
+
// Create HTTP transport with custom fetch that dynamically injects User-Agent
|
|
75
|
+
// Note: sessionId is passed as a parameter, SDK will handle adding it to headers
|
|
76
|
+
this.httpTransport = new StreamableHTTPClientTransport(this.serverUrl, {
|
|
77
|
+
fetch: this.createDynamicHeaderFetch(),
|
|
78
|
+
sessionId: this.context.sessionId,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Start the proxy transport
|
|
83
|
+
*/
|
|
84
|
+
async start() {
|
|
85
|
+
try {
|
|
86
|
+
// CRITICAL: Set up message forwarding BEFORE starting transports
|
|
87
|
+
// This ensures handlers are ready when messages start flowing
|
|
88
|
+
this.setupMessageForwarding();
|
|
89
|
+
// Start HTTP transport connection
|
|
90
|
+
this.httpStarted = true;
|
|
91
|
+
await this.httpTransport.start();
|
|
92
|
+
logger.info('Connected to 1MCP HTTP server');
|
|
93
|
+
// Start STDIO transport
|
|
94
|
+
this.stdioStarted = true;
|
|
95
|
+
await this.stdioTransport.start();
|
|
96
|
+
this.isConnected = true;
|
|
97
|
+
logger.info('STDIO proxy started successfully');
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
logger.error(`Failed to start STDIO proxy: ${error}`);
|
|
101
|
+
await this.close();
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Set up HTTP transport message handlers
|
|
107
|
+
* Extracted to allow re-setup after transport recreation
|
|
108
|
+
*/
|
|
109
|
+
setupHttpTransportMessageHandlers() {
|
|
110
|
+
// Forward messages from HTTP server to STDIO client
|
|
111
|
+
this.httpTransport.onmessage = async (message) => {
|
|
112
|
+
try {
|
|
113
|
+
this.observeUpstreamFrame(message);
|
|
114
|
+
// Forward to STDIO client
|
|
115
|
+
await this.stdioTransport.send(message);
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
logger.error(`Error forwarding HTTP message to STDIO: ${error}`);
|
|
119
|
+
if (this.isProtocolFailure(error))
|
|
120
|
+
await this.failProtocolFrame(message, error);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
// Handle errors from HTTP transport
|
|
124
|
+
this.httpTransport.onerror = (error) => {
|
|
125
|
+
logger.error(`HTTP transport error: ${error.message}`);
|
|
126
|
+
};
|
|
127
|
+
// Handle HTTP transport close
|
|
128
|
+
this.httpTransport.onclose = async () => {
|
|
129
|
+
logger.warn('HTTP server connection closed');
|
|
130
|
+
await this.close();
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Set up bidirectional message forwarding between STDIO and HTTP
|
|
135
|
+
*/
|
|
136
|
+
setupMessageForwarding() {
|
|
137
|
+
// Forward messages from STDIO client to HTTP server
|
|
138
|
+
this.stdioTransport.onmessage = async (message) => {
|
|
139
|
+
try {
|
|
140
|
+
this.classifyDownstreamFrame(message);
|
|
141
|
+
// Check for initialize request to extract client info
|
|
142
|
+
if (!this.initializeIntercepted) {
|
|
143
|
+
const clientInfo = ClientInfoExtractor.extractFromInitializeRequest(toProtocolJSONRPCMessage(message));
|
|
144
|
+
if (clientInfo) {
|
|
145
|
+
this.clientInfo = clientInfo;
|
|
146
|
+
this.initializeIntercepted = true;
|
|
147
|
+
logger.info('🔍 Extracted client info from initialize request', {
|
|
148
|
+
clientName: clientInfo.name,
|
|
149
|
+
clientVersion: clientInfo.version,
|
|
150
|
+
clientTitle: clientInfo.title,
|
|
151
|
+
});
|
|
152
|
+
// Client info is now available - custom fetch will dynamically inject
|
|
153
|
+
// the updated User-Agent header for all subsequent HTTP requests
|
|
154
|
+
logger.info('✅ Client info extracted - User-Agent will be updated for all requests', {
|
|
155
|
+
userAgent: this.buildUserAgent(),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Add context metadata to message _meta field
|
|
160
|
+
const enhancedMessage = await this.addContextMeta(message);
|
|
161
|
+
// Forward to HTTP server
|
|
162
|
+
await this.httpTransport.send(enhancedMessage);
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
logger.error(`Error forwarding STDIO message to HTTP: ${error}`);
|
|
166
|
+
if (this.isProtocolFailure(error))
|
|
167
|
+
await this.failProtocolFrame(message, error);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
// Set up HTTP transport message handlers
|
|
171
|
+
this.setupHttpTransportMessageHandlers();
|
|
172
|
+
// Handle errors from STDIO transport
|
|
173
|
+
this.stdioTransport.onerror = (error) => {
|
|
174
|
+
logger.error(`STDIO transport error: ${error.message}`);
|
|
175
|
+
};
|
|
176
|
+
// Handle STDIO transport close
|
|
177
|
+
this.stdioTransport.onclose = async () => {
|
|
178
|
+
logger.info('STDIO transport closed');
|
|
179
|
+
await this.close();
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
classifyDownstreamFrame(message) {
|
|
183
|
+
if (!('method' in message))
|
|
184
|
+
return;
|
|
185
|
+
const params = message.params;
|
|
186
|
+
const record = typeof params === 'object' && params !== null ? params : undefined;
|
|
187
|
+
const meta = record && typeof record._meta === 'object' && record._meta !== null
|
|
188
|
+
? record._meta
|
|
189
|
+
: undefined;
|
|
190
|
+
const modernRevision = meta?.[PROTOCOL_VERSION_META_KEY];
|
|
191
|
+
let evidence;
|
|
192
|
+
if (message.method === 'initialize') {
|
|
193
|
+
evidence = { syntax: 'legacy', revision: record?.protocolVersion };
|
|
194
|
+
this.legacyInitializeRequestId = 'id' in message ? message.id : undefined;
|
|
195
|
+
}
|
|
196
|
+
else if (modernRevision !== undefined) {
|
|
197
|
+
evidence = { syntax: 'modern', revision: modernRevision };
|
|
198
|
+
}
|
|
199
|
+
else if (this.downstreamPin?.era === 'legacy') {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
throw createGatewayFailure({
|
|
204
|
+
kind: 'protocol',
|
|
205
|
+
code: 'proxy_protocol_evidence_missing',
|
|
206
|
+
message: 'The proxy request does not contain valid protocol era evidence',
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
const classified = classifyProtocolEra(evidence);
|
|
210
|
+
if (!classified.ok)
|
|
211
|
+
throw classified.failure;
|
|
212
|
+
if (this.downstreamPin &&
|
|
213
|
+
(this.downstreamPin.era !== classified.value.era || this.downstreamPin.revision !== classified.value.revision)) {
|
|
214
|
+
throw createGatewayFailure({
|
|
215
|
+
kind: 'protocol',
|
|
216
|
+
code: 'proxy_protocol_era_conflict',
|
|
217
|
+
message: 'The proxy downstream protocol era is already pinned',
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
this.downstreamPin ??= classified.value;
|
|
221
|
+
}
|
|
222
|
+
observeUpstreamFrame(message) {
|
|
223
|
+
if (this.downstreamPin?.era !== 'legacy' || !('id' in message) || message.id !== this.legacyInitializeRequestId) {
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
if (!('result' in message))
|
|
227
|
+
return;
|
|
228
|
+
const result = message.result;
|
|
229
|
+
const revision = typeof result === 'object' && result !== null ? result.protocolVersion : undefined;
|
|
230
|
+
const classified = classifyProtocolEra({ syntax: 'legacy', revision });
|
|
231
|
+
if (!classified.ok) {
|
|
232
|
+
throw createGatewayFailure({
|
|
233
|
+
kind: 'protocol',
|
|
234
|
+
code: 'proxy_legacy_revision_mismatch',
|
|
235
|
+
message: 'The proxy upstream selected an unsupported legacy protocol revision',
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
this.downstreamPin = classified.value;
|
|
239
|
+
this.httpTransport.setProtocolVersion(classified.value.revision);
|
|
240
|
+
}
|
|
241
|
+
isProtocolFailure(error) {
|
|
242
|
+
if (typeof error !== 'object' || error === null)
|
|
243
|
+
return false;
|
|
244
|
+
const candidate = error;
|
|
245
|
+
return candidate.kind === 'protocol' && typeof candidate.code === 'string';
|
|
246
|
+
}
|
|
247
|
+
async failProtocolFrame(message, failure) {
|
|
248
|
+
const id = 'id' in message && (typeof message.id === 'string' || typeof message.id === 'number') ? message.id : null;
|
|
249
|
+
try {
|
|
250
|
+
await this.stdioTransport.send({
|
|
251
|
+
jsonrpc: '2.0',
|
|
252
|
+
id,
|
|
253
|
+
error: {
|
|
254
|
+
code: -32_600,
|
|
255
|
+
message: 'Proxy protocol negotiation failed',
|
|
256
|
+
data: { code: failure.code },
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
finally {
|
|
261
|
+
await this.close();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Build User-Agent string with optional client info
|
|
266
|
+
*/
|
|
267
|
+
buildUserAgent() {
|
|
268
|
+
const base = `1MCP-Proxy/${MCP_SERVER_VERSION}`;
|
|
269
|
+
if (this.clientInfo) {
|
|
270
|
+
const { name, version, title } = this.clientInfo;
|
|
271
|
+
const clientString = title ? `${name}/${version} (${title})` : `${name}/${version}`;
|
|
272
|
+
return `${base} ${clientString}`;
|
|
273
|
+
}
|
|
274
|
+
return base;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Create a custom fetch function that dynamically injects User-Agent header
|
|
278
|
+
*
|
|
279
|
+
* This ensures the HTTP server sees updated client info for all requests after
|
|
280
|
+
* the initialize message is processed. The custom fetch wraps the global fetch
|
|
281
|
+
* and merges the current User-Agent (which includes client info if available)
|
|
282
|
+
* with the request headers.
|
|
283
|
+
*
|
|
284
|
+
* Why custom fetch instead of requestInit?
|
|
285
|
+
* - The SDK's StreamableHTTPClientTransport uses _fetch directly for all requests
|
|
286
|
+
* - Updating requestInit after transport creation doesn't affect existing connections
|
|
287
|
+
* - Custom fetch allows dynamic header injection without recreating the transport
|
|
288
|
+
* - Avoids "Transport closed" errors from mid-session transport recreation
|
|
289
|
+
*
|
|
290
|
+
* @returns A fetch function that injects the current User-Agent header
|
|
291
|
+
*/
|
|
292
|
+
createDynamicHeaderFetch() {
|
|
293
|
+
return async (input, init) => {
|
|
294
|
+
// Build current User-Agent (includes client info if available)
|
|
295
|
+
const currentUserAgent = this.buildUserAgent();
|
|
296
|
+
// Merge headers: preserve existing headers, add/update User-Agent
|
|
297
|
+
const headers = new Headers(init?.headers);
|
|
298
|
+
headers.set('User-Agent', currentUserAgent);
|
|
299
|
+
if (this.options.bearerToken) {
|
|
300
|
+
headers.set('Authorization', `Bearer ${this.options.bearerToken}`);
|
|
301
|
+
}
|
|
302
|
+
// Create new init with updated headers
|
|
303
|
+
const updatedInit = {
|
|
304
|
+
...init,
|
|
305
|
+
headers,
|
|
306
|
+
redirect: 'error',
|
|
307
|
+
};
|
|
308
|
+
// Call global fetch with updated headers
|
|
309
|
+
return fetch(input, updatedInit);
|
|
310
|
+
};
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Type guard to check if a JSON-RPC message is a request
|
|
314
|
+
*/
|
|
315
|
+
isRequest(message) {
|
|
316
|
+
return 'method' in message;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Add context metadata to message using _meta field
|
|
320
|
+
*/
|
|
321
|
+
async addContextMeta(message) {
|
|
322
|
+
// Create context with client info if available
|
|
323
|
+
const contextWithClient = {
|
|
324
|
+
...this.context,
|
|
325
|
+
...(this.clientInfo && {
|
|
326
|
+
transport: {
|
|
327
|
+
type: 'stdio-proxy',
|
|
328
|
+
connectionTimestamp: new Date().toISOString(),
|
|
329
|
+
client: this.clientInfo,
|
|
330
|
+
},
|
|
331
|
+
}),
|
|
332
|
+
};
|
|
333
|
+
const contextProof = this.options.createContextProof
|
|
334
|
+
? await this.options.createContextProof(contextWithClient)
|
|
335
|
+
: this.options.contextProof;
|
|
336
|
+
// Only add _meta to messages that are requests (have params)
|
|
337
|
+
if (this.isRequest(message) && message.params !== undefined) {
|
|
338
|
+
const params = message.params;
|
|
339
|
+
// Return a new message object with _meta field
|
|
340
|
+
return {
|
|
341
|
+
...message,
|
|
342
|
+
params: {
|
|
343
|
+
...params,
|
|
344
|
+
_meta: {
|
|
345
|
+
...(params._meta || {}), // Preserve existing _meta
|
|
346
|
+
context: contextWithClient, // Add our context data
|
|
347
|
+
...(contextProof ? { contextProof } : {}),
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// Return original message for responses or requests without params
|
|
353
|
+
return message;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Close the proxy transport
|
|
357
|
+
*/
|
|
358
|
+
async close() {
|
|
359
|
+
if (this.closePromise)
|
|
360
|
+
return this.closePromise;
|
|
361
|
+
if (!this.httpStarted && !this.stdioStarted && !this.isConnected)
|
|
362
|
+
return;
|
|
363
|
+
this.isConnected = false;
|
|
364
|
+
this.closePromise = (async () => {
|
|
365
|
+
this.httpTransport.onmessage = undefined;
|
|
366
|
+
this.httpTransport.onerror = undefined;
|
|
367
|
+
this.httpTransport.onclose = undefined;
|
|
368
|
+
this.stdioTransport.onmessage = undefined;
|
|
369
|
+
this.stdioTransport.onerror = undefined;
|
|
370
|
+
this.stdioTransport.onclose = undefined;
|
|
371
|
+
const closers = [];
|
|
372
|
+
if (this.httpStarted)
|
|
373
|
+
closers.push(this.httpTransport.close());
|
|
374
|
+
if (this.stdioStarted)
|
|
375
|
+
closers.push(this.stdioTransport.close());
|
|
376
|
+
this.httpStarted = false;
|
|
377
|
+
this.stdioStarted = false;
|
|
378
|
+
const outcomes = await Promise.allSettled(closers);
|
|
379
|
+
for (const outcome of outcomes) {
|
|
380
|
+
if (outcome.status === 'rejected')
|
|
381
|
+
logger.error(`Error closing STDIO proxy: ${outcome.reason}`);
|
|
382
|
+
}
|
|
383
|
+
logger.info('STDIO proxy closed');
|
|
384
|
+
})();
|
|
385
|
+
return this.closePromise;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=stdioProxyTransport.js.map
|