@frontmcp/sdk 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/package.json +8 -19
- package/src/adapter/adapter.instance.js +5 -0
- package/src/adapter/adapter.instance.js.map +1 -1
- package/src/auth/authorization/authorization.class.d.ts +1 -4
- package/src/auth/authorization/authorization.class.js +6 -13
- package/src/auth/authorization/authorization.class.js.map +1 -1
- package/src/auth/flows/session.verify.flow.d.ts +1 -0
- package/src/auth/flows/session.verify.flow.js +11 -1
- package/src/auth/flows/session.verify.flow.js.map +1 -1
- package/src/auth/flows/well-known.jwks.flow.js +2 -2
- package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
- package/src/auth/jwks/dev-key-persistence.d.ts +63 -0
- package/src/auth/jwks/dev-key-persistence.js +219 -0
- package/src/auth/jwks/dev-key-persistence.js.map +1 -0
- package/src/auth/jwks/index.d.ts +1 -0
- package/src/auth/jwks/index.js +1 -0
- package/src/auth/jwks/index.js.map +1 -1
- package/src/auth/jwks/jwks.service.d.ts +7 -4
- package/src/auth/jwks/jwks.service.js +81 -12
- package/src/auth/jwks/jwks.service.js.map +1 -1
- package/src/auth/jwks/jwks.types.d.ts +7 -0
- package/src/auth/jwks/jwks.types.js.map +1 -1
- package/src/auth/machine-id.d.ts +5 -0
- package/src/auth/machine-id.js +32 -0
- package/src/auth/machine-id.js.map +1 -0
- package/src/auth/session/index.d.ts +1 -0
- package/src/auth/session/index.js +3 -1
- package/src/auth/session/index.js.map +1 -1
- package/src/auth/session/record/session.base.js +5 -3
- package/src/auth/session/record/session.base.js.map +1 -1
- package/src/auth/session/record/session.stateless.d.ts +2 -2
- package/src/auth/session/record/session.stateless.js +5 -3
- package/src/auth/session/record/session.stateless.js.map +1 -1
- package/src/auth/session/redis-session.store.d.ts +64 -0
- package/src/auth/session/redis-session.store.js +204 -0
- package/src/auth/session/redis-session.store.js.map +1 -0
- package/src/auth/session/session.service.d.ts +0 -2
- package/src/auth/session/session.service.js +1 -7
- package/src/auth/session/session.service.js.map +1 -1
- package/src/auth/session/transport-session.manager.js +3 -5
- package/src/auth/session/transport-session.manager.js.map +1 -1
- package/src/auth/session/transport-session.types.d.ts +4 -0
- package/src/auth/session/transport-session.types.js +4 -3
- package/src/auth/session/transport-session.types.js.map +1 -1
- package/src/auth/session/utils/session-id.utils.d.ts +12 -1
- package/src/auth/session/utils/session-id.utils.js +48 -9
- package/src/auth/session/utils/session-id.utils.js.map +1 -1
- package/src/auth/ui/base-layout.d.ts +0 -8
- package/src/auth/ui/base-layout.js +1 -14
- package/src/auth/ui/base-layout.js.map +1 -1
- package/src/auth/ui/index.d.ts +3 -4
- package/src/auth/ui/index.js +10 -11
- package/src/auth/ui/index.js.map +1 -1
- package/src/auth/ui/{htmx-templates.d.ts → templates.d.ts} +5 -6
- package/src/auth/ui/{htmx-templates.js → templates.js} +8 -15
- package/src/auth/ui/templates.js.map +1 -0
- package/src/common/decorators/decorator-utils.js.map +1 -1
- package/src/common/decorators/front-mcp.decorator.js +28 -2
- package/src/common/decorators/front-mcp.decorator.js.map +1 -1
- package/src/common/index.d.ts +0 -1
- package/src/common/index.js +0 -1
- package/src/common/index.js.map +1 -1
- package/src/common/interfaces/adapter.interface.d.ts +6 -0
- package/src/common/interfaces/adapter.interface.js.map +1 -1
- package/src/common/interfaces/execution-context.interface.d.ts +52 -3
- package/src/common/interfaces/execution-context.interface.js +88 -3
- package/src/common/interfaces/execution-context.interface.js.map +1 -1
- package/src/common/interfaces/flow.interface.d.ts +13 -0
- package/src/common/interfaces/flow.interface.js +24 -0
- package/src/common/interfaces/flow.interface.js.map +1 -1
- package/src/common/interfaces/server.interface.d.ts +9 -0
- package/src/common/interfaces/server.interface.js.map +1 -1
- package/src/common/metadata/app.metadata.d.ts +108 -0
- package/src/common/metadata/front-mcp.metadata.d.ts +659 -2
- package/src/common/metadata/front-mcp.metadata.js +3 -1
- package/src/common/metadata/front-mcp.metadata.js.map +1 -1
- package/src/common/metadata/provider.metadata.d.ts +14 -0
- package/src/common/metadata/provider.metadata.js +18 -2
- package/src/common/metadata/provider.metadata.js.map +1 -1
- package/src/common/metadata/tool.metadata.d.ts +33 -1
- package/src/common/metadata/tool.metadata.js.map +1 -1
- package/src/common/migrate/auth-transport.migrate.d.ts +62 -0
- package/src/common/migrate/auth-transport.migrate.js +140 -0
- package/src/common/migrate/auth-transport.migrate.js.map +1 -0
- package/src/common/migrate/index.d.ts +1 -0
- package/src/common/migrate/index.js +6 -0
- package/src/common/migrate/index.js.map +1 -0
- package/src/common/schemas/http-output.schema.d.ts +10 -2
- package/src/common/schemas/index.d.ts +1 -0
- package/src/common/schemas/index.js +1 -0
- package/src/common/schemas/index.js.map +1 -1
- package/src/common/schemas/session-header.schema.d.ts +16 -0
- package/src/common/schemas/session-header.schema.js +42 -0
- package/src/common/schemas/session-header.schema.js.map +1 -0
- package/src/common/tokens/front-mcp.tokens.js +3 -1
- package/src/common/tokens/front-mcp.tokens.js.map +1 -1
- package/src/common/types/options/auth.options.d.ts +233 -3
- package/src/common/types/options/auth.options.js +29 -40
- package/src/common/types/options/auth.options.js.map +1 -1
- package/src/common/types/options/index.d.ts +2 -0
- package/src/common/types/options/index.js +2 -0
- package/src/common/types/options/index.js.map +1 -1
- package/src/common/types/options/redis.options.d.ts +22 -0
- package/src/common/types/options/redis.options.js +45 -0
- package/src/common/types/options/redis.options.js.map +1 -0
- package/src/common/types/options/transport.options.d.ts +84 -0
- package/src/common/types/options/transport.options.js +121 -0
- package/src/common/types/options/transport.options.js.map +1 -0
- package/src/completion/flows/complete.flow.d.ts +17 -2
- package/src/context/frontmcp-context-storage.d.ts +94 -0
- package/src/context/frontmcp-context-storage.js +183 -0
- package/src/context/frontmcp-context-storage.js.map +1 -0
- package/src/context/frontmcp-context.d.ts +269 -0
- package/src/context/frontmcp-context.js +360 -0
- package/src/context/frontmcp-context.js.map +1 -0
- package/src/context/frontmcp-context.provider.d.ts +43 -0
- package/src/context/frontmcp-context.provider.js +61 -0
- package/src/context/frontmcp-context.provider.js.map +1 -0
- package/src/context/index.d.ts +34 -0
- package/src/context/index.js +64 -0
- package/src/context/index.js.map +1 -0
- package/src/context/request-context-storage.d.ts +89 -0
- package/src/context/request-context-storage.js +183 -0
- package/src/context/request-context-storage.js.map +1 -0
- package/src/context/request-context.d.ts +184 -0
- package/src/context/request-context.js +209 -0
- package/src/context/request-context.js.map +1 -0
- package/src/context/request-context.provider.d.ts +37 -0
- package/src/context/request-context.provider.js +51 -0
- package/src/context/request-context.provider.js.map +1 -0
- package/src/context/session-key.provider.d.ts +45 -0
- package/src/context/session-key.provider.js +65 -0
- package/src/context/session-key.provider.js.map +1 -0
- package/src/context/trace-context.d.ts +43 -0
- package/src/context/trace-context.js +142 -0
- package/src/context/trace-context.js.map +1 -0
- package/src/errors/index.d.ts +1 -1
- package/src/errors/index.js +3 -1
- package/src/errors/index.js.map +1 -1
- package/src/errors/mcp.error.d.ts +7 -0
- package/src/errors/mcp.error.js +11 -1
- package/src/errors/mcp.error.js.map +1 -1
- package/src/flows/flow.instance.d.ts +16 -0
- package/src/flows/flow.instance.js +166 -80
- package/src/flows/flow.instance.js.map +1 -1
- package/src/flows/flow.registry.d.ts +5 -0
- package/src/flows/flow.registry.js +45 -3
- package/src/flows/flow.registry.js.map +1 -1
- package/src/front-mcp/front-mcp.d.ts +12 -0
- package/src/front-mcp/front-mcp.js +22 -3
- package/src/front-mcp/front-mcp.js.map +1 -1
- package/src/front-mcp/front-mcp.providers.d.ts +266 -1
- package/src/front-mcp/front-mcp.providers.js +2 -1
- package/src/front-mcp/front-mcp.providers.js.map +1 -1
- package/src/front-mcp/serverless-handler.d.ts +28 -0
- package/src/front-mcp/serverless-handler.js +61 -0
- package/src/front-mcp/serverless-handler.js.map +1 -0
- package/src/hooks/hooks.utils.d.ts +1 -1
- package/src/hooks/hooks.utils.js +10 -3
- package/src/hooks/hooks.utils.js.map +1 -1
- package/src/index.d.ts +8 -4
- package/src/index.js +20 -1
- package/src/index.js.map +1 -1
- package/src/logger/instances/instance.logger.js +0 -1
- package/src/logger/instances/instance.logger.js.map +1 -1
- package/src/logging/flows/set-level.flow.d.ts +17 -2
- package/src/notification/notification.service.js +5 -1
- package/src/notification/notification.service.js.map +1 -1
- package/src/prompt/flows/get-prompt.flow.d.ts +97 -2
- package/src/prompt/flows/prompts-list.flow.d.ts +12 -1
- package/src/provider/provider.registry.d.ts +97 -5
- package/src/provider/provider.registry.js +306 -9
- package/src/provider/provider.registry.js.map +1 -1
- package/src/provider/provider.types.d.ts +21 -3
- package/src/provider/provider.types.js.map +1 -1
- package/src/resource/flows/read-resource.flow.d.ts +22 -3
- package/src/resource/flows/resource-templates-list.flow.d.ts +20 -1
- package/src/resource/flows/resources-list.flow.d.ts +20 -1
- package/src/resource/flows/subscribe-resource.flow.d.ts +17 -2
- package/src/resource/flows/unsubscribe-resource.flow.d.ts +17 -2
- package/src/scope/flows/http.request.flow.js +43 -7
- package/src/scope/flows/http.request.flow.js.map +1 -1
- package/src/scope/scope.instance.js +12 -5
- package/src/scope/scope.instance.js.map +1 -1
- package/src/server/adapters/base.host.adapter.d.ts +9 -0
- package/src/server/adapters/base.host.adapter.js.map +1 -1
- package/src/server/adapters/express.host.adapter.d.ts +12 -0
- package/src/server/adapters/express.host.adapter.js +21 -1
- package/src/server/adapters/express.host.adapter.js.map +1 -1
- package/src/server/server.instance.d.ts +3 -0
- package/src/server/server.instance.js +14 -7
- package/src/server/server.instance.js.map +1 -1
- package/src/tool/flows/call-tool.flow.d.ts +118 -13
- package/src/tool/flows/call-tool.flow.js +240 -194
- package/src/tool/flows/call-tool.flow.js.map +1 -1
- package/src/tool/flows/tools-list.flow.d.ts +25 -11
- package/src/tool/flows/tools-list.flow.js +82 -31
- package/src/tool/flows/tools-list.flow.js.map +1 -1
- package/src/tool/tool.instance.d.ts +1 -4
- package/src/transport/adapters/transport.streamable-http.adapter.js +1 -0
- package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
- package/src/transport/flows/handle.sse.flow.js +9 -2
- package/src/transport/flows/handle.sse.flow.js.map +1 -1
- package/src/transport/flows/handle.streamable-http.flow.js +63 -6
- package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
- package/src/transport/mcp-handlers/complete-request.handler.d.ts +27 -1
- package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +52 -1
- package/src/transport/mcp-handlers/index.d.ts +413 -7
- package/src/transport/mcp-handlers/initialize-request.handler.js +12 -2
- package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
- package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +27 -1
- package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +32 -1
- package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +32 -1
- package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +30 -1
- package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +20 -0
- package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +27 -1
- package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +20 -0
- package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +20 -0
- package/src/transport/transport.registry.d.ts +68 -4
- package/src/transport/transport.registry.js +313 -11
- package/src/transport/transport.registry.js.map +1 -1
- package/src/auth/ui/htmx-templates.js.map +0 -1
- package/src/common/providers/session.provider.d.ts +0 -13
- package/src/common/providers/session.provider.js +0 -27
- package/src/common/providers/session.provider.js.map +0 -1
|
@@ -4,13 +4,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.ExecutionContextBase = void 0;
|
|
5
5
|
const crypto_1 = require("crypto");
|
|
6
6
|
const flow_interface_1 = require("./flow.interface");
|
|
7
|
+
const context_1 = require("../../context");
|
|
8
|
+
const mcp_error_1 = require("../../errors/mcp.error");
|
|
7
9
|
/**
|
|
8
10
|
* Abstract base class for execution contexts (tools, resources, prompts, etc.).
|
|
9
11
|
* Provides common functionality for dependency injection, logging, and flow control.
|
|
10
12
|
*/
|
|
11
13
|
class ExecutionContextBase {
|
|
12
14
|
providers;
|
|
13
|
-
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `context.authInfo` instead. Will be removed in v2.0.
|
|
17
|
+
*/
|
|
18
|
+
_authInfo;
|
|
14
19
|
/** Unique identifier for this execution run */
|
|
15
20
|
runId;
|
|
16
21
|
logger;
|
|
@@ -23,7 +28,75 @@ class ExecutionContextBase {
|
|
|
23
28
|
this.runId = (0, crypto_1.randomUUID)();
|
|
24
29
|
this.providers = providers;
|
|
25
30
|
this.logger = logger;
|
|
26
|
-
this.
|
|
31
|
+
this._authInfo = authInfo;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the current FrontMcpContext.
|
|
35
|
+
*
|
|
36
|
+
* Provides access to requestId, traceId, sessionId, authInfo,
|
|
37
|
+
* timing marks, request metadata, transport, and context-aware fetch.
|
|
38
|
+
*
|
|
39
|
+
* @throws RequestContextNotAvailableError if called outside of a context scope
|
|
40
|
+
*/
|
|
41
|
+
get context() {
|
|
42
|
+
try {
|
|
43
|
+
return this.providers.get(context_1.FRONTMCP_CONTEXT);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Context not available (likely called during initialization or outside request scope)
|
|
47
|
+
throw new mcp_error_1.RequestContextNotAvailableError();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Try to get the context, returning undefined if not available.
|
|
52
|
+
*
|
|
53
|
+
* Use this when context may not be available (e.g., during initialization).
|
|
54
|
+
*/
|
|
55
|
+
tryGetContext() {
|
|
56
|
+
try {
|
|
57
|
+
return this.providers.get(context_1.FRONTMCP_CONTEXT);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated Use `context.authInfo` instead. Will be removed in v2.0.
|
|
65
|
+
*
|
|
66
|
+
* Get authentication information for the current request.
|
|
67
|
+
*/
|
|
68
|
+
get authInfo() {
|
|
69
|
+
return this._authInfo;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get authentication information for the current request.
|
|
73
|
+
*
|
|
74
|
+
* Prefers context.authInfo when available (the recommended source),
|
|
75
|
+
* falls back to the legacy authInfo property for backward compatibility.
|
|
76
|
+
*
|
|
77
|
+
* Returns Partial<AuthInfo> because auth info is progressively populated
|
|
78
|
+
* during the request lifecycle. Callers should check for required fields.
|
|
79
|
+
*/
|
|
80
|
+
getAuthInfo() {
|
|
81
|
+
const ctx = this.tryGetContext();
|
|
82
|
+
if (ctx) {
|
|
83
|
+
return ctx.authInfo;
|
|
84
|
+
}
|
|
85
|
+
return this._authInfo;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get a child logger with request context attached.
|
|
89
|
+
*
|
|
90
|
+
* The logger includes requestId, traceId, and sessionId in its context.
|
|
91
|
+
*/
|
|
92
|
+
get contextLogger() {
|
|
93
|
+
try {
|
|
94
|
+
return this.context.getLogger(this.logger);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Fallback if context not available
|
|
98
|
+
return this.logger;
|
|
99
|
+
}
|
|
27
100
|
}
|
|
28
101
|
/**
|
|
29
102
|
* Get a dependency from the provider registry.
|
|
@@ -65,9 +138,21 @@ class ExecutionContextBase {
|
|
|
65
138
|
this.activeStage = stage;
|
|
66
139
|
}
|
|
67
140
|
/**
|
|
68
|
-
* Fetch a URL
|
|
141
|
+
* Fetch a URL with context-aware header injection.
|
|
142
|
+
*
|
|
143
|
+
* When FrontMcpContext is available, delegates to ctx.fetch() which:
|
|
144
|
+
* - Auto-injects Authorization header (if authInfo.token is available)
|
|
145
|
+
* - Auto-injects W3C traceparent header for distributed tracing
|
|
146
|
+
* - Auto-injects x-request-id header
|
|
147
|
+
* - Auto-injects custom headers from request metadata
|
|
148
|
+
*
|
|
149
|
+
* Falls back to standard fetch if context is not available.
|
|
69
150
|
*/
|
|
70
151
|
fetch(input, init) {
|
|
152
|
+
const ctx = this.tryGetContext();
|
|
153
|
+
if (ctx) {
|
|
154
|
+
return ctx.fetch(input, init);
|
|
155
|
+
}
|
|
71
156
|
return fetch(input, init);
|
|
72
157
|
}
|
|
73
158
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-context.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/execution-context.interface.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,mCAAoC;AAIpC,qDAA+C;
|
|
1
|
+
{"version":3,"file":"execution-context.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/execution-context.interface.ts"],"names":[],"mappings":"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","sourcesContent":["// file: libs/sdk/src/common/interfaces/execution-context.interface.ts\n\nimport { randomUUID } from 'crypto';\nimport { Token } from './base.interface';\nimport { ProviderRegistryInterface } from './internal';\nimport { FrontMcpLogger } from './logger.interface';\nimport { FlowControl } from './flow.interface';\nimport { URL } from 'url';\nimport { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';\nimport { ScopeEntry } from '../entries';\nimport { FrontMcpContext, FRONTMCP_CONTEXT } from '../../context';\nimport { RequestContextNotAvailableError } from '../../errors/mcp.error';\n\n/**\n * Base constructor arguments for all execution contexts.\n */\nexport type ExecutionContextBaseArgs = {\n providers: ProviderRegistryInterface;\n logger: FrontMcpLogger;\n authInfo: Partial<AuthInfo>;\n};\n\n/**\n * Abstract base class for execution contexts (tools, resources, prompts, etc.).\n * Provides common functionality for dependency injection, logging, and flow control.\n */\nexport abstract class ExecutionContextBase<Out = unknown> {\n private providers: ProviderRegistryInterface;\n\n /**\n * @deprecated Use `context.authInfo` instead. Will be removed in v2.0.\n */\n private readonly _authInfo: Partial<AuthInfo>;\n\n /** Unique identifier for this execution run */\n protected readonly runId: string;\n protected readonly logger: FrontMcpLogger;\n\n /** Current stage name for tracking/debugging */\n protected activeStage = 'init';\n\n /** Error if execution failed */\n private _error?: Error;\n\n constructor(args: ExecutionContextBaseArgs) {\n const { providers, logger, authInfo } = args;\n this.runId = randomUUID();\n this.providers = providers;\n this.logger = logger;\n this._authInfo = authInfo;\n }\n\n /**\n * Get the current FrontMcpContext.\n *\n * Provides access to requestId, traceId, sessionId, authInfo,\n * timing marks, request metadata, transport, and context-aware fetch.\n *\n * @throws RequestContextNotAvailableError if called outside of a context scope\n */\n get context(): FrontMcpContext {\n try {\n return this.providers.get(FRONTMCP_CONTEXT as Token<FrontMcpContext>);\n } catch {\n // Context not available (likely called during initialization or outside request scope)\n throw new RequestContextNotAvailableError();\n }\n }\n\n /**\n * Try to get the context, returning undefined if not available.\n *\n * Use this when context may not be available (e.g., during initialization).\n */\n tryGetContext(): FrontMcpContext | undefined {\n try {\n return this.providers.get(FRONTMCP_CONTEXT as Token<FrontMcpContext>);\n } catch {\n return undefined;\n }\n }\n\n /**\n * @deprecated Use `context.authInfo` instead. Will be removed in v2.0.\n *\n * Get authentication information for the current request.\n */\n get authInfo(): Partial<AuthInfo> {\n return this._authInfo;\n }\n\n /**\n * Get authentication information for the current request.\n *\n * Prefers context.authInfo when available (the recommended source),\n * falls back to the legacy authInfo property for backward compatibility.\n *\n * Returns Partial<AuthInfo> because auth info is progressively populated\n * during the request lifecycle. Callers should check for required fields.\n */\n getAuthInfo(): Partial<AuthInfo> {\n const ctx = this.tryGetContext();\n if (ctx) {\n return ctx.authInfo;\n }\n return this._authInfo;\n }\n\n /**\n * Get a child logger with request context attached.\n *\n * The logger includes requestId, traceId, and sessionId in its context.\n */\n protected get contextLogger(): FrontMcpLogger {\n try {\n return this.context.getLogger(this.logger);\n } catch {\n // Fallback if context not available\n return this.logger;\n }\n }\n\n /**\n * Get a dependency from the provider registry.\n * @throws Error if the dependency is not found\n */\n get<T>(token: Token<T>): T {\n return this.providers.get(token);\n }\n\n /**\n * Get the current scope.\n */\n get scope(): ScopeEntry {\n return this.providers.getScope();\n }\n\n /**\n * Try to get a dependency, returning undefined if not found.\n */\n tryGet<T>(token: Token<T>): T | undefined {\n try {\n return this.providers.get(token);\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n this.logger.warn(`Failed to get provider ${String(token)}: ${msg}`);\n return undefined;\n }\n }\n\n /**\n * Fail the execution and trigger error handling.\n */\n protected fail(err: Error): never {\n this._error = err;\n FlowControl.fail(err);\n }\n\n /**\n * Mark the current execution stage (for debugging/tracking).\n */\n mark(stage: string): void {\n this.activeStage = stage;\n }\n\n /**\n * Fetch a URL with context-aware header injection.\n *\n * When FrontMcpContext is available, delegates to ctx.fetch() which:\n * - Auto-injects Authorization header (if authInfo.token is available)\n * - Auto-injects W3C traceparent header for distributed tracing\n * - Auto-injects x-request-id header\n * - Auto-injects custom headers from request metadata\n *\n * Falls back to standard fetch if context is not available.\n */\n fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n const ctx = this.tryGetContext();\n if (ctx) {\n return ctx.fetch(input, init);\n }\n return fetch(input, init);\n }\n\n /**\n * Get the current error, if any.\n */\n protected get error(): Error | undefined {\n return this._error;\n }\n}\n"]}
|
|
@@ -4,6 +4,7 @@ import { z } from 'zod';
|
|
|
4
4
|
import { HookEntry, ScopeEntry } from '../entries';
|
|
5
5
|
import { FlowStateOf } from './internal/flow.utils';
|
|
6
6
|
import { FrontMcpLogger } from './logger.interface';
|
|
7
|
+
import type { FrontMcpContext } from '../../context/frontmcp-context';
|
|
7
8
|
export type FlowInputOf<N extends FlowName> = z.infer<ExtendFlows[N]['input']>;
|
|
8
9
|
export type FlowOutputOf<N extends FlowName> = z.infer<ExtendFlows[N]['output']>;
|
|
9
10
|
export type FlowPlanOf<N extends FlowName> = ExtendFlows[N]['plan'];
|
|
@@ -37,5 +38,17 @@ export declare abstract class FlowBase<N extends FlowName = FlowName> {
|
|
|
37
38
|
protected abort(message: string): void;
|
|
38
39
|
protected next(): void;
|
|
39
40
|
protected handled(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get the current FrontMcpContext from AsyncLocalStorage.
|
|
43
|
+
* Available in all stages after context initialization.
|
|
44
|
+
*
|
|
45
|
+
* @throws Error if not in a context scope
|
|
46
|
+
*/
|
|
47
|
+
protected get context(): FrontMcpContext;
|
|
48
|
+
/**
|
|
49
|
+
* Safely try to get FrontMcpContext (returns undefined if not available).
|
|
50
|
+
* Use this when context might not be available (e.g., non-HTTP flows).
|
|
51
|
+
*/
|
|
52
|
+
protected tryGetContext(): FrontMcpContext | undefined;
|
|
40
53
|
}
|
|
41
54
|
export type FlowType<Provide = FlowBase<any>> = Type<Provide>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowBase = exports.FlowControl = void 0;
|
|
4
4
|
const flow_utils_1 = require("./internal/flow.utils");
|
|
5
|
+
const frontmcp_context_storage_1 = require("../../context/frontmcp-context-storage");
|
|
5
6
|
class FlowControl extends Error {
|
|
6
7
|
type;
|
|
7
8
|
output;
|
|
@@ -66,6 +67,29 @@ class FlowBase {
|
|
|
66
67
|
handled() {
|
|
67
68
|
throw FlowControl.handled();
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Get the current FrontMcpContext from AsyncLocalStorage.
|
|
72
|
+
* Available in all stages after context initialization.
|
|
73
|
+
*
|
|
74
|
+
* @throws Error if not in a context scope
|
|
75
|
+
*/
|
|
76
|
+
get context() {
|
|
77
|
+
const storage = this.scope.providers.get(frontmcp_context_storage_1.FrontMcpContextStorage);
|
|
78
|
+
return storage.getStoreOrThrow();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Safely try to get FrontMcpContext (returns undefined if not available).
|
|
82
|
+
* Use this when context might not be available (e.g., non-HTTP flows).
|
|
83
|
+
*/
|
|
84
|
+
tryGetContext() {
|
|
85
|
+
try {
|
|
86
|
+
const storage = this.scope.providers.get(frontmcp_context_storage_1.FrontMcpContextStorage);
|
|
87
|
+
return storage.getStore();
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
69
93
|
}
|
|
70
94
|
exports.FlowBase = FlowBase;
|
|
71
95
|
//# sourceMappingURL=flow.interface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/flow.interface.ts"],"names":[],"mappings":";;;AAIA,sDAA+D;
|
|
1
|
+
{"version":3,"file":"flow.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/flow.interface.ts"],"names":[],"mappings":"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","sourcesContent":["import { Token, Type } from './base.interface';\nimport { FlowMetadata, FlowName } from '../metadata';\nimport { z } from 'zod';\nimport { HookEntry, ScopeEntry } from '../entries';\nimport { FlowState, FlowStateOf } from './internal/flow.utils';\nimport { FrontMcpLogger } from './logger.interface';\nimport type { FrontMcpContext } from '../../context/frontmcp-context';\nimport { FrontMcpContextStorage } from '../../context/frontmcp-context-storage';\n\nexport type FlowInputOf<N extends FlowName> = z.infer<ExtendFlows[N]['input']>;\nexport type FlowOutputOf<N extends FlowName> = z.infer<ExtendFlows[N]['output']>;\nexport type FlowPlanOf<N extends FlowName> = ExtendFlows[N]['plan'];\nexport type FlowCtxOf<N extends FlowName> = ExtendFlows[N]['ctx'];\nexport type FlowStagesOf<N extends FlowName> = ExtendFlows[N]['stage'];\nexport type FlowExecuteStagesOf<N extends FlowName> = ExtendFlows[N]['executeStage'];\n\nexport type FlowControlType = 'respond' | 'fail' | 'abort' | 'next' | 'handled';\n\nexport class FlowControl extends Error {\n constructor(public readonly type: FlowControlType, public readonly output: any) {\n super();\n }\n\n static respond<T>(output: T): never {\n throw new FlowControl('respond', output);\n }\n\n static next(): never {\n throw new FlowControl('next', null);\n }\n\n static handled(): never {\n throw new FlowControl('handled', null);\n }\n\n static fail(error: Error): never {\n throw new FlowControl('fail', { error: error.message });\n }\n\n static abort(reason: string): never {\n throw new FlowControl('abort', reason);\n }\n}\n\n// 1) The actual abstract class (value)\nexport abstract class FlowBase<N extends FlowName = FlowName> {\n protected input: FlowInputOf<N>;\n state: FlowStateOf<N> = FlowState.create({});\n scopeLogger: FrontMcpLogger;\n\n constructor(\n protected readonly metadata: FlowMetadata<N>,\n readonly rawInput: Partial<FlowInputOf<N>> | any,\n protected readonly scope: ScopeEntry,\n protected readonly appendContextHooks: (hooks: HookEntry[]) => void,\n protected readonly deps: ReadonlyMap<Token, unknown> = new Map(),\n ) {\n this.input = (metadata.inputSchema as any)?.parse?.(rawInput);\n this.scopeLogger = scope.logger;\n }\n\n get<T>(token: Token<T>): T {\n if (this.deps.has(token)) return this.deps.get(token) as T;\n return this.scope.providers.get(token);\n }\n\n respond(output: FlowOutputOf<N>) {\n throw FlowControl.respond((this.metadata.outputSchema as z.ZodObject<any>).parse(output));\n }\n\n fail(error: Error) {\n throw FlowControl.fail(error);\n }\n\n protected abort(message: string) {\n throw FlowControl.abort(message);\n }\n\n protected next() {\n throw FlowControl.next();\n }\n\n protected handled() {\n throw FlowControl.handled();\n }\n\n /**\n * Get the current FrontMcpContext from AsyncLocalStorage.\n * Available in all stages after context initialization.\n *\n * @throws Error if not in a context scope\n */\n protected get context(): FrontMcpContext {\n const storage = this.scope.providers.get(FrontMcpContextStorage);\n return storage.getStoreOrThrow();\n }\n\n /**\n * Safely try to get FrontMcpContext (returns undefined if not available).\n * Use this when context might not be available (e.g., non-HTTP flows).\n */\n protected tryGetContext(): FrontMcpContext | undefined {\n try {\n const storage = this.scope.providers.get(FrontMcpContextStorage);\n return storage.getStore();\n } catch {\n return undefined;\n }\n }\n}\n\nexport type FlowType<Provide = FlowBase<any>> = Type<Provide>;\n"]}
|
|
@@ -39,6 +39,15 @@ export declare abstract class FrontMcpServer {
|
|
|
39
39
|
* with the gateway's request/response processing.
|
|
40
40
|
*/
|
|
41
41
|
abstract enhancedHandler(handler: ServerRequestHandler): (req: any, res: any, next: () => any) => Promise<void> | void;
|
|
42
|
+
/**
|
|
43
|
+
* Prepares the server routes without starting the HTTP listener.
|
|
44
|
+
* Used for serverless deployments (Vercel, AWS Lambda, etc.)
|
|
45
|
+
*/
|
|
46
|
+
abstract prepare(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the underlying HTTP handler for serverless exports.
|
|
49
|
+
*/
|
|
50
|
+
abstract getHandler(): unknown;
|
|
42
51
|
/**
|
|
43
52
|
* Start the server on the specified port
|
|
44
53
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/server.interface.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAK7E,MAAa,aAAc,SAAQ,sBAAe;IAEhD,IAAI,CAAS;IAGb,KAAK,CAAoC;IACzC,IAAI,CAAO;IACX,WAAW,CAAiB;CAC7B;AARD,sCAQC;AAED,MAAsB,cAAe,SAAQ,qBAAkB;CAU9D;AAVD,wCAUC;AAMD,MAAsB,cAAc;
|
|
1
|
+
{"version":3,"file":"server.interface.js","sourceRoot":"","sources":["../../../../src/common/interfaces/server.interface.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAK7E,MAAa,aAAc,SAAQ,sBAAe;IAEhD,IAAI,CAAS;IAGb,KAAK,CAAoC;IACzC,IAAI,CAAO;IACX,WAAW,CAAiB;CAC7B;AARD,sCAQC;AAED,MAAsB,cAAe,SAAQ,qBAAkB;CAU9D;AAVD,wCAUC;AAMD,MAAsB,cAAc;CAwCnC;AAxCD,wCAwCC","sourcesContent":["import { IncomingMessage, ServerResponse as HttpServerResponse } from 'http';\nimport { Authorization } from '../types'; // TODO: move to internal\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\n\nexport class ServerRequest extends IncomingMessage {\n declare method: HttpMethod;\n path: string;\n declare url: string;\n declare headers: Record<string, string>;\n query: Record<string, string | string[]>;\n body?: any;\n authSession?: Authorization;\n}\n\nexport abstract class ServerResponse extends HttpServerResponse {\n abstract status(code: number): ServerResponse;\n\n abstract json(payload: any): void;\n\n abstract send(payload: any): void;\n\n abstract redirect(url: string): void;\n\n abstract redirect(status: number, url: string): void;\n}\n\nexport type NextFn = () => Promise<void> | void;\n\nexport type ServerRequestHandler = (req: ServerRequest, res: ServerResponse, next: NextFn) => Promise<void> | void;\n\nexport abstract class FrontMcpServer {\n /**\n * Register a middleware handler for a specific entry path.\n * @param entryPath - e.g. '' or '/mcp'\n * @param handler - (req, res, next) => {// middleware // next()}\n */\n abstract registerMiddleware(entryPath: string, handler: ServerRequestHandler): Promise<void> | void;\n\n /**\n * Register a route handler for a specific path.\n * @param method - e.g. 'GET' or 'POST'\n * @param path - e.g. '/mcp/invoke'\n * @param handler - (req, res) => {// route handler // res.end() }\n */\n abstract registerRoute(method: HttpMethod, path: string, handler: ServerRequestHandler): Promise<void> | void;\n\n /**\n * Enhance a request handler with request/response processing and error handling.\n * This handle will be stored as the first middleware in the chain to align adapter handler\n * with the gateway's request/response processing.\n */\n abstract enhancedHandler(\n handler: ServerRequestHandler,\n ): (req: any, res: any, next: () => any) => Promise<void> | void;\n\n /**\n * Prepares the server routes without starting the HTTP listener.\n * Used for serverless deployments (Vercel, AWS Lambda, etc.)\n */\n abstract prepare(): void;\n\n /**\n * Returns the underlying HTTP handler for serverless exports.\n */\n abstract getHandler(): unknown;\n\n /**\n * Start the server on the specified port\n */\n abstract start(port?: number): Promise<void> | void;\n}\n"]}
|
|
@@ -110,6 +110,19 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
110
110
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
111
111
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
112
112
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
113
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
114
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
115
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
116
|
+
host: z.ZodString;
|
|
117
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
118
|
+
password: z.ZodOptional<z.ZodString>;
|
|
119
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
120
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
121
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
122
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
123
|
+
}, z.core.$strip>>;
|
|
124
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
125
|
+
}, z.core.$strip>>>;
|
|
113
126
|
}, z.core.$strip>>;
|
|
114
127
|
}, z.core.$strip>, z.ZodObject<{
|
|
115
128
|
mode: z.ZodLiteral<"transparent">;
|
|
@@ -146,6 +159,19 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
146
159
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
147
160
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
148
161
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
162
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
163
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
164
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
165
|
+
host: z.ZodString;
|
|
166
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
167
|
+
password: z.ZodOptional<z.ZodString>;
|
|
168
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
169
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
170
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
171
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
172
|
+
}, z.core.$strip>>;
|
|
173
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
174
|
+
}, z.core.$strip>>>;
|
|
149
175
|
}, z.core.$strip>>;
|
|
150
176
|
}, z.core.$strip>, z.ZodObject<{
|
|
151
177
|
mode: z.ZodLiteral<"orchestrated">;
|
|
@@ -168,6 +194,7 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
168
194
|
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
169
195
|
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
170
196
|
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
197
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
171
198
|
}, z.core.$strip>;
|
|
172
199
|
}, z.core.$strip>], "type">>;
|
|
173
200
|
sessionMode: z.ZodDefault<z.ZodEnum<{
|
|
@@ -213,6 +240,19 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
213
240
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
214
241
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
215
242
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
243
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
244
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
245
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
246
|
+
host: z.ZodString;
|
|
247
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
248
|
+
password: z.ZodOptional<z.ZodString>;
|
|
249
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
250
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
251
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
252
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
253
|
+
}, z.core.$strip>>;
|
|
254
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
255
|
+
}, z.core.$strip>>>;
|
|
216
256
|
}, z.core.$strip>>;
|
|
217
257
|
}, z.core.$strip>, z.ZodObject<{
|
|
218
258
|
mode: z.ZodLiteral<"orchestrated">;
|
|
@@ -252,6 +292,7 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
252
292
|
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
253
293
|
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
254
294
|
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
295
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
255
296
|
}, z.core.$strip>;
|
|
256
297
|
}, z.core.$strip>], "type">>;
|
|
257
298
|
sessionMode: z.ZodDefault<z.ZodEnum<{
|
|
@@ -297,6 +338,19 @@ export declare const frontMcpLocalAppMetadataSchema: z.ZodObject<{
|
|
|
297
338
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
298
339
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
299
340
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
341
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
342
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
343
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
344
|
+
host: z.ZodString;
|
|
345
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
346
|
+
password: z.ZodOptional<z.ZodString>;
|
|
347
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
348
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
349
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
350
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
351
|
+
}, z.core.$strip>>;
|
|
352
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
353
|
+
}, z.core.$strip>>>;
|
|
300
354
|
}, z.core.$strip>>;
|
|
301
355
|
}, z.core.$strip>]>>;
|
|
302
356
|
standalone: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"includeInParent">, z.ZodBoolean]>>>;
|
|
@@ -373,6 +427,19 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
373
427
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
374
428
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
375
429
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
430
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
431
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
432
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
433
|
+
host: z.ZodString;
|
|
434
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
435
|
+
password: z.ZodOptional<z.ZodString>;
|
|
436
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
437
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
438
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
439
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
440
|
+
}, z.core.$strip>>;
|
|
441
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
442
|
+
}, z.core.$strip>>>;
|
|
376
443
|
}, z.core.$strip>>;
|
|
377
444
|
}, z.core.$strip>, z.ZodObject<{
|
|
378
445
|
mode: z.ZodLiteral<"transparent">;
|
|
@@ -409,6 +476,19 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
409
476
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
410
477
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
411
478
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
479
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
480
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
481
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
482
|
+
host: z.ZodString;
|
|
483
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
484
|
+
password: z.ZodOptional<z.ZodString>;
|
|
485
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
486
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
487
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
488
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
489
|
+
}, z.core.$strip>>;
|
|
490
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
491
|
+
}, z.core.$strip>>>;
|
|
412
492
|
}, z.core.$strip>>;
|
|
413
493
|
}, z.core.$strip>, z.ZodObject<{
|
|
414
494
|
mode: z.ZodLiteral<"orchestrated">;
|
|
@@ -431,6 +511,7 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
431
511
|
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
432
512
|
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
433
513
|
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
514
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
434
515
|
}, z.core.$strip>;
|
|
435
516
|
}, z.core.$strip>], "type">>;
|
|
436
517
|
sessionMode: z.ZodDefault<z.ZodEnum<{
|
|
@@ -476,6 +557,19 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
476
557
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
477
558
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
478
559
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
560
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
561
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
562
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
563
|
+
host: z.ZodString;
|
|
564
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
565
|
+
password: z.ZodOptional<z.ZodString>;
|
|
566
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
567
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
568
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
569
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
570
|
+
}, z.core.$strip>>;
|
|
571
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
572
|
+
}, z.core.$strip>>>;
|
|
479
573
|
}, z.core.$strip>>;
|
|
480
574
|
}, z.core.$strip>, z.ZodObject<{
|
|
481
575
|
mode: z.ZodLiteral<"orchestrated">;
|
|
@@ -515,6 +609,7 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
515
609
|
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
516
610
|
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
517
611
|
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
612
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
518
613
|
}, z.core.$strip>;
|
|
519
614
|
}, z.core.$strip>], "type">>;
|
|
520
615
|
sessionMode: z.ZodDefault<z.ZodEnum<{
|
|
@@ -560,6 +655,19 @@ export declare const frontMcpRemoteAppMetadataSchema: z.ZodObject<{
|
|
|
560
655
|
enableStatelessHttp: z.ZodDefault<z.ZodBoolean>;
|
|
561
656
|
enableStatefulHttp: z.ZodDefault<z.ZodBoolean>;
|
|
562
657
|
requireSessionForStreamable: z.ZodDefault<z.ZodBoolean>;
|
|
658
|
+
recreation: z.ZodOptional<z.ZodLazy<z.ZodObject<{
|
|
659
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
660
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
661
|
+
host: z.ZodString;
|
|
662
|
+
port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
663
|
+
password: z.ZodOptional<z.ZodString>;
|
|
664
|
+
db: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
665
|
+
tls: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
666
|
+
keyPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
667
|
+
defaultTtlMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
668
|
+
}, z.core.$strip>>;
|
|
669
|
+
defaultTtlMs: z.ZodDefault<z.ZodNumber>;
|
|
670
|
+
}, z.core.$strip>>>;
|
|
563
671
|
}, z.core.$strip>>;
|
|
564
672
|
}, z.core.$strip>]>>;
|
|
565
673
|
standalone: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"includeInParent">, z.ZodBoolean]>>>;
|