@1mcp/agent 0.39.0-beta.3 → 0.39.0-beta.4
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-D_GlqLxL.js → admin-OAuthServicesWorkspace-CKR1HA-8.js} +1 -1
- package/build/admin/assets/{admin-console-CMRxMjQo.js → admin-console-OfHKqRm-.js} +3 -3
- package/build/admin/index.html +1 -1
- package/build/auth/oauthAuthority.d.ts +149 -0
- package/build/auth/oauthAuthority.d.ts.map +1 -0
- package/build/auth/oauthAuthority.js +101 -0
- package/build/auth/oauthAuthority.js.map +1 -0
- package/build/auth/oauthAuthorizationFlow.d.ts +7 -1
- package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
- package/build/auth/oauthAuthorizationFlow.js +60 -74
- package/build/auth/oauthAuthorizationFlow.js.map +1 -1
- package/build/auth/oauthEndpointFetch.d.ts +20 -0
- package/build/auth/oauthEndpointFetch.d.ts.map +1 -0
- package/build/auth/oauthEndpointFetch.js +246 -0
- package/build/auth/oauthEndpointFetch.js.map +1 -0
- package/build/auth/sessionTypes.d.ts +1 -1
- package/build/auth/storage/clientSessionRepository.d.ts +19 -0
- package/build/auth/storage/clientSessionRepository.d.ts.map +1 -1
- package/build/auth/storage/clientSessionRepository.js +178 -0
- package/build/auth/storage/clientSessionRepository.js.map +1 -1
- package/build/auth/storage/fileStorageService.d.ts +9 -1
- package/build/auth/storage/fileStorageService.d.ts.map +1 -1
- package/build/auth/storage/fileStorageService.js +32 -5
- package/build/auth/storage/fileStorageService.js.map +1 -1
- package/build/auth/storage/inboundOAuthStorage.d.ts +14 -0
- package/build/auth/storage/inboundOAuthStorage.d.ts.map +1 -0
- package/build/auth/storage/inboundOAuthStorage.js +29 -0
- package/build/auth/storage/inboundOAuthStorage.js.map +1 -0
- package/build/auth/storage/nativeCredentialStore.d.ts +44 -0
- package/build/auth/storage/nativeCredentialStore.d.ts.map +1 -0
- package/build/auth/storage/nativeCredentialStore.js +177 -0
- package/build/auth/storage/nativeCredentialStore.js.map +1 -0
- package/build/auth/storage/oauthStorageService.d.ts +8 -1
- package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
- package/build/auth/storage/oauthStorageService.js +69 -47
- package/build/auth/storage/oauthStorageService.js.map +1 -1
- package/build/auth/storage/protectedRecordStorage.d.ts +129 -0
- package/build/auth/storage/protectedRecordStorage.d.ts.map +1 -0
- package/build/auth/storage/protectedRecordStorage.js +1139 -0
- package/build/auth/storage/protectedRecordStorage.js.map +1 -0
- package/build/auth/storage/sessionRepository.d.ts.map +1 -1
- package/build/auth/storage/sessionRepository.js +10 -0
- package/build/auth/storage/sessionRepository.js.map +1 -1
- package/build/auth/storage/upstreamOAuthStorage.d.ts +15 -0
- package/build/auth/storage/upstreamOAuthStorage.d.ts.map +1 -0
- package/build/auth/storage/upstreamOAuthStorage.js +25 -0
- package/build/auth/storage/upstreamOAuthStorage.js.map +1 -0
- package/build/auth/storage/upstreamOAuthStoragePath.d.ts +3 -0
- package/build/auth/storage/upstreamOAuthStoragePath.d.ts.map +1 -0
- package/build/auth/storage/upstreamOAuthStoragePath.js +8 -0
- package/build/auth/storage/upstreamOAuthStoragePath.js.map +1 -0
- package/build/commands/auth/exportOAuthCredentials.d.ts +9 -0
- package/build/commands/auth/exportOAuthCredentials.d.ts.map +1 -0
- package/build/commands/auth/exportOAuthCredentials.js +71 -0
- package/build/commands/auth/exportOAuthCredentials.js.map +1 -0
- package/build/commands/auth/exportUpstreamCredentials.d.ts +5 -0
- package/build/commands/auth/exportUpstreamCredentials.d.ts.map +1 -0
- package/build/commands/auth/exportUpstreamCredentials.js +6 -0
- package/build/commands/auth/exportUpstreamCredentials.js.map +1 -0
- package/build/commands/auth/index.d.ts.map +1 -1
- package/build/commands/auth/index.js +23 -1
- package/build/commands/auth/index.js.map +1 -1
- package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
- package/build/commands/inspect/inspectUtils.js +2 -3
- package/build/commands/inspect/inspectUtils.js.map +1 -1
- package/build/commands/run/runUtils.js +2 -2
- package/build/commands/run/runUtils.js.map +1 -1
- package/build/commands/serve/index.d.ts +5 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +5 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts.map +1 -1
- package/build/commands/serve/serveBackground.js +1 -0
- package/build/commands/serve/serveBackground.js.map +1 -1
- package/build/config/configLoader.d.ts.map +1 -1
- package/build/config/configLoader.js +13 -0
- package/build/config/configLoader.js.map +1 -1
- package/build/config/configManager.d.ts.map +1 -1
- package/build/config/configManager.js +44 -2
- 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 +3 -1
- package/build/config/envProcessor.js.map +1 -1
- package/build/config/mcpConfigManager.d.ts.map +1 -1
- package/build/config/mcpConfigManager.js +4 -1
- package/build/config/mcpConfigManager.js.map +1 -1
- package/build/config/projectConfigLoader.d.ts.map +1 -1
- package/build/config/projectConfigLoader.js +7 -0
- package/build/config/projectConfigLoader.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.js +31 -2
- package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts +3 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +9 -2
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityCatalog.d.ts +24 -1
- package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/capabilityCatalog.js +410 -39
- package/build/core/capabilities/capabilityCatalog.js.map +1 -1
- package/build/core/capabilities/capabilityPagination.d.ts +18 -1
- package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
- package/build/core/capabilities/capabilityPagination.js +101 -15
- package/build/core/capabilities/capabilityPagination.js.map +1 -1
- package/build/core/capabilities/capabilityVisibility.d.ts +13 -1
- package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -1
- package/build/core/capabilities/capabilityVisibility.js +24 -1
- package/build/core/capabilities/capabilityVisibility.js.map +1 -1
- package/build/core/capabilities/catalogGeneration.d.ts.map +1 -1
- package/build/core/capabilities/catalogGeneration.js +20 -1
- package/build/core/capabilities/catalogGeneration.js.map +1 -1
- package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -0
- package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
- package/build/core/capabilities/configuredToolSnapshot.js +30 -4
- package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +2 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.js +20 -4
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/metaToolProvider.d.ts +3 -1
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
- package/build/core/capabilities/metaToolProvider.js +42 -4
- package/build/core/capabilities/metaToolProvider.js.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +15 -2
- package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
- package/build/core/capabilities/runtimeCapabilityCatalog.js +153 -16
- package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
- package/build/core/capabilities/schemaCache.d.ts.map +1 -1
- package/build/core/capabilities/schemaCache.js +41 -0
- package/build/core/capabilities/schemaCache.js.map +1 -1
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts.map +1 -1
- package/build/core/capabilities/schemas/metaToolSchemas.js +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.js.map +1 -1
- package/build/core/capabilities/toolRegistry.d.ts +7 -3
- package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
- package/build/core/capabilities/toolRegistry.js +28 -9
- package/build/core/capabilities/toolRegistry.js.map +1 -1
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +3 -1
- package/build/core/instructions/instructionAggregator.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 +3 -3
- package/build/core/loading/loadingStateTracker.d.ts.map +1 -1
- package/build/core/loading/loadingStateTracker.js +11 -2
- package/build/core/loading/loadingStateTracker.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js +6 -2
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/protocol/requestHandlerUtils.d.ts +2 -2
- package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
- package/build/core/protocol/requestHandlerUtils.js +7 -4
- package/build/core/protocol/requestHandlerUtils.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +1 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +1 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/disabledTools.d.ts +1 -1
- package/build/core/server/disabledTools.d.ts.map +1 -1
- package/build/core/server/disabledTools.js +18 -25
- package/build/core/server/disabledTools.js.map +1 -1
- package/build/core/server/processIdentity.d.ts.map +1 -1
- package/build/core/server/processIdentity.js +67 -18
- package/build/core/server/processIdentity.js.map +1 -1
- package/build/core/server/runtimeLaunchIpc.d.ts +14 -1
- package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -1
- package/build/core/server/runtimeReplacementConfig.d.ts +14 -1
- package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
- package/build/core/server/toolDescriptionOverrides.d.ts +1 -0
- package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
- package/build/core/server/toolDescriptionOverrides.js +30 -5
- package/build/core/server/toolDescriptionOverrides.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +21 -0
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +3 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
- package/build/core/tools/internal/schemas/discovery.d.ts +1 -1
- package/build/core/tools/internal/schemas/index.d.ts +1 -1
- package/build/core/types/transport.d.ts +25 -2
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +12 -0
- package/build/core/types/transport.js.map +1 -1
- package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
- package/build/domains/admin/configuredToolInventory.js +47 -9
- 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 +13 -3
- package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
- package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -1
- package/build/gateway/adapters/modern/modernInboundEraAdapter.js +3 -3
- package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -1
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -1
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +4 -0
- package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
- package/build/gateway/contracts/gatewayFailure.d.ts +39 -1
- package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
- package/build/gateway/contracts/gatewayFailure.js +139 -0
- package/build/gateway/contracts/gatewayFailure.js.map +1 -1
- package/build/gateway/interactions/nativeInputResponses.d.ts +16 -0
- package/build/gateway/interactions/nativeInputResponses.d.ts.map +1 -0
- package/build/gateway/interactions/nativeInputResponses.js +76 -0
- package/build/gateway/interactions/nativeInputResponses.js.map +1 -0
- package/build/gateway/interactions/validateInteractionResponse.d.ts.map +1 -1
- package/build/gateway/interactions/validateInteractionResponse.js +20 -1
- package/build/gateway/interactions/validateInteractionResponse.js.map +1 -1
- package/build/gateway/ports/outboundEraAdapter.d.ts +2 -0
- package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -1
- package/build/logger/diagnosticRedaction.d.ts +3 -0
- package/build/logger/diagnosticRedaction.d.ts.map +1 -0
- package/build/logger/diagnosticRedaction.js +12 -0
- package/build/logger/diagnosticRedaction.js.map +1 -0
- package/build/logger/httpDiagnostics.d.ts +25 -0
- package/build/logger/httpDiagnostics.d.ts.map +1 -0
- package/build/logger/httpDiagnostics.js +125 -0
- package/build/logger/httpDiagnostics.js.map +1 -0
- package/build/logger/localDiagnosticRecord.d.ts +11 -0
- package/build/logger/localDiagnosticRecord.d.ts.map +1 -0
- package/build/logger/localDiagnosticRecord.js +9 -0
- package/build/logger/localDiagnosticRecord.js.map +1 -0
- package/build/logger/localDiagnostics.d.ts +5 -0
- package/build/logger/localDiagnostics.d.ts.map +1 -0
- package/build/logger/localDiagnostics.js +116 -0
- package/build/logger/localDiagnostics.js.map +1 -0
- package/build/logger/logger.d.ts +7 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +14 -0
- package/build/logger/logger.js.map +1 -1
- package/build/observability/events/registry.d.ts +163 -49
- package/build/observability/events/registry.d.ts.map +1 -1
- package/build/observability/events/registry.js +136 -49
- package/build/observability/events/registry.js.map +1 -1
- package/build/observability/privacy/fields.d.ts +3 -1
- package/build/observability/privacy/fields.d.ts.map +1 -1
- package/build/observability/privacy/fields.js +23 -0
- package/build/observability/privacy/fields.js.map +1 -1
- package/build/sdk/contracts/catalogCoverageInvalidation.d.ts +4 -0
- package/build/sdk/contracts/catalogCoverageInvalidation.d.ts.map +1 -0
- package/build/sdk/contracts/catalogCoverageInvalidation.js +13 -0
- package/build/sdk/contracts/catalogCoverageInvalidation.js.map +1 -0
- package/build/sdk/contracts/mcpParamHeaders.d.ts +17 -0
- package/build/sdk/contracts/mcpParamHeaders.d.ts.map +1 -0
- package/build/sdk/contracts/mcpParamHeaders.js +134 -0
- package/build/sdk/contracts/mcpParamHeaders.js.map +1 -0
- package/build/sdk/contracts/requestProgress.d.ts +29 -0
- package/build/sdk/contracts/requestProgress.d.ts.map +1 -0
- package/build/sdk/contracts/requestProgress.js +126 -0
- package/build/sdk/contracts/requestProgress.js.map +1 -0
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +77 -84
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -1
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +632 -209
- package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -1
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -1
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +25 -7
- package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -1
- package/build/sdk/legacy/client/runtime/clientManager.d.ts +5 -1
- package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/clientManager.js +213 -6
- package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
- package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/connectionHandler.js +70 -4
- package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -1
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts +2 -1
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.js +11 -2
- package/build/sdk/legacy/client/runtime/legacyInteractionLease.js.map +1 -1
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +28 -2
- package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
- package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts +2 -0
- package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts.map +1 -0
- package/build/sdk/legacy/client/runtime/mcpParamHeaders.js +2 -0
- package/build/sdk/legacy/client/runtime/mcpParamHeaders.js.map +1 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +6 -0
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +117 -6
- package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +1 -1
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -1
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +68 -16
- package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -1
- package/build/sdk/legacy/commands/serve.d.ts +1 -0
- package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
- package/build/sdk/legacy/commands/serve.js +28 -2
- 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 +2 -6
- package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts +1 -1
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.js +31 -11
- package/build/sdk/legacy/server/protocol/privateInteractionConnection.js.map +1 -1
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +4 -4
- package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/requestInteractionScope.js +62 -10
- package/build/sdk/legacy/server/protocol/requestInteractionScope.js.map +1 -1
- package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts +8 -0
- package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts.map +1 -0
- package/build/sdk/legacy/server/protocol/requestProviderProgress.js +29 -0
- package/build/sdk/legacy/server/protocol/requestProviderProgress.js.map +1 -0
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
- package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +20 -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 +151 -60
- package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
- package/build/sdk/legacy/server/retained-sdk/LICENSE +21 -0
- package/build/sdk/legacy/server/retained-sdk/provenance.json +17 -0
- package/build/sdk/legacy/server/retained-sdk/streamableHttp.js +160 -0
- package/build/sdk/legacy/server/retained-sdk/webStandardStreamableHttp.js +950 -0
- package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/clientInstancePool.js +34 -6
- package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -1
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +4 -2
- package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/serverManager.js +3 -1
- package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
- package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -1
- package/build/sdk/legacy/server/runtime/templateServerManager.js +32 -7
- package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -1
- package/build/sdk/legacy/server/streamableHttp.js +1 -1
- package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -1
- package/build/sdk/legacy/shared/resourceTemplateRouting.js +29 -11
- package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -1
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +12 -1
- package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +4 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +11 -0
- package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
- package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
- package/build/sdk/legacy/transport/http/server.js +16 -2
- 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 +34 -12
- package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
- package/build/transport/http/middlewares/httpRequestLogger.d.ts +4 -2
- package/build/transport/http/middlewares/httpRequestLogger.d.ts.map +1 -1
- package/build/transport/http/middlewares/httpRequestLogger.js +135 -16
- package/build/transport/http/middlewares/httpRequestLogger.js.map +1 -1
- package/build/transport/http/routes/cliTokenRoute.d.ts.map +1 -1
- package/build/transport/http/routes/cliTokenRoute.js +1 -0
- package/build/transport/http/routes/cliTokenRoute.js.map +1 -1
- package/build/transport/http/routes/healthRoutes.d.ts +11 -1
- package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/healthRoutes.js +6 -2
- package/build/transport/http/routes/healthRoutes.js.map +1 -1
- package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
- package/build/transport/http/routes/inspectHelpers.js +4 -3
- package/build/transport/http/routes/inspectHelpers.js.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.d.ts +4 -0
- package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/modernHttpRoutes.js +168 -24
- package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
- package/build/transport/http/routes/modernInteractionBinding.d.ts +2 -1
- package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -1
- package/build/transport/http/routes/modernInteractionBinding.js +7 -4
- package/build/transport/http/routes/modernInteractionBinding.js.map +1 -1
- package/build/transport/http/routes/modernToolHeaderRegistry.d.ts +16 -0
- package/build/transport/http/routes/modernToolHeaderRegistry.d.ts.map +1 -0
- package/build/transport/http/routes/modernToolHeaderRegistry.js +161 -0
- package/build/transport/http/routes/modernToolHeaderRegistry.js.map +1 -0
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +6 -3
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/toolRoutes.js +18 -2
- package/build/transport/http/routes/toolRoutes.js.map +1 -1
- package/build/utils/core/parsing.d.ts +2 -0
- package/build/utils/core/parsing.d.ts.map +1 -1
- package/build/utils/core/parsing.js +19 -0
- package/build/utils/core/parsing.js.map +1 -1
- package/build/utils/core/resourceUris.d.ts +6 -0
- package/build/utils/core/resourceUris.d.ts.map +1 -0
- package/build/utils/core/resourceUris.js +104 -0
- package/build/utils/core/resourceUris.js.map +1 -0
- package/build/utils/core/toolNames.d.ts +8 -0
- package/build/utils/core/toolNames.d.ts.map +1 -0
- package/build/utils/core/toolNames.js +56 -0
- package/build/utils/core/toolNames.js.map +1 -0
- package/package.json +68 -64
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { lookup } from 'node:dns/promises';
|
|
2
|
+
import http from 'node:http';
|
|
3
|
+
import https from 'node:https';
|
|
4
|
+
import { isIP } from 'node:net';
|
|
5
|
+
import { Readable, Transform } from 'node:stream';
|
|
6
|
+
import { oauthAuthorityError } from './oauthAuthority.js';
|
|
7
|
+
export const OAUTH_RESPONSE_LIMIT = 1024 * 1024;
|
|
8
|
+
export const OAUTH_FETCH_TIMEOUT_MS = 10_000;
|
|
9
|
+
export class OAuthResourceRedirectError extends Error {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('Configured MCP resource redirects; configure the upstream URL to its final destination');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function isPrivateOAuthAddress(address) {
|
|
15
|
+
const ip = address.toLowerCase().replace(/^\[|\]$/g, '');
|
|
16
|
+
if (ip.includes(':')) {
|
|
17
|
+
if (ip.startsWith('::ffff:'))
|
|
18
|
+
return isPrivateOAuthAddress(ip.slice(7));
|
|
19
|
+
// Fail closed for non-global unicast IPv6, including mapped/transition forms.
|
|
20
|
+
return (!/^[23][0-9a-f]{3}:/.test(ip) ||
|
|
21
|
+
ip.startsWith('2001:db8:') ||
|
|
22
|
+
ip.startsWith('2002:') ||
|
|
23
|
+
ip.startsWith('2001:0:') ||
|
|
24
|
+
ip.startsWith('2001::'));
|
|
25
|
+
}
|
|
26
|
+
const parts = ip.split('.').map(Number);
|
|
27
|
+
if (parts.length !== 4 || parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255))
|
|
28
|
+
return true;
|
|
29
|
+
const [a, b] = parts;
|
|
30
|
+
return (a === 0 ||
|
|
31
|
+
a === 10 ||
|
|
32
|
+
a === 127 ||
|
|
33
|
+
a >= 224 ||
|
|
34
|
+
(a === 169 && b === 254) ||
|
|
35
|
+
(a === 172 && b >= 16 && b <= 31) ||
|
|
36
|
+
(a === 192 && (b === 168 || b === 0)) ||
|
|
37
|
+
(a === 100 && b >= 64 && b <= 127) ||
|
|
38
|
+
(a === 198 && (b === 18 || b === 19)));
|
|
39
|
+
}
|
|
40
|
+
function isConfiguredLocalOrigin(url, configuredResource, configuredIssuer) {
|
|
41
|
+
for (const configuredValue of [configuredResource, configuredIssuer]) {
|
|
42
|
+
if (!configuredValue)
|
|
43
|
+
continue;
|
|
44
|
+
const configured = new URL(configuredValue);
|
|
45
|
+
const hostname = configured.hostname.replace(/^\[|\]$/g, '');
|
|
46
|
+
const local = configured.hostname === 'localhost' || (isIP(hostname) !== 0 && isPrivateOAuthAddress(hostname));
|
|
47
|
+
if (local && url.origin === configured.origin)
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
export function validateOAuthEndpoint(value, configuredResource, expectedOrigin, configuredIssuer) {
|
|
53
|
+
try {
|
|
54
|
+
const url = new URL(value);
|
|
55
|
+
const localException = isConfiguredLocalOrigin(url, configuredResource, configuredIssuer);
|
|
56
|
+
if (url.username || url.password || url.hash)
|
|
57
|
+
throw oauthAuthorityError();
|
|
58
|
+
if (url.protocol !== 'https:' && !(localException && url.protocol === 'http:'))
|
|
59
|
+
throw oauthAuthorityError();
|
|
60
|
+
if (expectedOrigin && url.origin !== expectedOrigin)
|
|
61
|
+
throw oauthAuthorityError();
|
|
62
|
+
if (url.hostname === 'localhost' && !localException)
|
|
63
|
+
throw oauthAuthorityError();
|
|
64
|
+
if (isIP(url.hostname.replace(/^\[|\]$/g, '')) && isPrivateOAuthAddress(url.hostname) && !localException)
|
|
65
|
+
throw oauthAuthorityError();
|
|
66
|
+
return url;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
throw oauthAuthorityError();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Pin the DNS result into the actual socket lookup, not just a preflight check. */
|
|
73
|
+
export function createOAuthEndpointFetch(options) {
|
|
74
|
+
return async (input, init) => {
|
|
75
|
+
let resourceRequest = false;
|
|
76
|
+
try {
|
|
77
|
+
const request = input instanceof Request ? input : undefined;
|
|
78
|
+
const target = new URL(request?.url ?? String(input));
|
|
79
|
+
const resource = new URL(options.resource);
|
|
80
|
+
const isResource = options.isResource(target);
|
|
81
|
+
const url = isResource ? target : validateOAuthEndpoint(target.href, options.resource, undefined, options.issuer);
|
|
82
|
+
if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password || url.hash)
|
|
83
|
+
throw oauthAuthorityError();
|
|
84
|
+
resourceRequest = isResource;
|
|
85
|
+
const deadline = AbortSignal.timeout(OAUTH_FETCH_TIMEOUT_MS);
|
|
86
|
+
const signal = init?.signal ?? request?.signal;
|
|
87
|
+
const boundedSignal = signal ? AbortSignal.any([signal, deadline]) : deadline;
|
|
88
|
+
const inputInit = request
|
|
89
|
+
? {
|
|
90
|
+
method: request.method,
|
|
91
|
+
headers: request.headers,
|
|
92
|
+
body: request.method === 'GET' || request.method === 'HEAD' ? undefined : await request.text(),
|
|
93
|
+
...init,
|
|
94
|
+
}
|
|
95
|
+
: init;
|
|
96
|
+
const safeInit = await options.beforeRequest(url, { ...inputInit, signal: isResource ? signal : boundedSignal });
|
|
97
|
+
const hostname = url.hostname.replace(/^\[|\]$/g, '');
|
|
98
|
+
const addresses = isIP(hostname)
|
|
99
|
+
? [{ address: hostname, family: isIP(hostname) }]
|
|
100
|
+
: await Promise.race([
|
|
101
|
+
lookup(hostname, { all: true }),
|
|
102
|
+
new Promise((_resolve, reject) => boundedSignal.addEventListener('abort', () => reject(oauthAuthorityError()), { once: true })),
|
|
103
|
+
]);
|
|
104
|
+
const localException = isResource || isConfiguredLocalOrigin(url, options.resource, options.issuer);
|
|
105
|
+
if (!addresses.length || (!localException && addresses.some((item) => isPrivateOAuthAddress(item.address))))
|
|
106
|
+
throw oauthAuthorityError();
|
|
107
|
+
const resolved = addresses
|
|
108
|
+
.map((item) => item.address)
|
|
109
|
+
.sort()
|
|
110
|
+
.join(',');
|
|
111
|
+
await options.pinDestination(url.host, resolved, safeInit);
|
|
112
|
+
if (boundedSignal.aborted)
|
|
113
|
+
throw oauthAuthorityError();
|
|
114
|
+
const headers = new Headers(safeInit.headers);
|
|
115
|
+
const body = safeInit.body;
|
|
116
|
+
if (body !== undefined && body !== null && typeof body !== 'string' && !(body instanceof URLSearchParams))
|
|
117
|
+
throw oauthAuthorityError();
|
|
118
|
+
const response = await new Promise((resolve, reject) => {
|
|
119
|
+
const outgoing = (url.protocol === 'https:' ? https : http).request(url, {
|
|
120
|
+
family: addresses[0].family,
|
|
121
|
+
method: safeInit.method ?? 'GET',
|
|
122
|
+
headers: Object.fromEntries(headers.entries()),
|
|
123
|
+
signal: safeInit.signal ?? undefined,
|
|
124
|
+
lookup: (_name, options, callback) => {
|
|
125
|
+
if (options.all)
|
|
126
|
+
callback(null, addresses);
|
|
127
|
+
else
|
|
128
|
+
callback(null, addresses[0].address, addresses[0].family);
|
|
129
|
+
},
|
|
130
|
+
}, resolve);
|
|
131
|
+
outgoing.on('error', reject);
|
|
132
|
+
if (!isResource)
|
|
133
|
+
outgoing.setTimeout(OAUTH_FETCH_TIMEOUT_MS, () => outgoing.destroy(oauthAuthorityError()));
|
|
134
|
+
outgoing.end(body?.toString());
|
|
135
|
+
});
|
|
136
|
+
const status = response.statusCode ?? 500;
|
|
137
|
+
if (status >= 300 && status < 400) {
|
|
138
|
+
response.destroy();
|
|
139
|
+
if (isResource)
|
|
140
|
+
throw new OAuthResourceRedirectError();
|
|
141
|
+
throw oauthAuthorityError();
|
|
142
|
+
}
|
|
143
|
+
const responseHeaders = new Headers();
|
|
144
|
+
for (const [key, value] of Object.entries(response.headers)) {
|
|
145
|
+
if (Array.isArray(value))
|
|
146
|
+
value.forEach((item) => responseHeaders.append(key, item));
|
|
147
|
+
else if (value !== undefined)
|
|
148
|
+
responseHeaders.set(key, value);
|
|
149
|
+
}
|
|
150
|
+
// MCP response streams remain streaming; OAuth metadata/token bodies are bounded.
|
|
151
|
+
const oauthResponse = !isResource;
|
|
152
|
+
if (!oauthResponse) {
|
|
153
|
+
let stream = response;
|
|
154
|
+
if (url.href === resource.href &&
|
|
155
|
+
options.acceptSseEndpoint &&
|
|
156
|
+
responseHeaders.get('content-type')?.includes('text/event-stream')) {
|
|
157
|
+
let pending = '';
|
|
158
|
+
let observed = false;
|
|
159
|
+
const parser = new Transform({
|
|
160
|
+
transform(chunk, _encoding, callback) {
|
|
161
|
+
if (!observed) {
|
|
162
|
+
pending += chunk.toString('utf8');
|
|
163
|
+
if (pending.length > 16 * 1024) {
|
|
164
|
+
callback(oauthAuthorityError());
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const end = pending.search(/\r?\n\r?\n/);
|
|
168
|
+
if (end >= 0) {
|
|
169
|
+
const event = pending.slice(0, end);
|
|
170
|
+
if (/^event:\s*endpoint$/m.test(event)) {
|
|
171
|
+
const data = /^data:\s*(.+)$/m.exec(event)?.[1];
|
|
172
|
+
try {
|
|
173
|
+
if (data)
|
|
174
|
+
options.acceptSseEndpoint(data);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
callback(oauthAuthorityError());
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
observed = true;
|
|
181
|
+
}
|
|
182
|
+
pending = pending.slice(end).replace(/^\s+/, '');
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
callback(null, chunk);
|
|
186
|
+
},
|
|
187
|
+
});
|
|
188
|
+
stream = response.pipe(parser);
|
|
189
|
+
}
|
|
190
|
+
return new Response(status === 204 || status === 205 || status === 304
|
|
191
|
+
? null
|
|
192
|
+
: Readable.toWeb(stream), { status, headers: responseHeaders });
|
|
193
|
+
}
|
|
194
|
+
const chunks = [];
|
|
195
|
+
let size = 0;
|
|
196
|
+
for await (const chunk of response) {
|
|
197
|
+
const bytes = Buffer.from(chunk);
|
|
198
|
+
size += bytes.length;
|
|
199
|
+
if (size > OAUTH_RESPONSE_LIMIT) {
|
|
200
|
+
response.destroy();
|
|
201
|
+
throw oauthAuthorityError();
|
|
202
|
+
}
|
|
203
|
+
chunks.push(bytes);
|
|
204
|
+
}
|
|
205
|
+
let text = Buffer.concat(chunks).toString('utf8');
|
|
206
|
+
if (status >= 200 && status < 300 && (safeInit.method ?? 'GET') === 'GET') {
|
|
207
|
+
const value = JSON.parse(text);
|
|
208
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
209
|
+
throw oauthAuthorityError();
|
|
210
|
+
text = JSON.stringify(options.metadata(value, url, safeInit));
|
|
211
|
+
}
|
|
212
|
+
if (status >= 200 && status < 300 && (safeInit.method ?? 'GET') === 'POST') {
|
|
213
|
+
const value = JSON.parse(text);
|
|
214
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
215
|
+
throw oauthAuthorityError();
|
|
216
|
+
options.response(value, url, safeInit);
|
|
217
|
+
}
|
|
218
|
+
// Provider error descriptions are untrusted and may echo secrets.
|
|
219
|
+
if (status >= 400) {
|
|
220
|
+
let code = 'server_error';
|
|
221
|
+
try {
|
|
222
|
+
const value = JSON.parse(text);
|
|
223
|
+
if (value &&
|
|
224
|
+
typeof value === 'object' &&
|
|
225
|
+
'error' in value &&
|
|
226
|
+
['invalid_client', 'invalid_grant', 'invalid_scope', 'unauthorized_client', 'access_denied'].includes(String(value.error)))
|
|
227
|
+
code = String(value.error);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
/* Return bounded non-secret OAuth error. */
|
|
231
|
+
}
|
|
232
|
+
text = JSON.stringify({ error: code });
|
|
233
|
+
}
|
|
234
|
+
responseHeaders.delete('content-length');
|
|
235
|
+
responseHeaders.delete('content-encoding');
|
|
236
|
+
return new Response(status === 204 || status === 205 ? null : text, { status, headers: responseHeaders });
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
options.onFailure(resourceRequest);
|
|
240
|
+
if (error instanceof OAuthResourceRedirectError)
|
|
241
|
+
throw error;
|
|
242
|
+
throw oauthAuthorityError();
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=oauthEndpointFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauthEndpointFetch.js","sourceRoot":"","sources":["../../src/auth/oauthEndpointFetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,8 +41,8 @@ export declare const RefreshTokenLookupDataSchema: z.ZodObject<{
|
|
|
41
41
|
runtimeScopeId: z.ZodString;
|
|
42
42
|
tokenDigest: z.ZodString;
|
|
43
43
|
state: z.ZodEnum<{
|
|
44
|
-
current: "current";
|
|
45
44
|
consumed: "consumed";
|
|
45
|
+
current: "current";
|
|
46
46
|
}>;
|
|
47
47
|
expires: z.ZodNumber;
|
|
48
48
|
createdAt: z.ZodNumber;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type BoundClientSession, type OAuthAttempt, type OAuthAuthority, type OAuthAuthorityContext } from '../oauthAuthority.js';
|
|
1
2
|
import { ClientSessionData } from '../sessionTypes.js';
|
|
2
3
|
import { FileStorageService } from './fileStorageService.js';
|
|
3
4
|
/**
|
|
@@ -34,6 +35,24 @@ import { FileStorageService } from './fileStorageService.js';
|
|
|
34
35
|
export declare class ClientSessionRepository {
|
|
35
36
|
private storage;
|
|
36
37
|
constructor(storage: FileStorageService);
|
|
38
|
+
claimContext(slot: string, context: OAuthAuthorityContext, observedGeneration: string | null, signal?: AbortSignal): Promise<string>;
|
|
39
|
+
getClaim(slot: string): {
|
|
40
|
+
requestVersion: number;
|
|
41
|
+
joinable: boolean;
|
|
42
|
+
fingerprint: string;
|
|
43
|
+
generation: string;
|
|
44
|
+
destinations: Record<string, string>;
|
|
45
|
+
createdAt: number;
|
|
46
|
+
expires: number;
|
|
47
|
+
} | null;
|
|
48
|
+
reserveRequest(slot: string, generation: string): Promise<number>;
|
|
49
|
+
pinDestination(slot: string, generation: string, host: string, addresses: string): Promise<void>;
|
|
50
|
+
getBound(slot: string): BoundClientSession | null;
|
|
51
|
+
activate(slot: string, authority: OAuthAuthority, discovery: string, claim: string, requestVersion?: number): Promise<BoundClientSession>;
|
|
52
|
+
updateBound(slot: string, generation: string, operation: (record: BoundClientSession) => void, requestVersion?: number): Promise<BoundClientSession>;
|
|
53
|
+
addAttempt(slot: string, generation: string, state: string, attempt: OAuthAttempt, requestVersion?: number): Promise<void>;
|
|
54
|
+
consumeAttempt(slot: string, generation: string, state: string, validate: (attempt: OAuthAttempt) => void): Promise<OAuthAttempt>;
|
|
55
|
+
quarantine(serverName: string): Promise<void>;
|
|
37
56
|
/**
|
|
38
57
|
* Saves or updates a client session.
|
|
39
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAIvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAK3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAO9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAEzC,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,EAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IA0BlB,QAAQ,CAAC,IAAI,EAAE,MAAM;;;;;;;;;IAgBf,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BtG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAI3C,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAkCxB,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,EAC/C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAqBxB,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAkBV,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GACxC,OAAO,CAAC,YAAY,CAAC;IAclB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;;;;;;OAOG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAerF;;;;;OAKG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOjD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAOnC;;;;;;;OAOG;IACH,IAAI,IAAI,MAAM,EAAE;IA0BhB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { BoundClientSessionSchema, OAUTH_AUTHORITY_TTL_MS, OAUTH_MAX_ATTEMPTS, oauthAuthorityError, oauthConfigurationFingerprintAsync, oauthDigest, sameAuthority, } from '../oauthAuthority.js';
|
|
1
3
|
import { AUTH_CONFIG } from '../../constants.js';
|
|
2
4
|
import logger from '../../logger/logger.js';
|
|
3
5
|
import { sanitizeServerName } from '../../utils/validation/sanitization.js';
|
|
6
|
+
import { z } from 'zod';
|
|
4
7
|
/**
|
|
5
8
|
* ClientSessionRepository handles OAuth 2.1 client session storage using the layered storage architecture.
|
|
6
9
|
*
|
|
@@ -37,6 +40,181 @@ export class ClientSessionRepository {
|
|
|
37
40
|
constructor(storage) {
|
|
38
41
|
this.storage = storage;
|
|
39
42
|
}
|
|
43
|
+
async claimContext(slot, context, observedGeneration, signal) {
|
|
44
|
+
signal?.throwIfAborted();
|
|
45
|
+
// Derivation must not block the event loop or hold the cross-process slot lock.
|
|
46
|
+
const fingerprint = await oauthConfigurationFingerprintAsync(context, slot);
|
|
47
|
+
signal?.throwIfAborted();
|
|
48
|
+
return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
|
|
49
|
+
signal?.throwIfAborted();
|
|
50
|
+
const current = this.getClaim(slot);
|
|
51
|
+
const joiningInitial = observedGeneration === null && current?.joinable === true && current.fingerprint === fingerprint;
|
|
52
|
+
if (!joiningInitial && (current?.generation ?? null) !== observedGeneration)
|
|
53
|
+
throw oauthAuthorityError();
|
|
54
|
+
if (current?.fingerprint === fingerprint)
|
|
55
|
+
return current.generation;
|
|
56
|
+
const generation = randomUUID();
|
|
57
|
+
this.storage.writeDataDurable('oauth-context-', slot, {
|
|
58
|
+
fingerprint,
|
|
59
|
+
generation,
|
|
60
|
+
destinations: {},
|
|
61
|
+
requestVersion: 0,
|
|
62
|
+
joinable: current === null,
|
|
63
|
+
createdAt: Date.now(),
|
|
64
|
+
expires: Date.now() + OAUTH_AUTHORITY_TTL_MS,
|
|
65
|
+
});
|
|
66
|
+
return generation;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
getClaim(slot) {
|
|
70
|
+
return this.storage.readData('oauth-context-', slot, z.object({
|
|
71
|
+
requestVersion: z.number().int().nonnegative().default(0),
|
|
72
|
+
joinable: z.boolean().default(false),
|
|
73
|
+
fingerprint: z.string(),
|
|
74
|
+
generation: z.string(),
|
|
75
|
+
destinations: z.record(z.string(), z.string()).default({}),
|
|
76
|
+
createdAt: z.number(),
|
|
77
|
+
expires: z.number(),
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
async reserveRequest(slot, generation) {
|
|
81
|
+
return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
|
|
82
|
+
const claim = this.getClaim(slot);
|
|
83
|
+
if (!claim || claim.generation !== generation)
|
|
84
|
+
throw oauthAuthorityError();
|
|
85
|
+
return claim.requestVersion;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async pinDestination(slot, generation, host, addresses) {
|
|
89
|
+
const current = this.getClaim(slot);
|
|
90
|
+
if (!current || current.generation !== generation)
|
|
91
|
+
throw oauthAuthorityError();
|
|
92
|
+
const renewBefore = Date.now() + OAUTH_AUTHORITY_TTL_MS - 24 * 60 * 60 * 1000;
|
|
93
|
+
const bound = this.getBound(slot);
|
|
94
|
+
const boundNeedsRenewal = bound ? bound.generation !== generation || bound.expires <= renewBefore : false;
|
|
95
|
+
// Read current ownership on every request; caching it would miss another process's invalidation.
|
|
96
|
+
if (current.destinations[host] === addresses && current.expires > renewBefore && !boundNeedsRenewal)
|
|
97
|
+
return;
|
|
98
|
+
await this.storage.withExclusiveLock(`oauth-${slot}`, () => {
|
|
99
|
+
const claim = this.getClaim(slot);
|
|
100
|
+
if (!claim || claim.generation !== generation)
|
|
101
|
+
throw oauthAuthorityError();
|
|
102
|
+
const renewBefore = Date.now() + OAUTH_AUTHORITY_TTL_MS - 24 * 60 * 60 * 1000;
|
|
103
|
+
const record = this.getBound(slot);
|
|
104
|
+
if (record?.generation === generation && record.expires <= renewBefore) {
|
|
105
|
+
record.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
|
|
106
|
+
this.storage.writeDataDurable('oauth-bound-', slot, record);
|
|
107
|
+
}
|
|
108
|
+
if (claim.destinations[host] === addresses && claim.expires > renewBefore)
|
|
109
|
+
return;
|
|
110
|
+
if (!claim.destinations[host] && Object.keys(claim.destinations).length >= 32)
|
|
111
|
+
throw oauthAuthorityError();
|
|
112
|
+
// Each request validates DNS and pins its own socket; public answers may rotate.
|
|
113
|
+
claim.destinations[host] = addresses;
|
|
114
|
+
claim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
|
|
115
|
+
this.storage.writeDataDurable('oauth-context-', slot, claim);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
getBound(slot) {
|
|
119
|
+
return this.storage.readData('oauth-bound-', slot, BoundClientSessionSchema);
|
|
120
|
+
}
|
|
121
|
+
async activate(slot, authority, discovery, claim, requestVersion) {
|
|
122
|
+
return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
|
|
123
|
+
const authorityClaim = this.getClaim(slot);
|
|
124
|
+
if (authorityClaim?.generation !== claim)
|
|
125
|
+
throw oauthAuthorityError();
|
|
126
|
+
if (requestVersion !== undefined && authorityClaim.requestVersion !== requestVersion)
|
|
127
|
+
throw oauthAuthorityError();
|
|
128
|
+
authorityClaim.requestVersion++;
|
|
129
|
+
authorityClaim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
|
|
130
|
+
this.storage.writeDataDurable('oauth-context-', slot, authorityClaim);
|
|
131
|
+
const current = this.getBound(slot);
|
|
132
|
+
if (current && current.generation === claim && sameAuthority(current.authority, authority)) {
|
|
133
|
+
current.discovery = discovery;
|
|
134
|
+
current.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
|
|
135
|
+
this.storage.writeDataDurable('oauth-bound-', slot, current);
|
|
136
|
+
return current;
|
|
137
|
+
}
|
|
138
|
+
let generation = claim;
|
|
139
|
+
if (current && current.generation === claim) {
|
|
140
|
+
generation = randomUUID();
|
|
141
|
+
this.storage.writeDataDurable('oauth-context-', slot, { ...this.getClaim(slot), generation, joinable: false });
|
|
142
|
+
}
|
|
143
|
+
const record = {
|
|
144
|
+
authority,
|
|
145
|
+
discovery,
|
|
146
|
+
generation,
|
|
147
|
+
revision: 0,
|
|
148
|
+
attempts: {},
|
|
149
|
+
createdAt: Date.now(),
|
|
150
|
+
expires: Date.now() + OAUTH_AUTHORITY_TTL_MS,
|
|
151
|
+
};
|
|
152
|
+
this.storage.writeDataDurable('oauth-bound-', slot, record);
|
|
153
|
+
return record;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
async updateBound(slot, generation, operation, requestVersion) {
|
|
157
|
+
return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
|
|
158
|
+
const record = this.getBound(slot);
|
|
159
|
+
const claim = this.getClaim(slot);
|
|
160
|
+
if (!record || record.generation !== generation || claim?.generation !== generation)
|
|
161
|
+
throw oauthAuthorityError();
|
|
162
|
+
if (requestVersion !== undefined && claim.requestVersion !== requestVersion)
|
|
163
|
+
throw oauthAuthorityError();
|
|
164
|
+
operation(record);
|
|
165
|
+
if (requestVersion !== undefined)
|
|
166
|
+
claim.requestVersion++;
|
|
167
|
+
if (record.generation !== generation) {
|
|
168
|
+
claim.generation = record.generation;
|
|
169
|
+
claim.destinations = {};
|
|
170
|
+
claim.joinable = false;
|
|
171
|
+
}
|
|
172
|
+
claim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
|
|
173
|
+
record.expires = claim.expires;
|
|
174
|
+
this.storage.writeDataDurable('oauth-context-', slot, claim);
|
|
175
|
+
this.storage.writeDataDurable('oauth-bound-', slot, record);
|
|
176
|
+
return record;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async addAttempt(slot, generation, state, attempt, requestVersion) {
|
|
180
|
+
await this.updateBound(slot, generation, (record) => {
|
|
181
|
+
for (const [key, value] of Object.entries(record.attempts)) {
|
|
182
|
+
if (value.expires <= Date.now())
|
|
183
|
+
delete record.attempts[key];
|
|
184
|
+
}
|
|
185
|
+
if (Object.keys(record.attempts).length >= OAUTH_MAX_ATTEMPTS)
|
|
186
|
+
throw new Error('Too many pending OAuth authorizations; wait fifteen minutes');
|
|
187
|
+
const key = oauthDigest(state);
|
|
188
|
+
if (record.attempts[key])
|
|
189
|
+
throw oauthAuthorityError();
|
|
190
|
+
record.attempts[key] = attempt;
|
|
191
|
+
}, requestVersion);
|
|
192
|
+
}
|
|
193
|
+
async consumeAttempt(slot, generation, state, validate) {
|
|
194
|
+
let consumed;
|
|
195
|
+
await this.updateBound(slot, generation, (record) => {
|
|
196
|
+
const attempt = record.attempts[oauthDigest(state)];
|
|
197
|
+
if (!attempt || attempt.consumed || attempt.expires <= Date.now())
|
|
198
|
+
throw oauthAuthorityError();
|
|
199
|
+
validate(attempt);
|
|
200
|
+
consumed = structuredClone(attempt);
|
|
201
|
+
attempt.consumed = true;
|
|
202
|
+
// Keep a durable tombstone; never retain PKCE after consumption.
|
|
203
|
+
attempt.verifier = 'x'.repeat(43);
|
|
204
|
+
});
|
|
205
|
+
return consumed;
|
|
206
|
+
}
|
|
207
|
+
async quarantine(serverName) {
|
|
208
|
+
const key = oauthDigest(serverName);
|
|
209
|
+
await this.storage.withExclusiveLock(`oauth-migration-${key}`, () => {
|
|
210
|
+
const old = this.get(serverName);
|
|
211
|
+
if (!old)
|
|
212
|
+
return;
|
|
213
|
+
// Write protected rollback data before deleting the old source; retry is idempotent.
|
|
214
|
+
this.storage.writeDataDurable('oauth-quarantine-', key, old);
|
|
215
|
+
this.delete(serverName);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
40
218
|
/**
|
|
41
219
|
* Saves or updates a client session.
|
|
42
220
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientSessionRepository.js","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clientSessionRepository.js","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import { ExpirableData } from '../sessionTypes.js';
|
|
|
2
2
|
import { InsecureFilePermissionsError } from '../../utils/filePermissions.js';
|
|
3
3
|
import { type ZodType } from 'zod';
|
|
4
4
|
export { InsecureFilePermissionsError };
|
|
5
|
+
export declare class StorageLockBusyError extends Error {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Generic file storage service with unified cleanup for all expirable data types.
|
|
7
10
|
*
|
|
@@ -18,7 +21,10 @@ export { InsecureFilePermissionsError };
|
|
|
18
21
|
export declare class FileStorageService {
|
|
19
22
|
private storageDir;
|
|
20
23
|
private cleanupInterval;
|
|
21
|
-
constructor(baseDir?: string, subDir?: string
|
|
24
|
+
constructor(baseDir?: string, subDir?: string, options?: {
|
|
25
|
+
manageLifecycle?: boolean;
|
|
26
|
+
initializeDirectory?: boolean;
|
|
27
|
+
});
|
|
22
28
|
/**
|
|
23
29
|
* Hardens file or directory permissions on POSIX systems.
|
|
24
30
|
* Tolerates filesystems that lack POSIX permission capabilities (e.g. FAT, exFAT, FUSE)
|
|
@@ -118,6 +124,8 @@ export declare class FileStorageService {
|
|
|
118
124
|
* cannot block the Runtime Scope permanently.
|
|
119
125
|
*/
|
|
120
126
|
withExclusiveLock<T>(lockName: string, operation: () => Promise<T> | T): Promise<T>;
|
|
127
|
+
/** Synchronous callers cannot wait on a suspended async owner; fail busy and retry. */
|
|
128
|
+
withExclusiveLockSync<T>(lockName: string, operation: () => T): T;
|
|
121
129
|
/**
|
|
122
130
|
* Starts periodic cleanup of expired data files
|
|
123
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileStorageService.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/fileStorageService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAIL,4BAA4B,EAE7B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAK,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAItC,OAAO,EAAE,4BAA4B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"fileStorageService.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/fileStorageService.ts"],"names":[],"mappings":"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"}
|