@1mcp/agent 0.38.2 → 0.39.0-beta.1
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-BnEBXa_2.js → admin-OAuthServicesWorkspace-CcUSZCNL.js} +1 -1
- package/build/admin/assets/{admin-console-5rVJC_G2.js → admin-console-fP-KT2vb.js} +3 -3
- package/build/admin/index.html +1 -1
- package/build/commands/inspect/index.d.ts.map +1 -1
- package/build/commands/inspect/index.js +21 -2
- package/build/commands/inspect/index.js.map +1 -1
- package/build/commands/inspect/inspect.d.ts +5 -0
- package/build/commands/inspect/inspect.d.ts.map +1 -1
- package/build/commands/inspect/inspect.js +120 -5
- package/build/commands/inspect/inspect.js.map +1 -1
- package/build/commands/inspect/inspectUtils.d.ts +2 -1
- package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
- package/build/commands/inspect/inspectUtils.js +21 -0
- package/build/commands/inspect/inspectUtils.js.map +1 -1
- package/build/commands/instructions/instructionsUtils.d.ts.map +1 -1
- package/build/commands/instructions/instructionsUtils.js +5 -2
- package/build/commands/instructions/instructionsUtils.js.map +1 -1
- package/build/commands/run/run.d.ts.map +1 -1
- package/build/commands/run/run.js +35 -14
- package/build/commands/run/run.js.map +1 -1
- package/build/commands/run/runUtils.d.ts +2 -3
- package/build/commands/run/runUtils.d.ts.map +1 -1
- package/build/commands/run/runUtils.js +12 -11
- package/build/commands/run/runUtils.js.map +1 -1
- package/build/commands/serve/cooperativeRuntime.d.ts +22 -0
- package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -0
- package/build/commands/serve/cooperativeRuntime.js +603 -0
- package/build/commands/serve/cooperativeRuntime.js.map +1 -0
- package/build/commands/serve/index.d.ts +10 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +10 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serveStatus.d.ts +2 -0
- package/build/commands/serve/serveStatus.d.ts.map +1 -1
- package/build/commands/serve/serveStatus.js +37 -9
- package/build/commands/serve/serveStatus.js.map +1 -1
- package/build/commands/serve/serveStop.d.ts.map +1 -1
- package/build/commands/serve/serveStop.js +53 -12
- package/build/commands/serve/serveStop.js.map +1 -1
- package/build/commands/shared/apiClient.d.ts.map +1 -1
- package/build/commands/shared/apiClient.js +13 -9
- package/build/commands/shared/apiClient.js.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
- package/build/commands/shared/clientSurfaceAttachment.js +33 -7
- package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
- package/build/commands/shared/inspectApiSchemas.d.ts +25 -0
- package/build/commands/shared/inspectApiSchemas.d.ts.map +1 -1
- package/build/commands/shared/inspectApiSchemas.js +21 -0
- package/build/commands/shared/inspectApiSchemas.js.map +1 -1
- package/build/config/configLoader.d.ts.map +1 -1
- package/build/config/configLoader.js +9 -1
- package/build/config/configLoader.js.map +1 -1
- package/build/config/configManager.d.ts +4 -0
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +48 -1
- package/build/config/configManager.js.map +1 -1
- package/build/config/configWatcher.d.ts.map +1 -1
- package/build/config/configWatcher.js +3 -1
- package/build/config/configWatcher.js.map +1 -1
- package/build/config/envProcessor.d.ts.map +1 -1
- package/build/config/envProcessor.js +6 -5
- package/build/config/envProcessor.js.map +1 -1
- package/build/config/mcpConfigManager.d.ts +4 -0
- package/build/config/mcpConfigManager.d.ts.map +1 -1
- package/build/config/mcpConfigManager.js +48 -1
- package/build/config/mcpConfigManager.js.map +1 -1
- package/build/config/runtimeBootstrap.d.ts +15 -0
- package/build/config/runtimeBootstrap.d.ts.map +1 -0
- package/build/config/runtimeBootstrap.js +35 -0
- package/build/config/runtimeBootstrap.js.map +1 -0
- package/build/config/runtimeScopeEnv.d.ts.map +1 -1
- package/build/config/runtimeScopeEnv.js +4 -0
- package/build/config/runtimeScopeEnv.js.map +1 -1
- package/build/config/runtimeTargetFingerprint.d.ts.map +1 -1
- package/build/config/runtimeTargetFingerprint.js +5 -2
- package/build/config/runtimeTargetFingerprint.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts +2 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.js +2 -21
- package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +12 -4
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityCatalog.d.ts +2 -1
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +94 -17
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityPagination.d.ts +11 -0
- package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
- package/build/core/capabilities/capabilityPagination.js +158 -40
- package/build/core/capabilities/capabilityPagination.js.map +1 -1
- package/build/core/capabilities/catalogGeneration.d.ts.map +1 -1
- package/build/core/capabilities/catalogGeneration.js +8 -2
- package/build/core/capabilities/catalogGeneration.js.map +1 -1
- package/build/core/capabilities/inspectSearch.d.ts +45 -0
- package/build/core/capabilities/inspectSearch.d.ts.map +1 -0
- package/build/core/capabilities/inspectSearch.js +102 -0
- package/build/core/capabilities/inspectSearch.js.map +1 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +8 -8
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +2 -2
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +20 -30
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +8 -0
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.js +253 -65
- package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
- package/build/core/capabilities/schemaCache.d.ts +6 -2
- package/build/core/capabilities/schemaCache.d.ts.map +1 -1
- package/build/core/capabilities/schemaCache.js +101 -19
- package/build/core/capabilities/schemaCache.js.map +1 -1
- package/build/core/client/legacyAdapterRequest.d.ts.map +1 -1
- package/build/core/client/legacyAdapterRequest.js +25 -21
- package/build/core/client/legacyAdapterRequest.js.map +1 -1
- package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
- package/build/core/client/postAuthOAuthRecovery.js +3 -1
- package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
- package/build/core/configChangeHandler.d.ts.map +1 -1
- package/build/core/configChangeHandler.js +11 -2
- package/build/core/configChangeHandler.js.map +1 -1
- package/build/core/context/templateContextTrust.d.ts +3 -1
- package/build/core/context/templateContextTrust.d.ts.map +1 -1
- package/build/core/context/templateContextTrust.js +22 -6
- package/build/core/context/templateContextTrust.js.map +1 -1
- package/build/core/instructions/instructionsDistribution.d.ts.map +1 -1
- package/build/core/instructions/instructionsDistribution.js +5 -2
- package/build/core/instructions/instructionsDistribution.js.map +1 -1
- package/build/core/instructions/templateTypes.d.ts +1 -1
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +5 -2
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts +3 -0
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js +11 -1
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/protocol/resourceTemplateRouting.d.ts +2 -0
- package/build/core/protocol/resourceTemplateRouting.d.ts.map +1 -0
- package/build/core/protocol/resourceTemplateRouting.js +2 -0
- package/build/core/protocol/resourceTemplateRouting.js.map +1 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts +2 -0
- package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -1
- package/build/core/server/backgroundRuntimeSupervisor.js +11 -2
- package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -1
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts +2 -1
- package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -1
- package/build/core/server/backgroundRuntimeSupervisorState.js +3 -2
- package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -1
- package/build/core/server/pidFileManager.d.ts +35 -0
- package/build/core/server/pidFileManager.d.ts.map +1 -1
- package/build/core/server/pidFileManager.js +16 -5
- package/build/core/server/pidFileManager.js.map +1 -1
- package/build/core/server/processIdentity.d.ts +3 -0
- package/build/core/server/processIdentity.d.ts.map +1 -1
- package/build/core/server/processIdentity.js +69 -17
- package/build/core/server/processIdentity.js.map +1 -1
- package/build/core/server/runtimeControl.d.ts +37 -0
- package/build/core/server/runtimeControl.d.ts.map +1 -0
- package/build/core/server/runtimeControl.js +309 -0
- package/build/core/server/runtimeControl.js.map +1 -0
- package/build/core/server/runtimeDrain.d.ts +68 -0
- package/build/core/server/runtimeDrain.d.ts.map +1 -0
- package/build/core/server/runtimeDrain.js +248 -0
- package/build/core/server/runtimeDrain.js.map +1 -0
- package/build/core/server/runtimeLaunchIpc.d.ts +285 -0
- package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -0
- package/build/core/server/runtimeLaunchIpc.js +146 -0
- package/build/core/server/runtimeLaunchIpc.js.map +1 -0
- package/build/core/server/runtimeLifecycle.d.ts +3 -1
- package/build/core/server/runtimeLifecycle.d.ts.map +1 -1
- package/build/core/server/runtimeLifecycle.js +7 -8
- package/build/core/server/runtimeLifecycle.js.map +1 -1
- package/build/core/server/runtimeReplacementConfig.d.ts +295 -0
- package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -0
- package/build/core/server/runtimeReplacementConfig.js +187 -0
- package/build/core/server/runtimeReplacementConfig.js.map +1 -0
- package/build/core/server/runtimeScopeOwnership.d.ts +3 -0
- package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -1
- package/build/core/server/runtimeScopeOwnership.js +23 -4
- package/build/core/server/runtimeScopeOwnership.js.map +1 -1
- package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -1
- package/build/core/tools/internal/discoveryHandlers.js +8 -6
- package/build/core/tools/internal/discoveryHandlers.js.map +1 -1
- package/build/core/tools/internal/installationHandlers.d.ts.map +1 -1
- package/build/core/tools/internal/installationHandlers.js +46 -39
- package/build/core/tools/internal/installationHandlers.js.map +1 -1
- package/build/core/types/server.d.ts +2 -0
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/transport.d.ts +1 -1
- package/build/core/validation/schemaBoundary.d.ts +51 -0
- package/build/core/validation/schemaBoundary.d.ts.map +1 -0
- package/build/core/validation/schemaBoundary.js +237 -0
- package/build/core/validation/schemaBoundary.js.map +1 -0
- package/build/core/validation/schemaPolicy.d.ts +38 -0
- package/build/core/validation/schemaPolicy.d.ts.map +1 -0
- package/build/core/validation/schemaPolicy.js +127 -0
- package/build/core/validation/schemaPolicy.js.map +1 -0
- package/build/core/validation/schemaWorker.d.ts +2 -0
- package/build/core/validation/schemaWorker.d.ts.map +1 -0
- package/build/core/validation/schemaWorker.js +222 -0
- package/build/core/validation/schemaWorker.js.map +1 -0
- package/build/core/validation/toolSchemaBoundary.d.ts +19 -0
- package/build/core/validation/toolSchemaBoundary.d.ts.map +1 -0
- package/build/core/validation/toolSchemaBoundary.js +51 -0
- package/build/core/validation/toolSchemaBoundary.js.map +1 -0
- package/build/domains/admin/adminOperationService.d.ts +1 -0
- package/build/domains/admin/adminOperationService.d.ts.map +1 -1
- package/build/domains/admin/adminOperationService.js +4 -0
- package/build/domains/admin/adminOperationService.js.map +1 -1
- package/build/domains/config-change/configChange.d.ts.map +1 -1
- package/build/domains/config-change/configChange.js +36 -8
- package/build/domains/config-change/configChange.js.map +1 -1
- package/build/domains/installation/serverInstallationWorkflow.d.ts.map +1 -1
- package/build/domains/installation/serverInstallationWorkflow.js +21 -12
- package/build/domains/installation/serverInstallationWorkflow.js.map +1 -1
- package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
- package/build/domains/preset/manager/presetManager.js +2 -1
- package/build/domains/preset/manager/presetManager.js.map +1 -1
- package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
- package/build/domains/registry/mcpRegistryClient.js +10 -3
- package/build/domains/registry/mcpRegistryClient.js.map +1 -1
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts +2 -1
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -1
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +77 -3
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
- package/build/gateway/contracts/gatewayFailure.d.ts +38 -0
- package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
- package/build/gateway/contracts/gatewayFailure.js +137 -20
- package/build/gateway/contracts/gatewayFailure.js.map +1 -1
- package/build/gateway/core/gatewayDispatcher.d.ts +4 -0
- package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -1
- package/build/gateway/core/gatewayDispatcher.js +35 -3
- package/build/gateway/core/gatewayDispatcher.js.map +1 -1
- package/build/gateway/interactions/interactionBroker.d.ts +29 -0
- package/build/gateway/interactions/interactionBroker.d.ts.map +1 -0
- package/build/gateway/interactions/interactionBroker.js +244 -0
- package/build/gateway/interactions/interactionBroker.js.map +1 -0
- package/build/gateway/interactions/interactionCapabilities.d.ts +4 -0
- package/build/gateway/interactions/interactionCapabilities.d.ts.map +1 -0
- package/build/gateway/interactions/interactionCapabilities.js +36 -0
- package/build/gateway/interactions/interactionCapabilities.js.map +1 -0
- package/build/gateway/interactions/interactionOwner.d.ts +45 -0
- package/build/gateway/interactions/interactionOwner.d.ts.map +1 -0
- package/build/gateway/interactions/interactionOwner.js +203 -0
- package/build/gateway/interactions/interactionOwner.js.map +1 -0
- package/build/gateway/interactions/interactionRoute.d.ts +16 -0
- package/build/gateway/interactions/interactionRoute.d.ts.map +1 -0
- package/build/gateway/interactions/interactionRoute.js +41 -0
- package/build/gateway/interactions/interactionRoute.js.map +1 -0
- package/build/gateway/interactions/validateInteractionResponse.d.ts +6 -0
- package/build/gateway/interactions/validateInteractionResponse.d.ts.map +1 -0
- package/build/gateway/interactions/validateInteractionResponse.js +175 -0
- package/build/gateway/interactions/validateInteractionResponse.js.map +1 -0
- package/build/gateway/ports/outboundEraAdapter.d.ts +10 -1
- package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -1
- package/build/sdk/contracts/legacySdkAdapter.d.ts +5 -0
- package/build/sdk/contracts/legacySdkAdapter.d.ts.map +1 -1
- package/build/sdk/contracts/protocol.d.ts +3 -3
- package/build/sdk/contracts/protocol.d.ts.map +1 -1
- package/build/sdk/contracts/protocol.js +3 -2
- package/build/sdk/contracts/protocol.js.map +1 -1
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.d.ts +8 -0
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js +63 -0
- package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js.map +1 -0
- package/build/sdk/legacy/client/runtime/clientFactory.d.ts +4 -1
- package/build/sdk/legacy/client/runtime/clientFactory.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/clientFactory.js +41 -14
- package/build/sdk/legacy/client/runtime/clientFactory.js.map +1 -1
- package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/clientManager.js +20 -7
- package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts +8 -0
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.js +44 -0
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.js.map +1 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts +4 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +20 -0
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +2 -0
- package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +3 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +98 -4
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
- package/build/sdk/legacy/commands/serve.d.ts +2 -0
- package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
- package/build/sdk/legacy/commands/serve.js +40 -9
- package/build/sdk/legacy/commands/serve.js.map +1 -1
- package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/notificationHandlers.js +19 -47
- package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts +7 -0
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.js +134 -0
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.js.map +1 -0
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +4 -3
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/requestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/requestHandlers.js +5 -47
- package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts +17 -0
- package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/requestInteractionScope.js +223 -0
- package/build/sdk/legacy/server/protocol/requestInteractionScope.js.map +1 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +3 -2
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +72 -17
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/connectionManager.js +3 -0
- package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.d.ts +2 -0
- package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.js +35 -8
- package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
- package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -1
- package/build/sdk/legacy/shared/capabilityListCapture.js +3 -0
- package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -1
- package/build/sdk/legacy/shared/schemaProjection.d.ts +11 -0
- package/build/sdk/legacy/shared/schemaProjection.d.ts.map +1 -0
- package/build/sdk/legacy/shared/schemaProjection.js +45 -0
- package/build/sdk/legacy/shared/schemaProjection.js.map +1 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +31 -0
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +7 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +29 -4
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
- package/build/sdk/legacy/transport/http/server.d.ts +1 -1
- package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/server.js +2 -1
- package/build/sdk/legacy/transport/http/server.js.map +1 -1
- package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -1
- package/build/sdk/legacy/transport/transportFactory.js +4 -3
- package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts +4 -52
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js +5 -311
- package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js.map +1 -1
- package/build/server.d.ts +2 -2
- package/build/server.d.ts.map +1 -1
- package/build/server.js +8 -6
- package/build/server.js.map +1 -1
- package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/adminRoutes.js +37 -0
- package/build/transport/http/routes/adminRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/inspectRoutes.js +178 -85
- package/build/transport/http/routes/inspectRoutes.js.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.d.ts +7 -1
- package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.js +121 -16
- package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
- package/build/transport/http/routes/modernInteractionBinding.d.ts +14 -0
- package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -0
- package/build/transport/http/routes/modernInteractionBinding.js +142 -0
- package/build/transport/http/routes/modernInteractionBinding.js.map +1 -0
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/toolRoutes.js +123 -27
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
- package/build/transport/http/utils/contextExtractor.js +29 -0
- package/build/transport/http/utils/contextExtractor.js.map +1 -1
- package/build/utils/core/errorHandling.d.ts.map +1 -1
- package/build/utils/core/errorHandling.js +19 -4
- package/build/utils/core/errorHandling.js.map +1 -1
- package/build/utils/filePermissions.d.ts +3 -0
- package/build/utils/filePermissions.d.ts.map +1 -1
- package/build/utils/filePermissions.js +10 -0
- package/build/utils/filePermissions.js.map +1 -1
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +42 -2
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/build/utils/watchPath.d.ts +3 -0
- package/build/utils/watchPath.d.ts.map +1 -0
- package/build/utils/watchPath.js +7 -0
- package/build/utils/watchPath.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,6 +3,9 @@ import { ConnectionResolver } from '../server/connectionResolver.js';
|
|
|
3
3
|
import { getDisabledSourceToolError, isSourceToolDisabled } from '../server/disabledTools.js';
|
|
4
4
|
import { applySourceToolDescription } from '../server/toolDescriptionOverrides.js';
|
|
5
5
|
import { ClientStatus, } from '../types/index.js';
|
|
6
|
+
import { SchemaBoundaryError } from '../validation/schemaBoundary.js';
|
|
7
|
+
import { admitToolSchemas, prepareToolValidation, projectToolSchemas, schemaInputErrorResult, } from '../validation/toolSchemaBoundary.js';
|
|
8
|
+
import { gatewayFailureFromUnknown } from '../../gateway/contracts/gatewayFailure.js';
|
|
6
9
|
import logger from '../../logger/logger.js';
|
|
7
10
|
import { walkCapabilityPages, } from './capabilityPagination.js';
|
|
8
11
|
import { getCapabilityVisibleServerNames } from './capabilityVisibility.js';
|
|
@@ -84,7 +87,34 @@ export class CapabilityCatalog {
|
|
|
84
87
|
async listVisibleTools(options = {}, visibility, queryOptions = {}) {
|
|
85
88
|
const refresh = await this.resolveRefreshFacts(queryOptions.refreshIntent ?? 'never', 'list');
|
|
86
89
|
const registry = this.visibleToolRegistry(visibility);
|
|
87
|
-
const
|
|
90
|
+
const admitted = [];
|
|
91
|
+
for (const tool of registry.getAllTools()) {
|
|
92
|
+
try {
|
|
93
|
+
const key = tool.connectionKey ?? tool.server;
|
|
94
|
+
const definition = tool.definition ??
|
|
95
|
+
this.deps.schemaCache.getIfCached(key, tool.name) ??
|
|
96
|
+
(this.deps.loadSchema ? await this.deps.loadSchema(key, tool.name, queryOptions.signal) : undefined);
|
|
97
|
+
if (!definition)
|
|
98
|
+
continue;
|
|
99
|
+
const contracts = await admitToolSchemas(definition, {
|
|
100
|
+
routeKey: JSON.stringify([key, tool.name]),
|
|
101
|
+
generation: this.deps.outboundConnections.get(key)?.adapter.connectionId ?? 'internal',
|
|
102
|
+
sourceRevision: this.deps.outboundConnections.get(key)?.adapter.protocolRevision,
|
|
103
|
+
signal: queryOptions.signal,
|
|
104
|
+
});
|
|
105
|
+
admitted.push({
|
|
106
|
+
tool: projectToolSchemas(definition, contracts),
|
|
107
|
+
server: tool.server,
|
|
108
|
+
connectionKey: key,
|
|
109
|
+
tags: tool.tags,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (!(error instanceof SchemaBoundaryError) || error.retryable)
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const result = ToolRegistry.fromToolsWithServer(admitted).listTools(options);
|
|
88
118
|
const tools = result.tools;
|
|
89
119
|
const servers = Array.from(new Set(tools.map((tool) => tool.server))).sort();
|
|
90
120
|
const routes = tools
|
|
@@ -105,13 +135,20 @@ export class CapabilityCatalog {
|
|
|
105
135
|
return { schema: {}, error: access.error, refresh };
|
|
106
136
|
}
|
|
107
137
|
const { route } = access;
|
|
108
|
-
|
|
138
|
+
const connection = access.connection;
|
|
139
|
+
if (access.tool.definition && connection) {
|
|
109
140
|
const cached = this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName);
|
|
110
141
|
const fromCache = cached !== null && JSON.stringify(cached) === JSON.stringify(access.tool.definition);
|
|
142
|
+
const contracts = await admitToolSchemas(access.tool.definition, {
|
|
143
|
+
routeKey: JSON.stringify(route),
|
|
144
|
+
generation: connection.adapter.connectionId,
|
|
145
|
+
sourceRevision: connection.adapter.protocolRevision,
|
|
146
|
+
signal: queryOptions.signal,
|
|
147
|
+
});
|
|
111
148
|
if (!fromCache)
|
|
112
149
|
this.deps.schemaCache.set(route.connectionKey, route.toolName, access.tool.definition);
|
|
113
150
|
return {
|
|
114
|
-
schema: applySourceToolDescription(access.tool.definition, this.deps.getServerConfigs()[route.server], route.server),
|
|
151
|
+
schema: applySourceToolDescription(projectToolSchemas(access.tool.definition, contracts), this.deps.getServerConfigs()[route.server], route.server),
|
|
115
152
|
fromCache,
|
|
116
153
|
route,
|
|
117
154
|
refresh,
|
|
@@ -119,8 +156,14 @@ export class CapabilityCatalog {
|
|
|
119
156
|
}
|
|
120
157
|
const cached = this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName);
|
|
121
158
|
if (cached) {
|
|
159
|
+
const contracts = await admitToolSchemas(cached, {
|
|
160
|
+
routeKey: JSON.stringify(route),
|
|
161
|
+
generation: this.deps.outboundConnections.get(route.connectionKey)?.adapter.connectionId ?? '',
|
|
162
|
+
sourceRevision: this.deps.outboundConnections.get(route.connectionKey)?.adapter.protocolRevision,
|
|
163
|
+
signal: queryOptions.signal,
|
|
164
|
+
});
|
|
122
165
|
return {
|
|
123
|
-
schema: applySourceToolDescription(cached, this.deps.getServerConfigs()[route.server], route.server),
|
|
166
|
+
schema: applySourceToolDescription(projectToolSchemas(cached, contracts), this.deps.getServerConfigs()[route.server], route.server),
|
|
124
167
|
fromCache: true,
|
|
125
168
|
route,
|
|
126
169
|
refresh,
|
|
@@ -137,21 +180,28 @@ export class CapabilityCatalog {
|
|
|
137
180
|
};
|
|
138
181
|
}
|
|
139
182
|
try {
|
|
140
|
-
const tool = await this.deps.schemaCache.getOrLoad(route.connectionKey, route.toolName, this.deps.loadSchema);
|
|
183
|
+
const tool = await this.deps.schemaCache.getOrLoad(route.connectionKey, route.toolName, this.deps.loadSchema, queryOptions.signal);
|
|
184
|
+
const contracts = await admitToolSchemas(tool, {
|
|
185
|
+
routeKey: JSON.stringify(route),
|
|
186
|
+
generation: this.deps.outboundConnections.get(route.connectionKey)?.adapter.connectionId ?? '',
|
|
187
|
+
sourceRevision: this.deps.outboundConnections.get(route.connectionKey)?.adapter.protocolRevision,
|
|
188
|
+
signal: queryOptions.signal,
|
|
189
|
+
});
|
|
141
190
|
return {
|
|
142
|
-
schema: applySourceToolDescription(tool, this.deps.getServerConfigs()[route.server], route.server),
|
|
191
|
+
schema: applySourceToolDescription(projectToolSchemas(tool, contracts), this.deps.getServerConfigs()[route.server], route.server),
|
|
143
192
|
fromCache: false,
|
|
144
193
|
route,
|
|
145
194
|
refresh,
|
|
146
195
|
};
|
|
147
196
|
}
|
|
148
197
|
catch (error) {
|
|
149
|
-
|
|
198
|
+
const failure = gatewayFailureFromUnknown(error, 'transport');
|
|
199
|
+
logger.error('Failed to load upstream tool schema', { failure });
|
|
150
200
|
return {
|
|
151
201
|
schema: {},
|
|
152
202
|
error: {
|
|
153
203
|
type: 'upstream',
|
|
154
|
-
message:
|
|
204
|
+
message: failure.message,
|
|
155
205
|
},
|
|
156
206
|
refresh,
|
|
157
207
|
};
|
|
@@ -187,27 +237,54 @@ export class CapabilityCatalog {
|
|
|
187
237
|
};
|
|
188
238
|
}
|
|
189
239
|
try {
|
|
190
|
-
const
|
|
240
|
+
const adapter = connection.adapter;
|
|
241
|
+
const definition = access.tool.definition ??
|
|
242
|
+
this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName) ??
|
|
243
|
+
(this.deps.loadSchema
|
|
244
|
+
? await this.deps.loadSchema(route.connectionKey, route.toolName, queryOptions.signal)
|
|
245
|
+
: undefined);
|
|
246
|
+
if (!definition)
|
|
247
|
+
throw new SchemaBoundaryError('schema_invalid');
|
|
248
|
+
const binding = {
|
|
249
|
+
routeKey: JSON.stringify(route),
|
|
250
|
+
generation: adapter.connectionId,
|
|
251
|
+
sourceRevision: adapter.protocolRevision,
|
|
252
|
+
signal: queryOptions.signal,
|
|
253
|
+
};
|
|
254
|
+
const contracts = await admitToolSchemas(definition, binding);
|
|
255
|
+
const validateOutput = await prepareToolValidation(contracts, args.args, binding);
|
|
256
|
+
const current = this.resolveVisibleToolAccess(args, visibility);
|
|
257
|
+
if (queryOptions.signal?.aborted ||
|
|
258
|
+
current.error ||
|
|
259
|
+
this.deps.outboundConnections.get(route.connectionKey) !== connection ||
|
|
260
|
+
connection.adapter !== adapter ||
|
|
261
|
+
JSON.stringify(current.route) !== JSON.stringify(route) ||
|
|
262
|
+
(current.tool.definition && JSON.stringify(current.tool.definition) !== JSON.stringify(definition)))
|
|
263
|
+
throw new SchemaBoundaryError('schema_invalid');
|
|
264
|
+
const result = await requestLegacyAdapter(adapter, 'tools/call', {
|
|
191
265
|
name: route.toolName,
|
|
192
266
|
arguments: args.args,
|
|
193
|
-
});
|
|
267
|
+
}, { signal: queryOptions.signal, timeoutMs: connection.requestTimeoutMs });
|
|
268
|
+
await validateOutput(result);
|
|
194
269
|
return { result, server: route.server, tool: route.toolName, route, refresh };
|
|
195
270
|
}
|
|
196
271
|
catch (error) {
|
|
197
|
-
|
|
198
|
-
|
|
272
|
+
if (error instanceof SchemaBoundaryError && error.code === 'schema_input_invalid')
|
|
273
|
+
return { result: schemaInputErrorResult(), server: route.server, tool: route.toolName, route, refresh };
|
|
274
|
+
if (error instanceof SchemaBoundaryError)
|
|
199
275
|
return {
|
|
200
276
|
result: {},
|
|
201
277
|
server: route.server,
|
|
202
278
|
tool: route.toolName,
|
|
203
279
|
route,
|
|
280
|
+
refresh,
|
|
204
281
|
error: {
|
|
205
|
-
type: '
|
|
206
|
-
message:
|
|
282
|
+
type: !error.retryable && error.phase === 'input' ? 'validation' : 'upstream',
|
|
283
|
+
message: error.code,
|
|
207
284
|
},
|
|
208
|
-
refresh,
|
|
209
285
|
};
|
|
210
|
-
|
|
286
|
+
const failure = gatewayFailureFromUnknown(error, 'transport');
|
|
287
|
+
logger.error('Tool invocation failed', { failure });
|
|
211
288
|
return {
|
|
212
289
|
result: {},
|
|
213
290
|
server: route.server,
|
|
@@ -215,7 +292,7 @@ export class CapabilityCatalog {
|
|
|
215
292
|
route,
|
|
216
293
|
error: {
|
|
217
294
|
type: 'upstream',
|
|
218
|
-
message:
|
|
295
|
+
message: failure.message,
|
|
219
296
|
},
|
|
220
297
|
refresh,
|
|
221
298
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { OutboundConnection, OutboundConnections } from '../types/index.js';
|
|
2
|
+
import { MCPError } from '../../utils/core/errorTypes.js';
|
|
3
|
+
export declare class CapabilityProvidersUnavailableError extends MCPError {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export declare class CapabilityCursorCapacityError extends MCPError {
|
|
7
|
+
constructor();
|
|
8
|
+
}
|
|
2
9
|
/** MCP result metadata key used to describe a partial aggregate walk. */
|
|
3
10
|
export declare const CAPABILITY_PAGINATION_META_KEY = "app.1mcp/capability-pagination";
|
|
4
11
|
/** Capability collections supported by aggregate pagination. */
|
|
@@ -18,6 +25,8 @@ export interface CapabilityPageProvider<T> {
|
|
|
18
25
|
export interface CapabilityPaginationResult<T> extends CapabilityPage<T> {
|
|
19
26
|
_meta?: Record<string, unknown>;
|
|
20
27
|
}
|
|
28
|
+
/** Stable process-local invalidation epoch for operations pinned to these connections. */
|
|
29
|
+
export declare function getCapabilityPaginationGeneration(connections: OutboundConnections, kind: CapabilityKind): string;
|
|
21
30
|
/** Invalidate outstanding cursors for one capability collection. */
|
|
22
31
|
export declare function advanceCapabilityPaginationGeneration(connections: OutboundConnections, kind: CapabilityKind): void;
|
|
23
32
|
/** Register generation invalidation for a provider created after inbound setup. */
|
|
@@ -29,6 +38,7 @@ export declare function registerCapabilityPaginationNotifications(connections: O
|
|
|
29
38
|
export declare function unregisterCapabilityPaginationForwarder(connections: OutboundConnections, forwardingKey: object): void;
|
|
30
39
|
/** Detach a disposed catalog scope from every adapter it observed, including replaced adapters. */
|
|
31
40
|
export declare function unregisterCapabilityPaginationConnections(connections: OutboundConnections): void;
|
|
41
|
+
export declare function compareCodePoints(left: string, right: string): number;
|
|
32
42
|
/** Walk visible capability providers using one aggregate cursor contract. */
|
|
33
43
|
export declare function walkCapabilityPages<T>(options: {
|
|
34
44
|
connections: OutboundConnections;
|
|
@@ -38,5 +48,6 @@ export declare function walkCapabilityPages<T>(options: {
|
|
|
38
48
|
filterSelection: unknown;
|
|
39
49
|
extraGenerationSignature?: unknown;
|
|
40
50
|
enablePagination: boolean;
|
|
51
|
+
failedProviderIds?: readonly string[];
|
|
41
52
|
}): Promise<CapabilityPaginationResult<T>>;
|
|
42
53
|
//# sourceMappingURL=capabilityPagination.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityPagination.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityPagination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilityPagination.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityPagination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAIzD,qBAAa,mCAAoC,SAAQ,QAAQ;;CAKhE;AAED,qBAAa,6BAA8B,SAAQ,QAAQ;;CAO1D;AAED,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,mCAAmC,CAAC;AAE/E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAErF,kDAAkD;AAClD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AA0ED,0FAA0F;AAC1F,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAGhH;AAED,oEAAoE;AACpE,wBAAgB,qCAAqC,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAIlH;AAED,mFAAmF;AACnF,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,EAC9B,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9F,IAAI,CAwBN;AAqCD,+EAA+E;AAC/E,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAIrH;AAED,mGAAmG;AACnG,wBAAgB,yCAAyC,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAWhG;AAoBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrE;AA+JD,6EAA6E;AAC7E,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IACpD,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CA+GzC"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createHmac, randomBytes, randomUUID, timingSafeEqual } from 'node:crypto';
|
|
2
2
|
import { ErrorCode } from '../../sdk/contracts/index.js';
|
|
3
3
|
import { MCPError } from '../../utils/core/errorTypes.js';
|
|
4
4
|
import { clearConfiguredToolSnapshot } from './configuredToolSnapshot.js';
|
|
5
|
+
export class CapabilityProvidersUnavailableError extends MCPError {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('Capability providers are unavailable', -32000);
|
|
8
|
+
Object.setPrototypeOf(this, CapabilityProvidersUnavailableError.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class CapabilityCursorCapacityError extends MCPError {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('Capability cursor capacity exceeded', -32000, {
|
|
14
|
+
'app.1mcp/failure': { kind: 'transport', code: 'gateway_overloaded' },
|
|
15
|
+
});
|
|
16
|
+
Object.setPrototypeOf(this, CapabilityCursorCapacityError.prototype);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
5
19
|
/** MCP result metadata key used to describe a partial aggregate walk. */
|
|
6
20
|
export const CAPABILITY_PAGINATION_META_KEY = 'app.1mcp/capability-pagination';
|
|
7
21
|
const runtimeStates = new WeakMap();
|
|
@@ -9,6 +23,14 @@ const notificationStates = new WeakMap();
|
|
|
9
23
|
const registeredAdapters = new WeakMap();
|
|
10
24
|
const clientIds = new WeakMap();
|
|
11
25
|
const MAX_DISABLED_PAGINATION_PAGES = 1000;
|
|
26
|
+
const CURSOR_TTL_MS = 15 * 60 * 1000;
|
|
27
|
+
const MAX_CURSOR_LENGTH = 4 * 1024;
|
|
28
|
+
const upstreamCursors = new Map();
|
|
29
|
+
const MAX_GLOBAL_CURSOR_ENTRIES = 4000;
|
|
30
|
+
const MAX_SCOPE_CURSOR_ENTRIES = 1000;
|
|
31
|
+
const MAX_GLOBAL_CURSOR_BYTES = 64 * 1024 * 1024;
|
|
32
|
+
const MAX_SCOPE_CURSOR_BYTES = 32 * 1024 * 1024;
|
|
33
|
+
const cursorSecret = randomBytes(32);
|
|
12
34
|
let nextClientId = 1;
|
|
13
35
|
function getClientId(client) {
|
|
14
36
|
let id = clientIds.get(client);
|
|
@@ -31,9 +53,16 @@ function getRuntimeState(connections) {
|
|
|
31
53
|
}
|
|
32
54
|
return state;
|
|
33
55
|
}
|
|
56
|
+
/** Stable process-local invalidation epoch for operations pinned to these connections. */
|
|
57
|
+
export function getCapabilityPaginationGeneration(connections, kind) {
|
|
58
|
+
const state = getRuntimeState(connections);
|
|
59
|
+
return `${state.nonce}:${state.generation[kind]}`;
|
|
60
|
+
}
|
|
34
61
|
/** Invalidate outstanding cursors for one capability collection. */
|
|
35
62
|
export function advanceCapabilityPaginationGeneration(connections, kind) {
|
|
36
|
-
getRuntimeState(connections)
|
|
63
|
+
const state = getRuntimeState(connections);
|
|
64
|
+
state.generation[kind] += 1;
|
|
65
|
+
pruneCursorStore(state);
|
|
37
66
|
}
|
|
38
67
|
/** Register generation invalidation for a provider created after inbound setup. */
|
|
39
68
|
export function registerCapabilityPaginationNotifications(connections, connection, forwardingKey, forward) {
|
|
@@ -109,6 +138,12 @@ export function unregisterCapabilityPaginationConnections(connections) {
|
|
|
109
138
|
notificationStates.get(adapter)?.connections.delete(connections);
|
|
110
139
|
}
|
|
111
140
|
registeredAdapters.delete(connections);
|
|
141
|
+
const state = runtimeStates.get(connections);
|
|
142
|
+
if (state)
|
|
143
|
+
for (const [key, entry] of upstreamCursors) {
|
|
144
|
+
if (entry.runtimeNonce === state.nonce)
|
|
145
|
+
upstreamCursors.delete(key);
|
|
146
|
+
}
|
|
112
147
|
runtimeStates.delete(connections);
|
|
113
148
|
}
|
|
114
149
|
function stableValue(value) {
|
|
@@ -122,11 +157,11 @@ function stableValue(value) {
|
|
|
122
157
|
return value;
|
|
123
158
|
}
|
|
124
159
|
function digest(value) {
|
|
125
|
-
return
|
|
160
|
+
return createHmac('sha256', cursorSecret)
|
|
126
161
|
.update(JSON.stringify(stableValue(value)))
|
|
127
162
|
.digest('base64url');
|
|
128
163
|
}
|
|
129
|
-
function compareCodePoints(left, right) {
|
|
164
|
+
export function compareCodePoints(left, right) {
|
|
130
165
|
const leftPoints = Array.from(left, (value) => value.codePointAt(0));
|
|
131
166
|
const rightPoints = Array.from(right, (value) => value.codePointAt(0));
|
|
132
167
|
const length = Math.min(leftPoints.length, rightPoints.length);
|
|
@@ -156,20 +191,78 @@ function observeGeneration(connections, kind, extraSignature) {
|
|
|
156
191
|
state.generation[kind] += 1;
|
|
157
192
|
}
|
|
158
193
|
state.signature[kind] = signature;
|
|
194
|
+
pruneCursorStore(state);
|
|
159
195
|
return `${state.nonce}:${state.generation[kind]}`;
|
|
160
196
|
}
|
|
161
197
|
function invalidCursor(reason) {
|
|
162
198
|
throw new MCPError('Invalid capability pagination cursor', ErrorCode.InvalidParams, { reason });
|
|
163
199
|
}
|
|
164
|
-
function
|
|
165
|
-
|
|
200
|
+
function pruneCursorStore(state) {
|
|
201
|
+
const now = Date.now();
|
|
202
|
+
for (const [key, entry] of upstreamCursors) {
|
|
203
|
+
if (entry.expiresAt <= now ||
|
|
204
|
+
(state?.nonce === entry.runtimeNonce && entry.generation !== `${state.nonce}:${state.generation[entry.kind]}`))
|
|
205
|
+
upstreamCursors.delete(key);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function encodeCursor(cursor, scope, runtimeNonce) {
|
|
209
|
+
const bytes = cursor.u === undefined ? 0 : Buffer.byteLength(cursor.u);
|
|
210
|
+
if (bytes > 64 * 1024)
|
|
211
|
+
throw new Error('Upstream cursor exceeds the limit');
|
|
212
|
+
const upstreamKey = cursor.u === undefined ? undefined : digest([scope, cursor.g, cursor.u]);
|
|
213
|
+
const payload = Buffer.from(JSON.stringify({ ...cursor, u: upstreamKey })).toString('base64url');
|
|
214
|
+
const signature = createHmac('sha256', cursorSecret).update(payload).digest('base64url');
|
|
215
|
+
const encoded = `${payload}.${signature}`;
|
|
216
|
+
if (encoded.length > MAX_CURSOR_LENGTH)
|
|
217
|
+
throw new Error('Upstream pagination cursor exceeds the limit');
|
|
218
|
+
if (upstreamKey !== undefined && cursor.u !== undefined) {
|
|
219
|
+
pruneCursorStore();
|
|
220
|
+
const existing = upstreamCursors.get(upstreamKey);
|
|
221
|
+
if (!existing) {
|
|
222
|
+
let globalBytes = 0;
|
|
223
|
+
let scopeBytes = 0;
|
|
224
|
+
let scopeEntries = 0;
|
|
225
|
+
for (const entry of upstreamCursors.values()) {
|
|
226
|
+
globalBytes += entry.bytes;
|
|
227
|
+
if (entry.scope === scope) {
|
|
228
|
+
scopeBytes += entry.bytes;
|
|
229
|
+
scopeEntries++;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (upstreamCursors.size >= MAX_GLOBAL_CURSOR_ENTRIES ||
|
|
233
|
+
scopeEntries >= MAX_SCOPE_CURSOR_ENTRIES ||
|
|
234
|
+
globalBytes + bytes > MAX_GLOBAL_CURSOR_BYTES ||
|
|
235
|
+
scopeBytes + bytes > MAX_SCOPE_CURSOR_BYTES) {
|
|
236
|
+
throw new CapabilityCursorCapacityError();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
upstreamCursors.set(upstreamKey, {
|
|
240
|
+
value: cursor.u,
|
|
241
|
+
expiresAt: Math.max(cursor.e, existing?.expiresAt ?? 0),
|
|
242
|
+
scope,
|
|
243
|
+
runtimeNonce,
|
|
244
|
+
kind: cursor.k,
|
|
245
|
+
generation: cursor.g,
|
|
246
|
+
bytes,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
return encoded;
|
|
166
250
|
}
|
|
167
251
|
function decodeCursor(value) {
|
|
168
|
-
if (!/^[A-Za-z0-9_-]
|
|
252
|
+
if (value.length > MAX_CURSOR_LENGTH || !/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{43}$/.test(value)) {
|
|
169
253
|
invalidCursor('malformed');
|
|
254
|
+
}
|
|
255
|
+
const [payload, signature] = value.split('.');
|
|
256
|
+
const expected = createHmac('sha256', cursorSecret).update(payload).digest();
|
|
257
|
+
const actual = Buffer.from(signature, 'base64url');
|
|
258
|
+
if (actual.length !== expected.length ||
|
|
259
|
+
!timingSafeEqual(actual, expected) ||
|
|
260
|
+
actual.toString('base64url') !== signature) {
|
|
261
|
+
invalidCursor('authentication_failed');
|
|
262
|
+
}
|
|
170
263
|
let decoded;
|
|
171
264
|
try {
|
|
172
|
-
decoded = JSON.parse(Buffer.from(
|
|
265
|
+
decoded = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
|
|
173
266
|
}
|
|
174
267
|
catch {
|
|
175
268
|
invalidCursor('malformed');
|
|
@@ -177,34 +270,32 @@ function decodeCursor(value) {
|
|
|
177
270
|
if (!decoded || typeof decoded !== 'object' || Array.isArray(decoded))
|
|
178
271
|
invalidCursor('malformed');
|
|
179
272
|
const cursor = decoded;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
keys.some((key) => !['v', 'k', 'g', 'f', 'p', 'u', 'x'].includes(key)) ||
|
|
273
|
+
if (cursor.v !== 2 ||
|
|
274
|
+
!Number.isSafeInteger(cursor.e) ||
|
|
275
|
+
Object.keys(cursor).some((key) => !['v', 'e', 'k', 'g', 'f', 'p', 'u', 'x'].includes(key)) ||
|
|
184
276
|
!['tools', 'resources', 'resourceTemplates', 'prompts'].includes(cursor.k ?? '') ||
|
|
185
277
|
typeof cursor.g !== 'string' ||
|
|
186
278
|
typeof cursor.f !== 'string' ||
|
|
187
279
|
typeof cursor.p !== 'string' ||
|
|
188
280
|
(cursor.u !== undefined && typeof cursor.u !== 'string') ||
|
|
189
|
-
|
|
281
|
+
(cursor.x !== undefined && (typeof cursor.x !== 'string' || !/^[A-Za-z0-9_-]+$/.test(cursor.x))))
|
|
190
282
|
invalidCursor('malformed');
|
|
191
|
-
|
|
283
|
+
if (cursor.e <= Date.now())
|
|
284
|
+
invalidCursor('expired');
|
|
192
285
|
return cursor;
|
|
193
286
|
}
|
|
194
|
-
function partialMeta(failurePositions,
|
|
287
|
+
function partialMeta(failurePositions, generation) {
|
|
195
288
|
if (failurePositions.length === 0)
|
|
196
289
|
return undefined;
|
|
197
290
|
return {
|
|
198
291
|
[CAPABILITY_PAGINATION_META_KEY]: {
|
|
199
292
|
partial: true,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
description: 'Restart the capability listing without a cursor to retry unavailable providers.',
|
|
207
|
-
},
|
|
293
|
+
complete: false,
|
|
294
|
+
generation,
|
|
295
|
+
failedSourceCount: failurePositions.length,
|
|
296
|
+
failureCategories: { upstream_list_failed: failurePositions.length },
|
|
297
|
+
retryable: true,
|
|
298
|
+
recovery: 'restart-walk',
|
|
208
299
|
},
|
|
209
300
|
};
|
|
210
301
|
}
|
|
@@ -235,23 +326,39 @@ function decodeFailurePositions(value, providerCount) {
|
|
|
235
326
|
/** Walk visible capability providers using one aggregate cursor contract. */
|
|
236
327
|
export async function walkCapabilityPages(options) {
|
|
237
328
|
const providers = [...options.providers].sort((left, right) => compareCodePoints(left.name, right.name) || compareCodePoints(left.id, right.id));
|
|
238
|
-
const generation = observeGeneration(options.connections, options.kind,
|
|
239
|
-
|
|
329
|
+
const generation = observeGeneration(options.connections, options.kind, {
|
|
330
|
+
providers: providers.map(({ id, name }) => ({ id, name })),
|
|
331
|
+
extra: options.extraGenerationSignature,
|
|
332
|
+
});
|
|
333
|
+
const filter = digest({ selection: options.filterSelection, enablePagination: options.enablePagination });
|
|
334
|
+
const runtimeNonce = getRuntimeState(options.connections).nonce;
|
|
335
|
+
const scope = digest([runtimeNonce, options.kind, filter]);
|
|
240
336
|
let providerIndex = 0;
|
|
241
337
|
let upstreamCursor;
|
|
242
|
-
let failures = [];
|
|
243
|
-
|
|
338
|
+
let failures = providers.flatMap((provider, index) => options.failedProviderIds?.includes(provider.id) ? [index] : []);
|
|
339
|
+
let expiresAt = Date.now() + CURSOR_TTL_MS;
|
|
340
|
+
if (options.cursor !== undefined) {
|
|
244
341
|
const cursor = decodeCursor(options.cursor);
|
|
342
|
+
expiresAt = cursor.e;
|
|
245
343
|
if (cursor.k !== options.kind)
|
|
246
344
|
invalidCursor('capability_kind_mismatch');
|
|
247
345
|
if (cursor.g !== generation)
|
|
248
346
|
invalidCursor('stale_generation');
|
|
249
347
|
if (cursor.f !== filter)
|
|
250
348
|
invalidCursor('filter_mismatch');
|
|
251
|
-
providerIndex = providers.findIndex((provider) => provider.id === cursor.p);
|
|
349
|
+
providerIndex = providers.findIndex((provider) => createHmac('sha256', cursorSecret).update(provider.id).digest('base64url') === cursor.p);
|
|
252
350
|
if (providerIndex < 0)
|
|
253
351
|
invalidCursor('provider_missing');
|
|
254
|
-
|
|
352
|
+
if (cursor.u !== undefined) {
|
|
353
|
+
const upstream = upstreamCursors.get(cursor.u);
|
|
354
|
+
if (!upstream ||
|
|
355
|
+
upstream.expiresAt <= Date.now() ||
|
|
356
|
+
upstream.scope !== scope ||
|
|
357
|
+
upstream.generation !== generation) {
|
|
358
|
+
invalidCursor('expired');
|
|
359
|
+
}
|
|
360
|
+
upstreamCursor = upstream.value;
|
|
361
|
+
}
|
|
255
362
|
failures = decodeFailurePositions(cursor.x, providers.length);
|
|
256
363
|
}
|
|
257
364
|
if (!options.enablePagination) {
|
|
@@ -271,45 +378,56 @@ export async function walkCapabilityPages(options) {
|
|
|
271
378
|
}
|
|
272
379
|
if (cursor !== undefined)
|
|
273
380
|
seenCursors.add(cursor);
|
|
274
|
-
} while (cursor);
|
|
381
|
+
} while (cursor !== undefined);
|
|
275
382
|
}
|
|
276
|
-
catch {
|
|
383
|
+
catch (error) {
|
|
384
|
+
if (error instanceof CapabilityCursorCapacityError)
|
|
385
|
+
throw error;
|
|
277
386
|
if (!failures.includes(position))
|
|
278
387
|
failures.push(position);
|
|
279
388
|
}
|
|
280
389
|
}
|
|
281
|
-
|
|
390
|
+
if (providers.length > 0 && failures.length === providers.length && items.length === 0) {
|
|
391
|
+
throw new CapabilityProvidersUnavailableError();
|
|
392
|
+
}
|
|
393
|
+
return { items, _meta: partialMeta(failures, generation) };
|
|
282
394
|
}
|
|
283
395
|
while (providerIndex < providers.length) {
|
|
284
396
|
const provider = providers[providerIndex];
|
|
285
397
|
try {
|
|
286
398
|
const page = await provider.list(upstreamCursor);
|
|
287
|
-
const nextProviderIndex = page.nextCursor ? providerIndex : providerIndex + 1;
|
|
399
|
+
const nextProviderIndex = page.nextCursor !== undefined ? providerIndex : providerIndex + 1;
|
|
288
400
|
const nextProvider = providers[nextProviderIndex];
|
|
289
401
|
const nextCursor = nextProvider
|
|
290
402
|
? encodeCursor({
|
|
291
|
-
v:
|
|
403
|
+
v: 2,
|
|
404
|
+
e: expiresAt,
|
|
292
405
|
k: options.kind,
|
|
293
406
|
g: generation,
|
|
294
407
|
f: filter,
|
|
295
|
-
p: nextProvider.id,
|
|
408
|
+
p: createHmac('sha256', cursorSecret).update(nextProvider.id).digest('base64url'),
|
|
296
409
|
u: page.nextCursor,
|
|
297
410
|
x: encodeFailurePositions(failures, providers.length),
|
|
298
|
-
})
|
|
411
|
+
}, scope, runtimeNonce)
|
|
299
412
|
: undefined;
|
|
300
|
-
if (page.items.length > 0 || page.nextCursor) {
|
|
301
|
-
return { items: page.items, nextCursor, _meta: partialMeta(failures,
|
|
413
|
+
if (page.items.length > 0 || page.nextCursor !== undefined) {
|
|
414
|
+
return { items: page.items, nextCursor, _meta: partialMeta(failures, generation) };
|
|
302
415
|
}
|
|
303
416
|
providerIndex += 1;
|
|
304
417
|
upstreamCursor = undefined;
|
|
305
418
|
}
|
|
306
|
-
catch {
|
|
419
|
+
catch (error) {
|
|
420
|
+
if (error instanceof CapabilityCursorCapacityError)
|
|
421
|
+
throw error;
|
|
307
422
|
if (!failures.includes(providerIndex))
|
|
308
423
|
failures.push(providerIndex);
|
|
309
424
|
providerIndex += 1;
|
|
310
425
|
upstreamCursor = undefined;
|
|
311
426
|
}
|
|
312
427
|
}
|
|
313
|
-
|
|
428
|
+
if (options.cursor === undefined && providers.length > 0 && failures.length === providers.length) {
|
|
429
|
+
throw new CapabilityProvidersUnavailableError();
|
|
430
|
+
}
|
|
431
|
+
return { items: [], _meta: partialMeta(failures, generation) };
|
|
314
432
|
}
|
|
315
433
|
//# sourceMappingURL=capabilityPagination.js.map
|