@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
package/src/mcp-apps/template.js
DELETED
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file template.ts
|
|
4
|
-
* @description MCP Apps HTML template generator.
|
|
5
|
-
*
|
|
6
|
-
* Generates standard HTML5 documents with embedded MCP bridge for MCP Apps spec compliance.
|
|
7
|
-
*
|
|
8
|
-
* @module @frontmcp/sdk/mcp-apps/template
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.generateMcpAppsTemplate = generateMcpAppsTemplate;
|
|
12
|
-
exports.wrapInMcpAppsTemplate = wrapInMcpAppsTemplate;
|
|
13
|
-
exports.createSimpleMcpAppsTemplate = createSimpleMcpAppsTemplate;
|
|
14
|
-
exports.extractBodyContent = extractBodyContent;
|
|
15
|
-
const types_1 = require("./types");
|
|
16
|
-
const csp_1 = require("./csp");
|
|
17
|
-
// ============================================
|
|
18
|
-
// Template Generator
|
|
19
|
-
// ============================================
|
|
20
|
-
/**
|
|
21
|
-
* Generate MCP Apps compliant HTML5 document.
|
|
22
|
-
*
|
|
23
|
-
* @param options - Template options
|
|
24
|
-
* @returns Complete HTML5 document string
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const html = generateMcpAppsTemplate({
|
|
29
|
-
* title: 'Weather Dashboard',
|
|
30
|
-
* bodyContent: '<div id="weather">Loading...</div>',
|
|
31
|
-
* toolInfo: { tool: { name: 'get_weather' } },
|
|
32
|
-
* input: { city: 'San Francisco' },
|
|
33
|
-
* output: { temperature: 72, condition: 'sunny' },
|
|
34
|
-
* csp: { connectDomains: ['https://api.weather.com'] },
|
|
35
|
-
* });
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
function generateMcpAppsTemplate(options) {
|
|
39
|
-
const { toolInfo, input, output, structuredContent, csp, title = 'MCP App', headContent = '', bodyContent, scripts = [], includeBridge = true, bridgeConfig, theme = 'light', debug = false, } = options;
|
|
40
|
-
// Build CSP meta tag
|
|
41
|
-
const cspMeta = (0, csp_1.buildCSPMetaTag)(csp);
|
|
42
|
-
// Build data attributes for initial state
|
|
43
|
-
const dataAttrs = buildDataAttributes({ toolInfo, input, output, structuredContent });
|
|
44
|
-
// Build bridge script
|
|
45
|
-
const bridgeScript = includeBridge ? generateBridgeScript({ ...bridgeConfig, debug }) : '';
|
|
46
|
-
// Build additional scripts
|
|
47
|
-
const additionalScripts = scripts.map((s) => `<script>${s}</script>`).join('\n');
|
|
48
|
-
return `<!DOCTYPE html>
|
|
49
|
-
<html lang="en" data-theme="${escapeAttr(theme)}">
|
|
50
|
-
<head>
|
|
51
|
-
<meta charset="UTF-8">
|
|
52
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
53
|
-
${cspMeta}
|
|
54
|
-
<meta name="mcp-apps-version" content="${types_1.MCP_APPS_PROTOCOL_VERSION}">
|
|
55
|
-
<meta name="mcp-apps-mime-type" content="${types_1.MCP_APPS_MIME_TYPE}">
|
|
56
|
-
<title>${escapeHtml(title)}</title>
|
|
57
|
-
<style>
|
|
58
|
-
:root {
|
|
59
|
-
--mcp-bg: #ffffff;
|
|
60
|
-
--mcp-text: #1a1a1a;
|
|
61
|
-
--mcp-border: #e5e5e5;
|
|
62
|
-
--mcp-primary: #0969da;
|
|
63
|
-
--mcp-error: #cf222e;
|
|
64
|
-
--mcp-success: #1a7f37;
|
|
65
|
-
}
|
|
66
|
-
[data-theme="dark"] {
|
|
67
|
-
--mcp-bg: #0d1117;
|
|
68
|
-
--mcp-text: #c9d1d9;
|
|
69
|
-
--mcp-border: #30363d;
|
|
70
|
-
--mcp-primary: #58a6ff;
|
|
71
|
-
--mcp-error: #f85149;
|
|
72
|
-
--mcp-success: #3fb950;
|
|
73
|
-
}
|
|
74
|
-
* { box-sizing: border-box; }
|
|
75
|
-
body {
|
|
76
|
-
margin: 0;
|
|
77
|
-
padding: 16px;
|
|
78
|
-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
79
|
-
background: var(--mcp-bg);
|
|
80
|
-
color: var(--mcp-text);
|
|
81
|
-
line-height: 1.5;
|
|
82
|
-
}
|
|
83
|
-
</style>
|
|
84
|
-
${headContent}
|
|
85
|
-
</head>
|
|
86
|
-
<body ${dataAttrs}>
|
|
87
|
-
${bodyContent}
|
|
88
|
-
${bridgeScript}
|
|
89
|
-
${additionalScripts}
|
|
90
|
-
</body>
|
|
91
|
-
</html>`;
|
|
92
|
-
}
|
|
93
|
-
// ============================================
|
|
94
|
-
// Bridge Script Generator
|
|
95
|
-
// ============================================
|
|
96
|
-
/**
|
|
97
|
-
* Generate the MCP Apps bridge runtime script.
|
|
98
|
-
*/
|
|
99
|
-
function generateBridgeScript(config) {
|
|
100
|
-
const { protocolVersion = types_1.MCP_APPS_PROTOCOL_VERSION, trustedOrigin = '*', requestTimeout = 30000, debug = false, } = config || {};
|
|
101
|
-
return `<script>
|
|
102
|
-
(function() {
|
|
103
|
-
'use strict';
|
|
104
|
-
|
|
105
|
-
// MCP Apps Bridge Runtime
|
|
106
|
-
const MCP_PROTOCOL_VERSION = '${protocolVersion}';
|
|
107
|
-
const REQUEST_TIMEOUT = ${requestTimeout};
|
|
108
|
-
const DEBUG = ${debug};
|
|
109
|
-
|
|
110
|
-
// State
|
|
111
|
-
let initialized = false;
|
|
112
|
-
let hostContext = {};
|
|
113
|
-
let pendingRequests = new Map();
|
|
114
|
-
let messageId = 0;
|
|
115
|
-
let trustedOrigin = '${trustedOrigin}';
|
|
116
|
-
|
|
117
|
-
// Logging
|
|
118
|
-
function log(...args) {
|
|
119
|
-
if (DEBUG) console.log('[MCP Bridge]', ...args);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Generate unique message ID
|
|
123
|
-
function nextId() {
|
|
124
|
-
return ++messageId;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Send JSON-RPC message to host
|
|
128
|
-
function sendMessage(message) {
|
|
129
|
-
log('Sending:', message);
|
|
130
|
-
parent.postMessage(message, trustedOrigin);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Send JSON-RPC request and wait for response
|
|
134
|
-
function sendRequest(method, params) {
|
|
135
|
-
return new Promise((resolve, reject) => {
|
|
136
|
-
const id = nextId();
|
|
137
|
-
const request = {
|
|
138
|
-
jsonrpc: '2.0',
|
|
139
|
-
id: id,
|
|
140
|
-
method: method,
|
|
141
|
-
params: params
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
const timeout = setTimeout(() => {
|
|
145
|
-
pendingRequests.delete(id);
|
|
146
|
-
reject(new Error('Request timeout: ' + method));
|
|
147
|
-
}, REQUEST_TIMEOUT);
|
|
148
|
-
|
|
149
|
-
pendingRequests.set(id, { resolve, reject, timeout });
|
|
150
|
-
sendMessage(request);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
// Send JSON-RPC notification (no response expected)
|
|
155
|
-
function sendNotification(method, params) {
|
|
156
|
-
sendMessage({
|
|
157
|
-
jsonrpc: '2.0',
|
|
158
|
-
method: method,
|
|
159
|
-
params: params
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Handle incoming messages from host
|
|
164
|
-
function handleMessage(event) {
|
|
165
|
-
// Validate origin on first message (trust-on-first-use)
|
|
166
|
-
if (trustedOrigin === '*' && event.origin) {
|
|
167
|
-
trustedOrigin = event.origin;
|
|
168
|
-
log('Trusted origin set to:', trustedOrigin);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const data = event.data;
|
|
172
|
-
if (!data || data.jsonrpc !== '2.0') return;
|
|
173
|
-
|
|
174
|
-
log('Received:', data);
|
|
175
|
-
|
|
176
|
-
// Handle response to our request
|
|
177
|
-
if (data.id !== undefined && pendingRequests.has(data.id)) {
|
|
178
|
-
const { resolve, reject, timeout } = pendingRequests.get(data.id);
|
|
179
|
-
clearTimeout(timeout);
|
|
180
|
-
pendingRequests.delete(data.id);
|
|
181
|
-
|
|
182
|
-
if (data.error) {
|
|
183
|
-
reject(new Error(data.error.message || 'Unknown error'));
|
|
184
|
-
} else {
|
|
185
|
-
resolve(data.result);
|
|
186
|
-
}
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// Handle notifications from host
|
|
191
|
-
if (data.method) {
|
|
192
|
-
handleNotification(data.method, data.params);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Handle notifications from host
|
|
197
|
-
function handleNotification(method, params) {
|
|
198
|
-
switch (method) {
|
|
199
|
-
case '${types_1.MCP_APPS_METHODS.TOOL_INPUT}':
|
|
200
|
-
window.dispatchEvent(new CustomEvent('mcp:tool-input', { detail: params }));
|
|
201
|
-
break;
|
|
202
|
-
case '${types_1.MCP_APPS_METHODS.TOOL_INPUT_PARTIAL}':
|
|
203
|
-
window.dispatchEvent(new CustomEvent('mcp:tool-input-partial', { detail: params }));
|
|
204
|
-
break;
|
|
205
|
-
case '${types_1.MCP_APPS_METHODS.TOOL_RESULT}':
|
|
206
|
-
window.dispatchEvent(new CustomEvent('mcp:tool-result', { detail: params }));
|
|
207
|
-
break;
|
|
208
|
-
case '${types_1.MCP_APPS_METHODS.TOOL_CANCELLED}':
|
|
209
|
-
window.dispatchEvent(new CustomEvent('mcp:tool-cancelled', { detail: params }));
|
|
210
|
-
break;
|
|
211
|
-
case '${types_1.MCP_APPS_METHODS.SIZE_CHANGE}':
|
|
212
|
-
window.dispatchEvent(new CustomEvent('mcp:size-change', { detail: params }));
|
|
213
|
-
break;
|
|
214
|
-
case '${types_1.MCP_APPS_METHODS.HOST_CONTEXT_CHANGE}':
|
|
215
|
-
Object.assign(hostContext, params.changes);
|
|
216
|
-
window.dispatchEvent(new CustomEvent('mcp:context-change', { detail: params.changes }));
|
|
217
|
-
// Update theme if changed
|
|
218
|
-
if (params.changes.theme) {
|
|
219
|
-
document.documentElement.setAttribute('data-theme', params.changes.theme);
|
|
220
|
-
}
|
|
221
|
-
break;
|
|
222
|
-
case '${types_1.MCP_APPS_METHODS.RESOURCE_TEARDOWN}':
|
|
223
|
-
window.dispatchEvent(new CustomEvent('mcp:teardown', { detail: params }));
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Initialize connection with host
|
|
229
|
-
async function initialize() {
|
|
230
|
-
if (initialized) return hostContext;
|
|
231
|
-
|
|
232
|
-
try {
|
|
233
|
-
const result = await sendRequest('${types_1.MCP_APPS_METHODS.INITIALIZE}', {
|
|
234
|
-
protocolVersion: MCP_PROTOCOL_VERSION,
|
|
235
|
-
capabilities: {
|
|
236
|
-
messages: ['${types_1.MCP_APPS_METHODS.TOOL_INPUT}', '${types_1.MCP_APPS_METHODS.TOOL_RESULT}']
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
hostContext = result.hostContext || {};
|
|
241
|
-
initialized = true;
|
|
242
|
-
|
|
243
|
-
// Apply initial theme
|
|
244
|
-
if (hostContext.theme) {
|
|
245
|
-
document.documentElement.setAttribute('data-theme', hostContext.theme);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// Send initialized notification
|
|
249
|
-
sendNotification('${types_1.MCP_APPS_METHODS.INITIALIZED}', {});
|
|
250
|
-
|
|
251
|
-
log('Initialized with context:', hostContext);
|
|
252
|
-
window.dispatchEvent(new CustomEvent('mcp:initialized', { detail: hostContext }));
|
|
253
|
-
|
|
254
|
-
return hostContext;
|
|
255
|
-
} catch (error) {
|
|
256
|
-
console.error('[MCP Bridge] Initialization failed:', error);
|
|
257
|
-
throw error;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// Public API
|
|
262
|
-
window.mcpBridge = {
|
|
263
|
-
// Initialize connection
|
|
264
|
-
initialize: initialize,
|
|
265
|
-
|
|
266
|
-
// Get current host context
|
|
267
|
-
getHostContext: function() {
|
|
268
|
-
return { ...hostContext };
|
|
269
|
-
},
|
|
270
|
-
|
|
271
|
-
// Get tool info
|
|
272
|
-
getToolInfo: function() {
|
|
273
|
-
return hostContext.toolInfo;
|
|
274
|
-
},
|
|
275
|
-
|
|
276
|
-
// Call a tool on the MCP server
|
|
277
|
-
callTool: function(name, args) {
|
|
278
|
-
return sendRequest('${types_1.MCP_APPS_METHODS.TOOLS_CALL}', { name, arguments: args });
|
|
279
|
-
},
|
|
280
|
-
|
|
281
|
-
// Read a resource
|
|
282
|
-
readResource: function(uri) {
|
|
283
|
-
return sendRequest('${types_1.MCP_APPS_METHODS.RESOURCES_READ}', { uri });
|
|
284
|
-
},
|
|
285
|
-
|
|
286
|
-
// Request host to open a link
|
|
287
|
-
openLink: function(url) {
|
|
288
|
-
return sendRequest('${types_1.MCP_APPS_METHODS.OPEN_LINK}', { url });
|
|
289
|
-
},
|
|
290
|
-
|
|
291
|
-
// Send message to host's chat
|
|
292
|
-
sendMessage: function(content) {
|
|
293
|
-
return sendRequest('${types_1.MCP_APPS_METHODS.MESSAGE}', { content });
|
|
294
|
-
},
|
|
295
|
-
|
|
296
|
-
// Log message to host
|
|
297
|
-
log: function(level, message, data) {
|
|
298
|
-
sendNotification('${types_1.MCP_APPS_METHODS.NOTIFICATIONS_MESSAGE}', {
|
|
299
|
-
level: level,
|
|
300
|
-
logger: 'mcp-app',
|
|
301
|
-
data: { message, ...data }
|
|
302
|
-
});
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
// Ping host
|
|
306
|
-
ping: function() {
|
|
307
|
-
return sendRequest('${types_1.MCP_APPS_METHODS.PING}', {});
|
|
308
|
-
},
|
|
309
|
-
|
|
310
|
-
// Check if initialized
|
|
311
|
-
isInitialized: function() {
|
|
312
|
-
return initialized;
|
|
313
|
-
},
|
|
314
|
-
|
|
315
|
-
// Protocol version
|
|
316
|
-
protocolVersion: MCP_PROTOCOL_VERSION
|
|
317
|
-
};
|
|
318
|
-
|
|
319
|
-
// Listen for messages
|
|
320
|
-
window.addEventListener('message', handleMessage);
|
|
321
|
-
|
|
322
|
-
// Auto-initialize when DOM is ready
|
|
323
|
-
if (document.readyState === 'loading') {
|
|
324
|
-
document.addEventListener('DOMContentLoaded', function() {
|
|
325
|
-
initialize().catch(function(err) {
|
|
326
|
-
log('Auto-init failed:', err);
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
} else {
|
|
330
|
-
initialize().catch(function(err) {
|
|
331
|
-
log('Auto-init failed:', err);
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
log('Bridge loaded');
|
|
336
|
-
})();
|
|
337
|
-
</script>`;
|
|
338
|
-
}
|
|
339
|
-
// ============================================
|
|
340
|
-
// Helper Functions
|
|
341
|
-
// ============================================
|
|
342
|
-
/**
|
|
343
|
-
* Build data attributes for initial state injection.
|
|
344
|
-
*/
|
|
345
|
-
function buildDataAttributes(options) {
|
|
346
|
-
const attrs = [];
|
|
347
|
-
if (options.toolInfo) {
|
|
348
|
-
attrs.push(`data-mcp-tool="${escapeAttr(JSON.stringify(options.toolInfo))}"`);
|
|
349
|
-
}
|
|
350
|
-
if (options.input) {
|
|
351
|
-
attrs.push(`data-mcp-input="${escapeAttr(JSON.stringify(options.input))}"`);
|
|
352
|
-
}
|
|
353
|
-
if (options.output !== undefined) {
|
|
354
|
-
attrs.push(`data-mcp-output="${escapeAttr(JSON.stringify(options.output))}"`);
|
|
355
|
-
}
|
|
356
|
-
if (options.structuredContent !== undefined) {
|
|
357
|
-
attrs.push(`data-mcp-structured="${escapeAttr(JSON.stringify(options.structuredContent))}"`);
|
|
358
|
-
}
|
|
359
|
-
return attrs.join(' ');
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Escape HTML content.
|
|
363
|
-
*/
|
|
364
|
-
function escapeHtml(str) {
|
|
365
|
-
return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Escape HTML attribute value.
|
|
369
|
-
*/
|
|
370
|
-
function escapeAttr(str) {
|
|
371
|
-
return str
|
|
372
|
-
.replace(/&/g, '&')
|
|
373
|
-
.replace(/"/g, '"')
|
|
374
|
-
.replace(/'/g, ''')
|
|
375
|
-
.replace(/</g, '<')
|
|
376
|
-
.replace(/>/g, '>');
|
|
377
|
-
}
|
|
378
|
-
// ============================================
|
|
379
|
-
// Utility Functions
|
|
380
|
-
// ============================================
|
|
381
|
-
/**
|
|
382
|
-
* Wrap existing HTML content in MCP Apps template.
|
|
383
|
-
*
|
|
384
|
-
* @param html - Existing HTML content
|
|
385
|
-
* @param options - Template options (without bodyContent)
|
|
386
|
-
* @returns Complete MCP Apps HTML document
|
|
387
|
-
*/
|
|
388
|
-
function wrapInMcpAppsTemplate(html, options) {
|
|
389
|
-
return generateMcpAppsTemplate({
|
|
390
|
-
...options,
|
|
391
|
-
bodyContent: html,
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
/**
|
|
395
|
-
* Create a minimal MCP Apps template for simple content.
|
|
396
|
-
*
|
|
397
|
-
* @param content - Simple text or HTML content
|
|
398
|
-
* @param title - Page title
|
|
399
|
-
* @returns Complete MCP Apps HTML document
|
|
400
|
-
*/
|
|
401
|
-
function createSimpleMcpAppsTemplate(content, title) {
|
|
402
|
-
return generateMcpAppsTemplate({
|
|
403
|
-
title: title || 'MCP App',
|
|
404
|
-
bodyContent: `<div class="mcp-content">${content}</div>`,
|
|
405
|
-
includeBridge: true,
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Extract body content from MCP Apps template.
|
|
410
|
-
* Useful for testing.
|
|
411
|
-
*
|
|
412
|
-
* @param html - Complete HTML document
|
|
413
|
-
* @returns Body content string or null
|
|
414
|
-
*/
|
|
415
|
-
function extractBodyContent(html) {
|
|
416
|
-
const match = html.match(/<body[^>]*>([\s\S]*?)<script/);
|
|
417
|
-
return match ? match[1].trim() : null;
|
|
418
|
-
}
|
|
419
|
-
//# sourceMappingURL=template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/mcp-apps/template.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA4EH,0DAyEC;AAgUD,sDAKC;AASD,kEAMC;AASD,gDAGC;AAlfD,mCAA0F;AAC1F,+BAAwC;AAkDxC,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,uBAAuB,CAAC,OAA+B;IACrE,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,GAAG,EACH,KAAK,GAAG,SAAS,EACjB,WAAW,GAAG,EAAE,EAChB,WAAW,EACX,OAAO,GAAG,EAAE,EACZ,aAAa,GAAG,IAAI,EACpB,YAAY,EACZ,KAAK,GAAG,OAAO,EACf,KAAK,GAAG,KAAK,GACd,GAAG,OAAO,CAAC;IAEZ,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAA,qBAAe,EAAC,GAAG,CAAC,CAAC;IAErC,0CAA0C;IAC1C,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEtF,sBAAsB;IACtB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3F,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjF,OAAO;8BACqB,UAAU,CAAC,KAAK,CAAC;;;;IAI3C,OAAO;2CACgC,iCAAyB;6CACvB,0BAAkB;WACpD,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BxB,WAAW;;QAEP,SAAS;IACb,WAAW;IACX,YAAY;IACZ,iBAAiB;;QAEb,CAAC;AACT,CAAC;AAED,+CAA+C;AAC/C,0BAA0B;AAC1B,+CAA+C;AAE/C;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAkD;IAC9E,MAAM,EACJ,eAAe,GAAG,iCAAyB,EAC3C,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,KAAK,EACtB,KAAK,GAAG,KAAK,GACd,GAAG,MAAM,IAAI,EAAE,CAAC;IAEjB,OAAO;;;;;kCAKyB,eAAe;4BACrB,cAAc;kBACxB,KAAK;;;;;;;yBAOE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoFxB,wBAAgB,CAAC,UAAU;;;cAG3B,wBAAgB,CAAC,kBAAkB;;;cAGnC,wBAAgB,CAAC,WAAW;;;cAG5B,wBAAgB,CAAC,cAAc;;;cAG/B,wBAAgB,CAAC,WAAW;;;cAG5B,wBAAgB,CAAC,mBAAmB;;;;;;;;cAQpC,wBAAgB,CAAC,iBAAiB;;;;;;;;;;;0CAWN,wBAAgB,CAAC,UAAU;;;wBAG7C,wBAAgB,CAAC,UAAU,OAAO,wBAAgB,CAAC,WAAW;;;;;;;;;;;;;0BAa5D,wBAAgB,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA6B1B,wBAAgB,CAAC,UAAU;;;;;4BAK3B,wBAAgB,CAAC,cAAc;;;;;4BAK/B,wBAAgB,CAAC,SAAS;;;;;4BAK1B,wBAAgB,CAAC,OAAO;;;;;0BAK1B,wBAAgB,CAAC,qBAAqB;;;;;;;;;4BASpC,wBAAgB,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8BvC,CAAC;AACX,CAAC;AAED,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAK5B;IACC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,mBAAmB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,IAAY,EAAE,OAAoD;IACtG,OAAO,uBAAuB,CAAC;QAC7B,GAAG,OAAO;QACV,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CAAC,OAAe,EAAE,KAAc;IACzE,OAAO,uBAAuB,CAAC;QAC7B,KAAK,EAAE,KAAK,IAAI,SAAS;QACzB,WAAW,EAAE,4BAA4B,OAAO,QAAQ;QACxD,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC","sourcesContent":["/**\n * @file template.ts\n * @description MCP Apps HTML template generator.\n *\n * Generates standard HTML5 documents with embedded MCP bridge for MCP Apps spec compliance.\n *\n * @module @frontmcp/sdk/mcp-apps/template\n */\n\nimport type { McpAppsCSP, McpAppsHostContext, ToolInfo } from './types';\nimport { MCP_APPS_MIME_TYPE, MCP_APPS_PROTOCOL_VERSION, MCP_APPS_METHODS } from './types';\nimport { buildCSPMetaTag } from './csp';\n\n// ============================================\n// Template Options\n// ============================================\n\n/**\n * Options for generating MCP Apps HTML template.\n */\nexport interface McpAppsTemplateOptions {\n /** Tool information */\n toolInfo?: ToolInfo;\n /** Tool input arguments */\n input?: Record<string, unknown>;\n /** Tool output/result */\n output?: unknown;\n /** Structured content for UI rendering */\n structuredContent?: unknown;\n /** Content Security Policy */\n csp?: McpAppsCSP;\n /** Page title */\n title?: string;\n /** Additional head content (styles, meta tags) */\n headContent?: string;\n /** Main body content (HTML) */\n bodyContent: string;\n /** Additional scripts to include */\n scripts?: string[];\n /** Whether to include the MCP bridge runtime */\n includeBridge?: boolean;\n /** Custom bridge configuration */\n bridgeConfig?: McpAppsBridgeConfig;\n /** Initial theme */\n theme?: 'light' | 'dark';\n /** Debug mode - adds console logging */\n debug?: boolean;\n}\n\n/**\n * MCP Apps bridge configuration.\n */\nexport interface McpAppsBridgeConfig {\n /** Protocol version */\n protocolVersion?: string;\n /** Trusted origin for postMessage */\n trustedOrigin?: string;\n /** Request timeout in milliseconds */\n requestTimeout?: number;\n}\n\n// ============================================\n// Template Generator\n// ============================================\n\n/**\n * Generate MCP Apps compliant HTML5 document.\n *\n * @param options - Template options\n * @returns Complete HTML5 document string\n *\n * @example\n * ```typescript\n * const html = generateMcpAppsTemplate({\n * title: 'Weather Dashboard',\n * bodyContent: '<div id=\"weather\">Loading...</div>',\n * toolInfo: { tool: { name: 'get_weather' } },\n * input: { city: 'San Francisco' },\n * output: { temperature: 72, condition: 'sunny' },\n * csp: { connectDomains: ['https://api.weather.com'] },\n * });\n * ```\n */\nexport function generateMcpAppsTemplate(options: McpAppsTemplateOptions): string {\n const {\n toolInfo,\n input,\n output,\n structuredContent,\n csp,\n title = 'MCP App',\n headContent = '',\n bodyContent,\n scripts = [],\n includeBridge = true,\n bridgeConfig,\n theme = 'light',\n debug = false,\n } = options;\n\n // Build CSP meta tag\n const cspMeta = buildCSPMetaTag(csp);\n\n // Build data attributes for initial state\n const dataAttrs = buildDataAttributes({ toolInfo, input, output, structuredContent });\n\n // Build bridge script\n const bridgeScript = includeBridge ? generateBridgeScript({ ...bridgeConfig, debug }) : '';\n\n // Build additional scripts\n const additionalScripts = scripts.map((s) => `<script>${s}</script>`).join('\\n');\n\n return `<!DOCTYPE html>\n<html lang=\"en\" data-theme=\"${escapeAttr(theme)}\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n ${cspMeta}\n <meta name=\"mcp-apps-version\" content=\"${MCP_APPS_PROTOCOL_VERSION}\">\n <meta name=\"mcp-apps-mime-type\" content=\"${MCP_APPS_MIME_TYPE}\">\n <title>${escapeHtml(title)}</title>\n <style>\n :root {\n --mcp-bg: #ffffff;\n --mcp-text: #1a1a1a;\n --mcp-border: #e5e5e5;\n --mcp-primary: #0969da;\n --mcp-error: #cf222e;\n --mcp-success: #1a7f37;\n }\n [data-theme=\"dark\"] {\n --mcp-bg: #0d1117;\n --mcp-text: #c9d1d9;\n --mcp-border: #30363d;\n --mcp-primary: #58a6ff;\n --mcp-error: #f85149;\n --mcp-success: #3fb950;\n }\n * { box-sizing: border-box; }\n body {\n margin: 0;\n padding: 16px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n background: var(--mcp-bg);\n color: var(--mcp-text);\n line-height: 1.5;\n }\n </style>\n ${headContent}\n</head>\n<body ${dataAttrs}>\n ${bodyContent}\n ${bridgeScript}\n ${additionalScripts}\n</body>\n</html>`;\n}\n\n// ============================================\n// Bridge Script Generator\n// ============================================\n\n/**\n * Generate the MCP Apps bridge runtime script.\n */\nfunction generateBridgeScript(config?: McpAppsBridgeConfig & { debug?: boolean }): string {\n const {\n protocolVersion = MCP_APPS_PROTOCOL_VERSION,\n trustedOrigin = '*',\n requestTimeout = 30000,\n debug = false,\n } = config || {};\n\n return `<script>\n(function() {\n 'use strict';\n\n // MCP Apps Bridge Runtime\n const MCP_PROTOCOL_VERSION = '${protocolVersion}';\n const REQUEST_TIMEOUT = ${requestTimeout};\n const DEBUG = ${debug};\n\n // State\n let initialized = false;\n let hostContext = {};\n let pendingRequests = new Map();\n let messageId = 0;\n let trustedOrigin = '${trustedOrigin}';\n\n // Logging\n function log(...args) {\n if (DEBUG) console.log('[MCP Bridge]', ...args);\n }\n\n // Generate unique message ID\n function nextId() {\n return ++messageId;\n }\n\n // Send JSON-RPC message to host\n function sendMessage(message) {\n log('Sending:', message);\n parent.postMessage(message, trustedOrigin);\n }\n\n // Send JSON-RPC request and wait for response\n function sendRequest(method, params) {\n return new Promise((resolve, reject) => {\n const id = nextId();\n const request = {\n jsonrpc: '2.0',\n id: id,\n method: method,\n params: params\n };\n\n const timeout = setTimeout(() => {\n pendingRequests.delete(id);\n reject(new Error('Request timeout: ' + method));\n }, REQUEST_TIMEOUT);\n\n pendingRequests.set(id, { resolve, reject, timeout });\n sendMessage(request);\n });\n }\n\n // Send JSON-RPC notification (no response expected)\n function sendNotification(method, params) {\n sendMessage({\n jsonrpc: '2.0',\n method: method,\n params: params\n });\n }\n\n // Handle incoming messages from host\n function handleMessage(event) {\n // Validate origin on first message (trust-on-first-use)\n if (trustedOrigin === '*' && event.origin) {\n trustedOrigin = event.origin;\n log('Trusted origin set to:', trustedOrigin);\n }\n\n const data = event.data;\n if (!data || data.jsonrpc !== '2.0') return;\n\n log('Received:', data);\n\n // Handle response to our request\n if (data.id !== undefined && pendingRequests.has(data.id)) {\n const { resolve, reject, timeout } = pendingRequests.get(data.id);\n clearTimeout(timeout);\n pendingRequests.delete(data.id);\n\n if (data.error) {\n reject(new Error(data.error.message || 'Unknown error'));\n } else {\n resolve(data.result);\n }\n return;\n }\n\n // Handle notifications from host\n if (data.method) {\n handleNotification(data.method, data.params);\n }\n }\n\n // Handle notifications from host\n function handleNotification(method, params) {\n switch (method) {\n case '${MCP_APPS_METHODS.TOOL_INPUT}':\n window.dispatchEvent(new CustomEvent('mcp:tool-input', { detail: params }));\n break;\n case '${MCP_APPS_METHODS.TOOL_INPUT_PARTIAL}':\n window.dispatchEvent(new CustomEvent('mcp:tool-input-partial', { detail: params }));\n break;\n case '${MCP_APPS_METHODS.TOOL_RESULT}':\n window.dispatchEvent(new CustomEvent('mcp:tool-result', { detail: params }));\n break;\n case '${MCP_APPS_METHODS.TOOL_CANCELLED}':\n window.dispatchEvent(new CustomEvent('mcp:tool-cancelled', { detail: params }));\n break;\n case '${MCP_APPS_METHODS.SIZE_CHANGE}':\n window.dispatchEvent(new CustomEvent('mcp:size-change', { detail: params }));\n break;\n case '${MCP_APPS_METHODS.HOST_CONTEXT_CHANGE}':\n Object.assign(hostContext, params.changes);\n window.dispatchEvent(new CustomEvent('mcp:context-change', { detail: params.changes }));\n // Update theme if changed\n if (params.changes.theme) {\n document.documentElement.setAttribute('data-theme', params.changes.theme);\n }\n break;\n case '${MCP_APPS_METHODS.RESOURCE_TEARDOWN}':\n window.dispatchEvent(new CustomEvent('mcp:teardown', { detail: params }));\n break;\n }\n }\n\n // Initialize connection with host\n async function initialize() {\n if (initialized) return hostContext;\n\n try {\n const result = await sendRequest('${MCP_APPS_METHODS.INITIALIZE}', {\n protocolVersion: MCP_PROTOCOL_VERSION,\n capabilities: {\n messages: ['${MCP_APPS_METHODS.TOOL_INPUT}', '${MCP_APPS_METHODS.TOOL_RESULT}']\n }\n });\n\n hostContext = result.hostContext || {};\n initialized = true;\n\n // Apply initial theme\n if (hostContext.theme) {\n document.documentElement.setAttribute('data-theme', hostContext.theme);\n }\n\n // Send initialized notification\n sendNotification('${MCP_APPS_METHODS.INITIALIZED}', {});\n\n log('Initialized with context:', hostContext);\n window.dispatchEvent(new CustomEvent('mcp:initialized', { detail: hostContext }));\n\n return hostContext;\n } catch (error) {\n console.error('[MCP Bridge] Initialization failed:', error);\n throw error;\n }\n }\n\n // Public API\n window.mcpBridge = {\n // Initialize connection\n initialize: initialize,\n\n // Get current host context\n getHostContext: function() {\n return { ...hostContext };\n },\n\n // Get tool info\n getToolInfo: function() {\n return hostContext.toolInfo;\n },\n\n // Call a tool on the MCP server\n callTool: function(name, args) {\n return sendRequest('${MCP_APPS_METHODS.TOOLS_CALL}', { name, arguments: args });\n },\n\n // Read a resource\n readResource: function(uri) {\n return sendRequest('${MCP_APPS_METHODS.RESOURCES_READ}', { uri });\n },\n\n // Request host to open a link\n openLink: function(url) {\n return sendRequest('${MCP_APPS_METHODS.OPEN_LINK}', { url });\n },\n\n // Send message to host's chat\n sendMessage: function(content) {\n return sendRequest('${MCP_APPS_METHODS.MESSAGE}', { content });\n },\n\n // Log message to host\n log: function(level, message, data) {\n sendNotification('${MCP_APPS_METHODS.NOTIFICATIONS_MESSAGE}', {\n level: level,\n logger: 'mcp-app',\n data: { message, ...data }\n });\n },\n\n // Ping host\n ping: function() {\n return sendRequest('${MCP_APPS_METHODS.PING}', {});\n },\n\n // Check if initialized\n isInitialized: function() {\n return initialized;\n },\n\n // Protocol version\n protocolVersion: MCP_PROTOCOL_VERSION\n };\n\n // Listen for messages\n window.addEventListener('message', handleMessage);\n\n // Auto-initialize when DOM is ready\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', function() {\n initialize().catch(function(err) {\n log('Auto-init failed:', err);\n });\n });\n } else {\n initialize().catch(function(err) {\n log('Auto-init failed:', err);\n });\n }\n\n log('Bridge loaded');\n})();\n</script>`;\n}\n\n// ============================================\n// Helper Functions\n// ============================================\n\n/**\n * Build data attributes for initial state injection.\n */\nfunction buildDataAttributes(options: {\n toolInfo?: ToolInfo;\n input?: Record<string, unknown>;\n output?: unknown;\n structuredContent?: unknown;\n}): string {\n const attrs: string[] = [];\n\n if (options.toolInfo) {\n attrs.push(`data-mcp-tool=\"${escapeAttr(JSON.stringify(options.toolInfo))}\"`);\n }\n\n if (options.input) {\n attrs.push(`data-mcp-input=\"${escapeAttr(JSON.stringify(options.input))}\"`);\n }\n\n if (options.output !== undefined) {\n attrs.push(`data-mcp-output=\"${escapeAttr(JSON.stringify(options.output))}\"`);\n }\n\n if (options.structuredContent !== undefined) {\n attrs.push(`data-mcp-structured=\"${escapeAttr(JSON.stringify(options.structuredContent))}\"`);\n }\n\n return attrs.join(' ');\n}\n\n/**\n * Escape HTML content.\n */\nfunction escapeHtml(str: string): string {\n return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n}\n\n/**\n * Escape HTML attribute value.\n */\nfunction escapeAttr(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n\n// ============================================\n// Utility Functions\n// ============================================\n\n/**\n * Wrap existing HTML content in MCP Apps template.\n *\n * @param html - Existing HTML content\n * @param options - Template options (without bodyContent)\n * @returns Complete MCP Apps HTML document\n */\nexport function wrapInMcpAppsTemplate(html: string, options: Omit<McpAppsTemplateOptions, 'bodyContent'>): string {\n return generateMcpAppsTemplate({\n ...options,\n bodyContent: html,\n });\n}\n\n/**\n * Create a minimal MCP Apps template for simple content.\n *\n * @param content - Simple text or HTML content\n * @param title - Page title\n * @returns Complete MCP Apps HTML document\n */\nexport function createSimpleMcpAppsTemplate(content: string, title?: string): string {\n return generateMcpAppsTemplate({\n title: title || 'MCP App',\n bodyContent: `<div class=\"mcp-content\">${content}</div>`,\n includeBridge: true,\n });\n}\n\n/**\n * Extract body content from MCP Apps template.\n * Useful for testing.\n *\n * @param html - Complete HTML document\n * @returns Body content string or null\n */\nexport function extractBodyContent(html: string): string | null {\n const match = html.match(/<body[^>]*>([\\s\\S]*?)<script/);\n return match ? match[1].trim() : null;\n}\n"]}
|
package/src/mcp-apps/types.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @file types.ts
|
|
4
|
-
* @description MCP Apps specification types.
|
|
5
|
-
*
|
|
6
|
-
* Implements types from the MCP Apps extension specification:
|
|
7
|
-
* https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx
|
|
8
|
-
*
|
|
9
|
-
* @module @frontmcp/sdk/mcp-apps/types
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.MCP_APPS_PROTOCOL_VERSION = exports.MCP_APPS_METHODS = exports.MCP_APPS_MIME_TYPE = void 0;
|
|
13
|
-
// ============================================
|
|
14
|
-
// MIME Types
|
|
15
|
-
// ============================================
|
|
16
|
-
/**
|
|
17
|
-
* MCP Apps content MIME type.
|
|
18
|
-
* MVP specification supports only HTML5 documents.
|
|
19
|
-
*/
|
|
20
|
-
exports.MCP_APPS_MIME_TYPE = 'text/html+mcp';
|
|
21
|
-
// ============================================
|
|
22
|
-
// MCP Apps Method Names
|
|
23
|
-
// ============================================
|
|
24
|
-
/**
|
|
25
|
-
* MCP Apps protocol method names.
|
|
26
|
-
*/
|
|
27
|
-
exports.MCP_APPS_METHODS = {
|
|
28
|
-
// Lifecycle
|
|
29
|
-
INITIALIZE: 'ui/initialize',
|
|
30
|
-
INITIALIZED: 'ui/notifications/initialized',
|
|
31
|
-
// Tool lifecycle notifications (Host → UI)
|
|
32
|
-
TOOL_INPUT: 'ui/notifications/tool-input',
|
|
33
|
-
TOOL_INPUT_PARTIAL: 'ui/notifications/tool-input-partial',
|
|
34
|
-
TOOL_RESULT: 'ui/notifications/tool-result',
|
|
35
|
-
TOOL_CANCELLED: 'ui/notifications/tool-cancelled',
|
|
36
|
-
// Context notifications (Host → UI)
|
|
37
|
-
SIZE_CHANGE: 'ui/notifications/size-change',
|
|
38
|
-
HOST_CONTEXT_CHANGE: 'ui/host-context-change',
|
|
39
|
-
RESOURCE_TEARDOWN: 'ui/resource-teardown',
|
|
40
|
-
// UI Requests (UI → Host)
|
|
41
|
-
OPEN_LINK: 'ui/open-link',
|
|
42
|
-
MESSAGE: 'ui/message',
|
|
43
|
-
// Standard MCP methods that UI can use
|
|
44
|
-
TOOLS_CALL: 'tools/call',
|
|
45
|
-
RESOURCES_READ: 'resources/read',
|
|
46
|
-
NOTIFICATIONS_MESSAGE: 'notifications/message',
|
|
47
|
-
PING: 'ping',
|
|
48
|
-
// Sandbox proxy (web hosts only)
|
|
49
|
-
SANDBOX_READY: 'ui/notifications/sandbox-ready',
|
|
50
|
-
SANDBOX_RESOURCE_READY: 'ui/notifications/sandbox-resource-ready',
|
|
51
|
-
};
|
|
52
|
-
// ============================================
|
|
53
|
-
// Protocol Version
|
|
54
|
-
// ============================================
|
|
55
|
-
/**
|
|
56
|
-
* Current MCP Apps protocol version.
|
|
57
|
-
*/
|
|
58
|
-
exports.MCP_APPS_PROTOCOL_VERSION = '2025-01-01';
|
|
59
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp-apps/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+CAA+C;AAC/C,aAAa;AACb,+CAA+C;AAE/C;;;GAGG;AACU,QAAA,kBAAkB,GAAG,eAAwB,CAAC;AAuS3D,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,YAAY;IACZ,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,8BAA8B;IAE3C,2CAA2C;IAC3C,UAAU,EAAE,6BAA6B;IACzC,kBAAkB,EAAE,qCAAqC;IACzD,WAAW,EAAE,8BAA8B;IAC3C,cAAc,EAAE,iCAAiC;IAEjD,oCAAoC;IACpC,WAAW,EAAE,8BAA8B;IAC3C,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IAEzC,0BAA0B;IAC1B,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,YAAY;IAErB,uCAAuC;IACvC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,qBAAqB,EAAE,uBAAuB;IAC9C,IAAI,EAAE,MAAM;IAEZ,iCAAiC;IACjC,aAAa,EAAE,gCAAgC;IAC/C,sBAAsB,EAAE,yCAAyC;CACzD,CAAC;AA8CX,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,yBAAyB,GAAG,YAAqB,CAAC","sourcesContent":["/**\n * @file types.ts\n * @description MCP Apps specification types.\n *\n * Implements types from the MCP Apps extension specification:\n * https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx\n *\n * @module @frontmcp/sdk/mcp-apps/types\n */\n\n// ============================================\n// MIME Types\n// ============================================\n\n/**\n * MCP Apps content MIME type.\n * MVP specification supports only HTML5 documents.\n */\nexport const MCP_APPS_MIME_TYPE = 'text/html+mcp' as const;\n\n/**\n * Supported MIME types for MCP Apps resources.\n */\nexport type McpAppsMimeType = typeof MCP_APPS_MIME_TYPE;\n\n// ============================================\n// UI Resource Types\n// ============================================\n\n/**\n * Content Security Policy configuration for UI resources.\n * Hosts construct CSP headers from these declared domains.\n */\nexport interface McpAppsCSP {\n /** Domains allowed for network requests (fetch, XHR, WebSocket) */\n connectDomains?: string[];\n /** Domains allowed for static assets (images, scripts, fonts) */\n resourceDomains?: string[];\n}\n\n/**\n * UI Resource metadata as defined in MCP Apps spec.\n * Included in `_meta.ui` field of resource declarations.\n */\nexport interface UIResourceMeta {\n /** Content Security Policy configuration */\n csp?: McpAppsCSP;\n /** Dedicated sandbox origin for this resource */\n domain?: string;\n /** Whether host should render visual boundary around UI */\n prefersBorder?: boolean;\n}\n\n/**\n * Complete UI Resource declaration for MCP Apps.\n */\nexport interface UIResource {\n /** Resource URI (must start with \"ui://\") */\n uri: string;\n /** Human-readable display name */\n name: string;\n /** Optional description */\n description?: string;\n /** MIME type - must be \"text/html+mcp\" for MVP */\n mimeType: McpAppsMimeType;\n /** UI-specific metadata */\n _meta?: {\n ui?: UIResourceMeta;\n };\n}\n\n// ============================================\n// Host Context Types\n// ============================================\n\n/**\n * Display modes for UI rendering.\n */\nexport type McpAppsDisplayMode = 'inline' | 'fullscreen' | 'pip';\n\n/**\n * Platform types for host environment.\n */\nexport type McpAppsPlatform = 'web' | 'desktop' | 'mobile';\n\n/**\n * Device capability flags.\n */\nexport interface DeviceCapabilities {\n /** Touch input available */\n touch?: boolean;\n /** Hover interactions available */\n hover?: boolean;\n}\n\n/**\n * Safe area insets for device screens.\n */\nexport interface SafeAreaInsets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\n/**\n * Viewport dimensions.\n */\nexport interface ViewportInfo {\n width: number;\n height: number;\n maxHeight?: number;\n maxWidth?: number;\n}\n\n/**\n * Tool information passed to UI.\n */\nexport interface ToolInfo {\n /** Request ID for this tool invocation */\n id?: string | number;\n /** Tool definition */\n tool: {\n name: string;\n description?: string;\n inputSchema?: Record<string, unknown>;\n };\n}\n\n/**\n * Host context provided to UI on initialization.\n * Contains environment information from the host.\n */\nexport interface McpAppsHostContext {\n /** Tool information for this UI context */\n toolInfo?: ToolInfo;\n /** Current theme */\n theme?: 'light' | 'dark';\n /** Current display mode */\n displayMode?: McpAppsDisplayMode;\n /** Viewport dimensions */\n viewport?: ViewportInfo;\n /** User's locale (BCP 47 tag) */\n locale?: string;\n /** User's timezone (IANA name) */\n timeZone?: string;\n /** Host platform type */\n platform?: McpAppsPlatform;\n /** Device capabilities */\n deviceCapabilities?: DeviceCapabilities;\n /** Safe area insets */\n safeAreaInsets?: SafeAreaInsets;\n}\n\n// ============================================\n// JSON-RPC Message Types\n// ============================================\n\n/**\n * Base JSON-RPC 2.0 message.\n */\nexport interface JsonRpcMessage {\n jsonrpc: '2.0';\n}\n\n/**\n * JSON-RPC request message.\n */\nexport interface JsonRpcRequest extends JsonRpcMessage {\n id: string | number;\n method: string;\n params?: unknown;\n}\n\n/**\n * JSON-RPC response message.\n */\nexport interface JsonRpcResponse extends JsonRpcMessage {\n id: string | number;\n result?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * JSON-RPC notification (no response expected).\n */\nexport interface JsonRpcNotification extends JsonRpcMessage {\n method: string;\n params?: unknown;\n}\n\n/**\n * JSON-RPC error object.\n */\nexport interface JsonRpcError {\n code: number;\n message: string;\n data?: unknown;\n}\n\n// ============================================\n// MCP Apps Protocol Messages\n// ============================================\n\n/**\n * UI Initialize request parameters.\n * Sent by UI to host on startup.\n */\nexport interface McpUiInitializeParams {\n /** Protocol version */\n protocolVersion: string;\n /** UI capabilities */\n capabilities?: {\n /** Supported message types */\n messages?: string[];\n };\n}\n\n/**\n * UI Initialize response from host.\n */\nexport interface McpUiInitializeResult {\n /** Protocol version (should match request) */\n protocolVersion: string;\n /** Host capabilities */\n capabilities: {\n /** Host-provided extensions */\n extensions?: Record<string, unknown>;\n };\n /** Host context information */\n hostContext: McpAppsHostContext;\n}\n\n/**\n * Tool input notification parameters.\n * Sent by host to UI with complete tool arguments.\n */\nexport interface McpUiToolInputParams {\n /** Tool arguments */\n arguments: Record<string, unknown>;\n}\n\n/**\n * Tool input partial notification parameters.\n * Sent by host to UI during streaming.\n */\nexport interface McpUiToolInputPartialParams {\n /** Partial tool arguments (incremental) */\n argumentsDelta: string;\n}\n\n/**\n * Tool result notification parameters.\n * Sent by host to UI after tool execution.\n */\nexport interface McpUiToolResultParams {\n /** Tool execution result */\n content: Array<{\n type: 'text' | 'image' | 'resource';\n text?: string;\n data?: string;\n mimeType?: string;\n uri?: string;\n }>;\n /** Structured content for UI rendering only */\n structuredContent?: Record<string, unknown>;\n /** Additional metadata */\n _meta?: Record<string, unknown>;\n}\n\n/**\n * Tool cancelled notification parameters.\n */\nexport interface McpUiToolCancelledParams {\n /** Reason for cancellation */\n reason?: string;\n}\n\n/**\n * Size change notification parameters.\n * Sent by host when UI viewport changes.\n */\nexport interface McpUiSizeChangeParams {\n /** New viewport dimensions */\n viewport: ViewportInfo;\n}\n\n/**\n * Host context change notification parameters.\n */\nexport interface McpUiHostContextChangeParams {\n /** Changed context fields */\n changes: Partial<McpAppsHostContext>;\n}\n\n/**\n * Open link request parameters.\n * Sent by UI to request host open a URL.\n */\nexport interface McpUiOpenLinkParams {\n /** URL to open */\n url: string;\n}\n\n/**\n * Send message request parameters.\n * Sent by UI to send content to host's chat.\n */\nexport interface McpUiMessageParams {\n /** Message content */\n content: string;\n}\n\n// ============================================\n// MCP Apps Method Names\n// ============================================\n\n/**\n * MCP Apps protocol method names.\n */\nexport const MCP_APPS_METHODS = {\n // Lifecycle\n INITIALIZE: 'ui/initialize',\n INITIALIZED: 'ui/notifications/initialized',\n\n // Tool lifecycle notifications (Host → UI)\n TOOL_INPUT: 'ui/notifications/tool-input',\n TOOL_INPUT_PARTIAL: 'ui/notifications/tool-input-partial',\n TOOL_RESULT: 'ui/notifications/tool-result',\n TOOL_CANCELLED: 'ui/notifications/tool-cancelled',\n\n // Context notifications (Host → UI)\n SIZE_CHANGE: 'ui/notifications/size-change',\n HOST_CONTEXT_CHANGE: 'ui/host-context-change',\n RESOURCE_TEARDOWN: 'ui/resource-teardown',\n\n // UI Requests (UI → Host)\n OPEN_LINK: 'ui/open-link',\n MESSAGE: 'ui/message',\n\n // Standard MCP methods that UI can use\n TOOLS_CALL: 'tools/call',\n RESOURCES_READ: 'resources/read',\n NOTIFICATIONS_MESSAGE: 'notifications/message',\n PING: 'ping',\n\n // Sandbox proxy (web hosts only)\n SANDBOX_READY: 'ui/notifications/sandbox-ready',\n SANDBOX_RESOURCE_READY: 'ui/notifications/sandbox-resource-ready',\n} as const;\n\n// ============================================\n// Extension Capability Types\n// ============================================\n\n/**\n * MCP Apps extension capability declaration.\n * Advertised by clients during connection.\n */\nexport interface McpAppsExtensionCapability {\n /** Supported MIME types */\n mimeTypes: McpAppsMimeType[];\n}\n\n/**\n * Client extensions object including MCP Apps.\n */\nexport interface McpClientExtensions {\n 'io.modelcontextprotocol/ui'?: McpAppsExtensionCapability;\n [key: string]: unknown;\n}\n\n// ============================================\n// Tool Metadata Extension\n// ============================================\n\n/**\n * Tool metadata extension for MCP Apps.\n * Added to tool's `_meta` field to link to UI resource.\n */\nexport interface ToolUIMeta {\n /** URI of the UI resource template */\n 'ui/resourceUri'?: string;\n /** MIME type of the UI resource */\n 'ui/mimeType'?: McpAppsMimeType;\n}\n\n/**\n * Extended tool result metadata including MCP Apps fields.\n */\nexport interface McpAppsToolResultMeta extends ToolUIMeta {\n /** Additional platform-specific metadata */\n [key: string]: unknown;\n}\n\n// ============================================\n// Protocol Version\n// ============================================\n\n/**\n * Current MCP Apps protocol version.\n */\nexport const MCP_APPS_PROTOCOL_VERSION = '2025-01-01' as const;\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// file: libs/sdk/src/notification/index.ts
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.MCP_APPS_EXTENSION_KEY = exports.hasMcpAppsExtension = exports.detectPlatformFromCapabilities = exports.detectPlatformFromUserAgent = exports.detectAIPlatform = exports.MCP_LOGGING_LEVEL_PRIORITY = exports.NotificationService = void 0;
|
|
5
|
-
var notification_service_1 = require("./notification.service");
|
|
6
|
-
Object.defineProperty(exports, "NotificationService", { enumerable: true, get: function () { return notification_service_1.NotificationService; } });
|
|
7
|
-
Object.defineProperty(exports, "MCP_LOGGING_LEVEL_PRIORITY", { enumerable: true, get: function () { return notification_service_1.MCP_LOGGING_LEVEL_PRIORITY; } });
|
|
8
|
-
Object.defineProperty(exports, "detectAIPlatform", { enumerable: true, get: function () { return notification_service_1.detectAIPlatform; } });
|
|
9
|
-
Object.defineProperty(exports, "detectPlatformFromUserAgent", { enumerable: true, get: function () { return notification_service_1.detectPlatformFromUserAgent; } });
|
|
10
|
-
Object.defineProperty(exports, "detectPlatformFromCapabilities", { enumerable: true, get: function () { return notification_service_1.detectPlatformFromCapabilities; } });
|
|
11
|
-
Object.defineProperty(exports, "hasMcpAppsExtension", { enumerable: true, get: function () { return notification_service_1.hasMcpAppsExtension; } });
|
|
12
|
-
Object.defineProperty(exports, "MCP_APPS_EXTENSION_KEY", { enumerable: true, get: function () { return notification_service_1.MCP_APPS_EXTENSION_KEY; } });
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/notification/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;AAE3C,+DAegC;AAd9B,2HAAA,mBAAmB,OAAA;AAInB,kIAAA,0BAA0B,OAAA;AAK1B,wHAAA,gBAAgB,OAAA;AAChB,mIAAA,2BAA2B,OAAA;AAC3B,sIAAA,8BAA8B,OAAA;AAC9B,2HAAA,mBAAmB,OAAA;AACnB,8HAAA,sBAAsB,OAAA","sourcesContent":["// file: libs/sdk/src/notification/index.ts\n\nexport {\n NotificationService,\n type McpNotificationMethod,\n type RegisteredServer,\n type McpLoggingLevel,\n MCP_LOGGING_LEVEL_PRIORITY,\n type Root,\n type ClientCapabilities,\n type ClientInfo,\n type AIPlatformType,\n detectAIPlatform,\n detectPlatformFromUserAgent,\n detectPlatformFromCapabilities,\n hasMcpAppsExtension,\n MCP_APPS_EXTENSION_KEY,\n} from './notification.service';\n"]}
|