@frontmcp/sdk 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -18
- package/package.json +20 -5
- package/src/app/app.registry.d.ts +3 -2
- package/src/app/app.registry.js +3 -1
- package/src/app/app.registry.js.map +1 -1
- package/src/app/instances/app.local.instance.js +2 -2
- package/src/app/instances/app.local.instance.js.map +1 -1
- package/src/auth/auth.registry.d.ts +34 -2
- package/src/auth/auth.registry.js +162 -24
- package/src/auth/auth.registry.js.map +1 -1
- package/src/auth/auth.utils.js +8 -9
- package/src/auth/auth.utils.js.map +1 -1
- package/src/auth/authorization/authorization.class.d.ts +125 -0
- package/src/auth/authorization/authorization.class.js +224 -0
- package/src/auth/authorization/authorization.class.js.map +1 -0
- package/src/auth/authorization/authorization.types.d.ts +300 -0
- package/src/auth/authorization/authorization.types.js +79 -0
- package/src/auth/authorization/authorization.types.js.map +1 -0
- package/src/auth/authorization/index.d.ts +5 -0
- package/src/auth/authorization/index.js +19 -0
- package/src/auth/authorization/index.js.map +1 -0
- package/src/auth/authorization/orchestrated.authorization.d.ts +242 -0
- package/src/auth/authorization/orchestrated.authorization.js +306 -0
- package/src/auth/authorization/orchestrated.authorization.js.map +1 -0
- package/src/auth/authorization/public.authorization.d.ts +91 -0
- package/src/auth/authorization/public.authorization.js +132 -0
- package/src/auth/authorization/public.authorization.js.map +1 -0
- package/src/auth/authorization/transparent.authorization.d.ts +130 -0
- package/src/auth/authorization/transparent.authorization.js +147 -0
- package/src/auth/authorization/transparent.authorization.js.map +1 -0
- package/src/auth/consent/consent.types.d.ts +111 -0
- package/src/auth/consent/consent.types.js +119 -0
- package/src/auth/consent/consent.types.js.map +1 -0
- package/src/auth/consent/index.d.ts +1 -0
- package/src/auth/consent/index.js +13 -0
- package/src/auth/consent/index.js.map +1 -0
- package/src/auth/detection/auth-provider-detection.d.ts +84 -0
- package/src/auth/detection/auth-provider-detection.js +230 -0
- package/src/auth/detection/auth-provider-detection.js.map +1 -0
- package/src/auth/detection/index.d.ts +1 -0
- package/src/auth/detection/index.js +15 -0
- package/src/auth/detection/index.js.map +1 -0
- package/src/auth/flows/auth.verify.flow.d.ts +110 -0
- package/src/auth/flows/auth.verify.flow.js +379 -0
- package/src/auth/flows/auth.verify.flow.js.map +1 -0
- package/src/auth/flows/oauth.authorize.flow.d.ts +118 -164
- package/src/auth/flows/oauth.authorize.flow.js +701 -33
- package/src/auth/flows/oauth.authorize.flow.js.map +1 -1
- package/src/auth/flows/oauth.callback.flow.d.ts +117 -0
- package/src/auth/flows/oauth.callback.flow.js +357 -0
- package/src/auth/flows/oauth.callback.flow.js.map +1 -0
- package/src/auth/flows/oauth.register.flow.d.ts +32 -125
- package/src/auth/flows/oauth.token.flow.d.ts +52 -154
- package/src/auth/flows/oauth.token.flow.js +193 -55
- package/src/auth/flows/oauth.token.flow.js.map +1 -1
- package/src/auth/flows/session.verify.flow.d.ts +66 -321
- package/src/auth/flows/session.verify.flow.js +107 -18
- package/src/auth/flows/session.verify.flow.js.map +1 -1
- package/src/auth/flows/well-known.jwks.flow.d.ts +34 -205
- package/src/auth/flows/well-known.jwks.flow.js +15 -8
- package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
- package/src/auth/flows/well-known.oauth-authorization-server.flow.d.ts +48 -223
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js +2 -3
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +1 -1
- package/src/auth/flows/well-known.prm.flow.d.ts +19 -120
- package/src/auth/flows/well-known.prm.flow.js +3 -4
- package/src/auth/flows/well-known.prm.flow.js.map +1 -1
- package/src/auth/instances/instance.local-primary-auth.d.ts +91 -4
- package/src/auth/instances/instance.local-primary-auth.js +236 -6
- package/src/auth/instances/instance.local-primary-auth.js.map +1 -1
- package/src/auth/instances/instance.remote-primary-auth.d.ts +4 -3
- package/src/auth/instances/instance.remote-primary-auth.js +2 -2
- package/src/auth/instances/instance.remote-primary-auth.js.map +1 -1
- package/src/auth/session/authorization-vault.d.ts +611 -0
- package/src/auth/session/authorization-vault.js +817 -0
- package/src/auth/session/authorization-vault.js.map +1 -0
- package/src/auth/session/authorization.store.d.ts +301 -0
- package/src/auth/session/authorization.store.js +323 -0
- package/src/auth/session/authorization.store.js.map +1 -0
- package/src/auth/session/encrypted-authorization-vault.d.ts +181 -0
- package/src/auth/session/encrypted-authorization-vault.js +493 -0
- package/src/auth/session/encrypted-authorization-vault.js.map +1 -0
- package/src/auth/session/index.d.ts +4 -4
- package/src/auth/session/index.js +11 -7
- package/src/auth/session/index.js.map +1 -1
- package/src/auth/session/session.schema.d.ts +1 -1
- package/src/auth/session/session.service.d.ts +1 -1
- package/src/auth/session/transport-session.manager.d.ts +101 -0
- package/src/auth/session/transport-session.manager.js +300 -0
- package/src/auth/session/transport-session.manager.js.map +1 -0
- package/src/auth/session/transport-session.types.d.ts +457 -0
- package/src/auth/session/transport-session.types.js +110 -0
- package/src/auth/session/transport-session.types.js.map +1 -0
- package/src/auth/session/utils/session-id.utils.d.ts +14 -2
- package/src/auth/session/utils/session-id.utils.js +68 -19
- package/src/auth/session/utils/session-id.utils.js.map +1 -1
- package/src/auth/session/vault-encryption.d.ts +189 -0
- package/src/auth/session/vault-encryption.js +263 -0
- package/src/auth/session/vault-encryption.js.map +1 -0
- package/src/auth/ui/base-layout.d.ts +188 -0
- package/src/auth/ui/base-layout.js +292 -0
- package/src/auth/ui/base-layout.js.map +1 -0
- package/src/auth/ui/htmx-templates.d.ts +135 -0
- package/src/auth/ui/htmx-templates.js +433 -0
- package/src/auth/ui/htmx-templates.js.map +1 -0
- package/src/auth/ui/index.d.ts +11 -0
- package/src/auth/ui/index.js +35 -0
- package/src/auth/ui/index.js.map +1 -0
- package/src/auth/utils/audience.validator.d.ts +129 -0
- package/src/auth/utils/audience.validator.js +196 -0
- package/src/auth/utils/audience.validator.js.map +1 -0
- package/src/auth/utils/index.d.ts +2 -0
- package/src/auth/utils/index.js +7 -0
- package/src/auth/utils/index.js.map +1 -0
- package/src/auth/utils/www-authenticate.utils.d.ts +97 -0
- package/src/auth/utils/www-authenticate.utils.js +183 -0
- package/src/auth/utils/www-authenticate.utils.js.map +1 -0
- package/src/common/common.schema.d.ts +2 -16
- package/src/common/constants.d.ts +3 -0
- package/src/common/constants.js +6 -1
- package/src/common/constants.js.map +1 -1
- package/src/common/decorators/decorator-utils.d.ts +131 -0
- package/src/common/decorators/decorator-utils.js +195 -0
- package/src/common/decorators/decorator-utils.js.map +1 -0
- package/src/common/decorators/front-mcp.decorator.js +3 -2
- package/src/common/decorators/front-mcp.decorator.js.map +1 -1
- package/src/common/decorators/hook.decorator.d.ts +58 -2
- package/src/common/decorators/hook.decorator.js +127 -17
- package/src/common/decorators/hook.decorator.js.map +1 -1
- package/src/common/decorators/plugin.decorator.d.ts +1 -1
- package/src/common/decorators/plugin.decorator.js +11 -10
- package/src/common/decorators/plugin.decorator.js.map +1 -1
- package/src/common/decorators/resource.decorator.d.ts +32 -3
- package/src/common/decorators/resource.decorator.js +46 -4
- package/src/common/decorators/resource.decorator.js.map +1 -1
- package/src/common/decorators/tool.decorator.d.ts +54 -5
- package/src/common/decorators/tool.decorator.js.map +1 -1
- package/src/common/dynamic/dynamic.plugin.d.ts +22 -11
- package/src/common/dynamic/dynamic.plugin.js +7 -1
- package/src/common/dynamic/dynamic.plugin.js.map +1 -1
- package/src/common/entries/prompt.entry.d.ts +46 -2
- package/src/common/entries/prompt.entry.js +10 -0
- package/src/common/entries/prompt.entry.js.map +1 -1
- package/src/common/entries/resource.entry.d.ts +69 -6
- package/src/common/entries/resource.entry.js +27 -3
- package/src/common/entries/resource.entry.js.map +1 -1
- package/src/common/entries/scope.entry.d.ts +5 -1
- package/src/common/entries/scope.entry.js +3 -3
- package/src/common/entries/scope.entry.js.map +1 -1
- package/src/common/flow/flow.utils.d.ts +56 -0
- package/src/common/flow/flow.utils.js +96 -0
- package/src/common/flow/flow.utils.js.map +1 -0
- package/src/common/index.d.ts +2 -2
- package/src/common/index.js +2 -2
- package/src/common/index.js.map +1 -1
- package/src/common/interfaces/execution-context.interface.d.ts +59 -0
- package/src/common/interfaces/execution-context.interface.js +81 -0
- package/src/common/interfaces/execution-context.interface.js.map +1 -0
- package/src/common/interfaces/flow.interface.d.ts +1 -1
- package/src/common/interfaces/flow.interface.js.map +1 -1
- package/src/common/interfaces/index.d.ts +1 -0
- package/src/common/interfaces/index.js +1 -0
- package/src/common/interfaces/index.js.map +1 -1
- package/src/common/interfaces/internal/primary-auth-provider.interface.d.ts +17 -2
- package/src/common/interfaces/internal/primary-auth-provider.interface.js +52 -4
- package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +1 -1
- package/src/common/interfaces/internal/registry.interface.d.ts +16 -2
- package/src/common/interfaces/internal/registry.interface.js.map +1 -1
- package/src/common/interfaces/plugin.interface.js.map +1 -1
- package/src/common/interfaces/prompt.interface.d.ts +53 -4
- package/src/common/interfaces/prompt.interface.js +78 -0
- package/src/common/interfaces/prompt.interface.js.map +1 -1
- package/src/common/interfaces/resource.interface.d.ts +47 -17
- package/src/common/interfaces/resource.interface.js +53 -0
- package/src/common/interfaces/resource.interface.js.map +1 -1
- package/src/common/interfaces/tool.interface.d.ts +39 -22
- package/src/common/interfaces/tool.interface.js +61 -34
- package/src/common/interfaces/tool.interface.js.map +1 -1
- package/src/common/metadata/adapter.metadata.d.ts +1 -9
- package/src/common/metadata/app.metadata.d.ts +425 -730
- package/src/common/metadata/auth-provider.metadata.d.ts +2 -12
- package/src/common/metadata/flow.metadata.d.ts +10 -25
- package/src/common/metadata/front-mcp.metadata.d.ts +602 -1023
- package/src/common/metadata/front-mcp.metadata.js +6 -4
- package/src/common/metadata/front-mcp.metadata.js.map +1 -1
- package/src/common/metadata/hook.metadata.d.ts +1 -1
- package/src/common/metadata/hook.metadata.js.map +1 -1
- package/src/common/metadata/index.d.ts +1 -0
- package/src/common/metadata/index.js +1 -0
- package/src/common/metadata/index.js.map +1 -1
- package/src/common/metadata/logger.metadata.d.ts +1 -9
- package/src/common/metadata/plugin.metadata.d.ts +8 -30
- package/src/common/metadata/prompt.metadata.d.ts +4 -161
- package/src/common/metadata/provider.metadata.d.ts +2 -12
- package/src/common/metadata/resource.metadata.d.ts +6 -98
- package/src/common/metadata/resource.metadata.js +15 -6
- package/src/common/metadata/resource.metadata.js.map +1 -1
- package/src/common/metadata/tool-ui.metadata.d.ts +10 -0
- package/src/common/metadata/tool-ui.metadata.js +12 -0
- package/src/common/metadata/tool-ui.metadata.js.map +1 -0
- package/src/common/metadata/tool.metadata.d.ts +78 -199
- package/src/common/metadata/tool.metadata.js +11 -14
- package/src/common/metadata/tool.metadata.js.map +1 -1
- package/src/common/providers/base-config.provider.d.ts +84 -0
- package/src/common/providers/base-config.provider.js +128 -0
- package/src/common/providers/base-config.provider.js.map +1 -0
- package/src/common/records/plugin.record.d.ts +5 -6
- package/src/common/records/plugin.record.js.map +1 -1
- package/src/common/records/prompt.record.js.map +1 -1
- package/src/common/records/resource.record.d.ts +17 -1
- package/src/common/records/resource.record.js +12 -6
- package/src/common/records/resource.record.js.map +1 -1
- package/src/common/records/tool.record.js.map +1 -1
- package/src/common/schemas/annotated-class.schema.d.ts +9 -9
- package/src/common/schemas/annotated-class.schema.js +92 -27
- package/src/common/schemas/annotated-class.schema.js.map +1 -1
- package/src/common/schemas/http-input.schema.d.ts +6 -30
- package/src/common/schemas/http-output.schema.d.ts +326 -1630
- package/src/common/schemas/http-output.schema.js +39 -1
- package/src/common/schemas/http-output.schema.js.map +1 -1
- package/src/common/tokens/front-mcp.tokens.js +4 -1
- package/src/common/tokens/front-mcp.tokens.js.map +1 -1
- package/src/common/tokens/resource.tokens.d.ts +2 -0
- package/src/common/tokens/resource.tokens.js +4 -1
- package/src/common/tokens/resource.tokens.js.map +1 -1
- package/src/common/tokens/tool.tokens.d.ts +2 -0
- package/src/common/tokens/tool.tokens.js +2 -0
- package/src/common/tokens/tool.tokens.js.map +1 -1
- package/src/common/types/auth/jwt.types.d.ts +5 -31
- package/src/common/types/auth/session.types.d.ts +97 -192
- package/src/common/types/auth/session.types.js +24 -11
- package/src/common/types/auth/session.types.js.map +1 -1
- package/src/common/types/options/auth.options.d.ts +1013 -490
- package/src/common/types/options/auth.options.js +554 -36
- package/src/common/types/options/auth.options.js.map +1 -1
- package/src/common/types/options/http.options.d.ts +1 -9
- package/src/common/types/options/logging.options.d.ts +7 -13
- package/src/common/types/options/logging.options.js +4 -0
- package/src/common/types/options/logging.options.js.map +1 -1
- package/src/common/types/options/server-info.options.d.ts +3 -31
- package/src/common/types/options/session.options.d.ts +90 -10
- package/src/common/types/options/session.options.js +26 -3
- package/src/common/types/options/session.options.js.map +1 -1
- package/src/common/utils/decide-request-intent.utils.d.ts +8 -46
- package/src/common/utils/decide-request-intent.utils.js +88 -23
- package/src/common/utils/decide-request-intent.utils.js.map +1 -1
- package/src/completion/flows/complete.flow.d.ts +74 -0
- package/src/completion/flows/complete.flow.js +199 -0
- package/src/completion/flows/complete.flow.js.map +1 -0
- package/src/errors/authorization-required.error.d.ts +189 -0
- package/src/errors/authorization-required.error.js +274 -0
- package/src/errors/authorization-required.error.js.map +1 -0
- package/src/errors/index.d.ts +2 -1
- package/src/errors/index.js +17 -1
- package/src/errors/index.js.map +1 -1
- package/src/errors/mcp.error.d.ts +101 -1
- package/src/errors/mcp.error.js +147 -2
- package/src/errors/mcp.error.js.map +1 -1
- package/src/flows/flow.instance.js +4 -3
- package/src/flows/flow.instance.js.map +1 -1
- package/src/flows/flow.registry.js.map +1 -1
- package/src/flows/flow.stages.js +14 -11
- package/src/flows/flow.stages.js.map +1 -1
- package/src/front-mcp/front-mcp.providers.d.ts +464 -102
- package/src/front-mcp/front-mcp.providers.js +3 -5
- package/src/front-mcp/front-mcp.providers.js.map +1 -1
- package/src/hooks/hook.instance.d.ts +1 -1
- package/src/hooks/hook.instance.js +5 -2
- package/src/hooks/hook.instance.js.map +1 -1
- package/src/hooks/hook.registry.js +7 -5
- package/src/hooks/hook.registry.js.map +1 -1
- package/src/index.d.ts +28 -9
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/logger/instances/instance.logger.js +3 -2
- package/src/logger/instances/instance.logger.js.map +1 -1
- package/src/logger/logger.registry.js +7 -2
- package/src/logger/logger.registry.js.map +1 -1
- package/src/logging/flows/set-level.flow.d.ts +62 -0
- package/src/logging/flows/set-level.flow.js +108 -0
- package/src/logging/flows/set-level.flow.js.map +1 -0
- package/src/mcp-apps/csp.d.ts +111 -0
- package/src/mcp-apps/csp.js +267 -0
- package/src/mcp-apps/csp.js.map +1 -0
- package/src/mcp-apps/index.d.ts +23 -0
- package/src/mcp-apps/index.js +91 -0
- package/src/mcp-apps/index.js.map +1 -0
- package/src/mcp-apps/schemas.d.ts +403 -0
- package/src/mcp-apps/schemas.js +345 -0
- package/src/mcp-apps/schemas.js.map +1 -0
- package/src/mcp-apps/template.d.ts +94 -0
- package/src/mcp-apps/template.js +419 -0
- package/src/mcp-apps/template.js.map +1 -0
- package/src/mcp-apps/types.d.ts +323 -0
- package/src/mcp-apps/types.js +59 -0
- package/src/mcp-apps/types.js.map +1 -0
- package/src/notification/index.d.ts +1 -0
- package/src/notification/index.js +13 -0
- package/src/notification/index.js.map +1 -0
- package/src/notification/notification.service.d.ts +378 -0
- package/src/notification/notification.service.js +727 -0
- package/src/notification/notification.service.js.map +1 -0
- package/src/plugin/plugin.registry.js +12 -9
- package/src/plugin/plugin.registry.js.map +1 -1
- package/src/prompt/flows/get-prompt.flow.d.ts +153 -0
- package/src/prompt/flows/get-prompt.flow.js +214 -0
- package/src/prompt/flows/get-prompt.flow.js.map +1 -0
- package/src/prompt/flows/prompts-list.flow.d.ts +67 -0
- package/src/prompt/flows/prompts-list.flow.js +176 -0
- package/src/prompt/flows/prompts-list.flow.js.map +1 -0
- package/src/prompt/index.d.ts +7 -0
- package/src/prompt/index.js +17 -0
- package/src/prompt/index.js.map +1 -0
- package/src/prompt/prompt.events.d.ts +17 -0
- package/src/prompt/prompt.events.js +25 -0
- package/src/prompt/prompt.events.js.map +1 -0
- package/src/prompt/prompt.instance.d.ts +30 -0
- package/src/prompt/prompt.instance.js +120 -0
- package/src/prompt/prompt.instance.js.map +1 -0
- package/src/prompt/prompt.registry.d.ts +79 -12
- package/src/prompt/prompt.registry.js +360 -15
- package/src/prompt/prompt.registry.js.map +1 -1
- package/src/prompt/prompt.types.d.ts +26 -0
- package/src/prompt/prompt.types.js +11 -0
- package/src/prompt/prompt.types.js.map +1 -0
- package/src/prompt/prompt.utils.d.ts +26 -0
- package/src/prompt/prompt.utils.js +136 -0
- package/src/prompt/prompt.utils.js.map +1 -0
- package/src/provider/provider.registry.d.ts +12 -5
- package/src/provider/provider.registry.js +30 -138
- package/src/provider/provider.registry.js.map +1 -1
- package/src/regsitry/registry.base.d.ts +1 -1
- package/src/regsitry/registry.base.js.map +1 -1
- package/src/resource/flows/read-resource.flow.d.ts +91 -0
- package/src/resource/flows/read-resource.flow.js +270 -0
- package/src/resource/flows/read-resource.flow.js.map +1 -0
- package/src/resource/flows/resource-templates-list.flow.d.ts +64 -0
- package/src/resource/flows/resource-templates-list.flow.js +191 -0
- package/src/resource/flows/resource-templates-list.flow.js.map +1 -0
- package/src/resource/flows/resources-list.flow.d.ts +64 -0
- package/src/resource/flows/resources-list.flow.js +196 -0
- package/src/resource/flows/resources-list.flow.js.map +1 -0
- package/src/resource/flows/subscribe-resource.flow.d.ts +45 -0
- package/src/resource/flows/subscribe-resource.flow.js +123 -0
- package/src/resource/flows/subscribe-resource.flow.js.map +1 -0
- package/src/resource/flows/unsubscribe-resource.flow.d.ts +44 -0
- package/src/resource/flows/unsubscribe-resource.flow.js +107 -0
- package/src/resource/flows/unsubscribe-resource.flow.js.map +1 -0
- package/src/resource/index.d.ts +8 -0
- package/src/resource/index.js +20 -0
- package/src/resource/index.js.map +1 -0
- package/src/resource/resource.events.d.ts +24 -0
- package/src/resource/resource.events.js +17 -0
- package/src/resource/resource.events.js.map +1 -0
- package/src/resource/resource.instance.d.ts +35 -0
- package/src/resource/resource.instance.js +163 -0
- package/src/resource/resource.instance.js.map +1 -0
- package/src/resource/resource.registry.d.ts +106 -12
- package/src/resource/resource.registry.js +449 -13
- package/src/resource/resource.registry.js.map +1 -1
- package/src/resource/resource.types.d.ts +35 -0
- package/src/resource/resource.types.js +11 -0
- package/src/resource/resource.types.js.map +1 -0
- package/src/resource/resource.utils.d.ts +30 -0
- package/src/resource/resource.utils.js +151 -0
- package/src/resource/resource.utils.js.map +1 -0
- package/src/scope/flows/http.request.flow.d.ts +48 -330
- package/src/scope/flows/http.request.flow.js +306 -78
- package/src/scope/flows/http.request.flow.js.map +1 -1
- package/src/scope/scope.instance.d.ts +12 -0
- package/src/scope/scope.instance.js +145 -15
- package/src/scope/scope.instance.js.map +1 -1
- package/src/tool/flows/call-tool.flow.d.ts +64 -1110
- package/src/tool/flows/call-tool.flow.js +303 -15
- package/src/tool/flows/call-tool.flow.js.map +1 -1
- package/src/tool/flows/tools-list.flow.d.ts +32 -473
- package/src/tool/flows/tools-list.flow.js +121 -40
- package/src/tool/flows/tools-list.flow.js.map +1 -1
- package/src/tool/tool.events.d.ts +8 -1
- package/src/tool/tool.events.js.map +1 -1
- package/src/tool/tool.instance.d.ts +3 -1
- package/src/tool/tool.instance.js +17 -3
- package/src/tool/tool.instance.js.map +1 -1
- package/src/tool/tool.registry.d.ts +7 -1
- package/src/tool/tool.registry.js +26 -10
- package/src/tool/tool.registry.js.map +1 -1
- package/src/tool/tool.types.d.ts +4 -4
- package/src/tool/tool.types.js.map +1 -1
- package/src/tool/tool.utils.d.ts +3 -12
- package/src/tool/tool.utils.js +39 -193
- package/src/tool/tool.utils.js.map +1 -1
- package/src/tool/ui/index.d.ts +22 -0
- package/src/tool/ui/index.js +63 -0
- package/src/tool/ui/index.js.map +1 -0
- package/src/tool/ui/platform-adapters.d.ts +10 -0
- package/src/tool/ui/platform-adapters.js +18 -0
- package/src/tool/ui/platform-adapters.js.map +1 -0
- package/src/tool/ui/template-helpers.d.ts +46 -0
- package/src/tool/ui/template-helpers.js +112 -0
- package/src/tool/ui/template-helpers.js.map +1 -0
- package/src/tool/ui/ui-resource-template.d.ts +34 -0
- package/src/tool/ui/ui-resource-template.js +64 -0
- package/src/tool/ui/ui-resource-template.js.map +1 -0
- package/src/tool/ui/ui-resource.handler.d.ts +74 -0
- package/src/tool/ui/ui-resource.handler.js +129 -0
- package/src/tool/ui/ui-resource.handler.js.map +1 -0
- package/src/transport/adapters/transport.local.adapter.d.ts +2 -2
- package/src/transport/adapters/transport.local.adapter.js +28 -7
- package/src/transport/adapters/transport.local.adapter.js.map +1 -1
- package/src/transport/adapters/transport.sse.adapter.d.ts +2 -2
- package/src/transport/adapters/transport.sse.adapter.js +4 -3
- package/src/transport/adapters/transport.sse.adapter.js.map +1 -1
- package/src/transport/adapters/transport.streamable-http.adapter.d.ts +10 -3
- package/src/transport/adapters/transport.streamable-http.adapter.js +54 -8
- package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
- package/src/transport/flows/handle.sse.flow.d.ts +29 -63
- package/src/transport/flows/handle.sse.flow.js +78 -10
- package/src/transport/flows/handle.sse.flow.js.map +1 -1
- package/src/transport/flows/handle.stateless-http.flow.d.ts +29 -0
- package/src/transport/flows/handle.stateless-http.flow.js +102 -0
- package/src/transport/flows/handle.stateless-http.flow.js.map +1 -0
- package/src/transport/flows/handle.streamable-http.flow.d.ts +32 -64
- package/src/transport/flows/handle.streamable-http.flow.js +158 -26
- package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
- package/src/transport/legacy/legacy.sse.tranporter.d.ts +9 -0
- package/src/transport/legacy/legacy.sse.tranporter.js +17 -2
- package/src/transport/legacy/legacy.sse.tranporter.js.map +1 -1
- package/src/transport/mcp-handlers/call-tool-request.handler.js +27 -1
- package/src/transport/mcp-handlers/call-tool-request.handler.js.map +1 -1
- package/src/transport/mcp-handlers/complete-request.handler.d.ts +69 -0
- package/src/transport/mcp-handlers/complete-request.handler.js +11 -0
- package/src/transport/mcp-handlers/complete-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +87 -0
- package/src/transport/mcp-handlers/get-prompt-request.handler.js +11 -0
- package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/index.d.ts +517 -208
- package/src/transport/mcp-handlers/index.js +39 -2
- package/src/transport/mcp-handlers/index.js.map +1 -1
- package/src/transport/mcp-handlers/initialize-request.handler.d.ts +1 -1
- package/src/transport/mcp-handlers/initialize-request.handler.js +73 -7
- package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
- package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +54 -0
- package/src/transport/mcp-handlers/list-prompts-request.handler.js +11 -0
- package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +51 -0
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +12 -0
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +51 -0
- package/src/transport/mcp-handlers/list-resources-request.handler.js +12 -0
- package/src/transport/mcp-handlers/list-resources-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +19 -146
- package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +46 -0
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js +34 -0
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/mcp-handlers.types.d.ts +3 -7
- package/src/transport/mcp-handlers/mcp-handlers.types.js.map +1 -1
- package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +46 -0
- package/src/transport/mcp-handlers/read-resource-request.handler.js +12 -0
- package/src/transport/mcp-handlers/read-resource-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.d.ts +11 -0
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +26 -0
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +1 -0
- package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +37 -0
- package/src/transport/mcp-handlers/subscribe-request.handler.js +34 -0
- package/src/transport/mcp-handlers/subscribe-request.handler.js.map +1 -0
- package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +37 -0
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js +34 -0
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +1 -0
- package/src/transport/transport.local.js +7 -2
- package/src/transport/transport.local.js.map +1 -1
- package/src/transport/transport.registry.d.ts +30 -0
- package/src/transport/transport.registry.js +84 -1
- package/src/transport/transport.registry.js.map +1 -1
- package/src/transport/transport.types.d.ts +3 -3
- package/src/transport/transport.types.js.map +1 -1
- package/src/utils/content.utils.d.ts +48 -0
- package/src/utils/content.utils.js +194 -0
- package/src/utils/content.utils.js.map +1 -0
- package/src/utils/index.d.ts +8 -0
- package/src/utils/index.js +55 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/lineage.utils.d.ts +40 -0
- package/src/utils/lineage.utils.js +82 -0
- package/src/utils/lineage.utils.js.map +1 -0
- package/src/utils/naming.utils.d.ts +46 -0
- package/src/utils/naming.utils.js +136 -0
- package/src/utils/naming.utils.js.map +1 -0
- package/src/utils/types.utils.d.ts +2 -2
- package/src/utils/types.utils.js.map +1 -1
- package/src/utils/uri-template.utils.d.ts +57 -0
- package/src/utils/uri-template.utils.js +113 -0
- package/src/utils/uri-template.utils.js.map +1 -0
- package/src/utils/uri-validation.utils.d.ts +40 -0
- package/src/utils/uri-validation.utils.js +76 -0
- package/src/utils/uri-validation.utils.js.map +1 -0
- package/src/__test-utils__/fixtures/hook.fixtures.d.ts +0 -46
- package/src/__test-utils__/fixtures/hook.fixtures.js +0 -114
- package/src/__test-utils__/fixtures/hook.fixtures.js.map +0 -1
- package/src/__test-utils__/fixtures/index.d.ts +0 -7
- package/src/__test-utils__/fixtures/index.js +0 -11
- package/src/__test-utils__/fixtures/index.js.map +0 -1
- package/src/__test-utils__/fixtures/plugin.fixtures.d.ts +0 -46
- package/src/__test-utils__/fixtures/plugin.fixtures.js +0 -127
- package/src/__test-utils__/fixtures/plugin.fixtures.js.map +0 -1
- package/src/__test-utils__/fixtures/provider.fixtures.d.ts +0 -69
- package/src/__test-utils__/fixtures/provider.fixtures.js +0 -131
- package/src/__test-utils__/fixtures/provider.fixtures.js.map +0 -1
- package/src/__test-utils__/fixtures/scope.fixtures.d.ts +0 -14
- package/src/__test-utils__/fixtures/scope.fixtures.js +0 -59
- package/src/__test-utils__/fixtures/scope.fixtures.js.map +0 -1
- package/src/__test-utils__/fixtures/tool.fixtures.d.ts +0 -36
- package/src/__test-utils__/fixtures/tool.fixtures.js +0 -91
- package/src/__test-utils__/fixtures/tool.fixtures.js.map +0 -1
- package/src/__test-utils__/helpers/assertion.helpers.d.ts +0 -45
- package/src/__test-utils__/helpers/assertion.helpers.js +0 -153
- package/src/__test-utils__/helpers/assertion.helpers.js.map +0 -1
- package/src/__test-utils__/helpers/async.helpers.d.ts +0 -48
- package/src/__test-utils__/helpers/async.helpers.js +0 -112
- package/src/__test-utils__/helpers/async.helpers.js.map +0 -1
- package/src/__test-utils__/helpers/index.d.ts +0 -6
- package/src/__test-utils__/helpers/index.js +0 -10
- package/src/__test-utils__/helpers/index.js.map +0 -1
- package/src/__test-utils__/helpers/setup.helpers.d.ts +0 -54
- package/src/__test-utils__/helpers/setup.helpers.js +0 -106
- package/src/__test-utils__/helpers/setup.helpers.js.map +0 -1
- package/src/__test-utils__/index.d.ts +0 -9
- package/src/__test-utils__/index.js +0 -14
- package/src/__test-utils__/index.js.map +0 -1
- package/src/__test-utils__/mocks/flow-instance.mock.d.ts +0 -50
- package/src/__test-utils__/mocks/flow-instance.mock.js +0 -72
- package/src/__test-utils__/mocks/flow-instance.mock.js.map +0 -1
- package/src/__test-utils__/mocks/hook-registry.mock.d.ts +0 -25
- package/src/__test-utils__/mocks/hook-registry.mock.js +0 -65
- package/src/__test-utils__/mocks/hook-registry.mock.js.map +0 -1
- package/src/__test-utils__/mocks/index.d.ts +0 -8
- package/src/__test-utils__/mocks/index.js +0 -12
- package/src/__test-utils__/mocks/index.js.map +0 -1
- package/src/__test-utils__/mocks/plugin-registry.mock.d.ts +0 -43
- package/src/__test-utils__/mocks/plugin-registry.mock.js +0 -70
- package/src/__test-utils__/mocks/plugin-registry.mock.js.map +0 -1
- package/src/__test-utils__/mocks/provider-registry.mock.d.ts +0 -39
- package/src/__test-utils__/mocks/provider-registry.mock.js +0 -72
- package/src/__test-utils__/mocks/provider-registry.mock.js.map +0 -1
- package/src/__test-utils__/mocks/tool-registry.mock.d.ts +0 -43
- package/src/__test-utils__/mocks/tool-registry.mock.js +0 -79
- package/src/__test-utils__/mocks/tool-registry.mock.js.map +0 -1
- package/src/auth/path.utils.d.ts +0 -20
- package/src/auth/path.utils.js +0 -71
- package/src/auth/path.utils.js.map +0 -1
- package/src/common/decorators-old/async-with.decorator.d.ts +0 -10
- package/src/common/decorators-old/async-with.decorator.js +0 -24
- package/src/common/decorators-old/async-with.decorator.js.map +0 -1
- package/src/common/decorators-old/auth-hook.decorator.d.ts +0 -14
- package/src/common/decorators-old/auth-hook.decorator.js +0 -27
- package/src/common/decorators-old/auth-hook.decorator.js.map +0 -1
- package/src/common/decorators-old/session-hook.decorator.d.ts +0 -14
- package/src/common/decorators-old/session-hook.decorator.js +0 -27
- package/src/common/decorators-old/session-hook.decorator.js.map +0 -1
|
@@ -1,53 +1,571 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// common/types/options/auth.options.ts
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.appAuthOptionsSchema = exports.authOptionsSchema = exports.
|
|
4
|
+
exports.appAuthOptionsSchema = exports.authOptionsSchema = exports.orchestratedAuthOptionsSchema = exports.orchestratedRemoteSchema = exports.orchestratedLocalSchema = exports.transparentAuthOptionsSchema = exports.publicAuthOptionsSchema = exports.transportConfigSchema = exports.incrementalAuthConfigSchema = exports.consentConfigSchema = exports.skippedAppBehaviorSchema = exports.tokenRefreshConfigSchema = exports.tokenStorageConfigSchema = exports.remoteProviderConfigSchema = exports.localSigningConfigSchema = exports.publicAccessConfigSchema = void 0;
|
|
5
|
+
exports.parseAuthOptions = parseAuthOptions;
|
|
6
|
+
exports.isPublicMode = isPublicMode;
|
|
7
|
+
exports.isTransparentMode = isTransparentMode;
|
|
8
|
+
exports.isOrchestratedMode = isOrchestratedMode;
|
|
9
|
+
exports.isOrchestratedLocal = isOrchestratedLocal;
|
|
10
|
+
exports.isOrchestratedRemote = isOrchestratedRemote;
|
|
11
|
+
exports.allowsPublicAccess = allowsPublicAccess;
|
|
4
12
|
const zod_1 = require("zod");
|
|
5
13
|
const auth_1 = require("../auth");
|
|
6
|
-
|
|
7
|
-
|
|
14
|
+
const transport_session_types_1 = require("../../../auth/session/transport-session.types");
|
|
15
|
+
// ============================================
|
|
16
|
+
// SHARED SCHEMAS
|
|
17
|
+
// ============================================
|
|
18
|
+
/**
|
|
19
|
+
* Public access configuration for tools/prompts
|
|
20
|
+
*/
|
|
21
|
+
exports.publicAccessConfigSchema = zod_1.z.object({
|
|
22
|
+
/**
|
|
23
|
+
* Allow all tools or explicit whitelist
|
|
24
|
+
* @default 'all'
|
|
25
|
+
*/
|
|
26
|
+
tools: zod_1.z.union([zod_1.z.literal('all'), zod_1.z.array(zod_1.z.string())]).default('all'),
|
|
27
|
+
/**
|
|
28
|
+
* Allow all prompts or explicit whitelist
|
|
29
|
+
* @default 'all'
|
|
30
|
+
*/
|
|
31
|
+
prompts: zod_1.z.union([zod_1.z.literal('all'), zod_1.z.array(zod_1.z.string())]).default('all'),
|
|
32
|
+
/**
|
|
33
|
+
* Rate limit per IP per minute
|
|
34
|
+
* @default 60
|
|
35
|
+
*/
|
|
36
|
+
rateLimit: zod_1.z.number().default(60),
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* Local signing configuration (for orchestrated local type)
|
|
40
|
+
*/
|
|
41
|
+
exports.localSigningConfigSchema = zod_1.z.object({
|
|
42
|
+
/**
|
|
43
|
+
* Private key for signing orchestrated tokens
|
|
44
|
+
* @default auto-generated
|
|
45
|
+
*/
|
|
46
|
+
signKey: auth_1.jwkSchema.or(zod_1.z.instanceof(Uint8Array)).optional(),
|
|
47
|
+
/**
|
|
48
|
+
* JWKS for token verification
|
|
49
|
+
* @default auto-generated
|
|
50
|
+
*/
|
|
51
|
+
jwks: auth_1.jsonWebKeySetSchema.optional(),
|
|
52
|
+
/**
|
|
53
|
+
* Issuer identifier for orchestrated tokens
|
|
54
|
+
* @default auto-derived from server URL
|
|
55
|
+
*/
|
|
56
|
+
issuer: zod_1.z.string().optional(),
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Remote OAuth provider configuration (for orchestrated remote and transparent)
|
|
60
|
+
*/
|
|
61
|
+
exports.remoteProviderConfigSchema = zod_1.z.object({
|
|
62
|
+
/**
|
|
63
|
+
* OAuth provider base URL
|
|
64
|
+
* @example 'https://auth.example.com'
|
|
65
|
+
*/
|
|
66
|
+
provider: zod_1.z.string().url(),
|
|
67
|
+
/**
|
|
68
|
+
* Provider display name
|
|
69
|
+
*/
|
|
70
|
+
name: zod_1.z.string().optional(),
|
|
71
|
+
/**
|
|
72
|
+
* Unique identifier for this provider
|
|
73
|
+
* @default derived from provider URL
|
|
74
|
+
*/
|
|
8
75
|
id: zod_1.z.string().optional(),
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
.union([
|
|
14
|
-
zod_1.z.string(),
|
|
15
|
-
zod_1.z.function().args(zod_1.z.object({ clientId: zod_1.z.string() })).returns(zod_1.z.string())
|
|
16
|
-
])
|
|
17
|
-
.optional(),
|
|
18
|
-
mode: zod_1.z.union([zod_1.z.literal('orchestrated'), zod_1.z.literal('transparent')]).optional(),
|
|
19
|
-
allowAnonymous: zod_1.z.boolean().optional(),
|
|
20
|
-
consent: zod_1.z.boolean().optional(),
|
|
76
|
+
/**
|
|
77
|
+
* Inline JWKS for offline token verification
|
|
78
|
+
* Falls back to fetching from provider's /.well-known/jwks.json
|
|
79
|
+
*/
|
|
21
80
|
jwks: auth_1.jsonWebKeySetSchema.optional(),
|
|
81
|
+
/**
|
|
82
|
+
* Custom JWKS URI if not at standard path
|
|
83
|
+
*/
|
|
84
|
+
jwksUri: zod_1.z.string().url().optional(),
|
|
85
|
+
/**
|
|
86
|
+
* Client ID for this MCP server (for orchestrated mode)
|
|
87
|
+
*/
|
|
88
|
+
clientId: zod_1.z.string().optional(),
|
|
89
|
+
/**
|
|
90
|
+
* Client secret (for confidential clients in orchestrated mode)
|
|
91
|
+
*/
|
|
92
|
+
clientSecret: zod_1.z.string().optional(),
|
|
93
|
+
/**
|
|
94
|
+
* Scopes to request from the upstream provider
|
|
95
|
+
*/
|
|
22
96
|
scopes: zod_1.z.array(zod_1.z.string()).optional(),
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Enable Dynamic Client Registration (DCR)
|
|
99
|
+
* @default false
|
|
100
|
+
*/
|
|
101
|
+
dcrEnabled: zod_1.z.boolean().default(false),
|
|
102
|
+
/**
|
|
103
|
+
* Authorization endpoint override
|
|
104
|
+
*/
|
|
105
|
+
authEndpoint: zod_1.z.string().url().optional(),
|
|
106
|
+
/**
|
|
107
|
+
* Token endpoint override
|
|
108
|
+
*/
|
|
109
|
+
tokenEndpoint: zod_1.z.string().url().optional(),
|
|
110
|
+
/**
|
|
111
|
+
* Registration endpoint override (for DCR)
|
|
112
|
+
*/
|
|
113
|
+
registrationEndpoint: zod_1.z.string().url().optional(),
|
|
114
|
+
/**
|
|
115
|
+
* User info endpoint override
|
|
116
|
+
*/
|
|
117
|
+
userInfoEndpoint: zod_1.z.string().url().optional(),
|
|
118
|
+
});
|
|
119
|
+
/**
|
|
120
|
+
* Token storage configuration for orchestrated mode
|
|
121
|
+
*/
|
|
122
|
+
exports.tokenStorageConfigSchema = zod_1.z.discriminatedUnion('type', [
|
|
123
|
+
zod_1.z.object({ type: zod_1.z.literal('memory') }),
|
|
124
|
+
zod_1.z.object({ type: zod_1.z.literal('redis'), config: transport_session_types_1.redisConfigSchema }),
|
|
125
|
+
]);
|
|
126
|
+
/**
|
|
127
|
+
* Token refresh configuration
|
|
128
|
+
*/
|
|
129
|
+
exports.tokenRefreshConfigSchema = zod_1.z.object({
|
|
130
|
+
/**
|
|
131
|
+
* Enable automatic token refresh
|
|
132
|
+
* @default true
|
|
133
|
+
*/
|
|
134
|
+
enabled: zod_1.z.boolean().default(true),
|
|
135
|
+
/**
|
|
136
|
+
* Refresh token before expiry by this many seconds
|
|
137
|
+
* @default 60
|
|
138
|
+
*/
|
|
139
|
+
skewSeconds: zod_1.z.number().default(60),
|
|
140
|
+
});
|
|
141
|
+
/**
|
|
142
|
+
* Behavior when a tool from a skipped (not yet authorized) app is called
|
|
143
|
+
*/
|
|
144
|
+
exports.skippedAppBehaviorSchema = zod_1.z.enum(['anonymous', 'require-auth']);
|
|
145
|
+
/**
|
|
146
|
+
* Consent configuration for tool selection
|
|
147
|
+
* Allows users to choose which MCP tools to expose to the LLM
|
|
148
|
+
*
|
|
149
|
+
* Note: This schema is the canonical definition. It is duplicated in
|
|
150
|
+
* auth/consent/consent.types.ts for domain-specific use. Both schemas
|
|
151
|
+
* MUST be kept in sync. The duplication exists to avoid circular
|
|
152
|
+
* dependencies between common/ and auth/ modules.
|
|
153
|
+
*/
|
|
154
|
+
exports.consentConfigSchema = zod_1.z.object({
|
|
155
|
+
/**
|
|
156
|
+
* Enable consent flow for tool selection
|
|
157
|
+
* When enabled, users can choose which tools to expose to the LLM
|
|
158
|
+
* @default false
|
|
159
|
+
*/
|
|
160
|
+
enabled: zod_1.z.boolean().default(false),
|
|
161
|
+
/**
|
|
162
|
+
* Group tools by app in the consent UI
|
|
163
|
+
* @default true
|
|
164
|
+
*/
|
|
165
|
+
groupByApp: zod_1.z.boolean().default(true),
|
|
166
|
+
/**
|
|
167
|
+
* Show tool descriptions in consent UI
|
|
168
|
+
* @default true
|
|
169
|
+
*/
|
|
170
|
+
showDescriptions: zod_1.z.boolean().default(true),
|
|
171
|
+
/**
|
|
172
|
+
* Allow selecting all tools at once
|
|
173
|
+
* @default true
|
|
174
|
+
*/
|
|
175
|
+
allowSelectAll: zod_1.z.boolean().default(true),
|
|
176
|
+
/**
|
|
177
|
+
* Require at least one tool to be selected
|
|
178
|
+
* @default true
|
|
179
|
+
*/
|
|
180
|
+
requireSelection: zod_1.z.boolean().default(true),
|
|
181
|
+
/**
|
|
182
|
+
* Custom message to display on consent page
|
|
183
|
+
*/
|
|
184
|
+
customMessage: zod_1.z.string().optional(),
|
|
185
|
+
/**
|
|
186
|
+
* Remember consent for future sessions
|
|
187
|
+
* @default true
|
|
188
|
+
*/
|
|
189
|
+
rememberConsent: zod_1.z.boolean().default(true),
|
|
190
|
+
/**
|
|
191
|
+
* Tools to exclude from consent (always available)
|
|
192
|
+
* Useful for essential tools that should always be accessible
|
|
193
|
+
*/
|
|
194
|
+
excludedTools: zod_1.z.array(zod_1.z.string()).optional(),
|
|
195
|
+
/**
|
|
196
|
+
* Tools to always include in consent (pre-selected)
|
|
197
|
+
*/
|
|
198
|
+
defaultSelectedTools: zod_1.z.array(zod_1.z.string()).optional(),
|
|
199
|
+
});
|
|
200
|
+
/**
|
|
201
|
+
* Progressive/Incremental authorization configuration
|
|
202
|
+
* Allows users to authorize apps one at a time after initial auth
|
|
203
|
+
*/
|
|
204
|
+
exports.incrementalAuthConfigSchema = zod_1.z.object({
|
|
205
|
+
/**
|
|
206
|
+
* Enable incremental (progressive) authorization
|
|
207
|
+
* When enabled, users can skip app authorizations during initial auth
|
|
208
|
+
* and authorize individual apps later when needed
|
|
209
|
+
* @default true
|
|
210
|
+
*/
|
|
211
|
+
enabled: zod_1.z.boolean().default(true),
|
|
212
|
+
/**
|
|
213
|
+
* Behavior when a tool from a skipped app is called
|
|
214
|
+
* - 'anonymous': If app supports anonymous access, use it; otherwise require auth
|
|
215
|
+
* - 'require-auth': Always require authorization (return auth_url)
|
|
216
|
+
* @default 'anonymous'
|
|
217
|
+
*/
|
|
218
|
+
skippedAppBehavior: exports.skippedAppBehaviorSchema.default('anonymous'),
|
|
219
|
+
/**
|
|
220
|
+
* Allow users to skip app authorization during initial auth flow
|
|
221
|
+
* @default true
|
|
222
|
+
*/
|
|
223
|
+
allowSkip: zod_1.z.boolean().default(true),
|
|
224
|
+
/**
|
|
225
|
+
* Show all apps in a single authorization page (vs step-by-step)
|
|
226
|
+
* @default true
|
|
227
|
+
*/
|
|
228
|
+
showAllAppsAtOnce: zod_1.z.boolean().default(true),
|
|
229
|
+
});
|
|
230
|
+
// ============================================
|
|
231
|
+
// TRANSPORT CONFIG
|
|
232
|
+
// Protocol enablement and behavior settings
|
|
233
|
+
// ============================================
|
|
234
|
+
/**
|
|
235
|
+
* Transport protocol configuration
|
|
236
|
+
* Controls which transport protocols are enabled and their behavior
|
|
237
|
+
*/
|
|
238
|
+
exports.transportConfigSchema = zod_1.z.object({
|
|
239
|
+
/**
|
|
240
|
+
* Enable legacy SSE transport (old HTTP+SSE protocol)
|
|
241
|
+
* @default false
|
|
242
|
+
*/
|
|
243
|
+
enableLegacySSE: zod_1.z.boolean().default(false),
|
|
244
|
+
/**
|
|
245
|
+
* Enable SSE listener for server-initiated messages (GET /mcp with Accept: text/event-stream)
|
|
246
|
+
* @default true
|
|
247
|
+
*/
|
|
248
|
+
enableSseListener: zod_1.z.boolean().default(true),
|
|
249
|
+
/**
|
|
250
|
+
* Enable streamable HTTP transport (POST with SSE response)
|
|
251
|
+
* @default true
|
|
252
|
+
*/
|
|
253
|
+
enableStreamableHttp: zod_1.z.boolean().default(true),
|
|
254
|
+
/**
|
|
255
|
+
* Enable stateless HTTP mode (requests without session ID)
|
|
256
|
+
* When enabled, allows requests without prior initialize
|
|
257
|
+
* Uses shared singleton transport for anonymous, per-token singleton for authenticated
|
|
258
|
+
* @default false
|
|
259
|
+
*/
|
|
260
|
+
enableStatelessHttp: zod_1.z.boolean().default(false),
|
|
261
|
+
/**
|
|
262
|
+
* Enable stateful HTTP transport (JSON-only responses)
|
|
263
|
+
* @default false
|
|
264
|
+
*/
|
|
265
|
+
enableStatefulHttp: zod_1.z.boolean().default(false),
|
|
266
|
+
/**
|
|
267
|
+
* Require session ID for streamable HTTP (non-stateless mode)
|
|
268
|
+
* When false, streamable HTTP requests don't require prior initialize
|
|
269
|
+
* @default true
|
|
270
|
+
*/
|
|
271
|
+
requireSessionForStreamable: zod_1.z.boolean().default(true),
|
|
272
|
+
});
|
|
273
|
+
// ============================================
|
|
274
|
+
// PUBLIC MODE
|
|
275
|
+
// No authentication required, anonymous access
|
|
276
|
+
// ============================================
|
|
277
|
+
exports.publicAuthOptionsSchema = zod_1.z.object({
|
|
278
|
+
mode: zod_1.z.literal('public'),
|
|
279
|
+
/**
|
|
280
|
+
* Issuer identifier for anonymous JWTs
|
|
281
|
+
* @default auto-derived from server URL
|
|
282
|
+
*/
|
|
283
|
+
issuer: zod_1.z.string().optional(),
|
|
284
|
+
/**
|
|
285
|
+
* Anonymous session TTL in seconds
|
|
286
|
+
* @default 3600 (1 hour)
|
|
287
|
+
*/
|
|
288
|
+
sessionTtl: zod_1.z.number().default(3600),
|
|
289
|
+
/**
|
|
290
|
+
* Scopes granted to anonymous sessions
|
|
291
|
+
* @default ['anonymous']
|
|
292
|
+
*/
|
|
293
|
+
anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
|
|
294
|
+
/**
|
|
295
|
+
* Tool/prompt access configuration for anonymous users
|
|
296
|
+
*/
|
|
297
|
+
publicAccess: exports.publicAccessConfigSchema.optional(),
|
|
298
|
+
/**
|
|
299
|
+
* JWKS for token verification
|
|
300
|
+
* @default auto-generated
|
|
301
|
+
*/
|
|
38
302
|
jwks: auth_1.jsonWebKeySetSchema.optional(),
|
|
303
|
+
/**
|
|
304
|
+
* Private key for signing anonymous tokens
|
|
305
|
+
* @default auto-generated
|
|
306
|
+
*/
|
|
39
307
|
signKey: auth_1.jwkSchema.or(zod_1.z.instanceof(Uint8Array)).optional(),
|
|
308
|
+
/**
|
|
309
|
+
* Transport protocol configuration
|
|
310
|
+
* Controls which transports are enabled and their behavior
|
|
311
|
+
*/
|
|
312
|
+
transport: exports.transportConfigSchema.optional(),
|
|
40
313
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
314
|
+
// ============================================
|
|
315
|
+
// TRANSPARENT MODE
|
|
316
|
+
// Pass-through OAuth tokens from remote provider
|
|
317
|
+
// ============================================
|
|
318
|
+
exports.transparentAuthOptionsSchema = zod_1.z.object({
|
|
319
|
+
mode: zod_1.z.literal('transparent'),
|
|
320
|
+
/**
|
|
321
|
+
* Remote OAuth provider configuration (required)
|
|
322
|
+
*/
|
|
323
|
+
remote: exports.remoteProviderConfigSchema,
|
|
324
|
+
/**
|
|
325
|
+
* Expected token audience
|
|
326
|
+
* If not set, defaults to the resource URL
|
|
327
|
+
*/
|
|
328
|
+
expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
329
|
+
/**
|
|
330
|
+
* Required scopes for access
|
|
331
|
+
* Empty array means any valid token is accepted
|
|
332
|
+
* @default []
|
|
333
|
+
*/
|
|
334
|
+
requiredScopes: zod_1.z.array(zod_1.z.string()).default([]),
|
|
335
|
+
/**
|
|
336
|
+
* Allow anonymous fallback when no token is provided
|
|
337
|
+
* @default false
|
|
338
|
+
*/
|
|
339
|
+
allowAnonymous: zod_1.z.boolean().default(false),
|
|
340
|
+
/**
|
|
341
|
+
* Scopes granted to anonymous sessions (when allowAnonymous=true)
|
|
342
|
+
* @default ['anonymous']
|
|
343
|
+
*/
|
|
344
|
+
anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
|
|
345
|
+
/**
|
|
346
|
+
* Public access config for anonymous users (when allowAnonymous=true)
|
|
347
|
+
*/
|
|
348
|
+
publicAccess: exports.publicAccessConfigSchema.optional(),
|
|
349
|
+
/**
|
|
350
|
+
* Transport protocol configuration
|
|
351
|
+
* Controls which transports are enabled and their behavior
|
|
352
|
+
*/
|
|
353
|
+
transport: exports.transportConfigSchema.optional(),
|
|
354
|
+
});
|
|
355
|
+
// ============================================
|
|
356
|
+
// ORCHESTRATED MODE
|
|
357
|
+
// Local auth server that can proxy to remote or be fully local
|
|
358
|
+
// ============================================
|
|
359
|
+
/**
|
|
360
|
+
* Orchestrated mode with local authentication only
|
|
361
|
+
*/
|
|
362
|
+
exports.orchestratedLocalSchema = zod_1.z.object({
|
|
363
|
+
mode: zod_1.z.literal('orchestrated'),
|
|
364
|
+
type: zod_1.z.literal('local'),
|
|
365
|
+
/**
|
|
366
|
+
* Local signing configuration
|
|
367
|
+
*/
|
|
368
|
+
local: exports.localSigningConfigSchema.optional(),
|
|
369
|
+
/**
|
|
370
|
+
* Token storage configuration
|
|
371
|
+
* @default { type: 'memory' }
|
|
372
|
+
*/
|
|
373
|
+
tokenStorage: exports.tokenStorageConfigSchema.default({ type: 'memory' }),
|
|
374
|
+
/**
|
|
375
|
+
* Session storage mode
|
|
376
|
+
* - 'stateful': Store sessions in Redis/memory, JWT contains only reference
|
|
377
|
+
* - 'stateless': All state encrypted in JWT
|
|
378
|
+
* @default 'stateful'
|
|
379
|
+
*/
|
|
380
|
+
sessionMode: zod_1.z.enum(['stateful', 'stateless']).default('stateful'),
|
|
381
|
+
/**
|
|
382
|
+
* Allow default public access for unauthenticated requests
|
|
383
|
+
* When true: all tools are public by default, only tools marked with scopes require auth
|
|
384
|
+
* When false: all tools require authentication by default
|
|
385
|
+
* @default false
|
|
386
|
+
*/
|
|
387
|
+
allowDefaultPublic: zod_1.z.boolean().default(false),
|
|
388
|
+
/**
|
|
389
|
+
* Scopes granted to anonymous sessions (when allowDefaultPublic=true)
|
|
390
|
+
* @default ['anonymous']
|
|
391
|
+
*/
|
|
392
|
+
anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
|
|
393
|
+
/**
|
|
394
|
+
* Public access config (when allowDefaultPublic=true)
|
|
395
|
+
*/
|
|
396
|
+
publicAccess: exports.publicAccessConfigSchema.optional(),
|
|
397
|
+
/**
|
|
398
|
+
* Consent flow configuration for tool selection
|
|
399
|
+
* Allows users to choose which MCP tools to expose to the LLM
|
|
400
|
+
* @default { enabled: false }
|
|
401
|
+
*/
|
|
402
|
+
consent: exports.consentConfigSchema.optional(),
|
|
403
|
+
/**
|
|
404
|
+
* Token refresh settings
|
|
405
|
+
*/
|
|
406
|
+
refresh: exports.tokenRefreshConfigSchema.optional(),
|
|
407
|
+
/**
|
|
408
|
+
* Expected token audience for validation
|
|
409
|
+
*/
|
|
410
|
+
expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
411
|
+
/**
|
|
412
|
+
* Incremental (progressive) authorization configuration
|
|
413
|
+
* Allows users to skip app authorizations initially and authorize later
|
|
414
|
+
* @default { enabled: true, skippedAppBehavior: 'anonymous' }
|
|
415
|
+
*/
|
|
416
|
+
incrementalAuth: exports.incrementalAuthConfigSchema.optional(),
|
|
417
|
+
/**
|
|
418
|
+
* Transport protocol configuration
|
|
419
|
+
* Controls which transports are enabled and their behavior
|
|
420
|
+
*/
|
|
421
|
+
transport: exports.transportConfigSchema.optional(),
|
|
422
|
+
});
|
|
423
|
+
/**
|
|
424
|
+
* Orchestrated mode with remote OAuth provider
|
|
425
|
+
*/
|
|
426
|
+
exports.orchestratedRemoteSchema = zod_1.z.object({
|
|
427
|
+
mode: zod_1.z.literal('orchestrated'),
|
|
428
|
+
type: zod_1.z.literal('remote'),
|
|
429
|
+
/**
|
|
430
|
+
* Remote OAuth provider configuration (required for remote type)
|
|
431
|
+
*/
|
|
432
|
+
remote: exports.remoteProviderConfigSchema,
|
|
433
|
+
/**
|
|
434
|
+
* Local signing configuration (for issuing local tokens after upstream auth)
|
|
435
|
+
*/
|
|
436
|
+
local: exports.localSigningConfigSchema.optional(),
|
|
437
|
+
/**
|
|
438
|
+
* Token storage configuration
|
|
439
|
+
* @default { type: 'memory' }
|
|
440
|
+
*/
|
|
441
|
+
tokenStorage: exports.tokenStorageConfigSchema.default({ type: 'memory' }),
|
|
442
|
+
/**
|
|
443
|
+
* Session storage mode
|
|
444
|
+
* - 'stateful': Store sessions in Redis/memory, JWT contains only reference
|
|
445
|
+
* - 'stateless': All state encrypted in JWT
|
|
446
|
+
* @default 'stateful'
|
|
447
|
+
*/
|
|
448
|
+
sessionMode: zod_1.z.enum(['stateful', 'stateless']).default('stateful'),
|
|
449
|
+
/**
|
|
450
|
+
* Allow default public access for unauthenticated requests
|
|
451
|
+
* When true: all tools are public by default, only tools marked with scopes require auth
|
|
452
|
+
* When false: all tools require authentication by default
|
|
453
|
+
* @default false
|
|
454
|
+
*/
|
|
455
|
+
allowDefaultPublic: zod_1.z.boolean().default(false),
|
|
456
|
+
/**
|
|
457
|
+
* Scopes granted to anonymous sessions (when allowDefaultPublic=true)
|
|
458
|
+
* @default ['anonymous']
|
|
459
|
+
*/
|
|
460
|
+
anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
|
|
461
|
+
/**
|
|
462
|
+
* Public access config (when allowDefaultPublic=true)
|
|
463
|
+
*/
|
|
464
|
+
publicAccess: exports.publicAccessConfigSchema.optional(),
|
|
465
|
+
/**
|
|
466
|
+
* Consent flow configuration for tool selection
|
|
467
|
+
* Allows users to choose which MCP tools to expose to the LLM
|
|
468
|
+
* @default { enabled: false }
|
|
469
|
+
*/
|
|
470
|
+
consent: exports.consentConfigSchema.optional(),
|
|
471
|
+
/**
|
|
472
|
+
* Token refresh settings
|
|
473
|
+
*/
|
|
474
|
+
refresh: exports.tokenRefreshConfigSchema.optional(),
|
|
475
|
+
/**
|
|
476
|
+
* Expected token audience for validation
|
|
477
|
+
*/
|
|
478
|
+
expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
|
|
479
|
+
/**
|
|
480
|
+
* Incremental (progressive) authorization configuration
|
|
481
|
+
* Allows users to skip app authorizations initially and authorize later
|
|
482
|
+
* @default { enabled: true, skippedAppBehavior: 'anonymous' }
|
|
483
|
+
*/
|
|
484
|
+
incrementalAuth: exports.incrementalAuthConfigSchema.optional(),
|
|
485
|
+
/**
|
|
486
|
+
* Transport protocol configuration
|
|
487
|
+
* Controls which transports are enabled and their behavior
|
|
488
|
+
*/
|
|
489
|
+
transport: exports.transportConfigSchema.optional(),
|
|
490
|
+
});
|
|
491
|
+
// Combined orchestrated schema
|
|
492
|
+
exports.orchestratedAuthOptionsSchema = zod_1.z.discriminatedUnion('type', [
|
|
493
|
+
exports.orchestratedLocalSchema,
|
|
494
|
+
exports.orchestratedRemoteSchema,
|
|
495
|
+
]);
|
|
496
|
+
// ============================================
|
|
497
|
+
// UNIFIED AUTH OPTIONS
|
|
498
|
+
// ============================================
|
|
499
|
+
/**
|
|
500
|
+
* Main auth options schema - discriminated by 'mode'
|
|
501
|
+
*
|
|
502
|
+
* Uses z.union because we have nested discriminators (orchestrated has 'type')
|
|
503
|
+
*/
|
|
504
|
+
exports.authOptionsSchema = zod_1.z.union([
|
|
505
|
+
exports.publicAuthOptionsSchema,
|
|
506
|
+
exports.transparentAuthOptionsSchema,
|
|
507
|
+
exports.orchestratedLocalSchema,
|
|
508
|
+
exports.orchestratedRemoteSchema,
|
|
44
509
|
]);
|
|
45
510
|
const standaloneOptionSchema = {
|
|
46
511
|
standalone: zod_1.z.boolean().optional(),
|
|
47
512
|
excludeFromParent: zod_1.z.boolean().optional(),
|
|
48
513
|
};
|
|
49
|
-
exports.appAuthOptionsSchema = zod_1.z.
|
|
50
|
-
exports.
|
|
51
|
-
exports.
|
|
514
|
+
exports.appAuthOptionsSchema = zod_1.z.union([
|
|
515
|
+
exports.publicAuthOptionsSchema.extend(standaloneOptionSchema),
|
|
516
|
+
exports.transparentAuthOptionsSchema.extend(standaloneOptionSchema),
|
|
517
|
+
exports.orchestratedLocalSchema.extend(standaloneOptionSchema),
|
|
518
|
+
exports.orchestratedRemoteSchema.extend(standaloneOptionSchema),
|
|
52
519
|
]);
|
|
520
|
+
// ============================================
|
|
521
|
+
// HELPER FUNCTIONS
|
|
522
|
+
// ============================================
|
|
523
|
+
/**
|
|
524
|
+
* Parse and validate auth options with defaults
|
|
525
|
+
*/
|
|
526
|
+
function parseAuthOptions(input) {
|
|
527
|
+
return exports.authOptionsSchema.parse(input);
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Check if options are public mode
|
|
531
|
+
*/
|
|
532
|
+
function isPublicMode(options) {
|
|
533
|
+
return options.mode === 'public';
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* Check if options are transparent mode
|
|
537
|
+
*/
|
|
538
|
+
function isTransparentMode(options) {
|
|
539
|
+
return options.mode === 'transparent';
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Check if options are orchestrated mode
|
|
543
|
+
*/
|
|
544
|
+
function isOrchestratedMode(options) {
|
|
545
|
+
return options.mode === 'orchestrated';
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Check if orchestrated options are local type
|
|
549
|
+
*/
|
|
550
|
+
function isOrchestratedLocal(options) {
|
|
551
|
+
return options.type === 'local';
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Check if orchestrated options are remote type
|
|
555
|
+
*/
|
|
556
|
+
function isOrchestratedRemote(options) {
|
|
557
|
+
return options.type === 'remote';
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Check if options allow public/anonymous access
|
|
561
|
+
*/
|
|
562
|
+
function allowsPublicAccess(options) {
|
|
563
|
+
if (options.mode === 'public')
|
|
564
|
+
return true;
|
|
565
|
+
if (options.mode === 'transparent')
|
|
566
|
+
return options.allowAnonymous;
|
|
567
|
+
if (options.mode === 'orchestrated')
|
|
568
|
+
return options.allowDefaultPublic;
|
|
569
|
+
return false;
|
|
570
|
+
}
|
|
53
571
|
//# sourceMappingURL=auth.options.js.map
|