@frontmcp/sdk 1.4.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/flows/oauth.authorize.flow.d.ts.map +1 -1
- package/auth/flows/oauth.token.flow.d.ts.map +1 -1
- package/auth/flows/session.verify.flow.d.ts.map +1 -1
- package/auth/instances/instance.local-primary-auth.d.ts.map +1 -1
- package/common/decorators/app.decorator.d.ts +13 -1
- package/common/decorators/app.decorator.d.ts.map +1 -1
- package/common/decorators/front-mcp.decorator.d.ts.map +1 -1
- package/common/metadata/front-mcp.metadata.d.ts +24 -0
- package/common/metadata/front-mcp.metadata.d.ts.map +1 -1
- package/common/schemas/http-output.schema.d.ts +17 -0
- package/common/schemas/http-output.schema.d.ts.map +1 -1
- package/common/tokens/server.tokens.d.ts +3 -0
- package/common/tokens/server.tokens.d.ts.map +1 -1
- package/common/types/options/skills-http/interfaces.d.ts +15 -1
- package/common/types/options/skills-http/interfaces.d.ts.map +1 -1
- package/common/types/options/skills-http/schema.d.ts +4 -0
- package/common/types/options/skills-http/schema.d.ts.map +1 -1
- package/common/utils/path.utils.d.ts +15 -0
- package/common/utils/path.utils.d.ts.map +1 -1
- package/esm/index.mjs +1187 -294
- package/esm-loader/esm-cache.d.ts +10 -0
- package/esm-loader/esm-cache.d.ts.map +1 -1
- package/esm-loader/esm-module-loader.d.ts.map +1 -1
- package/flows/flow.instance.d.ts +14 -0
- package/flows/flow.instance.d.ts.map +1 -1
- package/flows/flow.registry.d.ts +9 -1
- package/flows/flow.registry.d.ts.map +1 -1
- package/front-mcp/front-mcp.d.ts +14 -0
- package/front-mcp/front-mcp.d.ts.map +1 -1
- package/front-mcp/front-mcp.providers.d.ts +4 -0
- package/front-mcp/front-mcp.providers.d.ts.map +1 -1
- package/index.d.ts +9 -5
- package/index.d.ts.map +1 -1
- package/index.js +1421 -520
- package/logger/instances/instance.file-logger.d.ts.map +1 -1
- package/package.json +15 -13
- package/scope/flows/http.request.flow.d.ts +17 -1
- package/scope/flows/http.request.flow.d.ts.map +1 -1
- package/scope/optional-dependency.util.d.ts +25 -0
- package/scope/optional-dependency.util.d.ts.map +1 -1
- package/scope/scope.instance.d.ts +9 -1
- package/scope/scope.instance.d.ts.map +1 -1
- package/server/server.instance.d.ts.map +1 -1
- package/server/server.validation.d.ts.map +1 -1
- package/skill/index.d.ts +1 -0
- package/skill/index.d.ts.map +1 -1
- package/skill/providers/memory-skill.provider.d.ts +61 -1
- package/skill/providers/memory-skill.provider.d.ts.map +1 -1
- package/skill/skill-index-cache.interface.d.ts +33 -0
- package/skill/skill-index-cache.interface.d.ts.map +1 -0
- package/skill/skill-instructions.helper.d.ts +13 -0
- package/skill/skill-instructions.helper.d.ts.map +1 -1
- package/skill/skill-storage.interface.d.ts +13 -0
- package/skill/skill-storage.interface.d.ts.map +1 -1
- package/skill/skill.registry.d.ts +27 -0
- package/skill/skill.registry.d.ts.map +1 -1
- package/transport/build-scoped-server-options.d.ts +35 -0
- package/transport/build-scoped-server-options.d.ts.map +1 -0
- package/transport/in-memory-server.d.ts.map +1 -1
- package/transport/index.d.ts +17 -0
- package/transport/index.d.ts.map +1 -1
- package/transport/web-fetch-handler.d.ts +106 -0
- package/transport/web-fetch-handler.d.ts.map +1 -0
- package/transport/web-response.renderer.d.ts +13 -0
- package/transport/web-response.renderer.d.ts.map +1 -0
- package/transport/web-standard-mcp.d.ts +63 -0
- package/transport/web-standard-mcp.d.ts.map +1 -0
package/transport/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,yCAAyC,EAAE,MAAM,sCAAsC,CAAC;AACjG,YAAY,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAEjG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrF,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;GAGG;AACH,YAAY,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;;;GAIG;AACH,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,yCAAyC,EAAE,MAAM,sCAAsC,CAAC;AACjG,YAAY,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAEjG,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrF,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;GAGG;AACH,YAAY,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;;;GAIG;AACH,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACnF,YAAY,EACV,eAAe,EACf,4BAA4B,EAC5B,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEvF,2EAA2E;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { type Scope } from '../scope/scope.instance';
|
|
2
|
+
import { type WebStandardMcpPair } from './web-standard-mcp';
|
|
3
|
+
/**
|
|
4
|
+
* The host execution context — its `waitUntil` keeps the worker alive past the
|
|
5
|
+
* `fetch` return so a streaming (SSE) response body can finish. Optional: in
|
|
6
|
+
* Node there's no isolate teardown, so it's only needed on V8 isolates.
|
|
7
|
+
*/
|
|
8
|
+
export interface FetchHandlerCtx {
|
|
9
|
+
waitUntil?(promise: Promise<unknown>): void;
|
|
10
|
+
}
|
|
11
|
+
/** A Web-standard fetch handler: `(request, ctx?, env?) => Promise<Response>`. */
|
|
12
|
+
export type WebFetchHandler = (request: Request, ctx?: FetchHandlerCtx, env?: unknown) => Promise<Response>;
|
|
13
|
+
/**
|
|
14
|
+
* Routes an MCP request to a stateful session host (a Cloudflare Durable Object)
|
|
15
|
+
* instead of handling it statelessly. Receives the per-request `env` (for the DO
|
|
16
|
+
* binding). Returns a `Response` when it routed the request, or `undefined` to
|
|
17
|
+
* fall through to stateless handling (e.g. the binding isn't present).
|
|
18
|
+
*/
|
|
19
|
+
export type WebFetchSessionRouter = (request: Request, env: unknown, ctx?: FetchHandlerCtx) => Promise<Response | undefined>;
|
|
20
|
+
/**
|
|
21
|
+
* CORS for the web-fetch adapter — the transport-level analog of the Express
|
|
22
|
+
* host's `cors` middleware (CORS is an adapter concern, not a flow stage), so a
|
|
23
|
+
* browser MCP client (e.g. the MCP Inspector in "Direct" mode) can connect.
|
|
24
|
+
*/
|
|
25
|
+
export interface WebFetchCorsOptions {
|
|
26
|
+
/** Allowed origin: `true` reflects the request `Origin`, `'*'` allows any, or a specific origin / list. */
|
|
27
|
+
origin?: boolean | string | string[];
|
|
28
|
+
/** Allowed methods. Default `GET, POST, OPTIONS, DELETE`. */
|
|
29
|
+
methods?: string[];
|
|
30
|
+
/** Allowed request headers. Default: reflect `Access-Control-Request-Headers`, else a sensible MCP set. */
|
|
31
|
+
headers?: string[];
|
|
32
|
+
/** Response headers exposed to the browser. Default `Mcp-Session-Id, WWW-Authenticate`. */
|
|
33
|
+
exposeHeaders?: string[];
|
|
34
|
+
/** Send `Access-Control-Allow-Credentials: true`. Default `false`. */
|
|
35
|
+
credentials?: boolean;
|
|
36
|
+
/** `Access-Control-Max-Age` (seconds) on the preflight response. */
|
|
37
|
+
maxAge?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface CreateWebFetchHandlerOptions {
|
|
40
|
+
/**
|
|
41
|
+
* Path the MCP endpoint (both Streamable HTTP `POST` and the SSE `GET`
|
|
42
|
+
* stream) is served at. **Config-driven**: when omitted, it falls back to the
|
|
43
|
+
* scope's `http.entryPath` (the same gateway prefix the Express host mounts
|
|
44
|
+
* under), and to the worker root `/` when that too is unset. So one config
|
|
45
|
+
* decides the path — set `http.entryPath: '/mcp'` for `<domain>/mcp`, or leave
|
|
46
|
+
* it for `mcp.<domain>` at root. The worker serves exactly that one path.
|
|
47
|
+
*
|
|
48
|
+
* An explicit value here overrides the config. A trailing slash is normalized
|
|
49
|
+
* (`/mcp/` matches `/mcp`). An array opts into a custom multi-path allow-list.
|
|
50
|
+
* Requests to any other path (besides {@link
|
|
51
|
+
* CreateWebFetchHandlerOptions.healthPaths}) get a 404.
|
|
52
|
+
*/
|
|
53
|
+
entryPath?: string | string[];
|
|
54
|
+
/**
|
|
55
|
+
* Paths answered with a liveness/readiness 200 instead of being routed to
|
|
56
|
+
* the MCP transport. Defaults to `/healthz` and `/readyz`.
|
|
57
|
+
*/
|
|
58
|
+
healthPaths?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* CORS for browser MCP clients (Inspector "Direct" mode, web apps). A
|
|
61
|
+
* transport-adapter concern, not a flow stage. **Config-driven**: when
|
|
62
|
+
* omitted, it mirrors the scope's `http.cors` (the same config the Express
|
|
63
|
+
* host uses), so `@FrontMcp({ http: { cors } })` covers both. An explicit
|
|
64
|
+
* value here overrides that.
|
|
65
|
+
*/
|
|
66
|
+
cors?: WebFetchCorsOptions;
|
|
67
|
+
/**
|
|
68
|
+
* Optional stateful-session router (Cloudflare Durable Object host). When set,
|
|
69
|
+
* MCP requests at the entry path are offered to it first; if it returns a
|
|
70
|
+
* `Response` the request was routed to a session DO, otherwise handling falls
|
|
71
|
+
* through to the stateless path. CORS / health / entry-path routing stay here
|
|
72
|
+
* in the adapter regardless.
|
|
73
|
+
*/
|
|
74
|
+
sessionRouter?: WebFetchSessionRouter;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build a Web-standard fetch handler for a Scope.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* const handler = createWebFetchHandler(scope);
|
|
82
|
+
* export default { fetch: (request) => handler(request) };
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function createWebFetchHandler(scope: Scope, options?: CreateWebFetchHandlerOptions): WebFetchHandler;
|
|
86
|
+
/**
|
|
87
|
+
* Run a Web `Request` through the `http:request` flow and render its normalized
|
|
88
|
+
* output to a Web `Response`. Shared by {@link createWebFetchHandler} (stateless)
|
|
89
|
+
* and the Durable Object session host (which passes its `persistent` transport
|
|
90
|
+
* so the GET notification stream + server push work). Returns `undefined` when
|
|
91
|
+
* the flow produced no response (`next`/`handled`) — the caller decides the
|
|
92
|
+
* fallback (typically 404).
|
|
93
|
+
*/
|
|
94
|
+
export declare function runHttpRequestFlowWeb(scope: Scope, request: Request, opts?: {
|
|
95
|
+
ctx?: FetchHandlerCtx;
|
|
96
|
+
persistent?: WebStandardMcpPair;
|
|
97
|
+
}): Promise<Response | undefined>;
|
|
98
|
+
/**
|
|
99
|
+
* Dispatch a non-entry-path request through the FrontMCP flow that claims it
|
|
100
|
+
* (auth / well-known / oauth flows match by `middleware.path` + `canActivate`).
|
|
101
|
+
* Mirrors the Express host's route dispatch for runtimes with no middleware
|
|
102
|
+
* server (Cloudflare Worker / web-fetch). Returns the rendered Web `Response`,
|
|
103
|
+
* or `undefined` when no flow matches (caller 404s).
|
|
104
|
+
*/
|
|
105
|
+
export declare function runMatchingHttpFlowWeb(scope: Scope, request: Request): Promise<Response | undefined>;
|
|
106
|
+
//# sourceMappingURL=web-fetch-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch-handler.d.ts","sourceRoot":"","sources":["../../src/transport/web-fetch-handler.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5G;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,OAAO,EACZ,GAAG,CAAC,EAAE,eAAe,KAClB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2GAA2G;IAC3G,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;IACrC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD,MAAM,WAAW,4BAA4B;IAC3C;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,4BAAiC,GAAG,eAAe,CA6G/G;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,eAAe,CAAC;IAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAAO,GACpE,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAa/B;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAe1G"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a normalized {@link HttpOutput} (the `http:request` flow's output) to a
|
|
3
|
+
* Web `Response`. This is the web-fetch (worker) analog of the Node
|
|
4
|
+
* `writeHttpResponse` renderer — it lets a V8-isolate adapter run the SAME flow
|
|
5
|
+
* every other transport runs and render its normalized result, instead of
|
|
6
|
+
* bypassing the pipeline.
|
|
7
|
+
*
|
|
8
|
+
* Returns `undefined` for outputs that mean "no response produced" (`next`,
|
|
9
|
+
* `consumed`) so the caller can fall through (e.g. to a 404).
|
|
10
|
+
*/
|
|
11
|
+
import { type HttpOutput } from '../common/schemas/http-output.schema';
|
|
12
|
+
export declare function renderHttpOutputToWebResponse(output: HttpOutput): Response | undefined;
|
|
13
|
+
//# sourceMappingURL=web-response.renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-response.renderer.d.ts","sourceRoot":"","sources":["../../src/transport/web-response.renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAyDvE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAmDtF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP-over-web-standard-transport adapter used by the `handleWebFetch` execute
|
|
3
|
+
* stage of the `http:request` flow (V8 isolates / Cloudflare Workers).
|
|
4
|
+
*
|
|
5
|
+
* Two modes, both speaking the SAME `WebStandardStreamableHTTPServerTransport`:
|
|
6
|
+
*
|
|
7
|
+
* - **Stateless** ({@link runWebStandardMcp} with no `persistent`): a fresh
|
|
8
|
+
* `McpServer` + transport per request (`sessionIdGenerator: undefined`). The
|
|
9
|
+
* default serverless model.
|
|
10
|
+
* - **Stateful** (a Durable Object passes `persistent`): one persistent
|
|
11
|
+
* `McpServer` + session-bound transport built once via {@link
|
|
12
|
+
* buildPersistentWebStandardMcp} and reused across the session's requests, so
|
|
13
|
+
* the standalone GET notification stream stays open and a `tools/call`'s
|
|
14
|
+
* notifications reach it. The DO owns the lifecycle — no per-request teardown.
|
|
15
|
+
*
|
|
16
|
+
* Auth / quota / router / audit / metrics + hooks have already run in the flow
|
|
17
|
+
* around this call; this only translates the MCP request↔response.
|
|
18
|
+
*/
|
|
19
|
+
import { type AuthInfo } from '@frontmcp/protocol';
|
|
20
|
+
import { type Scope } from '../scope/scope.instance';
|
|
21
|
+
import { type ScopedServerOptions } from './build-scoped-server-options';
|
|
22
|
+
/** A persistent MCP server + transport bound to one session (Durable Object). */
|
|
23
|
+
export interface WebStandardMcpPair {
|
|
24
|
+
mcpServer: {
|
|
25
|
+
close(): Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
transport: {
|
|
28
|
+
handleRequest(request: Request, options?: {
|
|
29
|
+
authInfo?: AuthInfo;
|
|
30
|
+
}): Promise<Response>;
|
|
31
|
+
onclose?: () => void;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface RunWebStandardMcpOptions {
|
|
35
|
+
/** Capability/server options for the `McpServer` (from `buildScopedServerOptions`). */
|
|
36
|
+
serverOptions: ScopedServerOptions;
|
|
37
|
+
/** Verified auth info to expose to handlers (derived from the flow's session:verify result). */
|
|
38
|
+
authInfo?: Partial<AuthInfo>;
|
|
39
|
+
/** Allow SSE streaming responses on POST when the client accepts `text/event-stream` (stateless mode). */
|
|
40
|
+
sse: boolean;
|
|
41
|
+
/** Worker `ExecutionContext` so an SSE body can keep the isolate alive past `fetch` (stateless mode). */
|
|
42
|
+
ctx?: {
|
|
43
|
+
waitUntil?(promise: Promise<unknown>): void;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A persistent, session-bound server+transport (Durable Object / stateful
|
|
47
|
+
* sessions). When provided, the request is handled on it and no fresh server
|
|
48
|
+
* is created or torn down — the DO owns its lifecycle.
|
|
49
|
+
*/
|
|
50
|
+
persistent?: WebStandardMcpPair;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build a persistent, session-bound MCP server + transport for a Durable Object.
|
|
54
|
+
* Stateful (`sessionIdGenerator: () => sessionId`) and streaming-capable
|
|
55
|
+
* (`enableJsonResponse: false`) so the standalone GET notification stream and
|
|
56
|
+
* server-initiated notifications work. Call once per session; the DO keeps it
|
|
57
|
+
* alive and passes it back via `RunWebStandardMcpOptions.persistent`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildPersistentWebStandardMcp(scope: Scope, options: {
|
|
60
|
+
sessionId: string;
|
|
61
|
+
}): Promise<WebStandardMcpPair>;
|
|
62
|
+
export declare function runWebStandardMcp(scope: Scope, request: Request, options: RunWebStandardMcpOptions): Promise<Response>;
|
|
63
|
+
//# sourceMappingURL=web-standard-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-standard-mcp.d.ts","sourceRoot":"","sources":["../../src/transport/web-standard-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAA4B,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEnG,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE;QAAE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACtC,SAAS,EAAE;QACT,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;SAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,aAAa,EAAE,mBAAmB,CAAC;IACnC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,0GAA0G;IAC1G,GAAG,EAAE,OAAO,CAAC;IACb,yGAAyG;IACzG,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;IACtD;;;;OAIG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AA+BD;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,QAAQ,CAAC,CA4CnB"}
|