@frontmcp/sdk 0.6.0 → 0.6.2
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/{src/auth → auth}/instances/instance.local-primary-auth.d.ts +1 -1
- package/{src/auth → auth}/instances/instance.remote-primary-auth.d.ts +1 -1
- package/{src/auth → auth}/session/index.d.ts +1 -0
- package/auth/session/vercel-kv-session.store.d.ts +96 -0
- package/{src/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
- package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1779 -67
- package/{src/common → common}/metadata/prompt.metadata.d.ts +4 -0
- package/{src/common → common}/metadata/resource.metadata.d.ts +8 -0
- package/{src/common → common}/metadata/tool-ui.metadata.d.ts +2 -2
- package/{src/common → common}/metadata/tool.metadata.d.ts +4 -0
- package/{src/common → common}/schemas/http-output.schema.d.ts +24 -6
- package/common/types/options/auth/app-auth.schema.d.ts +275 -0
- package/common/types/options/auth/auth.interfaces.d.ts +461 -0
- package/common/types/options/auth/auth.schema.d.ts +284 -0
- package/common/types/options/auth/auth.utils.d.ts +32 -0
- package/common/types/options/auth/index.d.ts +16 -0
- package/common/types/options/auth/orchestrated.schema.d.ts +381 -0
- package/common/types/options/auth/public.schema.d.ts +42 -0
- package/common/types/options/auth/shared.schemas.d.ts +120 -0
- package/common/types/options/auth/transparent.schema.d.ts +56 -0
- package/common/types/options/auth/transport.deprecated.d.ts +63 -0
- package/{src/common → common}/types/options/index.d.ts +1 -1
- package/common/types/options/redis.options.d.ts +190 -0
- package/{src/common → common}/types/options/server-info.options.d.ts +4 -0
- package/{src/common → common}/types/options/transport.options.d.ts +74 -5
- package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
- package/common/utils/global-config.utils.d.ts +36 -0
- package/{src/common → common}/utils/index.d.ts +1 -0
- package/{src/completion → completion}/flows/complete.flow.d.ts +6 -8
- package/{src/errors → errors}/index.d.ts +1 -1
- package/{src/errors → errors}/mcp.error.d.ts +9 -0
- package/esm/index.mjs +22664 -0
- package/esm/mcp-apps/index.mjs +723 -0
- package/esm/package.json +81 -0
- package/{src/front-mcp → front-mcp}/front-mcp.providers.d.ts +246 -38
- package/front-mcp/index.d.ts +2 -0
- package/{src/index.d.ts → index.d.ts} +1 -1
- package/index.js +22957 -0
- package/logger/logger.tokens.d.ts +1 -0
- package/{src/logging → logging}/flows/set-level.flow.d.ts +6 -8
- package/mcp-apps/index.js +799 -0
- package/package.json +37 -17
- package/{src/prompt → prompt}/flows/get-prompt.flow.d.ts +14 -8
- package/{src/prompt → prompt}/flows/prompts-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/read-resource.flow.d.ts +8 -9
- package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/resources-list.flow.d.ts +8 -7
- package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +6 -8
- package/{src/resource → resource}/flows/unsubscribe-resource.flow.d.ts +6 -8
- package/store/adapters/store.vercel-kv.adapter.d.ts +86 -0
- package/{src/store → store}/index.d.ts +2 -0
- package/store/store.factory.d.ts +86 -0
- package/{src/tool → tool}/flows/call-tool.flow.d.ts +18 -9
- package/{src/tool → tool}/flows/tools-list.flow.d.ts +9 -8
- package/{src/tool → tool}/ui/index.d.ts +4 -4
- package/{src/tool → tool}/ui/platform-adapters.d.ts +2 -2
- package/{src/tool → tool}/ui/template-helpers.d.ts +5 -7
- package/{src/tool → tool}/ui/ui-resource.handler.d.ts +1 -1
- package/{src/transport → transport}/mcp-handlers/complete-request.handler.d.ts +4 -15
- package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/index.d.ts +67 -195
- package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +5 -15
- package/{src/transport → transport}/mcp-handlers/logging-set-level-request.handler.d.ts +3 -14
- package/{src/transport → transport}/mcp-handlers/read-resource-request.handler.d.ts +4 -15
- package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +3 -14
- package/{src/transport → transport}/mcp-handlers/unsubscribe-request.handler.d.ts +3 -14
- package/{src/transport → transport}/transport.registry.d.ts +5 -1
- package/README.md +0 -460
- package/src/adapter/adapter.instance.js +0 -70
- package/src/adapter/adapter.instance.js.map +0 -1
- package/src/adapter/adapter.regsitry.js +0 -54
- package/src/adapter/adapter.regsitry.js.map +0 -1
- package/src/adapter/adapter.utils.js +0 -83
- package/src/adapter/adapter.utils.js.map +0 -1
- package/src/app/app.registry.js +0 -66
- package/src/app/app.registry.js.map +0 -1
- package/src/app/app.utils.js +0 -58
- package/src/app/app.utils.js.map +0 -1
- package/src/app/instances/app.local.instance.js +0 -67
- package/src/app/instances/app.local.instance.js.map +0 -1
- package/src/app/instances/app.remote.instance.js +0 -36
- package/src/app/instances/app.remote.instance.js.map +0 -1
- package/src/app/instances/index.js +0 -6
- package/src/app/instances/index.js.map +0 -1
- package/src/auth/auth.registry.js +0 -219
- package/src/auth/auth.registry.js.map +0 -1
- package/src/auth/auth.utils.js +0 -84
- package/src/auth/auth.utils.js.map +0 -1
- package/src/auth/authorization/authorization.class.js +0 -217
- package/src/auth/authorization/authorization.class.js.map +0 -1
- package/src/auth/authorization/authorization.types.js +0 -79
- package/src/auth/authorization/authorization.types.js.map +0 -1
- package/src/auth/authorization/index.js +0 -19
- package/src/auth/authorization/index.js.map +0 -1
- package/src/auth/authorization/orchestrated.authorization.js +0 -306
- package/src/auth/authorization/orchestrated.authorization.js.map +0 -1
- package/src/auth/authorization/public.authorization.js +0 -132
- package/src/auth/authorization/public.authorization.js.map +0 -1
- package/src/auth/authorization/transparent.authorization.js +0 -147
- package/src/auth/authorization/transparent.authorization.js.map +0 -1
- package/src/auth/consent/consent.types.js +0 -119
- package/src/auth/consent/consent.types.js.map +0 -1
- package/src/auth/consent/index.js +0 -13
- package/src/auth/consent/index.js.map +0 -1
- package/src/auth/detection/auth-provider-detection.js +0 -230
- package/src/auth/detection/auth-provider-detection.js.map +0 -1
- package/src/auth/detection/index.js +0 -15
- package/src/auth/detection/index.js.map +0 -1
- package/src/auth/flows/auth.verify.flow.js +0 -379
- package/src/auth/flows/auth.verify.flow.js.map +0 -1
- package/src/auth/flows/oauth.authorize.flow.js +0 -822
- package/src/auth/flows/oauth.authorize.flow.js.map +0 -1
- package/src/auth/flows/oauth.callback.flow.js +0 -357
- package/src/auth/flows/oauth.callback.flow.js.map +0 -1
- package/src/auth/flows/oauth.register.flow.js +0 -201
- package/src/auth/flows/oauth.register.flow.js.map +0 -1
- package/src/auth/flows/oauth.token.flow.js +0 -319
- package/src/auth/flows/oauth.token.flow.js.map +0 -1
- package/src/auth/flows/session.verify.flow.js +0 -304
- package/src/auth/flows/session.verify.flow.js.map +0 -1
- package/src/auth/flows/well-known.jwks.flow.js +0 -89
- package/src/auth/flows/well-known.jwks.flow.js.map +0 -1
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js +0 -122
- package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +0 -1
- package/src/auth/flows/well-known.prm.flow.js +0 -106
- package/src/auth/flows/well-known.prm.flow.js.map +0 -1
- package/src/auth/instances/instance.local-primary-auth.js +0 -308
- package/src/auth/instances/instance.local-primary-auth.js.map +0 -1
- package/src/auth/instances/instance.remote-primary-auth.js +0 -49
- package/src/auth/instances/instance.remote-primary-auth.js.map +0 -1
- package/src/auth/jwks/dev-key-persistence.js +0 -219
- package/src/auth/jwks/dev-key-persistence.js.map +0 -1
- package/src/auth/jwks/index.js +0 -7
- package/src/auth/jwks/index.js.map +0 -1
- package/src/auth/jwks/jwks.service.js +0 -303
- package/src/auth/jwks/jwks.service.js.map +0 -1
- package/src/auth/jwks/jwks.types.js +0 -3
- package/src/auth/jwks/jwks.types.js.map +0 -1
- package/src/auth/jwks/jwks.utils.js +0 -32
- package/src/auth/jwks/jwks.utils.js.map +0 -1
- package/src/auth/machine-id.js +0 -32
- package/src/auth/machine-id.js.map +0 -1
- package/src/auth/oauth/flows/oauth.authorize.flow.js +0 -33
- package/src/auth/oauth/flows/oauth.authorize.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.device-authorization.flow.js +0 -48
- package/src/auth/oauth/flows/oauth.device-authorization.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.introspect.flow.js +0 -28
- package/src/auth/oauth/flows/oauth.introspect.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.par.flow.js +0 -29
- package/src/auth/oauth/flows/oauth.par.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.revoke.flow.js +0 -27
- package/src/auth/oauth/flows/oauth.revoke.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.token.flow.js +0 -59
- package/src/auth/oauth/flows/oauth.token.flow.js.map +0 -1
- package/src/auth/oauth/flows/oauth.userinfo.flow.js +0 -24
- package/src/auth/oauth/flows/oauth.userinfo.flow.js.map +0 -1
- package/src/auth/oauth/flows/oidc.logout.flow.js +0 -20
- package/src/auth/oauth/flows/oidc.logout.flow.js.map +0 -1
- package/src/auth/session/authorization-vault.js +0 -817
- package/src/auth/session/authorization-vault.js.map +0 -1
- package/src/auth/session/authorization.store.js +0 -323
- package/src/auth/session/authorization.store.js.map +0 -1
- package/src/auth/session/encrypted-authorization-vault.js +0 -493
- package/src/auth/session/encrypted-authorization-vault.js.map +0 -1
- package/src/auth/session/index.js +0 -16
- package/src/auth/session/index.js.map +0 -1
- package/src/auth/session/record/session.base.js +0 -125
- package/src/auth/session/record/session.base.js.map +0 -1
- package/src/auth/session/record/session.stateful.js +0 -55
- package/src/auth/session/record/session.stateful.js.map +0 -1
- package/src/auth/session/record/session.stateless.js +0 -32
- package/src/auth/session/record/session.stateless.js.map +0 -1
- package/src/auth/session/record/session.transparent.js +0 -22
- package/src/auth/session/record/session.transparent.js.map +0 -1
- package/src/auth/session/redis-session.store.js +0 -204
- package/src/auth/session/redis-session.store.js.map +0 -1
- package/src/auth/session/session.crypto.js +0 -47
- package/src/auth/session/session.crypto.js.map +0 -1
- package/src/auth/session/session.schema.js +0 -13
- package/src/auth/session/session.schema.js.map +0 -1
- package/src/auth/session/session.service.js +0 -105
- package/src/auth/session/session.service.js.map +0 -1
- package/src/auth/session/session.transport.js +0 -20
- package/src/auth/session/session.transport.js.map +0 -1
- package/src/auth/session/session.types.js +0 -4
- package/src/auth/session/session.types.js.map +0 -1
- package/src/auth/session/token.refresh.js +0 -63
- package/src/auth/session/token.refresh.js.map +0 -1
- package/src/auth/session/token.store.js +0 -53
- package/src/auth/session/token.store.js.map +0 -1
- package/src/auth/session/token.vault.js +0 -54
- package/src/auth/session/token.vault.js.map +0 -1
- package/src/auth/session/transport-session.manager.js +0 -298
- package/src/auth/session/transport-session.manager.js.map +0 -1
- package/src/auth/session/transport-session.types.js +0 -111
- package/src/auth/session/transport-session.types.js.map +0 -1
- package/src/auth/session/utils/auth-token.utils.js +0 -57
- package/src/auth/session/utils/auth-token.utils.js.map +0 -1
- package/src/auth/session/utils/session-id.utils.js +0 -217
- package/src/auth/session/utils/session-id.utils.js.map +0 -1
- package/src/auth/session/utils/tiny-ttl-cache.js +0 -26
- package/src/auth/session/utils/tiny-ttl-cache.js.map +0 -1
- package/src/auth/session/vault-encryption.js +0 -263
- package/src/auth/session/vault-encryption.js.map +0 -1
- package/src/auth/ui/base-layout.js +0 -279
- package/src/auth/ui/base-layout.js.map +0 -1
- package/src/auth/ui/index.js +0 -34
- package/src/auth/ui/index.js.map +0 -1
- package/src/auth/ui/templates.js +0 -426
- package/src/auth/ui/templates.js.map +0 -1
- package/src/auth/utils/audience.validator.js +0 -196
- package/src/auth/utils/audience.validator.js.map +0 -1
- package/src/auth/utils/index.js +0 -7
- package/src/auth/utils/index.js.map +0 -1
- package/src/auth/utils/www-authenticate.utils.js +0 -183
- package/src/auth/utils/www-authenticate.utils.js.map +0 -1
- package/src/common/common.schema.js +0 -35
- package/src/common/common.schema.js.map +0 -1
- package/src/common/constants.js +0 -13
- package/src/common/constants.js.map +0 -1
- package/src/common/decorators/adapter.decorator.js +0 -20
- package/src/common/decorators/adapter.decorator.js.map +0 -1
- package/src/common/decorators/app.decorator.js +0 -44
- package/src/common/decorators/app.decorator.js.map +0 -1
- package/src/common/decorators/auth-provider.decorator.js +0 -20
- package/src/common/decorators/auth-provider.decorator.js.map +0 -1
- package/src/common/decorators/decorator-utils.js +0 -195
- package/src/common/decorators/decorator-utils.js.map +0 -1
- package/src/common/decorators/flow.decorator.js +0 -19
- package/src/common/decorators/flow.decorator.js.map +0 -1
- package/src/common/decorators/front-mcp.decorator.js +0 -67
- package/src/common/decorators/front-mcp.decorator.js.map +0 -1
- package/src/common/decorators/hook.decorator.js +0 -178
- package/src/common/decorators/hook.decorator.js.map +0 -1
- package/src/common/decorators/index.js +0 -16
- package/src/common/decorators/index.js.map +0 -1
- package/src/common/decorators/logger.decorator.js +0 -20
- package/src/common/decorators/logger.decorator.js.map +0 -1
- package/src/common/decorators/plugin.decorator.js +0 -39
- package/src/common/decorators/plugin.decorator.js.map +0 -1
- package/src/common/decorators/prompt.decorator.js +0 -38
- package/src/common/decorators/prompt.decorator.js.map +0 -1
- package/src/common/decorators/provider.decorator.js +0 -20
- package/src/common/decorators/provider.decorator.js.map +0 -1
- package/src/common/decorators/resource.decorator.js +0 -94
- package/src/common/decorators/resource.decorator.js.map +0 -1
- package/src/common/decorators/tool.decorator.js +0 -45
- package/src/common/decorators/tool.decorator.js.map +0 -1
- package/src/common/dynamic/dynamic.adapter.js +0 -28
- package/src/common/dynamic/dynamic.adapter.js.map +0 -1
- package/src/common/dynamic/dynamic.plugin.js +0 -42
- package/src/common/dynamic/dynamic.plugin.js.map +0 -1
- package/src/common/dynamic/dynamic.utils.js +0 -27
- package/src/common/dynamic/dynamic.utils.js.map +0 -1
- package/src/common/dynamic/index.js +0 -6
- package/src/common/dynamic/index.js.map +0 -1
- package/src/common/entries/adapter.entry.js +0 -8
- package/src/common/entries/adapter.entry.js.map +0 -1
- package/src/common/entries/app.entry.js +0 -9
- package/src/common/entries/app.entry.js.map +0 -1
- package/src/common/entries/auth-provider.entry.js +0 -8
- package/src/common/entries/auth-provider.entry.js.map +0 -1
- package/src/common/entries/base.entry.js +0 -17
- package/src/common/entries/base.entry.js.map +0 -1
- package/src/common/entries/flow.entry.js +0 -21
- package/src/common/entries/flow.entry.js.map +0 -1
- package/src/common/entries/hook.entry.js +0 -20
- package/src/common/entries/hook.entry.js.map +0 -1
- package/src/common/entries/index.js +0 -17
- package/src/common/entries/index.js.map +0 -1
- package/src/common/entries/logger.entry.js +0 -8
- package/src/common/entries/logger.entry.js.map +0 -1
- package/src/common/entries/plugin.entry.js +0 -8
- package/src/common/entries/plugin.entry.js.map +0 -1
- package/src/common/entries/prompt.entry.js +0 -18
- package/src/common/entries/prompt.entry.js.map +0 -1
- package/src/common/entries/provider.entry.js +0 -8
- package/src/common/entries/provider.entry.js.map +0 -1
- package/src/common/entries/resource.entry.js +0 -35
- package/src/common/entries/resource.entry.js.map +0 -1
- package/src/common/entries/scope.entry.js +0 -14
- package/src/common/entries/scope.entry.js.map +0 -1
- package/src/common/entries/tool.entry.js +0 -31
- package/src/common/entries/tool.entry.js.map +0 -1
- package/src/common/flow/flow.utils.js +0 -96
- package/src/common/flow/flow.utils.js.map +0 -1
- package/src/common/index.js +0 -20
- package/src/common/index.js.map +0 -1
- package/src/common/interfaces/adapter.interface.js +0 -3
- package/src/common/interfaces/adapter.interface.js.map +0 -1
- package/src/common/interfaces/app.interface.js +0 -3
- package/src/common/interfaces/app.interface.js.map +0 -1
- package/src/common/interfaces/auth-hook.interface.js +0 -135
- package/src/common/interfaces/auth-hook.interface.js.map +0 -1
- package/src/common/interfaces/auth-provider.interface.js +0 -18
- package/src/common/interfaces/auth-provider.interface.js.map +0 -1
- package/src/common/interfaces/base.interface.js +0 -3
- package/src/common/interfaces/base.interface.js.map +0 -1
- package/src/common/interfaces/execution-context.interface.js +0 -166
- package/src/common/interfaces/execution-context.interface.js.map +0 -1
- package/src/common/interfaces/flow.interface.js +0 -95
- package/src/common/interfaces/flow.interface.js.map +0 -1
- package/src/common/interfaces/front-mcp.interface.js +0 -3
- package/src/common/interfaces/front-mcp.interface.js.map +0 -1
- package/src/common/interfaces/hook.interface.js +0 -3
- package/src/common/interfaces/hook.interface.js.map +0 -1
- package/src/common/interfaces/index.js +0 -21
- package/src/common/interfaces/index.js.map +0 -1
- package/src/common/interfaces/internal/flow.utils.js +0 -83
- package/src/common/interfaces/internal/flow.utils.js.map +0 -1
- package/src/common/interfaces/internal/index.js +0 -7
- package/src/common/interfaces/internal/index.js.map +0 -1
- package/src/common/interfaces/internal/primary-auth-provider.interface.js +0 -81
- package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +0 -1
- package/src/common/interfaces/internal/registry.interface.js +0 -3
- package/src/common/interfaces/internal/registry.interface.js.map +0 -1
- package/src/common/interfaces/logger.interface.js +0 -10
- package/src/common/interfaces/logger.interface.js.map +0 -1
- package/src/common/interfaces/plugin.interface.js +0 -3
- package/src/common/interfaces/plugin.interface.js.map +0 -1
- package/src/common/interfaces/prompt.interface.js +0 -81
- package/src/common/interfaces/prompt.interface.js.map +0 -1
- package/src/common/interfaces/provider.interface.js +0 -18
- package/src/common/interfaces/provider.interface.js.map +0 -1
- package/src/common/interfaces/resource.interface.js +0 -56
- package/src/common/interfaces/resource.interface.js.map +0 -1
- package/src/common/interfaces/scope.interface.js +0 -3
- package/src/common/interfaces/scope.interface.js.map +0 -1
- package/src/common/interfaces/server.interface.js +0 -18
- package/src/common/interfaces/server.interface.js.map +0 -1
- package/src/common/interfaces/session-hook.interface.js +0 -140
- package/src/common/interfaces/session-hook.interface.js.map +0 -1
- package/src/common/interfaces/tool-hook.interface.js +0 -92
- package/src/common/interfaces/tool-hook.interface.js.map +0 -1
- package/src/common/interfaces/tool.interface.js +0 -117
- package/src/common/interfaces/tool.interface.js.map +0 -1
- package/src/common/metadata/adapter.metadata.js +0 -10
- package/src/common/metadata/adapter.metadata.js.map +0 -1
- package/src/common/metadata/app.metadata.js +0 -30
- package/src/common/metadata/app.metadata.js.map +0 -1
- package/src/common/metadata/auth-provider.metadata.js +0 -19
- package/src/common/metadata/auth-provider.metadata.js.map +0 -1
- package/src/common/metadata/flow.metadata.js +0 -15
- package/src/common/metadata/flow.metadata.js.map +0 -1
- package/src/common/metadata/front-mcp.metadata.js +0 -29
- package/src/common/metadata/front-mcp.metadata.js.map +0 -1
- package/src/common/metadata/hook.metadata.js +0 -3
- package/src/common/metadata/hook.metadata.js.map +0 -1
- package/src/common/metadata/index.js +0 -17
- package/src/common/metadata/index.js.map +0 -1
- package/src/common/metadata/logger.metadata.js +0 -10
- package/src/common/metadata/logger.metadata.js.map +0 -1
- package/src/common/metadata/plugin.metadata.js +0 -18
- package/src/common/metadata/plugin.metadata.js.map +0 -1
- package/src/common/metadata/prompt.metadata.js +0 -27
- package/src/common/metadata/prompt.metadata.js.map +0 -1
- package/src/common/metadata/provider.metadata.js +0 -36
- package/src/common/metadata/provider.metadata.js.map +0 -1
- package/src/common/metadata/resource.metadata.js +0 -31
- package/src/common/metadata/resource.metadata.js.map +0 -1
- package/src/common/metadata/tool-ui.metadata.js +0 -12
- package/src/common/metadata/tool-ui.metadata.js.map +0 -1
- package/src/common/metadata/tool.metadata.js +0 -55
- package/src/common/metadata/tool.metadata.js.map +0 -1
- package/src/common/migrate/auth-transport.migrate.js +0 -140
- package/src/common/migrate/auth-transport.migrate.js.map +0 -1
- package/src/common/migrate/index.js +0 -6
- package/src/common/migrate/index.js.map +0 -1
- package/src/common/providers/base-config.provider.js +0 -128
- package/src/common/providers/base-config.provider.js.map +0 -1
- package/src/common/records/adapter.record.js +0 -11
- package/src/common/records/adapter.record.js.map +0 -1
- package/src/common/records/app.record.js +0 -9
- package/src/common/records/app.record.js.map +0 -1
- package/src/common/records/auth-provider.record.js +0 -12
- package/src/common/records/auth-provider.record.js.map +0 -1
- package/src/common/records/flow.record.js +0 -8
- package/src/common/records/flow.record.js.map +0 -1
- package/src/common/records/hook.record.js +0 -8
- package/src/common/records/hook.record.js.map +0 -1
- package/src/common/records/index.js +0 -16
- package/src/common/records/index.js.map +0 -1
- package/src/common/records/logger.record.js +0 -8
- package/src/common/records/logger.record.js.map +0 -1
- package/src/common/records/plugin.record.js +0 -11
- package/src/common/records/plugin.record.js.map +0 -1
- package/src/common/records/prompt.record.js +0 -9
- package/src/common/records/prompt.record.js.map +0 -1
- package/src/common/records/provider.record.js +0 -14
- package/src/common/records/provider.record.js.map +0 -1
- package/src/common/records/resource.record.js +0 -20
- package/src/common/records/resource.record.js.map +0 -1
- package/src/common/records/scope.record.js +0 -9
- package/src/common/records/scope.record.js.map +0 -1
- package/src/common/records/tool.record.js +0 -9
- package/src/common/records/tool.record.js.map +0 -1
- package/src/common/schemas/annotated-class.schema.js +0 -109
- package/src/common/schemas/annotated-class.schema.js.map +0 -1
- package/src/common/schemas/http-input.schema.js +0 -13
- package/src/common/schemas/http-input.schema.js.map +0 -1
- package/src/common/schemas/http-output.schema.js +0 -321
- package/src/common/schemas/http-output.schema.js.map +0 -1
- package/src/common/schemas/index.js +0 -8
- package/src/common/schemas/index.js.map +0 -1
- package/src/common/schemas/session-header.schema.js +0 -42
- package/src/common/schemas/session-header.schema.js.map +0 -1
- package/src/common/tokens/adapter.tokens.js +0 -11
- package/src/common/tokens/adapter.tokens.js.map +0 -1
- package/src/common/tokens/app.tokens.js +0 -30
- package/src/common/tokens/app.tokens.js.map +0 -1
- package/src/common/tokens/auth-provider.tokens.js +0 -12
- package/src/common/tokens/auth-provider.tokens.js.map +0 -1
- package/src/common/tokens/base.tokens.js +0 -9
- package/src/common/tokens/base.tokens.js.map +0 -1
- package/src/common/tokens/flow-hook.tokens.js +0 -9
- package/src/common/tokens/flow-hook.tokens.js.map +0 -1
- package/src/common/tokens/flow.tokens.js +0 -16
- package/src/common/tokens/flow.tokens.js.map +0 -1
- package/src/common/tokens/front-mcp.tokens.js +0 -24
- package/src/common/tokens/front-mcp.tokens.js.map +0 -1
- package/src/common/tokens/index.js +0 -17
- package/src/common/tokens/index.js.map +0 -1
- package/src/common/tokens/logger.tokens.js +0 -11
- package/src/common/tokens/logger.tokens.js.map +0 -1
- package/src/common/tokens/plugin.tokens.js +0 -18
- package/src/common/tokens/plugin.tokens.js.map +0 -1
- package/src/common/tokens/prompt.tokens.js +0 -14
- package/src/common/tokens/prompt.tokens.js.map +0 -1
- package/src/common/tokens/provider.tokens.js +0 -12
- package/src/common/tokens/provider.tokens.js.map +0 -1
- package/src/common/tokens/resource.tokens.js +0 -28
- package/src/common/tokens/resource.tokens.js.map +0 -1
- package/src/common/tokens/server.tokens.js +0 -11
- package/src/common/tokens/server.tokens.js.map +0 -1
- package/src/common/tokens/tool.tokens.js +0 -21
- package/src/common/tokens/tool.tokens.js.map +0 -1
- package/src/common/types/auth/index.js +0 -6
- package/src/common/types/auth/index.js.map +0 -1
- package/src/common/types/auth/jwt.types.js +0 -36
- package/src/common/types/auth/jwt.types.js.map +0 -1
- package/src/common/types/auth/session.types.js +0 -53
- package/src/common/types/auth/session.types.js.map +0 -1
- package/src/common/types/common.types.js +0 -3
- package/src/common/types/common.types.js.map +0 -1
- package/src/common/types/index.js +0 -7
- package/src/common/types/index.js.map +0 -1
- package/src/common/types/options/auth.options.d.ts +0 -1266
- package/src/common/types/options/auth.options.js +0 -560
- package/src/common/types/options/auth.options.js.map +0 -1
- package/src/common/types/options/http.options.js +0 -10
- package/src/common/types/options/http.options.js.map +0 -1
- package/src/common/types/options/index.js +0 -11
- package/src/common/types/options/index.js.map +0 -1
- package/src/common/types/options/logging.options.js +0 -33
- package/src/common/types/options/logging.options.js.map +0 -1
- package/src/common/types/options/redis.options.d.ts +0 -22
- package/src/common/types/options/redis.options.js +0 -45
- package/src/common/types/options/redis.options.js.map +0 -1
- package/src/common/types/options/server-info.options.js +0 -13
- package/src/common/types/options/server-info.options.js.map +0 -1
- package/src/common/types/options/session.options.js +0 -32
- package/src/common/types/options/session.options.js.map +0 -1
- package/src/common/types/options/transport.options.js +0 -121
- package/src/common/types/options/transport.options.js.map +0 -1
- package/src/common/utils/decide-request-intent.utils.js +0 -391
- package/src/common/utils/decide-request-intent.utils.js.map +0 -1
- package/src/common/utils/index.js +0 -6
- package/src/common/utils/index.js.map +0 -1
- package/src/common/utils/path.utils.js +0 -66
- package/src/common/utils/path.utils.js.map +0 -1
- package/src/completion/flows/complete.flow.js +0 -199
- package/src/completion/flows/complete.flow.js.map +0 -1
- package/src/context/frontmcp-context-storage.js +0 -183
- package/src/context/frontmcp-context-storage.js.map +0 -1
- package/src/context/frontmcp-context.js +0 -360
- package/src/context/frontmcp-context.js.map +0 -1
- package/src/context/frontmcp-context.provider.js +0 -61
- package/src/context/frontmcp-context.provider.js.map +0 -1
- package/src/context/index.js +0 -64
- package/src/context/index.js.map +0 -1
- package/src/context/request-context-storage.js +0 -183
- package/src/context/request-context-storage.js.map +0 -1
- package/src/context/request-context.js +0 -209
- package/src/context/request-context.js.map +0 -1
- package/src/context/request-context.provider.js +0 -51
- package/src/context/request-context.provider.js.map +0 -1
- package/src/context/session-key.provider.js +0 -65
- package/src/context/session-key.provider.js.map +0 -1
- package/src/context/trace-context.js +0 -142
- package/src/context/trace-context.js.map +0 -1
- package/src/errors/authorization-required.error.js +0 -274
- package/src/errors/authorization-required.error.js.map +0 -1
- package/src/errors/error-handler.js +0 -107
- package/src/errors/error-handler.js.map +0 -1
- package/src/errors/index.js +0 -44
- package/src/errors/index.js.map +0 -1
- package/src/errors/mcp.error.js +0 -398
- package/src/errors/mcp.error.js.map +0 -1
- package/src/exceptions/mcp-exceptions/session-missing.exception.js +0 -11
- package/src/exceptions/mcp-exceptions/session-missing.exception.js.map +0 -1
- package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js +0 -15
- package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js.map +0 -1
- package/src/flows/flow.instance.js +0 -420
- package/src/flows/flow.instance.js.map +0 -1
- package/src/flows/flow.registry.js +0 -121
- package/src/flows/flow.registry.js.map +0 -1
- package/src/flows/flow.stages.js +0 -113
- package/src/flows/flow.stages.js.map +0 -1
- package/src/flows/flow.utils.js +0 -36
- package/src/flows/flow.utils.js.map +0 -1
- package/src/front-mcp/front-mcp.js +0 -63
- package/src/front-mcp/front-mcp.js.map +0 -1
- package/src/front-mcp/front-mcp.providers.js +0 -29
- package/src/front-mcp/front-mcp.providers.js.map +0 -1
- package/src/front-mcp/front-mcp.tokens.js +0 -5
- package/src/front-mcp/front-mcp.tokens.js.map +0 -1
- package/src/front-mcp/index.d.ts +0 -1
- package/src/front-mcp/index.js +0 -5
- package/src/front-mcp/index.js.map +0 -1
- package/src/front-mcp/serverless-handler.js +0 -61
- package/src/front-mcp/serverless-handler.js.map +0 -1
- package/src/hooks/hook.instance.js +0 -26
- package/src/hooks/hook.instance.js.map +0 -1
- package/src/hooks/hook.registry.js +0 -152
- package/src/hooks/hook.registry.js.map +0 -1
- package/src/hooks/hooks.utils.js +0 -34
- package/src/hooks/hooks.utils.js.map +0 -1
- package/src/index.js +0 -36
- package/src/index.js.map +0 -1
- package/src/logger/instances/instance.console-logger.js +0 -75
- package/src/logger/instances/instance.console-logger.js.map +0 -1
- package/src/logger/instances/instance.logger.js +0 -77
- package/src/logger/instances/instance.logger.js.map +0 -1
- package/src/logger/logger.registry.js +0 -96
- package/src/logger/logger.registry.js.map +0 -1
- package/src/logger/logger.tokens.js +0 -3
- package/src/logger/logger.tokens.js.map +0 -1
- package/src/logger/logger.types.js +0 -8
- package/src/logger/logger.types.js.map +0 -1
- package/src/logger/logger.utils.js +0 -42
- package/src/logger/logger.utils.js.map +0 -1
- package/src/logging/flows/set-level.flow.js +0 -108
- package/src/logging/flows/set-level.flow.js.map +0 -1
- package/src/mcp-apps/csp.js +0 -267
- package/src/mcp-apps/csp.js.map +0 -1
- package/src/mcp-apps/index.js +0 -91
- package/src/mcp-apps/index.js.map +0 -1
- package/src/mcp-apps/schemas.js +0 -345
- package/src/mcp-apps/schemas.js.map +0 -1
- package/src/mcp-apps/template.js +0 -419
- package/src/mcp-apps/template.js.map +0 -1
- package/src/mcp-apps/types.js +0 -59
- package/src/mcp-apps/types.js.map +0 -1
- package/src/notification/index.js +0 -13
- package/src/notification/index.js.map +0 -1
- package/src/notification/notification.service.js +0 -731
- package/src/notification/notification.service.js.map +0 -1
- package/src/plugin/plugin.registry.js +0 -152
- package/src/plugin/plugin.registry.js.map +0 -1
- package/src/plugin/plugin.utils.js +0 -88
- package/src/plugin/plugin.utils.js.map +0 -1
- package/src/prompt/flows/get-prompt.flow.js +0 -214
- package/src/prompt/flows/get-prompt.flow.js.map +0 -1
- package/src/prompt/flows/prompts-list.flow.js +0 -176
- package/src/prompt/flows/prompts-list.flow.js.map +0 -1
- package/src/prompt/index.js +0 -17
- package/src/prompt/index.js.map +0 -1
- package/src/prompt/prompt.events.js +0 -25
- package/src/prompt/prompt.events.js.map +0 -1
- package/src/prompt/prompt.instance.js +0 -120
- package/src/prompt/prompt.instance.js.map +0 -1
- package/src/prompt/prompt.registry.js +0 -380
- package/src/prompt/prompt.registry.js.map +0 -1
- package/src/prompt/prompt.types.js +0 -11
- package/src/prompt/prompt.types.js.map +0 -1
- package/src/prompt/prompt.utils.js +0 -136
- package/src/prompt/prompt.utils.js.map +0 -1
- package/src/provider/provider.registry.js +0 -868
- package/src/provider/provider.registry.js.map +0 -1
- package/src/provider/provider.types.js +0 -3
- package/src/provider/provider.types.js.map +0 -1
- package/src/provider/provider.utils.js +0 -103
- package/src/provider/provider.utils.js.map +0 -1
- package/src/regsitry/index.js +0 -5
- package/src/regsitry/index.js.map +0 -1
- package/src/regsitry/registry.base.js +0 -32
- package/src/regsitry/registry.base.js.map +0 -1
- package/src/resource/flows/read-resource.flow.js +0 -270
- package/src/resource/flows/read-resource.flow.js.map +0 -1
- package/src/resource/flows/resource-templates-list.flow.js +0 -191
- package/src/resource/flows/resource-templates-list.flow.js.map +0 -1
- package/src/resource/flows/resources-list.flow.js +0 -196
- package/src/resource/flows/resources-list.flow.js.map +0 -1
- package/src/resource/flows/subscribe-resource.flow.js +0 -123
- package/src/resource/flows/subscribe-resource.flow.js.map +0 -1
- package/src/resource/flows/unsubscribe-resource.flow.js +0 -107
- package/src/resource/flows/unsubscribe-resource.flow.js.map +0 -1
- package/src/resource/index.js +0 -20
- package/src/resource/index.js.map +0 -1
- package/src/resource/resource.events.js +0 -17
- package/src/resource/resource.events.js.map +0 -1
- package/src/resource/resource.instance.js +0 -163
- package/src/resource/resource.instance.js.map +0 -1
- package/src/resource/resource.registry.js +0 -468
- package/src/resource/resource.registry.js.map +0 -1
- package/src/resource/resource.types.js +0 -11
- package/src/resource/resource.types.js.map +0 -1
- package/src/resource/resource.utils.js +0 -151
- package/src/resource/resource.utils.js.map +0 -1
- package/src/scope/flows/http.request.flow.js +0 -474
- package/src/scope/flows/http.request.flow.js.map +0 -1
- package/src/scope/index.js +0 -6
- package/src/scope/index.js.map +0 -1
- package/src/scope/scope.instance.js +0 -263
- package/src/scope/scope.instance.js.map +0 -1
- package/src/scope/scope.registry.js +0 -94
- package/src/scope/scope.registry.js.map +0 -1
- package/src/scope/scope.utils.js +0 -61
- package/src/scope/scope.utils.js.map +0 -1
- package/src/server/adapters/base.host.adapter.js +0 -8
- package/src/server/adapters/base.host.adapter.js.map +0 -1
- package/src/server/adapters/express.host.adapter.js +0 -70
- package/src/server/adapters/express.host.adapter.js.map +0 -1
- package/src/server/server.instance.js +0 -54
- package/src/server/server.instance.js.map +0 -1
- package/src/server/server.types.js +0 -3
- package/src/server/server.types.js.map +0 -1
- package/src/server/server.validation.js +0 -192
- package/src/server/server.validation.js.map +0 -1
- package/src/store/adapters/store.base.adapter.js +0 -16
- package/src/store/adapters/store.base.adapter.js.map +0 -1
- package/src/store/adapters/store.memory.adapter.js +0 -89
- package/src/store/adapters/store.memory.adapter.js.map +0 -1
- package/src/store/adapters/store.redis.adapter.js +0 -104
- package/src/store/adapters/store.redis.adapter.js.map +0 -1
- package/src/store/index.js +0 -12
- package/src/store/index.js.map +0 -1
- package/src/store/store.helpers.js +0 -67
- package/src/store/store.helpers.js.map +0 -1
- package/src/store/store.registry.js +0 -37
- package/src/store/store.registry.js.map +0 -1
- package/src/store/store.tokens.js +0 -7
- package/src/store/store.tokens.js.map +0 -1
- package/src/store/store.types.js +0 -11
- package/src/store/store.types.js.map +0 -1
- package/src/store/store.utils.js +0 -18
- package/src/store/store.utils.js.map +0 -1
- package/src/tool/flows/call-tool.flow.js +0 -616
- package/src/tool/flows/call-tool.flow.js.map +0 -1
- package/src/tool/flows/tools-list.flow.js +0 -328
- package/src/tool/flows/tools-list.flow.js.map +0 -1
- package/src/tool/tool.events.js +0 -16
- package/src/tool/tool.events.js.map +0 -1
- package/src/tool/tool.instance.js +0 -117
- package/src/tool/tool.instance.js.map +0 -1
- package/src/tool/tool.registry.js +0 -353
- package/src/tool/tool.registry.js.map +0 -1
- package/src/tool/tool.types.js +0 -10
- package/src/tool/tool.types.js.map +0 -1
- package/src/tool/tool.utils.js +0 -366
- package/src/tool/tool.utils.js.map +0 -1
- package/src/tool/ui/index.js +0 -63
- package/src/tool/ui/index.js.map +0 -1
- package/src/tool/ui/platform-adapters.js +0 -18
- package/src/tool/ui/platform-adapters.js.map +0 -1
- package/src/tool/ui/template-helpers.js +0 -112
- package/src/tool/ui/template-helpers.js.map +0 -1
- package/src/tool/ui/ui-resource-template.js +0 -64
- package/src/tool/ui/ui-resource-template.js.map +0 -1
- package/src/tool/ui/ui-resource.handler.js +0 -129
- package/src/tool/ui/ui-resource.handler.js.map +0 -1
- package/src/transport/adapters/transport.local.adapter.js +0 -148
- package/src/transport/adapters/transport.local.adapter.js.map +0 -1
- package/src/transport/adapters/transport.sse.adapter.js +0 -65
- package/src/transport/adapters/transport.sse.adapter.js.map +0 -1
- package/src/transport/adapters/transport.streamable-http.adapter.js +0 -112
- package/src/transport/adapters/transport.streamable-http.adapter.js.map +0 -1
- package/src/transport/flows/handle.sse.flow.js +0 -197
- package/src/transport/flows/handle.sse.flow.js.map +0 -1
- package/src/transport/flows/handle.stateless-http.flow.js +0 -102
- package/src/transport/flows/handle.stateless-http.flow.js.map +0 -1
- package/src/transport/flows/handle.streamable-http.flow.js +0 -315
- package/src/transport/flows/handle.streamable-http.flow.js.map +0 -1
- package/src/transport/legacy/legacy.sse.tranporter.js +0 -185
- package/src/transport/legacy/legacy.sse.tranporter.js.map +0 -1
- package/src/transport/mcp-handlers/Initialized-notification.hanlder.js +0 -14
- package/src/transport/mcp-handlers/Initialized-notification.hanlder.js.map +0 -1
- package/src/transport/mcp-handlers/call-tool-request.handler.js +0 -46
- package/src/transport/mcp-handlers/call-tool-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/complete-request.handler.js +0 -11
- package/src/transport/mcp-handlers/complete-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/get-prompt-request.handler.js +0 -11
- package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/index.js +0 -57
- package/src/transport/mcp-handlers/index.js.map +0 -1
- package/src/transport/mcp-handlers/initialize-request.handler.js +0 -109
- package/src/transport/mcp-handlers/initialize-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-prompts-request.handler.js +0 -11
- package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +0 -12
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-resources-request.handler.js +0 -12
- package/src/transport/mcp-handlers/list-resources-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/list-tools-request.handler.js +0 -11
- package/src/transport/mcp-handlers/list-tools-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js +0 -34
- package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/mcp-handlers.types.js +0 -3
- package/src/transport/mcp-handlers/mcp-handlers.types.js.map +0 -1
- package/src/transport/mcp-handlers/read-resource-request.handler.js +0 -12
- package/src/transport/mcp-handlers/read-resource-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +0 -26
- package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +0 -1
- package/src/transport/mcp-handlers/subscribe-request.handler.js +0 -34
- package/src/transport/mcp-handlers/subscribe-request.handler.js.map +0 -1
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js +0 -34
- package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +0 -1
- package/src/transport/transport.error.js +0 -25
- package/src/transport/transport.error.js.map +0 -1
- package/src/transport/transport.event-store.js +0 -36
- package/src/transport/transport.event-store.js.map +0 -1
- package/src/transport/transport.local.js +0 -71
- package/src/transport/transport.local.js.map +0 -1
- package/src/transport/transport.registry.js +0 -523
- package/src/transport/transport.registry.js.map +0 -1
- package/src/transport/transport.remote.js +0 -31
- package/src/transport/transport.remote.js.map +0 -1
- package/src/transport/transport.types.js +0 -3
- package/src/transport/transport.types.js.map +0 -1
- package/src/types/drinen-hooks.types.js +0 -3
- package/src/types/drinen-hooks.types.js.map +0 -1
- package/src/types/invoke.type.js +0 -34
- package/src/types/invoke.type.js.map +0 -1
- package/src/types/token.types.js +0 -3
- package/src/types/token.types.js.map +0 -1
- package/src/utils/content.utils.js +0 -194
- package/src/utils/content.utils.js.map +0 -1
- package/src/utils/index.js +0 -55
- package/src/utils/index.js.map +0 -1
- package/src/utils/lineage.utils.js +0 -82
- package/src/utils/lineage.utils.js.map +0 -1
- package/src/utils/metadata.utils.js +0 -26
- package/src/utils/metadata.utils.js.map +0 -1
- package/src/utils/naming.utils.js +0 -136
- package/src/utils/naming.utils.js.map +0 -1
- package/src/utils/server.utils.js +0 -59
- package/src/utils/server.utils.js.map +0 -1
- package/src/utils/string.utils.js +0 -10
- package/src/utils/string.utils.js.map +0 -1
- package/src/utils/token.utils.js +0 -65
- package/src/utils/token.utils.js.map +0 -1
- package/src/utils/types.utils.js +0 -3
- package/src/utils/types.utils.js.map +0 -1
- package/src/utils/uri-template.utils.js +0 -113
- package/src/utils/uri-template.utils.js.map +0 -1
- package/src/utils/uri-validation.utils.js +0 -76
- package/src/utils/uri-validation.utils.js.map +0 -1
- package/{src/adapter → adapter}/adapter.instance.d.ts +0 -0
- package/{src/adapter → adapter}/adapter.regsitry.d.ts +0 -0
- package/{src/adapter → adapter}/adapter.utils.d.ts +0 -0
- package/{src/app → app}/app.registry.d.ts +0 -0
- package/{src/app → app}/app.utils.d.ts +0 -0
- package/{src/app → app}/instances/app.local.instance.d.ts +0 -0
- package/{src/app → app}/instances/app.remote.instance.d.ts +0 -0
- package/{src/app → app}/instances/index.d.ts +0 -0
- package/{src/auth → auth}/auth.registry.d.ts +0 -0
- package/{src/auth → auth}/auth.utils.d.ts +0 -0
- package/{src/auth → auth}/authorization/authorization.class.d.ts +0 -0
- package/{src/auth → auth}/authorization/authorization.types.d.ts +0 -0
- package/{src/auth → auth}/authorization/index.d.ts +0 -0
- package/{src/auth → auth}/authorization/orchestrated.authorization.d.ts +0 -0
- package/{src/auth → auth}/authorization/public.authorization.d.ts +0 -0
- package/{src/auth → auth}/authorization/transparent.authorization.d.ts +0 -0
- package/{src/auth → auth}/consent/consent.types.d.ts +0 -0
- package/{src/auth → auth}/consent/index.d.ts +0 -0
- package/{src/auth → auth}/detection/auth-provider-detection.d.ts +0 -0
- package/{src/auth → auth}/detection/index.d.ts +0 -0
- package/{src/auth → auth}/flows/auth.verify.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.authorize.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.callback.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.register.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/oauth.token.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/session.verify.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.jwks.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.oauth-authorization-server.flow.d.ts +0 -0
- package/{src/auth → auth}/flows/well-known.prm.flow.d.ts +0 -0
- package/{src/auth → auth}/jwks/dev-key-persistence.d.ts +0 -0
- package/{src/auth → auth}/jwks/index.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.service.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.types.d.ts +0 -0
- package/{src/auth → auth}/jwks/jwks.utils.d.ts +0 -0
- package/{src/auth → auth}/machine-id.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.authorize.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.device-authorization.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.introspect.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.par.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.revoke.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.token.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oauth.userinfo.flow.d.ts +0 -0
- package/{src/auth → auth}/oauth/flows/oidc.logout.flow.d.ts +0 -0
- package/{src/auth → auth}/session/authorization-vault.d.ts +0 -0
- package/{src/auth → auth}/session/authorization.store.d.ts +0 -0
- package/{src/auth → auth}/session/encrypted-authorization-vault.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.base.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.stateful.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.stateless.d.ts +0 -0
- package/{src/auth → auth}/session/record/session.transparent.d.ts +0 -0
- package/{src/auth → auth}/session/redis-session.store.d.ts +0 -0
- package/{src/auth → auth}/session/session.crypto.d.ts +0 -0
- package/{src/auth → auth}/session/session.schema.d.ts +0 -0
- package/{src/auth → auth}/session/session.service.d.ts +0 -0
- package/{src/auth → auth}/session/session.transport.d.ts +0 -0
- package/{src/auth → auth}/session/session.types.d.ts +0 -0
- package/{src/auth → auth}/session/token.refresh.d.ts +0 -0
- package/{src/auth → auth}/session/token.store.d.ts +0 -0
- package/{src/auth → auth}/session/token.vault.d.ts +0 -0
- package/{src/auth → auth}/session/transport-session.manager.d.ts +0 -0
- package/{src/auth → auth}/session/transport-session.types.d.ts +0 -0
- package/{src/auth → auth}/session/utils/auth-token.utils.d.ts +0 -0
- package/{src/auth → auth}/session/utils/session-id.utils.d.ts +0 -0
- package/{src/auth → auth}/session/utils/tiny-ttl-cache.d.ts +0 -0
- package/{src/auth → auth}/session/vault-encryption.d.ts +0 -0
- package/{src/auth → auth}/ui/base-layout.d.ts +0 -0
- package/{src/auth → auth}/ui/index.d.ts +0 -0
- package/{src/auth → auth}/ui/templates.d.ts +0 -0
- package/{src/auth → auth}/utils/audience.validator.d.ts +0 -0
- package/{src/auth → auth}/utils/index.d.ts +0 -0
- package/{src/auth → auth}/utils/www-authenticate.utils.d.ts +0 -0
- package/{src/common → common}/common.schema.d.ts +0 -0
- package/{src/common → common}/constants.d.ts +0 -0
- package/{src/common → common}/decorators/adapter.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/app.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/auth-provider.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/decorator-utils.d.ts +0 -0
- package/{src/common → common}/decorators/flow.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/front-mcp.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/hook.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/index.d.ts +0 -0
- package/{src/common → common}/decorators/logger.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/plugin.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/prompt.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/provider.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/resource.decorator.d.ts +0 -0
- package/{src/common → common}/decorators/tool.decorator.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.adapter.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.plugin.d.ts +0 -0
- package/{src/common → common}/dynamic/dynamic.utils.d.ts +0 -0
- package/{src/common → common}/dynamic/index.d.ts +0 -0
- package/{src/common → common}/entries/adapter.entry.d.ts +0 -0
- package/{src/common → common}/entries/app.entry.d.ts +0 -0
- package/{src/common → common}/entries/auth-provider.entry.d.ts +0 -0
- package/{src/common → common}/entries/base.entry.d.ts +0 -0
- package/{src/common → common}/entries/flow.entry.d.ts +0 -0
- package/{src/common → common}/entries/hook.entry.d.ts +0 -0
- package/{src/common → common}/entries/index.d.ts +0 -0
- package/{src/common → common}/entries/logger.entry.d.ts +0 -0
- package/{src/common → common}/entries/plugin.entry.d.ts +0 -0
- package/{src/common → common}/entries/prompt.entry.d.ts +0 -0
- package/{src/common → common}/entries/provider.entry.d.ts +0 -0
- package/{src/common → common}/entries/resource.entry.d.ts +0 -0
- package/{src/common → common}/entries/scope.entry.d.ts +0 -0
- package/{src/common → common}/entries/tool.entry.d.ts +0 -0
- package/{src/common → common}/flow/flow.utils.d.ts +0 -0
- package/{src/common → common}/index.d.ts +0 -0
- package/{src/common → common}/interfaces/adapter.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/app.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/auth-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/auth-provider.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/base.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/execution-context.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/flow.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/front-mcp.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/index.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/flow.utils.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/index.d.ts +0 -0
- package/{src/common → common}/interfaces/internal/registry.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/logger.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/plugin.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/prompt.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/provider.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/resource.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/scope.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/server.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/session-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/tool-hook.interface.d.ts +0 -0
- package/{src/common → common}/interfaces/tool.interface.d.ts +0 -0
- package/{src/common → common}/metadata/adapter.metadata.d.ts +0 -0
- package/{src/common → common}/metadata/app.metadata.d.ts +42 -42
- /package/{src/common → common}/metadata/auth-provider.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/flow.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/hook.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/index.d.ts +0 -0
- /package/{src/common → common}/metadata/logger.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/plugin.metadata.d.ts +0 -0
- /package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
- /package/{src/common → common}/migrate/auth-transport.migrate.d.ts +0 -0
- /package/{src/common → common}/migrate/index.d.ts +0 -0
- /package/{src/common → common}/providers/base-config.provider.d.ts +0 -0
- /package/{src/common → common}/records/adapter.record.d.ts +0 -0
- /package/{src/common → common}/records/app.record.d.ts +0 -0
- /package/{src/common → common}/records/auth-provider.record.d.ts +0 -0
- /package/{src/common → common}/records/flow.record.d.ts +0 -0
- /package/{src/common → common}/records/hook.record.d.ts +0 -0
- /package/{src/common → common}/records/index.d.ts +0 -0
- /package/{src/common → common}/records/logger.record.d.ts +0 -0
- /package/{src/common → common}/records/plugin.record.d.ts +0 -0
- /package/{src/common → common}/records/prompt.record.d.ts +0 -0
- /package/{src/common → common}/records/provider.record.d.ts +0 -0
- /package/{src/common → common}/records/resource.record.d.ts +0 -0
- /package/{src/common → common}/records/scope.record.d.ts +0 -0
- /package/{src/common → common}/records/tool.record.d.ts +0 -0
- /package/{src/common → common}/schemas/annotated-class.schema.d.ts +0 -0
- /package/{src/common → common}/schemas/http-input.schema.d.ts +0 -0
- /package/{src/common → common}/schemas/index.d.ts +0 -0
- /package/{src/common → common}/schemas/session-header.schema.d.ts +0 -0
- /package/{src/common → common}/tokens/adapter.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/app.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/auth-provider.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/base.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/flow-hook.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/flow.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/front-mcp.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/index.d.ts +0 -0
- /package/{src/common → common}/tokens/logger.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/plugin.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/prompt.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/provider.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/resource.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/server.tokens.d.ts +0 -0
- /package/{src/common → common}/tokens/tool.tokens.d.ts +0 -0
- /package/{src/common → common}/types/auth/index.d.ts +0 -0
- /package/{src/common → common}/types/auth/jwt.types.d.ts +0 -0
- /package/{src/common → common}/types/auth/session.types.d.ts +0 -0
- /package/{src/common → common}/types/common.types.d.ts +0 -0
- /package/{src/common → common}/types/index.d.ts +0 -0
- /package/{src/logger/logger.tokens.d.ts → common/types/options/auth/auth.typecheck.d.ts} +0 -0
- /package/{src/common → common}/types/options/http.options.d.ts +0 -0
- /package/{src/common → common}/types/options/logging.options.d.ts +0 -0
- /package/{src/common → common}/types/options/session.options.d.ts +0 -0
- /package/{src/common → common}/utils/path.utils.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context-storage.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context.d.ts +0 -0
- /package/{src/context → context}/frontmcp-context.provider.d.ts +0 -0
- /package/{src/context → context}/index.d.ts +0 -0
- /package/{src/context → context}/request-context-storage.d.ts +0 -0
- /package/{src/context → context}/request-context.d.ts +0 -0
- /package/{src/context → context}/request-context.provider.d.ts +0 -0
- /package/{src/context → context}/session-key.provider.d.ts +0 -0
- /package/{src/context → context}/trace-context.d.ts +0 -0
- /package/{src/errors → errors}/authorization-required.error.d.ts +0 -0
- /package/{src/errors → errors}/error-handler.d.ts +0 -0
- /package/{src/exceptions → exceptions}/mcp-exceptions/session-missing.exception.d.ts +0 -0
- /package/{src/exceptions → exceptions}/mcp-exceptions/unsupported-client-version.exception.d.ts +0 -0
- /package/{src/flows → flows}/flow.instance.d.ts +0 -0
- /package/{src/flows → flows}/flow.registry.d.ts +0 -0
- /package/{src/flows → flows}/flow.stages.d.ts +0 -0
- /package/{src/flows → flows}/flow.utils.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/front-mcp.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
- /package/{src/front-mcp → front-mcp}/serverless-handler.d.ts +0 -0
- /package/{src/hooks → hooks}/hook.instance.d.ts +0 -0
- /package/{src/hooks → hooks}/hook.registry.d.ts +0 -0
- /package/{src/hooks → hooks}/hooks.utils.d.ts +0 -0
- /package/{src/logger → logger}/instances/instance.console-logger.d.ts +0 -0
- /package/{src/logger → logger}/instances/instance.logger.d.ts +0 -0
- /package/{src/logger → logger}/logger.registry.d.ts +0 -0
- /package/{src/logger → logger}/logger.types.d.ts +0 -0
- /package/{src/logger → logger}/logger.utils.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/csp.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/index.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/schemas.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/template.d.ts +0 -0
- /package/{src/mcp-apps → mcp-apps}/types.d.ts +0 -0
- /package/{src/notification → notification}/index.d.ts +0 -0
- /package/{src/notification → notification}/notification.service.d.ts +0 -0
- /package/{src/plugin → plugin}/plugin.registry.d.ts +0 -0
- /package/{src/plugin → plugin}/plugin.utils.d.ts +0 -0
- /package/{src/prompt → prompt}/index.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.events.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.instance.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.registry.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.types.d.ts +0 -0
- /package/{src/prompt → prompt}/prompt.utils.d.ts +0 -0
- /package/{src/provider → provider}/provider.registry.d.ts +0 -0
- /package/{src/provider → provider}/provider.types.d.ts +0 -0
- /package/{src/provider → provider}/provider.utils.d.ts +0 -0
- /package/{src/regsitry → regsitry}/index.d.ts +0 -0
- /package/{src/regsitry → regsitry}/registry.base.d.ts +0 -0
- /package/{src/resource → resource}/index.d.ts +0 -0
- /package/{src/resource → resource}/resource.events.d.ts +0 -0
- /package/{src/resource → resource}/resource.instance.d.ts +0 -0
- /package/{src/resource → resource}/resource.registry.d.ts +0 -0
- /package/{src/resource → resource}/resource.types.d.ts +0 -0
- /package/{src/resource → resource}/resource.utils.d.ts +0 -0
- /package/{src/scope → scope}/flows/http.request.flow.d.ts +0 -0
- /package/{src/scope → scope}/index.d.ts +0 -0
- /package/{src/scope → scope}/scope.instance.d.ts +0 -0
- /package/{src/scope → scope}/scope.registry.d.ts +0 -0
- /package/{src/scope → scope}/scope.utils.d.ts +0 -0
- /package/{src/server → server}/adapters/base.host.adapter.d.ts +0 -0
- /package/{src/server → server}/adapters/express.host.adapter.d.ts +0 -0
- /package/{src/server → server}/server.instance.d.ts +0 -0
- /package/{src/server → server}/server.types.d.ts +0 -0
- /package/{src/server → server}/server.validation.d.ts +0 -0
- /package/{src/store → store}/adapters/store.base.adapter.d.ts +0 -0
- /package/{src/store → store}/adapters/store.memory.adapter.d.ts +0 -0
- /package/{src/store → store}/adapters/store.redis.adapter.d.ts +0 -0
- /package/{src/store → store}/store.helpers.d.ts +0 -0
- /package/{src/store → store}/store.registry.d.ts +0 -0
- /package/{src/store → store}/store.tokens.d.ts +0 -0
- /package/{src/store → store}/store.types.d.ts +0 -0
- /package/{src/store → store}/store.utils.d.ts +0 -0
- /package/{src/tool → tool}/tool.events.d.ts +0 -0
- /package/{src/tool → tool}/tool.instance.d.ts +0 -0
- /package/{src/tool → tool}/tool.registry.d.ts +0 -0
- /package/{src/tool → tool}/tool.types.d.ts +0 -0
- /package/{src/tool → tool}/tool.utils.d.ts +0 -0
- /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.local.adapter.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.sse.adapter.d.ts +0 -0
- /package/{src/transport → transport}/adapters/transport.streamable-http.adapter.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.sse.flow.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.stateless-http.flow.d.ts +0 -0
- /package/{src/transport → transport}/flows/handle.streamable-http.flow.d.ts +0 -0
- /package/{src/transport → transport}/legacy/legacy.sse.tranporter.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/Initialized-notification.hanlder.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/call-tool-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/mcp-handlers.types.d.ts +0 -0
- /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
- /package/{src/transport → transport}/transport.error.d.ts +0 -0
- /package/{src/transport → transport}/transport.event-store.d.ts +0 -0
- /package/{src/transport → transport}/transport.local.d.ts +0 -0
- /package/{src/transport → transport}/transport.remote.d.ts +0 -0
- /package/{src/transport → transport}/transport.types.d.ts +0 -0
- /package/{src/types → types}/drinen-hooks.types.d.ts +0 -0
- /package/{src/types → types}/invoke.type.d.ts +0 -0
- /package/{src/types → types}/token.types.d.ts +0 -0
- /package/{src/utils → utils}/content.utils.d.ts +0 -0
- /package/{src/utils → utils}/index.d.ts +0 -0
- /package/{src/utils → utils}/lineage.utils.d.ts +0 -0
- /package/{src/utils → utils}/metadata.utils.d.ts +0 -0
- /package/{src/utils → utils}/naming.utils.d.ts +0 -0
- /package/{src/utils → utils}/server.utils.d.ts +0 -0
- /package/{src/utils → utils}/string.utils.d.ts +0 -0
- /package/{src/utils → utils}/token.utils.d.ts +0 -0
- /package/{src/utils → utils}/types.utils.d.ts +0 -0
- /package/{src/utils → utils}/uri-template.utils.d.ts +0 -0
- /package/{src/utils → utils}/uri-validation.utils.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.request.flow.js","sourceRoot":"","sources":["../../../../src/scope/flows/http.request.flow.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Flow,\n httpInputSchema,\n FlowRunOptions,\n httpOutputSchema,\n FlowPlan,\n FlowBase,\n ScopeEntry,\n FlowHooksOf,\n ServerRequest,\n ServerRequestTokens,\n httpRespond,\n decideIntent,\n decisionSchema,\n intentSchema,\n normalizeEntryPrefix,\n normalizeScopeBase,\n FlowControl,\n} from '../../common';\nimport { z } from 'zod';\nimport { sessionVerifyOutputSchema } from '../../auth/flows/session.verify.flow';\nimport { randomUUID } from 'node:crypto';\n\nconst plan = {\n pre: [\n // request tracing\n 'traceRequest',\n // rate limiting / concurrency\n 'acquireQuota',\n 'acquireSemaphore',\n // route request to the correct flow\n 'checkAuthorization',\n 'router',\n ],\n execute: [\n 'handleLegacySse',\n 'handleSse',\n 'handleStreamableHttp',\n 'handleStatefulHttp',\n 'handleStatelessHttp',\n 'handleDeleteSession',\n ],\n finalize: [\n // audit/metrics\n 'audit',\n 'metrics',\n\n // cleanup\n 'releaseSemaphore',\n 'releaseQuota',\n 'finalize',\n ],\n error: [],\n} as const satisfies FlowPlan<string>;\n\nexport const httpRequestStateSchema = z.object({\n decision: decisionSchema,\n intent: intentSchema,\n verifyResult: sessionVerifyOutputSchema,\n});\n\nconst name = 'http:request' as const;\nconst { Stage } = FlowHooksOf('http:request');\n\ndeclare global {\n interface ExtendFlows {\n 'http:request': FlowRunOptions<\n HttpRequestFlow,\n typeof plan,\n typeof httpInputSchema,\n typeof httpOutputSchema,\n typeof httpRequestStateSchema\n >;\n }\n}\n\n@Flow({\n name,\n plan,\n access: 'public',\n inputSchema: httpInputSchema,\n outputSchema: httpOutputSchema,\n middleware: {\n path: '/',\n },\n})\nexport default class HttpRequestFlow extends FlowBase<typeof name> {\n logger = this.scope.logger.child('HttpRequestFlow');\n private requestStartTime = 0;\n private requestId = '';\n\n static canActivate(request: ServerRequest, scope: ScopeEntry) {\n const requestPath = normalizeEntryPrefix(request.path);\n const prefix = normalizeEntryPrefix(scope.entryPath);\n const scopePath = normalizeScopeBase(scope.routeBase);\n const basePath = `${prefix}${scopePath}`;\n\n return (\n requestPath === basePath || // Modern transports: /\n requestPath === `${basePath}/sse` || // Legacy SSE: /sse\n requestPath === `${basePath}/message` // Legacy SSE: /message\n );\n }\n\n @Stage('traceRequest')\n async traceRequest() {\n const { request } = this.rawInput;\n this.requestStartTime = Date.now();\n\n // Get FrontMcpContext from AsyncLocalStorage (already initialized by FlowInstance.runWithContext)\n const ctx = this.tryGetContext();\n // Use randomUUID() for fallback instead of Math.random() to avoid collisions under load\n this.requestId = ctx?.requestId ?? `req-${randomUUID()}`;\n\n // Extract request details for logging\n const headers = request.headers ?? {};\n const body = request.body as Record<string, unknown> | undefined;\n const userAgent = headers['user-agent'] as string | undefined;\n const contentType = headers['content-type'] as string | undefined;\n const accept = headers['accept'] as string | undefined;\n // Use sessionId from context (which generates unique anon IDs) or header\n // 'no-session' is a logging fallback only, not used for SESSION providers\n const sessionId = ctx?.sessionId ?? (headers['mcp-session-id'] as string) ?? 'no-session';\n\n this.logger.info(`[${this.requestId}] ▶ ${request.method} ${request.path}`, {\n requestId: this.requestId,\n traceId: ctx?.traceContext.traceId?.slice(0, 16),\n method: request.method,\n path: request.path,\n userAgent: userAgent?.slice(0, 50),\n sessionId: sessionId?.slice(0, 20),\n contentType,\n accept,\n hasBody: !!request.body,\n bodyMethod: body?.['method'],\n });\n\n // Log sanitized headers for debugging connection issues\n const sanitizedHeaders = Object.fromEntries(\n Object.entries(headers).map(([key, value]) => {\n // Redact clearly sensitive headers\n if (/^(authorization|proxy-authorization|cookie|set-cookie|x-api-key)$/i.test(key)) {\n return [key, '[REDACTED]'];\n }\n // Truncate session identifiers instead of logging full values\n if (key === 'mcp-session-id') {\n return [key, String(value).slice(0, 8) + '...'];\n }\n return [key, value];\n }),\n );\n this.logger.debug(`[${this.requestId}] HEADERS`, { headers: sanitizedHeaders });\n }\n\n @Stage('checkAuthorization')\n async checkAuthorization() {\n const { request } = this.rawInput;\n this.logger.verbose(`[${this.requestId}] checkAuthorization: verifying session`);\n\n try {\n const result = await this.scope.runFlow('session:verify', { request });\n if (!result) {\n this.logger.error(`[${this.requestId}] failed to verify session`);\n throw new Error('Session verification failed');\n }\n this.state.set({\n verifyResult: result,\n });\n\n // Update FrontMcpContext with verified auth info if available\n // This allows all subsequent stages to access the auth info via context\n if (result.kind === 'authorized' && result.authorization) {\n const ctx = this.tryGetContext();\n if (ctx) {\n // Build AuthInfo from the authorization object\n // AuthInfo is the MCP SDK's auth type with token, clientId, scopes, etc.\n const { token, user, session } = result.authorization;\n ctx.updateAuthInfo({\n token,\n clientId: user.sub,\n scopes: [],\n // JWT exp is in seconds, SDK uses milliseconds throughout (e.g., Date.now())\n expiresAt: user.exp ? user.exp * 1000 : undefined,\n extra: {\n user,\n sessionId: session?.id,\n sessionPayload: session?.payload,\n },\n });\n }\n }\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'checkAuthorization');\n }\n throw error;\n }\n }\n\n @Stage('router')\n async router() {\n try {\n const { request } = this.rawInput;\n this.logger.verbose(`[${this.requestId}] router: check request decision`);\n\n // Use transport config directly from auth (already parsed with defaults by Zod)\n const transport = this.scope.auth.transport;\n const decision = decideIntent(request, { ...transport, tolerateMissingAccept: true });\n\n // Handle DELETE method immediately - it's for session termination\n // regardless of what protocol the session was created with\n if (request.method.toUpperCase() === 'DELETE') {\n this.logger.verbose(`[${this.requestId}] DELETE request, using decision intent: ${decision.intent}`);\n if (decision.intent === 'unknown') {\n // DELETE without session ID - forward to next middleware\n // to allow custom DELETE handlers by developers\n this.logger.verbose(`[${this.requestId}] DELETE with unknown intent, forwarding to next middleware`);\n this.next();\n return;\n }\n this.state.set('intent', decision.intent);\n return;\n }\n\n const { verifyResult } = this.state.required;\n if (verifyResult.kind === 'authorized') {\n const { authorization } = verifyResult;\n request[ServerRequestTokens.auth] = authorization;\n\n // Update FrontMcpContext session metadata (auth info already set in checkAuthorization)\n if (authorization.session?.payload) {\n const ctx = this.tryGetContext();\n if (ctx) {\n ctx.updateSessionMetadata(authorization.session.payload);\n }\n }\n\n if (authorization.session) {\n const sessionId = authorization.session.id;\n request[ServerRequestTokens.sessionId] = sessionId;\n\n // Check if the session has been terminated (via DELETE)\n // Per MCP spec, requests to terminated sessions should return 404\n if (this.scope.notifications.isSessionTerminated(sessionId)) {\n this.logger.warn(`[${this.requestId}] Request to terminated session: ${sessionId.slice(0, 20)}...`);\n this.respond(httpRespond.notFound('Session not found'));\n return;\n }\n\n // Safely access payload.protocol with null check\n const protocol = authorization.session.payload?.protocol;\n if (protocol) {\n this.logger.info(`[${this.requestId}] decision from session: ${protocol}`);\n this.state.set('intent', protocol);\n return;\n }\n }\n\n if (decision.intent === 'unknown') {\n // continue to other middleware\n // with authentication (public/authorized routes)\n this.logger.verbose(`[${this.requestId}] decision is unknown, continue to next http middleware`);\n this.next();\n return; // Explicit return for clarity (this.next() throws FlowControl)\n }\n\n // register decision intent to state\n // and move to next stage\n this.logger.verbose(`[${this.requestId}] decision is request info: ${decision.intent}`);\n this.state.set('intent', decision.intent);\n } else {\n this.logger.verbose(`[${this.requestId}] not authorized request, check decision intent: ${decision.intent}`);\n if (decision.intent === 'unknown') {\n this.logger.verbose(`[${this.requestId}] decision is unknown, continue to other public http middleware`);\n // continue to other middleware\n // without authentication (public routes)\n this.next();\n return; // Explicit return for clarity (this.next() throws FlowControl)\n }\n\n this.logger.warn(`[${this.requestId}] decision is ${decision.intent}, but not authorized, respond with 401`);\n // if the decision is specific mcp transport and no auth\n // then respond with 401\n this.respond(\n httpRespond.unauthorized({\n headers: {\n 'WWW-Authenticate': verifyResult.prmMetadataHeader,\n },\n }),\n );\n }\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'router');\n }\n throw error;\n }\n }\n\n @Stage('handleLegacySse', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'legacy-sse',\n })\n async handleLegacySse() {\n try {\n const response = await this.scope.runFlow('handle:legacy-sse', this.rawInput);\n if (response) {\n this.respond(response);\n }\n this.handled();\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'handleLegacySse');\n }\n throw error;\n }\n }\n\n @Stage('handleSse', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'sse',\n })\n async handleSse() {\n try {\n const response = await this.scope.runFlow('handle:streamable-http', this.rawInput);\n if (response) {\n this.respond(response);\n }\n this.next();\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'handleSse');\n }\n throw error;\n }\n }\n\n @Stage('handleStreamableHttp', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'streamable-http',\n })\n async handleStreamableHttp() {\n try {\n const response = await this.scope.runFlow('handle:streamable-http', this.rawInput);\n if (response) {\n this.respond(response);\n }\n this.next();\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'handleStreamableHttp');\n }\n throw error;\n }\n }\n\n @Stage('handleStatefulHttp', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'stateful-http',\n })\n async handleStatefulHttp() {\n // this.scope.runFlow('mcp:transport:stateful-http', this.rawInput);\n this.next();\n }\n\n @Stage('handleStatelessHttp', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'stateless-http',\n })\n async handleStatelessHttp() {\n try {\n const response = await this.scope.runFlow('handle:stateless-http', this.rawInput);\n if (response) {\n this.respond(response);\n }\n this.handled();\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'handleStatelessHttp');\n }\n throw error;\n }\n }\n\n @Stage('handleDeleteSession', {\n filter: ({\n state: {\n required: { intent },\n },\n }) => intent === 'delete-session',\n })\n async handleDeleteSession() {\n try {\n const { request } = this.rawInput;\n // Headers are normalized to lowercase by the adapter\n const sessionId = request[ServerRequestTokens.sessionId] ?? request.headers['mcp-session-id'];\n\n if (!sessionId || typeof sessionId !== 'string') {\n this.logger.warn(`[${this.requestId}] DELETE request without valid session ID`);\n this.respond(httpRespond.rpcError('No valid session ID provided'));\n return;\n }\n\n this.logger.info(`[${this.requestId}] DELETE session: ${sessionId}`);\n\n // Terminate the session - this unregisters the server AND adds to terminated set\n // This prevents future requests with this session ID from being accepted\n const wasRegistered = this.scope.notifications.terminateSession(sessionId);\n\n if (!wasRegistered) {\n // Session not found - per MCP spec, return 404\n // Note: We still added it to terminated set to prevent future use\n this.logger.warn(`[${this.requestId}] Session not found for DELETE: ${sessionId}`);\n this.respond(httpRespond.notFound('Session not found'));\n return;\n }\n\n this.logger.info(`[${this.requestId}] Session terminated: ${sessionId}`);\n this.respond(httpRespond.noContent());\n } catch (error) {\n // FlowControl is expected control flow, not an error\n if (!(error instanceof FlowControl)) {\n this.logError(error, 'handleDeleteSession');\n }\n throw error;\n }\n }\n\n @Stage('finalize')\n async finalize() {\n const { request } = this.rawInput;\n const duration = Date.now() - this.requestStartTime;\n const intent = this.state.get('intent') ?? 'unknown';\n\n this.logger.info(`[${this.requestId}] ◀ ${request.method} ${request.path} completed in ${duration}ms`, {\n requestId: this.requestId,\n method: request.method,\n path: request.path,\n duration,\n intent,\n });\n }\n\n /**\n * Log an error that occurred during request processing.\n * Called from stage handlers that catch errors.\n */\n private logError(error: unknown, context?: string) {\n const { request } = this.rawInput;\n const duration = Date.now() - this.requestStartTime;\n\n // Extract error details - handle various error shapes\n const errorMessage = error instanceof Error ? error.message : String(error);\n const errorName = error instanceof Error ? error.name : 'UnknownError';\n const errorStack = error instanceof Error ? error.stack : undefined;\n const body = request.body as Record<string, unknown> | undefined;\n\n // For errors with empty messages, try to extract more info\n const errorCode = (error as { code?: string | number })?.code;\n const errorCause = (error as { cause?: unknown })?.cause;\n\n // Log comprehensive error info including stack trace\n this.logger.error(\n `[${this.requestId}] ✖ ${request.method} ${request.path} failed${\n context ? ` in ${context}` : ''\n } after ${duration}ms: ${errorMessage || '(no message)'}`,\n {\n requestId: this.requestId,\n method: request.method,\n path: request.path,\n duration,\n context,\n error: {\n name: errorName,\n message: errorMessage || '(no message)',\n code: errorCode,\n cause: errorCause instanceof Error ? errorCause.message : errorCause,\n stack: errorStack,\n },\n request: {\n userAgent: (request.headers?.['user-agent'] as string)?.slice(0, 50),\n sessionId: (request.headers?.['mcp-session-id'] as string)?.slice(0, 20),\n contentType: request.headers?.['content-type'],\n bodyMethod: body?.['method'],\n bodyId: body?.['id'],\n },\n state: {\n intent: this.state.get('intent'),\n hasVerifyResult: !!this.state.get('verifyResult'),\n },\n },\n );\n }\n}\n"]}
|
package/src/scope/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Scope = void 0;
|
|
4
|
-
var scope_instance_1 = require("./scope.instance");
|
|
5
|
-
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return scope_instance_1.Scope; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/src/scope/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scope/index.ts"],"names":[],"mappings":";;;AAAA,mDAAsC;AAA9B,uGAAA,KAAK,OAAA","sourcesContent":["export {Scope} from './scope.instance'"]}
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Scope = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
require("reflect-metadata");
|
|
6
|
-
const common_1 = require("../common");
|
|
7
|
-
const context_1 = require("../context");
|
|
8
|
-
const app_registry_1 = tslib_1.__importDefault(require("../app/app.registry"));
|
|
9
|
-
const provider_registry_1 = tslib_1.__importDefault(require("../provider/provider.registry"));
|
|
10
|
-
const auth_registry_1 = require("../auth/auth.registry");
|
|
11
|
-
const flow_registry_1 = tslib_1.__importDefault(require("../flows/flow.registry"));
|
|
12
|
-
const http_request_flow_1 = tslib_1.__importDefault(require("./flows/http.request.flow"));
|
|
13
|
-
const transport_registry_1 = require("../transport/transport.registry");
|
|
14
|
-
const tool_registry_1 = tslib_1.__importDefault(require("../tool/tool.registry"));
|
|
15
|
-
const resource_registry_1 = tslib_1.__importDefault(require("../resource/resource.registry"));
|
|
16
|
-
const hook_registry_1 = tslib_1.__importDefault(require("../hooks/hook.registry"));
|
|
17
|
-
const prompt_registry_1 = tslib_1.__importDefault(require("../prompt/prompt.registry"));
|
|
18
|
-
const notification_1 = require("../notification");
|
|
19
|
-
const set_level_flow_1 = tslib_1.__importDefault(require("../logging/flows/set-level.flow"));
|
|
20
|
-
const complete_flow_1 = tslib_1.__importDefault(require("../completion/flows/complete.flow"));
|
|
21
|
-
const ui_1 = require("../tool/ui");
|
|
22
|
-
class Scope extends common_1.ScopeEntry {
|
|
23
|
-
id;
|
|
24
|
-
globalProviders;
|
|
25
|
-
logger;
|
|
26
|
-
scopeProviders;
|
|
27
|
-
scopeAuth;
|
|
28
|
-
scopeFlows;
|
|
29
|
-
scopeApps;
|
|
30
|
-
scopeHooks;
|
|
31
|
-
scopeTools;
|
|
32
|
-
scopeResources;
|
|
33
|
-
scopePrompts;
|
|
34
|
-
transportService; // TODO: migrate transport service to transport.registry
|
|
35
|
-
notificationService;
|
|
36
|
-
toolUIRegistry;
|
|
37
|
-
entryPath;
|
|
38
|
-
routeBase;
|
|
39
|
-
orchestrated = false;
|
|
40
|
-
server;
|
|
41
|
-
constructor(rec, globalProviders) {
|
|
42
|
-
super(rec, rec.provide);
|
|
43
|
-
this.id = rec.metadata.id;
|
|
44
|
-
this.logger = globalProviders.get(common_1.FrontMcpLogger).child('FrontMcp.MultiAppScope');
|
|
45
|
-
this.globalProviders = globalProviders;
|
|
46
|
-
this.server = this.globalProviders.get(common_1.FrontMcpServer);
|
|
47
|
-
this.entryPath = rec.metadata.http?.entryPath ?? '';
|
|
48
|
-
if (rec.kind === 'SPLIT_BY_APP') {
|
|
49
|
-
this.routeBase = `/${rec.metadata.id}`;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
this.routeBase = '';
|
|
53
|
-
}
|
|
54
|
-
this.scopeProviders = new provider_registry_1.default(this.defaultScopeProviders, globalProviders);
|
|
55
|
-
this.ready = this.initialize();
|
|
56
|
-
}
|
|
57
|
-
async initialize() {
|
|
58
|
-
await this.scopeProviders.ready;
|
|
59
|
-
const scopeRef = { kind: 'scope', id: this.id, ref: Scope };
|
|
60
|
-
const scopeProviders = this.scopeProviders;
|
|
61
|
-
this.scopeHooks = new hook_registry_1.default(scopeProviders, []);
|
|
62
|
-
await this.scopeHooks.ready;
|
|
63
|
-
this.scopeFlows = new flow_registry_1.default(scopeProviders, [http_request_flow_1.default]);
|
|
64
|
-
await this.scopeFlows.ready;
|
|
65
|
-
// Pass transport persistence config to TransportService
|
|
66
|
-
const transportConfig = this.metadata.transport;
|
|
67
|
-
this.transportService = new transport_registry_1.TransportService(this, transportConfig?.persistence);
|
|
68
|
-
this.scopeAuth = new auth_registry_1.AuthRegistry(this, scopeProviders, [], scopeRef, this.metadata.auth);
|
|
69
|
-
await this.scopeAuth.ready;
|
|
70
|
-
this.scopeApps = new app_registry_1.default(this.scopeProviders, this.metadata.apps, scopeRef);
|
|
71
|
-
await this.scopeApps.ready;
|
|
72
|
-
this.scopeTools = new tool_registry_1.default(this.scopeProviders, [], scopeRef);
|
|
73
|
-
await this.scopeTools.ready;
|
|
74
|
-
this.toolUIRegistry = new ui_1.ToolUIRegistry();
|
|
75
|
-
this.scopeResources = new resource_registry_1.default(this.scopeProviders, [], scopeRef);
|
|
76
|
-
await this.scopeResources.ready;
|
|
77
|
-
// Register UI resource templates if any tools have UI configs
|
|
78
|
-
// This enables resource capabilities to be advertised when tools have UI
|
|
79
|
-
const toolsWithUI = this.scopeTools.getTools(true).filter((t) => (0, ui_1.hasUIConfig)(t.metadata));
|
|
80
|
-
if (toolsWithUI.length > 0) {
|
|
81
|
-
// Register static widget template for OpenAI discovery (ui://widget/{toolName}.html)
|
|
82
|
-
this.scopeResources.registerDynamicResource(ui_1.StaticWidgetResourceTemplate);
|
|
83
|
-
this.logger.verbose(`Registered UI resource template for ${toolsWithUI.length} tool(s) with UI configs`);
|
|
84
|
-
// Pre-compile static widgets for tools with servingMode: 'static'
|
|
85
|
-
// This is done at server startup so that the static widget HTML is immediately
|
|
86
|
-
// available when OpenAI fetches it via resources/read (at tools/list time).
|
|
87
|
-
// The static widget reads data from the FrontMCP Bridge at runtime.
|
|
88
|
-
const staticModeTools = toolsWithUI.filter((t) => t.metadata.ui && t.metadata.ui.servingMode === 'static' && t.metadata.ui.template);
|
|
89
|
-
if (staticModeTools.length > 0) {
|
|
90
|
-
// Compile all static widgets in parallel
|
|
91
|
-
let staticCompiledCount = 0;
|
|
92
|
-
await Promise.all(staticModeTools.map(async (tool) => {
|
|
93
|
-
const uiConfig = tool.metadata.ui;
|
|
94
|
-
if (!uiConfig?.template) {
|
|
95
|
-
this.logger.warn(`Skipping static widget pre-compile for tool "${tool.metadata.name}" due to missing ui.template`);
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
try {
|
|
99
|
-
await this.toolUIRegistry.compileStaticWidgetAsync({
|
|
100
|
-
toolName: tool.metadata.name,
|
|
101
|
-
template: uiConfig.template,
|
|
102
|
-
uiConfig,
|
|
103
|
-
});
|
|
104
|
-
staticCompiledCount++;
|
|
105
|
-
this.logger.verbose(`Compiled static widget for tool: ${tool.metadata.name}`);
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
// Log error but don't fail server startup
|
|
109
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
110
|
-
this.logger.error(`Failed to compile static widget for tool "${tool.metadata.name}": ${errorMessage}`);
|
|
111
|
-
}
|
|
112
|
-
}));
|
|
113
|
-
this.logger.info(`Pre-compiled ${staticCompiledCount}/${staticModeTools.length} static widget(s) for static mode tools`);
|
|
114
|
-
}
|
|
115
|
-
// Pre-compile lean widget shells for inline mode tools
|
|
116
|
-
// These are minimal HTML shells (no React/JS) that OpenAI caches at discovery
|
|
117
|
-
// The actual React widget comes in each tool response with embedded data
|
|
118
|
-
const inlineTools = toolsWithUI.filter((t) => t.metadata.ui &&
|
|
119
|
-
(t.metadata.ui.servingMode === 'inline' || !t.metadata.ui.servingMode) &&
|
|
120
|
-
t.metadata.ui.template);
|
|
121
|
-
if (inlineTools.length > 0) {
|
|
122
|
-
let inlineCompiledCount = 0;
|
|
123
|
-
await Promise.all(inlineTools.map(async (tool) => {
|
|
124
|
-
const uiConfig = tool.metadata.ui;
|
|
125
|
-
if (!uiConfig) {
|
|
126
|
-
this.logger.warn(`Skipping lean widget pre-compile for tool "${tool.metadata.name}" due to missing ui config`);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
try {
|
|
130
|
-
await this.toolUIRegistry.compileLeanWidgetAsync({
|
|
131
|
-
toolName: tool.metadata.name,
|
|
132
|
-
uiConfig,
|
|
133
|
-
});
|
|
134
|
-
inlineCompiledCount++;
|
|
135
|
-
this.logger.verbose(`Compiled lean widget shell for tool: ${tool.metadata.name}`);
|
|
136
|
-
}
|
|
137
|
-
catch (error) {
|
|
138
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
139
|
-
this.logger.error(`Failed to compile lean widget shell for tool "${tool.metadata.name}": ${errorMessage}`);
|
|
140
|
-
}
|
|
141
|
-
}));
|
|
142
|
-
this.logger.info(`Pre-compiled ${inlineCompiledCount}/${inlineTools.length} lean widget shell(s) for inline mode tools`);
|
|
143
|
-
}
|
|
144
|
-
// Pre-compile hybrid widget shells for hybrid mode tools
|
|
145
|
-
// These contain React runtime + Bridge + dynamic renderer, but NO component code
|
|
146
|
-
// The component code is delivered per-request in _meta['ui/component']
|
|
147
|
-
const hybridTools = toolsWithUI.filter((t) => t.metadata.ui && t.metadata.ui.servingMode === 'hybrid' && t.metadata.ui.template);
|
|
148
|
-
if (hybridTools.length > 0) {
|
|
149
|
-
let hybridCompiledCount = 0;
|
|
150
|
-
await Promise.all(hybridTools.map(async (tool) => {
|
|
151
|
-
const uiConfig = tool.metadata.ui;
|
|
152
|
-
if (!uiConfig) {
|
|
153
|
-
this.logger.warn(`Skipping hybrid widget pre-compile for tool "${tool.metadata.name}" due to missing ui config`);
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
try {
|
|
157
|
-
await this.toolUIRegistry.compileHybridWidgetAsync({
|
|
158
|
-
toolName: tool.metadata.name,
|
|
159
|
-
uiConfig,
|
|
160
|
-
});
|
|
161
|
-
hybridCompiledCount++;
|
|
162
|
-
this.logger.verbose(`Compiled hybrid widget shell for tool: ${tool.metadata.name}`);
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
166
|
-
this.logger.error(`Failed to compile hybrid widget shell for tool "${tool.metadata.name}": ${errorMessage}`);
|
|
167
|
-
}
|
|
168
|
-
}));
|
|
169
|
-
this.logger.info(`Pre-compiled ${hybridCompiledCount}/${hybridTools.length} hybrid widget shell(s) for hybrid mode tools`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
this.scopePrompts = new prompt_registry_1.default(this.scopeProviders, [], scopeRef);
|
|
173
|
-
await this.scopePrompts.ready;
|
|
174
|
-
// Initialize notification service after all registries are ready
|
|
175
|
-
this.notificationService = new notification_1.NotificationService(this);
|
|
176
|
-
await this.notificationService.initialize();
|
|
177
|
-
// Register logging and completion flows
|
|
178
|
-
await this.scopeFlows.registryFlows([set_level_flow_1.default, complete_flow_1.default]);
|
|
179
|
-
await this.auth.ready;
|
|
180
|
-
this.logger.info('Initializing multi-app scope', this.metadata);
|
|
181
|
-
if (!this.metadata.auth) {
|
|
182
|
-
// log a large warning about using FrontMcp without authentication
|
|
183
|
-
this.logger.warn(`\n\n*******************************\n WARNING: FrontMcp is running without authentication. \n This is a security risk and should only be used in development environments. \n*******************************\n\n`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
get defaultScopeProviders() {
|
|
187
|
-
return [
|
|
188
|
-
{
|
|
189
|
-
scope: common_1.ProviderScope.GLOBAL,
|
|
190
|
-
name: 'ScopeEntry',
|
|
191
|
-
provide: common_1.ScopeEntry,
|
|
192
|
-
useValue: this,
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
scope: common_1.ProviderScope.GLOBAL,
|
|
196
|
-
name: 'Scope',
|
|
197
|
-
provide: Scope,
|
|
198
|
-
useValue: this,
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
scope: common_1.ProviderScope.GLOBAL,
|
|
202
|
-
name: 'FrontMcpLogger',
|
|
203
|
-
provide: common_1.FrontMcpLogger,
|
|
204
|
-
useValue: this.logger,
|
|
205
|
-
},
|
|
206
|
-
// RequestContextStorage is GLOBAL because it manages the AsyncLocalStorage,
|
|
207
|
-
// not the per-request data. Access the actual RequestContext via REQUEST_CONTEXT token.
|
|
208
|
-
{
|
|
209
|
-
scope: common_1.ProviderScope.GLOBAL,
|
|
210
|
-
name: 'RequestContextStorage',
|
|
211
|
-
provide: context_1.RequestContextStorage,
|
|
212
|
-
useClass: context_1.RequestContextStorage,
|
|
213
|
-
},
|
|
214
|
-
// RequestContextProvider is a factory that retrieves from AsyncLocalStorage
|
|
215
|
-
context_1.RequestContextProvider,
|
|
216
|
-
];
|
|
217
|
-
}
|
|
218
|
-
get auth() {
|
|
219
|
-
return this.scopeAuth.getPrimary();
|
|
220
|
-
}
|
|
221
|
-
get hooks() {
|
|
222
|
-
return this.scopeHooks;
|
|
223
|
-
}
|
|
224
|
-
get authProviders() {
|
|
225
|
-
return this.scopeAuth;
|
|
226
|
-
}
|
|
227
|
-
get providers() {
|
|
228
|
-
return this.scopeProviders;
|
|
229
|
-
}
|
|
230
|
-
get apps() {
|
|
231
|
-
return this.scopeApps;
|
|
232
|
-
}
|
|
233
|
-
get tools() {
|
|
234
|
-
return this.scopeTools;
|
|
235
|
-
}
|
|
236
|
-
get toolUI() {
|
|
237
|
-
return this.toolUIRegistry;
|
|
238
|
-
}
|
|
239
|
-
get resources() {
|
|
240
|
-
return this.scopeResources;
|
|
241
|
-
}
|
|
242
|
-
get prompts() {
|
|
243
|
-
return this.scopePrompts;
|
|
244
|
-
}
|
|
245
|
-
get notifications() {
|
|
246
|
-
return this.notificationService;
|
|
247
|
-
}
|
|
248
|
-
registryFlows(...flows) {
|
|
249
|
-
return this.scopeFlows.registryFlows(flows);
|
|
250
|
-
}
|
|
251
|
-
runFlow(name, input, deps) {
|
|
252
|
-
return this.scopeFlows.runFlow(name, input, deps);
|
|
253
|
-
}
|
|
254
|
-
async runFlowForOutput(name, input, deps) {
|
|
255
|
-
const result = await this.scopeFlows.runFlow(name, input, deps);
|
|
256
|
-
if (result) {
|
|
257
|
-
return result;
|
|
258
|
-
}
|
|
259
|
-
throw new Error(`flow exist without output`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
exports.Scope = Scope;
|
|
263
|
-
//# sourceMappingURL=scope.instance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scope.instance.js","sourceRoot":"","sources":["../../../src/scope/scope.instance.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport {\n EntryOwnerRef,\n FlowInputOf,\n FlowName,\n FlowOutputOf,\n FlowType,\n FrontMcpAuth,\n FrontMcpLogger,\n FrontMcpServer,\n HookRegistryInterface,\n ProviderScope,\n ScopeEntry,\n ScopeRecord,\n Token,\n Type,\n} from '../common';\nimport { RequestContextStorage, RequestContextProvider } from '../context';\nimport AppRegistry from '../app/app.registry';\nimport ProviderRegistry from '../provider/provider.registry';\nimport { AuthRegistry } from '../auth/auth.registry';\nimport FlowRegistry from '../flows/flow.registry';\nimport HttpRequestFlow from './flows/http.request.flow';\nimport { TransportService } from '../transport/transport.registry';\nimport ToolRegistry from '../tool/tool.registry';\nimport ResourceRegistry from '../resource/resource.registry';\nimport HookRegistry from '../hooks/hook.registry';\nimport PromptRegistry from '../prompt/prompt.registry';\nimport { NotificationService } from '../notification';\nimport SetLevelFlow from '../logging/flows/set-level.flow';\nimport CompleteFlow from '../completion/flows/complete.flow';\nimport { ToolUIRegistry, StaticWidgetResourceTemplate, hasUIConfig } from '../tool/ui';\n\nexport class Scope extends ScopeEntry {\n readonly id: string;\n private readonly globalProviders: ProviderRegistry;\n readonly logger: FrontMcpLogger;\n\n private readonly scopeProviders: ProviderRegistry;\n private scopeAuth: AuthRegistry;\n private scopeFlows: FlowRegistry;\n private scopeApps: AppRegistry;\n private scopeHooks: HookRegistry;\n private scopeTools: ToolRegistry;\n private scopeResources: ResourceRegistry;\n private scopePrompts: PromptRegistry;\n\n transportService: TransportService; // TODO: migrate transport service to transport.registry\n notificationService: NotificationService;\n private toolUIRegistry: ToolUIRegistry;\n readonly entryPath: string;\n readonly routeBase: string;\n readonly orchestrated: boolean = false;\n\n readonly server: FrontMcpServer;\n\n constructor(rec: ScopeRecord, globalProviders: ProviderRegistry) {\n super(rec, rec.provide);\n this.id = rec.metadata.id;\n this.logger = globalProviders.get(FrontMcpLogger).child('FrontMcp.MultiAppScope');\n this.globalProviders = globalProviders;\n this.server = this.globalProviders.get(FrontMcpServer);\n this.entryPath = rec.metadata.http?.entryPath ?? '';\n\n if (rec.kind === 'SPLIT_BY_APP') {\n this.routeBase = `/${rec.metadata.id}`;\n } else {\n this.routeBase = '';\n }\n\n this.scopeProviders = new ProviderRegistry(this.defaultScopeProviders, globalProviders);\n this.ready = this.initialize();\n }\n\n protected async initialize(): Promise<void> {\n await this.scopeProviders.ready;\n\n const scopeRef: EntryOwnerRef = { kind: 'scope', id: this.id, ref: Scope };\n const scopeProviders = this.scopeProviders;\n\n this.scopeHooks = new HookRegistry(scopeProviders, []);\n await this.scopeHooks.ready;\n\n this.scopeFlows = new FlowRegistry(scopeProviders, [HttpRequestFlow]);\n await this.scopeFlows.ready;\n\n // Pass transport persistence config to TransportService\n const transportConfig = this.metadata.transport;\n this.transportService = new TransportService(this, transportConfig?.persistence);\n\n this.scopeAuth = new AuthRegistry(this, scopeProviders, [], scopeRef, this.metadata.auth);\n await this.scopeAuth.ready;\n\n this.scopeApps = new AppRegistry(this.scopeProviders, this.metadata.apps, scopeRef);\n await this.scopeApps.ready;\n\n this.scopeTools = new ToolRegistry(this.scopeProviders, [], scopeRef);\n await this.scopeTools.ready;\n\n this.toolUIRegistry = new ToolUIRegistry();\n\n this.scopeResources = new ResourceRegistry(this.scopeProviders, [], scopeRef);\n await this.scopeResources.ready;\n\n // Register UI resource templates if any tools have UI configs\n // This enables resource capabilities to be advertised when tools have UI\n const toolsWithUI = this.scopeTools.getTools(true).filter((t) => hasUIConfig(t.metadata));\n if (toolsWithUI.length > 0) {\n // Register static widget template for OpenAI discovery (ui://widget/{toolName}.html)\n this.scopeResources.registerDynamicResource(StaticWidgetResourceTemplate);\n this.logger.verbose(`Registered UI resource template for ${toolsWithUI.length} tool(s) with UI configs`);\n\n // Pre-compile static widgets for tools with servingMode: 'static'\n // This is done at server startup so that the static widget HTML is immediately\n // available when OpenAI fetches it via resources/read (at tools/list time).\n // The static widget reads data from the FrontMCP Bridge at runtime.\n const staticModeTools = toolsWithUI.filter(\n (t) => t.metadata.ui && t.metadata.ui.servingMode === 'static' && t.metadata.ui.template,\n );\n\n if (staticModeTools.length > 0) {\n // Compile all static widgets in parallel\n let staticCompiledCount = 0;\n await Promise.all(\n staticModeTools.map(async (tool) => {\n const uiConfig = tool.metadata.ui;\n if (!uiConfig?.template) {\n this.logger.warn(\n `Skipping static widget pre-compile for tool \"${tool.metadata.name}\" due to missing ui.template`,\n );\n return;\n }\n try {\n await this.toolUIRegistry.compileStaticWidgetAsync({\n toolName: tool.metadata.name,\n template: uiConfig.template,\n uiConfig,\n });\n staticCompiledCount++;\n this.logger.verbose(`Compiled static widget for tool: ${tool.metadata.name}`);\n } catch (error) {\n // Log error but don't fail server startup\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(`Failed to compile static widget for tool \"${tool.metadata.name}\": ${errorMessage}`);\n }\n }),\n );\n this.logger.info(\n `Pre-compiled ${staticCompiledCount}/${staticModeTools.length} static widget(s) for static mode tools`,\n );\n }\n\n // Pre-compile lean widget shells for inline mode tools\n // These are minimal HTML shells (no React/JS) that OpenAI caches at discovery\n // The actual React widget comes in each tool response with embedded data\n const inlineTools = toolsWithUI.filter(\n (t) =>\n t.metadata.ui &&\n (t.metadata.ui.servingMode === 'inline' || !t.metadata.ui.servingMode) &&\n t.metadata.ui.template,\n );\n\n if (inlineTools.length > 0) {\n let inlineCompiledCount = 0;\n await Promise.all(\n inlineTools.map(async (tool) => {\n const uiConfig = tool.metadata.ui;\n if (!uiConfig) {\n this.logger.warn(\n `Skipping lean widget pre-compile for tool \"${tool.metadata.name}\" due to missing ui config`,\n );\n return;\n }\n try {\n await this.toolUIRegistry.compileLeanWidgetAsync({\n toolName: tool.metadata.name,\n uiConfig,\n });\n inlineCompiledCount++;\n this.logger.verbose(`Compiled lean widget shell for tool: ${tool.metadata.name}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(\n `Failed to compile lean widget shell for tool \"${tool.metadata.name}\": ${errorMessage}`,\n );\n }\n }),\n );\n this.logger.info(\n `Pre-compiled ${inlineCompiledCount}/${inlineTools.length} lean widget shell(s) for inline mode tools`,\n );\n }\n\n // Pre-compile hybrid widget shells for hybrid mode tools\n // These contain React runtime + Bridge + dynamic renderer, but NO component code\n // The component code is delivered per-request in _meta['ui/component']\n const hybridTools = toolsWithUI.filter(\n (t) => t.metadata.ui && t.metadata.ui.servingMode === 'hybrid' && t.metadata.ui.template,\n );\n\n if (hybridTools.length > 0) {\n let hybridCompiledCount = 0;\n await Promise.all(\n hybridTools.map(async (tool) => {\n const uiConfig = tool.metadata.ui;\n if (!uiConfig) {\n this.logger.warn(\n `Skipping hybrid widget pre-compile for tool \"${tool.metadata.name}\" due to missing ui config`,\n );\n return;\n }\n try {\n await this.toolUIRegistry.compileHybridWidgetAsync({\n toolName: tool.metadata.name,\n uiConfig,\n });\n hybridCompiledCount++;\n this.logger.verbose(`Compiled hybrid widget shell for tool: ${tool.metadata.name}`);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n this.logger.error(\n `Failed to compile hybrid widget shell for tool \"${tool.metadata.name}\": ${errorMessage}`,\n );\n }\n }),\n );\n this.logger.info(\n `Pre-compiled ${hybridCompiledCount}/${hybridTools.length} hybrid widget shell(s) for hybrid mode tools`,\n );\n }\n }\n\n this.scopePrompts = new PromptRegistry(this.scopeProviders, [], scopeRef);\n await this.scopePrompts.ready;\n\n // Initialize notification service after all registries are ready\n this.notificationService = new NotificationService(this);\n await this.notificationService.initialize();\n\n // Register logging and completion flows\n await this.scopeFlows.registryFlows([SetLevelFlow, CompleteFlow]);\n\n await this.auth.ready;\n this.logger.info('Initializing multi-app scope', this.metadata);\n if (!this.metadata.auth) {\n // log a large warning about using FrontMcp without authentication\n this.logger.warn(\n `\\n\\n*******************************\\n WARNING: FrontMcp is running without authentication. \\n This is a security risk and should only be used in development environments. \\n*******************************\\n\\n`,\n );\n }\n }\n\n private get defaultScopeProviders() {\n return [\n {\n scope: ProviderScope.GLOBAL,\n name: 'ScopeEntry',\n provide: ScopeEntry,\n useValue: this,\n },\n {\n scope: ProviderScope.GLOBAL,\n name: 'Scope',\n provide: Scope,\n useValue: this,\n },\n {\n scope: ProviderScope.GLOBAL,\n name: 'FrontMcpLogger',\n provide: FrontMcpLogger,\n useValue: this.logger,\n },\n // RequestContextStorage is GLOBAL because it manages the AsyncLocalStorage,\n // not the per-request data. Access the actual RequestContext via REQUEST_CONTEXT token.\n {\n scope: ProviderScope.GLOBAL,\n name: 'RequestContextStorage',\n provide: RequestContextStorage,\n useClass: RequestContextStorage,\n },\n // RequestContextProvider is a factory that retrieves from AsyncLocalStorage\n RequestContextProvider,\n ];\n }\n\n get auth(): FrontMcpAuth {\n return this.scopeAuth.getPrimary();\n }\n\n get hooks(): HookRegistryInterface {\n return this.scopeHooks;\n }\n\n get authProviders(): AuthRegistry {\n return this.scopeAuth;\n }\n\n get providers() {\n return this.scopeProviders;\n }\n\n get apps(): AppRegistry {\n return this.scopeApps;\n }\n\n get tools(): ToolRegistry {\n return this.scopeTools;\n }\n\n get toolUI(): ToolUIRegistry {\n return this.toolUIRegistry;\n }\n\n get resources(): ResourceRegistry {\n return this.scopeResources;\n }\n\n get prompts(): PromptRegistry {\n return this.scopePrompts;\n }\n\n get notifications(): NotificationService {\n return this.notificationService;\n }\n\n registryFlows(...flows: FlowType[]) {\n return this.scopeFlows.registryFlows(flows);\n }\n\n runFlow<Name extends FlowName>(\n name: Name,\n input: FlowInputOf<Name>,\n deps?: Map<Token, Type>,\n ): Promise<FlowOutputOf<Name> | undefined> {\n return this.scopeFlows.runFlow(name, input, deps);\n }\n\n async runFlowForOutput<Name extends FlowName>(\n name: Name,\n input: FlowInputOf<Name>,\n deps?: Map<Token, Type>,\n ): Promise<FlowOutputOf<Name>> {\n const result = await this.scopeFlows.runFlow(name, input, deps);\n if (result) {\n return result;\n }\n throw new Error(`flow exist without output`);\n }\n}\n"]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ScopeRegistry = void 0;
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
const common_1 = require("../common");
|
|
6
|
-
const regsitry_1 = require("../regsitry");
|
|
7
|
-
const front_mcp_tokens_1 = require("../front-mcp/front-mcp.tokens");
|
|
8
|
-
const app_utils_1 = require("../app/app.utils");
|
|
9
|
-
const scope_utils_1 = require("./scope.utils");
|
|
10
|
-
const token_utils_1 = require("../utils/token.utils");
|
|
11
|
-
const scope_instance_1 = require("./scope.instance");
|
|
12
|
-
class ScopeRegistry extends regsitry_1.RegistryAbstract {
|
|
13
|
-
constructor(globalProviders) {
|
|
14
|
-
const metadata = globalProviders.get(front_mcp_tokens_1.FrontMcpConfig);
|
|
15
|
-
super('ScopeRegistry', globalProviders, metadata);
|
|
16
|
-
}
|
|
17
|
-
buildMap(metadata) {
|
|
18
|
-
const tokens = new Set();
|
|
19
|
-
const defs = new Map();
|
|
20
|
-
const graph = new Map();
|
|
21
|
-
if (metadata.splitByApp) {
|
|
22
|
-
for (const raw of metadata.apps) {
|
|
23
|
-
const rec = (0, scope_utils_1.normalizeAppScope)(raw, metadata);
|
|
24
|
-
const provide = rec.provide;
|
|
25
|
-
tokens.add(provide);
|
|
26
|
-
defs.set(provide, rec);
|
|
27
|
-
graph.set(provide, new Set());
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
const includeInParent = [];
|
|
32
|
-
for (const raw of metadata.apps) {
|
|
33
|
-
const app = (0, app_utils_1.normalizeApp)(raw);
|
|
34
|
-
const appMetadata = app.metadata;
|
|
35
|
-
if (appMetadata.standalone === false) {
|
|
36
|
-
includeInParent.push(raw);
|
|
37
|
-
// default include in parent scope
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
if (appMetadata.standalone === 'includeInParent') {
|
|
41
|
-
includeInParent.push(raw);
|
|
42
|
-
// include in the parent scope and continue to create a standalone app scope
|
|
43
|
-
}
|
|
44
|
-
const appScopeRec = (0, scope_utils_1.normalizeAppScope)(raw, metadata);
|
|
45
|
-
const provide = appScopeRec.provide;
|
|
46
|
-
tokens.add(provide);
|
|
47
|
-
defs.set(provide, appScopeRec);
|
|
48
|
-
graph.set(provide, new Set());
|
|
49
|
-
}
|
|
50
|
-
const rec = (0, scope_utils_1.normalizeMultiAppScope)(includeInParent, metadata);
|
|
51
|
-
const provide = rec.provide;
|
|
52
|
-
tokens.add(provide);
|
|
53
|
-
defs.set(provide, rec);
|
|
54
|
-
graph.set(provide, new Set());
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
tokens,
|
|
58
|
-
defs,
|
|
59
|
-
graph,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
buildGraph() {
|
|
63
|
-
for (const token of this.tokens) {
|
|
64
|
-
const rec = this.defs.get(token);
|
|
65
|
-
const deps = (0, scope_utils_1.scopeDiscoveryDeps)(rec).slice(1);
|
|
66
|
-
for (const d of deps) {
|
|
67
|
-
if (!this.providers.get(d)) {
|
|
68
|
-
throw new Error(`Scope ${(0, token_utils_1.tokenName)(token)} depends on ${(0, token_utils_1.tokenName)(d)}, which is not registered.`);
|
|
69
|
-
}
|
|
70
|
-
this.graph.get(token).add(d);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
async initialize() {
|
|
75
|
-
for (const token of this.tokens) {
|
|
76
|
-
const rec = this.defs.get(token);
|
|
77
|
-
let scope;
|
|
78
|
-
switch (rec.kind) {
|
|
79
|
-
case common_1.ScopeKind.SPLIT_BY_APP:
|
|
80
|
-
scope = new scope_instance_1.Scope(rec, this.providers);
|
|
81
|
-
break;
|
|
82
|
-
case common_1.ScopeKind.MULTI_APP:
|
|
83
|
-
scope = new rec.provide(rec, this.providers);
|
|
84
|
-
break;
|
|
85
|
-
default:
|
|
86
|
-
throw new Error(`Invalid scope kind ${rec}`);
|
|
87
|
-
}
|
|
88
|
-
await scope.ready;
|
|
89
|
-
this.instances.set(token, scope);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
exports.ScopeRegistry = ScopeRegistry;
|
|
94
|
-
//# sourceMappingURL=scope.registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scope.registry.js","sourceRoot":"","sources":["../../../src/scope/scope.registry.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport {\n AppType,\n FrontMcpConfigType,\n ScopeEntry,\n ScopeRecord,\n ScopeKind,\n Token,\n} from '../common';\nimport {RegistryAbstract, RegistryBuildMapResult} from '../regsitry';\nimport ProviderRegistry from '../provider/provider.registry';\nimport {FrontMcpConfig} from '../front-mcp/front-mcp.tokens';\nimport {normalizeApp} from '../app/app.utils';\nimport {normalizeAppScope, normalizeMultiAppScope, scopeDiscoveryDeps} from './scope.utils';\nimport {tokenName} from '../utils/token.utils';\nimport {Scope} from \"./scope.instance\";\n\nexport class ScopeRegistry extends RegistryAbstract<ScopeEntry, ScopeRecord, FrontMcpConfigType> {\n\n constructor(globalProviders: ProviderRegistry) {\n const metadata = globalProviders.get(FrontMcpConfig);\n super('ScopeRegistry', globalProviders, metadata);\n }\n\n protected override buildMap(metadata: FrontMcpConfigType): RegistryBuildMapResult<ScopeRecord> {\n const tokens = new Set<Token>();\n const defs = new Map<Token, ScopeRecord>();\n const graph = new Map<Token, Set<Token>>();\n\n if (metadata.splitByApp) {\n for (const raw of metadata.apps) {\n const rec = normalizeAppScope(raw, metadata);\n const provide = rec.provide;\n tokens.add(provide);\n defs.set(provide, rec);\n graph.set(provide, new Set());\n }\n } else {\n const includeInParent: AppType[] = [];\n\n for (const raw of metadata.apps) {\n const app = normalizeApp(raw);\n const appMetadata = app.metadata;\n if (appMetadata.standalone === false) {\n includeInParent.push(raw);\n // default include in parent scope\n continue;\n }\n\n if (appMetadata.standalone === 'includeInParent') {\n includeInParent.push(raw);\n // include in the parent scope and continue to create a standalone app scope\n }\n\n const appScopeRec = normalizeAppScope(raw, metadata);\n const provide = appScopeRec.provide;\n tokens.add(provide);\n defs.set(provide, appScopeRec);\n graph.set(provide, new Set());\n }\n\n const rec = normalizeMultiAppScope(includeInParent, metadata);\n const provide = rec.provide;\n tokens.add(provide);\n defs.set(provide, rec);\n graph.set(provide, new Set());\n }\n\n return {\n tokens,\n defs,\n graph,\n };\n }\n\n protected override buildGraph() {\n for (const token of this.tokens) {\n const rec = this.defs.get(token)!;\n const deps = scopeDiscoveryDeps(rec).slice(1);\n\n for (const d of deps) {\n if (!this.providers.get(d)) {\n throw new Error(`Scope ${tokenName(token)} depends on ${tokenName(d)}, which is not registered.`);\n }\n this.graph.get(token)!.add(d);\n }\n }\n }\n\n protected async initialize() {\n\n for (const token of this.tokens) {\n const rec = this.defs.get(token)!;\n\n let scope: ScopeEntry;\n switch (rec.kind) {\n case ScopeKind.SPLIT_BY_APP:\n scope = new Scope(rec, this.providers);\n break;\n case ScopeKind.MULTI_APP:\n scope = new rec.provide(rec, this.providers);\n break;\n default:\n throw new Error(`Invalid scope kind ${rec}`);\n }\n\n await scope.ready;\n this.instances.set(token, scope);\n }\n }\n\n}\n"]}
|
package/src/scope/scope.utils.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeAppScope = normalizeAppScope;
|
|
4
|
-
exports.normalizeMultiAppScope = normalizeMultiAppScope;
|
|
5
|
-
exports.scopeDiscoveryDeps = scopeDiscoveryDeps;
|
|
6
|
-
const common_1 = require("../common");
|
|
7
|
-
const app_utils_1 = require("../app/app.utils");
|
|
8
|
-
const token_utils_1 = require("../utils/token.utils");
|
|
9
|
-
const scope_instance_1 = require("./scope.instance");
|
|
10
|
-
/**
|
|
11
|
-
* Normalize a raw scope metadata list into useful maps/sets.
|
|
12
|
-
* - tokens: all provided tokens
|
|
13
|
-
* - defs: AdapterRecord by token
|
|
14
|
-
* - graph: initialized adjacency map (empty sets)
|
|
15
|
-
*/
|
|
16
|
-
function normalizeAppScope(appItem, metadata) {
|
|
17
|
-
const app = (0, app_utils_1.normalizeApp)(appItem);
|
|
18
|
-
const appMetadata = app.metadata;
|
|
19
|
-
/**
|
|
20
|
-
* Explicitly check for true for splitByApp scope.
|
|
21
|
-
*/
|
|
22
|
-
// noinspection PointlessBooleanExpressionJS
|
|
23
|
-
if (metadata.splitByApp === true && appMetadata.standalone === 'includeInParent') {
|
|
24
|
-
throw new Error('standalone: includeInParent is not supported for splitByApp scope');
|
|
25
|
-
}
|
|
26
|
-
const scopeId = appMetadata.id ?? appMetadata.name;
|
|
27
|
-
const token = Symbol(scopeId);
|
|
28
|
-
return {
|
|
29
|
-
kind: common_1.ScopeKind.SPLIT_BY_APP,
|
|
30
|
-
provide: token,
|
|
31
|
-
metadata: {
|
|
32
|
-
...metadata,
|
|
33
|
-
id: scopeId,
|
|
34
|
-
apps: [appItem],
|
|
35
|
-
auth: appMetadata.auth,
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function normalizeMultiAppScope(includedApps, metadata) {
|
|
40
|
-
return {
|
|
41
|
-
kind: common_1.ScopeKind.MULTI_APP,
|
|
42
|
-
provide: scope_instance_1.Scope,
|
|
43
|
-
metadata: {
|
|
44
|
-
...metadata,
|
|
45
|
-
id: 'root',
|
|
46
|
-
apps: includedApps,
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* For graph/cycle detection. Returns dependency tokens that should be graphed.
|
|
52
|
-
*/
|
|
53
|
-
function scopeDiscoveryDeps(rec) {
|
|
54
|
-
switch (rec.kind) {
|
|
55
|
-
case common_1.ScopeKind.MULTI_APP:
|
|
56
|
-
return (0, token_utils_1.depsOfClass)(rec.provide, 'discovery').slice(1);
|
|
57
|
-
case common_1.ScopeKind.SPLIT_BY_APP:
|
|
58
|
-
return []; // no deps for splitByApp scope;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=scope.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scope.utils.js","sourceRoot":"","sources":["../../../src/scope/scope.utils.ts"],"names":[],"mappings":";;AAqBA,8CAuBC;AAED,wDAUC;AAKD,gDAOC;AApED,sCASmB;AACnB,gDAA8C;AAC9C,sDAAiD;AACjD,qDAAuC;AAEvC;;;;;GAKG;AAEH,SAAgB,iBAAiB,CAAC,OAAgB,EAAE,QAA2D;IAC7G,MAAM,GAAG,GAAG,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEjC;;OAEG;IACH,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,IAAI,WAAW,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,CAAA;IAClD,MAAM,KAAK,GAAkB,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO;QACL,IAAI,EAAE,kBAAS,CAAC,YAAY;QAC5B,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,EAAE,EAAC,OAAO;YACV,IAAI,EAAE,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,WAAW,CAAC,IAAI;SACH;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,YAAuB,EAAE,QAAgC;IAC9F,OAAO;QACL,IAAI,EAAE,kBAAS,CAAC,SAAS;QACzB,OAAO,EAAE,sBAAK;QACd,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,YAAY;SACM;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAAgB;IACjD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,kBAAS,CAAC,SAAS;YACtB,OAAO,IAAA,yBAAW,EAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxD,KAAK,kBAAS,CAAC,YAAY;YACzB,OAAO,EAAE,CAAA,CAAC,gCAAgC;IAC9C,CAAC;AACH,CAAC","sourcesContent":["import {\n AppScopeMetadata,\n AppType,\n FrontMcpMultiAppConfig,\n FrontMcpSplitByAppConfig,\n MultiAppScopeMetadata,\n Token,\n ScopeRecord,\n ScopeKind,\n} from '../common';\nimport {normalizeApp} from '../app/app.utils';\nimport {depsOfClass} from '../utils/token.utils';\nimport {Scope} from './scope.instance';\n\n/**\n * Normalize a raw scope metadata list into useful maps/sets.\n * - tokens: all provided tokens\n * - defs: AdapterRecord by token\n * - graph: initialized adjacency map (empty sets)\n */\n\nexport function normalizeAppScope(appItem: AppType, metadata: FrontMcpMultiAppConfig | FrontMcpSplitByAppConfig): ScopeRecord {\n const app = normalizeApp(appItem);\n const appMetadata = app.metadata;\n\n /**\n * Explicitly check for true for splitByApp scope.\n */\n // noinspection PointlessBooleanExpressionJS\n if (metadata.splitByApp === true && appMetadata.standalone === 'includeInParent') {\n throw new Error('standalone: includeInParent is not supported for splitByApp scope');\n }\n const scopeId = appMetadata.id ?? appMetadata.name\n const token:Token<AppType> = Symbol(scopeId)\n return {\n kind: ScopeKind.SPLIT_BY_APP,\n provide: token,\n metadata: {\n ...metadata,\n id:scopeId,\n apps: [appItem],\n auth: appMetadata.auth,\n } as AppScopeMetadata,\n };\n}\n\nexport function normalizeMultiAppScope(includedApps: AppType[], metadata: FrontMcpMultiAppConfig): ScopeRecord {\n return {\n kind: ScopeKind.MULTI_APP,\n provide: Scope,\n metadata: {\n ...metadata,\n id: 'root',\n apps: includedApps,\n } as MultiAppScopeMetadata,\n };\n}\n\n/**\n * For graph/cycle detection. Returns dependency tokens that should be graphed.\n */\nexport function scopeDiscoveryDeps(rec: ScopeRecord): Token[] {\n switch (rec.kind) {\n case ScopeKind.MULTI_APP:\n return depsOfClass(rec.provide, 'discovery').slice(1);\n case ScopeKind.SPLIT_BY_APP:\n return [] // no deps for splitByApp scope;\n }\n}"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HostServerAdapter = void 0;
|
|
4
|
-
const common_1 = require("../../common");
|
|
5
|
-
class HostServerAdapter extends common_1.FrontMcpServer {
|
|
6
|
-
}
|
|
7
|
-
exports.HostServerAdapter = HostServerAdapter;
|
|
8
|
-
//# sourceMappingURL=base.host.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.host.adapter.js","sourceRoot":"","sources":["../../../../src/server/adapters/base.host.adapter.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAE9C,MAAsB,iBAAkB,SAAQ,uBAAc;CAgB7D;AAhBD,8CAgBC","sourcesContent":["import { FrontMcpServer } from '../../common';\n\nexport abstract class HostServerAdapter extends FrontMcpServer {\n /**\n * Prepares the server routes without starting the HTTP listener.\n * Used for serverless deployments (Vercel, AWS Lambda, etc.)\n */\n abstract override prepare(): void;\n\n /**\n * Returns the underlying HTTP handler for serverless exports.\n */\n abstract override getHandler(): unknown;\n\n /**\n * Start the server on the specified port\n */\n abstract override start(port: number): Promise<void> | void;\n}\n"]}
|