stitchkit 0.103.12 → 0.104.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/CHANGELOG.md +112 -0
- package/darwin-native.cjs +12 -0
- package/darwin-native.d.cts +2 -0
- package/dist/agent-runtime/store-conformance-lifecycle.d.ts +10 -10
- package/dist/application/directory-inbox-accept.d.ts +13 -0
- package/dist/application/directory-inbox-accept.d.ts.map +1 -0
- package/dist/application/directory-inbox-contract.d.ts +42 -5
- package/dist/application/directory-inbox-contract.d.ts.map +1 -1
- package/dist/application/directory-inbox-delivery.d.ts +14 -0
- package/dist/application/directory-inbox-delivery.d.ts.map +1 -0
- package/dist/application/directory-inbox-files.d.ts +28 -0
- package/dist/application/directory-inbox-files.d.ts.map +1 -0
- package/dist/application/directory-inbox-state.d.ts +14 -0
- package/dist/application/directory-inbox-state.d.ts.map +1 -0
- package/dist/application/directory-inbox.d.ts +2 -1
- package/dist/application/directory-inbox.d.ts.map +1 -1
- package/dist/application/file-state-store.d.ts +2 -8
- package/dist/application/file-state-store.d.ts.map +1 -1
- package/dist/application/state-store.d.ts +6 -1
- package/dist/application/state-store.d.ts.map +1 -1
- package/dist/browser/client-arguments.d.ts +4 -0
- package/dist/browser/client-arguments.d.ts.map +1 -0
- package/dist/browser/client-executors.d.ts.map +1 -1
- package/dist/browser/client.d.ts.map +1 -1
- package/dist/browser/contract-stream.d.ts.map +1 -1
- package/dist/browser/http.d.ts +2 -1
- package/dist/browser/http.d.ts.map +1 -1
- package/dist/browser/native-fetch.d.ts +8 -0
- package/dist/browser/native-fetch.d.ts.map +1 -0
- package/dist/contract/errors.d.ts +16 -12
- package/dist/contract/errors.d.ts.map +1 -1
- package/dist/contract/normalize.d.ts +5 -1
- package/dist/contract/normalize.d.ts.map +1 -1
- package/dist/contract/stream.d.ts +1 -0
- package/dist/contract/stream.d.ts.map +1 -1
- package/dist/entrypoints/agent-runtime/browser.js +3 -3
- package/dist/entrypoints/agent-runtime/coding-tools.js +8 -6
- package/dist/entrypoints/agent-runtime/harness-tools.js +8 -8
- package/dist/entrypoints/agent-runtime/harness.js +12 -11
- package/dist/entrypoints/agent-runtime/realtime.js +3 -3
- package/dist/entrypoints/agent-runtime/sandbox.js +8 -6
- package/dist/entrypoints/agent-runtime.js +13 -13
- package/dist/entrypoints/application/diagnostic-journal.js +3 -2
- package/dist/entrypoints/application/directory-inbox.js +424 -119
- package/dist/entrypoints/application/grammy.js +1 -1
- package/dist/entrypoints/application.d.ts +2 -2
- package/dist/entrypoints/application.d.ts.map +1 -1
- package/dist/entrypoints/application.js +7 -3
- package/dist/entrypoints/cli.d.ts +2 -0
- package/dist/entrypoints/cli.d.ts.map +1 -1
- package/dist/entrypoints/cli.js +757 -136
- package/dist/entrypoints/contract.js +3 -3
- package/dist/entrypoints/files.js +11 -107
- package/dist/entrypoints/index.js +7 -7
- package/dist/entrypoints/node.js +8 -8
- package/dist/entrypoints/observability.js +2 -2
- package/dist/entrypoints/process.js +2 -1
- package/dist/entrypoints/react.js +1 -1
- package/dist/entrypoints/remote.js +19 -6
- package/dist/entrypoints/server.d.ts +1 -1
- package/dist/entrypoints/server.d.ts.map +1 -1
- package/dist/entrypoints/server.js +20 -14
- package/dist/entrypoints/telegram.d.ts +1 -0
- package/dist/entrypoints/telegram.d.ts.map +1 -1
- package/dist/entrypoints/telegram.js +214 -98
- package/dist/entrypoints/testing.js +7 -7
- package/dist/entrypoints/tools/connections.d.ts +2 -2
- package/dist/entrypoints/tools/connections.d.ts.map +1 -1
- package/dist/entrypoints/tools/connections.js +427 -294
- package/dist/entrypoints/tools/invoker.js +6 -6
- package/dist/entrypoints/tools/mcp.d.ts +12 -0
- package/dist/entrypoints/tools/mcp.d.ts.map +1 -0
- package/dist/entrypoints/tools/mcp.js +45 -0
- package/dist/entrypoints/tools.d.ts +1 -0
- package/dist/entrypoints/tools.d.ts.map +1 -1
- package/dist/entrypoints/tools.js +82 -1147
- package/dist/entrypoints/tracking.js +1 -1
- package/dist/files/boundary.d.ts +2 -8
- package/dist/files/boundary.d.ts.map +1 -1
- package/dist/files/file-io.d.ts +0 -5
- package/dist/files/file-io.d.ts.map +1 -1
- package/dist/files/read.d.ts +2 -2
- package/dist/files/read.d.ts.map +1 -1
- package/dist/index-1a6jtnd9.js +88 -0
- package/dist/{index-fyphpknh.js → index-22rhg58f.js} +1 -1
- package/dist/index-269zqj8m.js +77 -0
- package/dist/{index-r34mvse1.js → index-27a2pj09.js} +1 -1
- package/dist/{index-r956rndn.js → index-2hyavjjj.js} +3 -3
- package/dist/{index-m2xqkv55.js → index-2vnh05w4.js} +83 -14
- package/dist/{index-pw99k9h5.js → index-43p08g7t.js} +1 -1
- package/dist/{index-xwq9j1sf.js → index-4e0ah203.js} +9 -7
- package/dist/{index-nybn2err.js → index-5csmzesf.js} +1 -1
- package/dist/{index-qapzv4p5.js → index-5z6jn897.js} +1 -1
- package/dist/{index-ahvsksw5.js → index-6d9xaxw1.js} +1 -1
- package/dist/{index-ahtnte39.js → index-6drst9sg.js} +46 -35
- package/dist/{index-x87j7csh.js → index-77nxk6ay.js} +2 -2
- package/dist/{index-dnn9z96q.js → index-a0zzh8ak.js} +3 -3
- package/dist/{index-kmpzj1cq.js → index-a3wma1hk.js} +1 -1
- package/dist/{index-j8aw2c0e.js → index-bakgedh8.js} +35 -7
- package/dist/index-bhb950qs.js +1145 -0
- package/dist/{index-tgzhq07n.js → index-cvda079a.js} +1 -1
- package/dist/{index-n2gre124.js → index-fa4wg312.js} +4 -4
- package/dist/{index-zp4jpkp0.js → index-fk18k56k.js} +2 -2
- package/dist/{index-afjvjyck.js → index-g2j7pnak.js} +2 -134
- package/dist/index-g95fk660.js +116 -0
- package/dist/{index-ej331hah.js → index-gxm9rc97.js} +1 -1
- package/dist/{index-r5c4fedv.js → index-h2fhjqy7.js} +2 -1
- package/dist/{index-sybedc8b.js → index-hbd32c6a.js} +23 -94
- package/dist/index-jd470k6q.js +109 -0
- package/dist/{index-b2bz0kdm.js → index-kb8styz3.js} +4 -3
- package/dist/{index-0c419yx7.js → index-kemm0ej5.js} +12 -9
- package/dist/{index-806d5phm.js → index-ptn0g0gj.js} +7 -7
- package/dist/{index-w575evhq.js → index-r4r70zmh.js} +1 -1
- package/dist/{index-12m2v2a9.js → index-s4evrmp5.js} +1 -1
- package/dist/{index-1khy8y7n.js → index-t1sr4aks.js} +3 -3
- package/dist/index-v5ee8ath.js +88 -0
- package/dist/{index-45tdvqa3.js → index-wh0ecvyk.js} +1 -1
- package/dist/{index-n53mswt3.js → index-x928baz2.js} +8 -1
- package/dist/index-yk4g8805.js +133 -0
- package/dist/{index-ygkka6zn.js → index-ywppsaby.js} +28 -5
- package/dist/{index-xvdd2rbb.js → index-za6j7nwy.js} +19 -5
- package/dist/internal/bounded-file-read.d.ts +41 -0
- package/dist/internal/bounded-file-read.d.ts.map +1 -0
- package/dist/internal/darwin-binding-error.d.ts +24 -0
- package/dist/internal/darwin-binding-error.d.ts.map +1 -0
- package/dist/internal/darwin-binding.d.ts.map +1 -1
- package/dist/internal/exclusive-lock.d.ts +2 -0
- package/dist/internal/exclusive-lock.d.ts.map +1 -1
- package/dist/internal/with-exclusive-lock.d.ts +4 -2
- package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
- package/dist/telegram/broadcast-delivery.d.ts +23 -0
- package/dist/telegram/broadcast-delivery.d.ts.map +1 -0
- package/dist/telegram/broadcast-failure.d.ts +22 -0
- package/dist/telegram/broadcast-failure.d.ts.map +1 -0
- package/dist/telegram/broadcast-state.d.ts +6 -3
- package/dist/telegram/broadcast-state.d.ts.map +1 -1
- package/dist/telegram/broadcast.d.ts +10 -5
- package/dist/telegram/broadcast.d.ts.map +1 -1
- package/dist/tools/cli/args-fields.d.ts +2 -0
- package/dist/tools/cli/args-fields.d.ts.map +1 -1
- package/dist/tools/cli/args.d.ts.map +1 -1
- package/dist/tools/cli/format.d.ts.map +1 -1
- package/dist/tools/cli/invoke.d.ts +2 -2
- package/dist/tools/cli/invoke.d.ts.map +1 -1
- package/dist/tools/cli/publication-assets.d.ts +10 -0
- package/dist/tools/cli/publication-assets.d.ts.map +1 -0
- package/dist/tools/cli/publication-contract.d.ts +75 -0
- package/dist/tools/cli/publication-contract.d.ts.map +1 -0
- package/dist/tools/cli/publication-control.d.ts +4 -0
- package/dist/tools/cli/publication-control.d.ts.map +1 -0
- package/dist/tools/cli/publication-storage.d.ts +32 -0
- package/dist/tools/cli/publication-storage.d.ts.map +1 -0
- package/dist/tools/cli/publication.d.ts +35 -0
- package/dist/tools/cli/publication.d.ts.map +1 -0
- package/dist/tools/cli/update.d.ts.map +1 -1
- package/dist/tools/connections/define.d.ts.map +1 -1
- package/dist/tools/connections/error-projection.d.ts +4 -0
- package/dist/tools/connections/error-projection.d.ts.map +1 -0
- package/dist/tools/connections/errors.d.ts +24 -8
- package/dist/tools/connections/errors.d.ts.map +1 -1
- package/dist/tools/connections/limits.d.ts +11 -31
- package/dist/tools/connections/limits.d.ts.map +1 -1
- package/dist/tools/connections/mcp-client.d.ts +6 -4
- package/dist/tools/connections/mcp-client.d.ts.map +1 -1
- package/dist/tools/connections/mcp.d.ts.map +1 -1
- package/dist/tools/connections/openapi.d.ts.map +1 -1
- package/dist/tools/connections/operation-limits.d.ts +25 -0
- package/dist/tools/connections/operation-limits.d.ts.map +1 -0
- package/dist/tools/connections/sse-frames.d.ts +11 -2
- package/dist/tools/connections/sse-frames.d.ts.map +1 -1
- package/dist/tools/connections/sse-session.d.ts +15 -2
- package/dist/tools/connections/sse-session.d.ts.map +1 -1
- package/dist/tools/connections/types.d.ts +19 -1
- package/dist/tools/connections/types.d.ts.map +1 -1
- package/dist/tools/execute-result.d.ts.map +1 -1
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/internal/observe-hook.d.ts +3 -0
- package/dist/tools/internal/observe-hook.d.ts.map +1 -0
- package/dist/tools/internal/surface-projector.d.ts +2 -1
- package/dist/tools/internal/surface-projector.d.ts.map +1 -1
- package/dist/tools/mcp/mount.d.ts +2 -2
- package/dist/tools/mcp/mount.d.ts.map +1 -1
- package/dist/tools/mcp/prepare.d.ts +4 -5
- package/dist/tools/mcp/prepare.d.ts.map +1 -1
- package/dist/tools/mcp/register.d.ts +4 -1
- package/dist/tools/mcp/register.d.ts.map +1 -1
- package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
- package/dist/tools/remote.d.ts.map +1 -1
- package/dist/tools/runtime-tool-execution.d.ts +65 -0
- package/dist/tools/runtime-tool-execution.d.ts.map +1 -0
- package/dist/tools/runtime-tool-mcp.d.ts +27 -0
- package/dist/tools/runtime-tool-mcp.d.ts.map +1 -0
- package/dist/tools/runtime-tool.d.ts +9 -60
- package/dist/tools/runtime-tool.d.ts.map +1 -1
- package/dist/tools/surface.d.ts +12 -14
- package/dist/tools/surface.d.ts.map +1 -1
- package/llms/application.2.txt +221 -44
- package/llms/application.3.txt +3 -1
- package/llms/application.txt +1 -1
- package/llms/cli.2.txt +144 -1
- package/llms/cli.txt +133 -104
- package/llms/contract.txt +1 -1
- package/llms/process.txt +34 -5
- package/llms/server.4.txt +4 -1
- package/llms/server.5.txt +1 -0
- package/llms/stitchkit.2.txt +14 -0
- package/llms/stitchkit.txt +5 -4
- package/llms/telegram.txt +64 -2
- package/llms/tools-connections.txt +3 -0
- package/llms/tools-mcp.txt +29 -0
- package/llms/tools.2.txt +59 -0
- package/llms/tools.3.txt +1 -0
- package/llms/tools.txt +11 -52
- package/llms/upgrading-0.37.0-0.44.0.txt +444 -0
- package/llms/{upgrading-0.44.0-0.60.0.txt → upgrading-0.44.0-0.61.0.txt} +140 -271
- package/llms/{upgrading-0.61.0-0.74.0.txt → upgrading-0.62.0-0.79.0.txt} +171 -140
- package/llms/{upgrading-0.75.0-0.103.0.txt → upgrading-0.80.0-0.104.0.txt} +120 -171
- package/llms/upgrading.txt +4 -4
- package/llms-full.txt +677 -64
- package/llms.txt +13 -12
- package/package.json +10 -1
- package/dist/index-d4pa2bgs.js +0 -42
- package/dist/index-wykebpn9.js +0 -221
- package/llms/upgrading-0.37.0.txt +0 -176
- package/dist/{index-69nvze1q.js → index-pptyv13k.js} +3 -3
|
@@ -1,36 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* ADR 0180 says timeouts and response sizes are bounded; before this module
|
|
5
|
-
* neither was. Every outbound `fetch` runs under a deadline that aborts with a
|
|
6
|
-
* typed {@link ConnectionTimeoutError} and is combined with any caller signal,
|
|
7
|
-
* and every JSON/text body is read through {@link readBoundedText}.
|
|
8
|
-
*/
|
|
9
|
-
/** Default per-request deadline: long enough for a slow provider, finite. */
|
|
1
|
+
import type { ConnectionReadContext } from './operation-limits.js';
|
|
2
|
+
/** Shared defaults for both connection kinds; phase overrides inherit these. */
|
|
10
3
|
export declare const DEFAULT_CONNECTION_TIMEOUT_MS = 30000;
|
|
11
|
-
/** Default response ceiling: 1 MiB, far above any tool payload we accept. */
|
|
12
4
|
export declare const DEFAULT_MAX_RESPONSE_BYTES: number;
|
|
13
|
-
/** The declared timeout, or the default when absent or non-positive. */
|
|
14
5
|
export declare function connectionTimeoutMs(value: number | undefined): number;
|
|
15
|
-
/** The declared response ceiling, or the default when absent or non-positive. */
|
|
16
6
|
export declare function connectionMaxResponseBytes(value: number | undefined): number;
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
export declare function
|
|
26
|
-
/**
|
|
27
|
-
* Read a response body up to `maxBytes`, refusing anything above it.
|
|
28
|
-
*
|
|
29
|
-
* The stream is cancelled as soon as the ceiling is crossed, so an unbounded
|
|
30
|
-
* server cannot keep the process reading. Returns the decoded text so a JSON
|
|
31
|
-
* caller can parse it itself and a text caller gets it unchanged.
|
|
32
|
-
*/
|
|
33
|
-
export declare function readBoundedText(response: Response, maxBytes: number, connectionName: string): Promise<string>;
|
|
34
|
-
/** Parse a bounded JSON body, keeping the ceiling check in one place. */
|
|
35
|
-
export declare function readBoundedJson(response: Response, maxBytes: number, connectionName: string): Promise<unknown>;
|
|
7
|
+
/** Abort races also cover injected streams or promises that do not observe fetch's signal. */
|
|
8
|
+
export declare function awaitConnection<T>(pending: Promise<T>, signal: AbortSignal | undefined): Promise<T>;
|
|
9
|
+
/** One deadline spans negotiation, response waiting and all body reads. */
|
|
10
|
+
export declare function withConnectionDeadline<T>(connectionName: string, timeoutMs: number, callerSignal: AbortSignal | undefined, body: (signal: AbortSignal) => Promise<T>, context?: ConnectionReadContext): Promise<T>;
|
|
11
|
+
/** Count raw bytes; Content-Length is deliberately not a trust boundary. */
|
|
12
|
+
export declare function readBoundedText(response: Response, maxBytes: number, connectionName: string, context?: ConnectionReadContext): Promise<string>;
|
|
13
|
+
export declare function readBoundedJson(response: Response, maxBytes: number, connectionName: string, context?: ConnectionReadContext): Promise<unknown>;
|
|
14
|
+
/** Diagnostics are best effort; cancellation and declared bounds always win. */
|
|
15
|
+
export declare function readConnectionErrorText(response: Response, connectionName: string, context: ConnectionReadContext): Promise<string>;
|
|
36
16
|
//# sourceMappingURL=limits.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/limits.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/limits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,gFAAgF;AAChF,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,0BAA0B,QAAc,CAAC;AAGtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMrE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM5E;AAED,8FAA8F;AAC9F,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED,2EAA2E;AAC3E,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,WAAW,GAAG,SAAS,EACrC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAED,4EAA4E;AAC5E,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,gFAAgF;AAChF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAejB"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import type { McpConnectionLimits } from './types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Minimal MCP client over the raw wire, on the global `fetch` — no peer SDK.
|
|
3
4
|
*
|
|
4
5
|
* Streamable HTTP is the primary transport: one `POST` per JSON-RPC message
|
|
5
6
|
* carrying both `application/json` and `text/event-stream` in `Accept`, with a
|
|
6
7
|
* `Mcp-Session-Id` echo after `initialize`. Legacy HTTP+SSE is the fallback and
|
|
7
|
-
* only
|
|
8
|
-
*
|
|
9
|
-
* wrong-transport one.
|
|
8
|
+
* negotiates only the initial `initialize`, on `400`, `404` or `405`. An
|
|
9
|
+
* operation already dispatched to a negotiated transport is never replayed.
|
|
10
10
|
*/
|
|
11
11
|
export interface McpTransportConfig {
|
|
12
12
|
url: string;
|
|
@@ -18,6 +18,7 @@ export interface McpHttpClientOptions {
|
|
|
18
18
|
allowedHosts: ReadonlySet<string>;
|
|
19
19
|
timeoutMs: number;
|
|
20
20
|
maxResponseBytes: number;
|
|
21
|
+
limits?: McpConnectionLimits;
|
|
21
22
|
}
|
|
22
23
|
export declare class McpHttpClient {
|
|
23
24
|
private readonly connectionName;
|
|
@@ -28,7 +29,9 @@ export declare class McpHttpClient {
|
|
|
28
29
|
private protocolVersion;
|
|
29
30
|
private nextId;
|
|
30
31
|
private initialized;
|
|
32
|
+
private initialInitializePending;
|
|
31
33
|
private sse;
|
|
34
|
+
private readonly limits;
|
|
32
35
|
constructor(connectionName: string, instanceId: string, options: McpHttpClientOptions);
|
|
33
36
|
/** Forget the session so the next call starts a fresh handshake. */
|
|
34
37
|
teardown(): void;
|
|
@@ -39,6 +42,5 @@ export declare class McpHttpClient {
|
|
|
39
42
|
private headers;
|
|
40
43
|
private openSse;
|
|
41
44
|
private sseRequest;
|
|
42
|
-
private safeText;
|
|
43
45
|
}
|
|
44
46
|
//# sourceMappingURL=mcp-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/mcp-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/mcp-client.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;GAQG;AAEH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,yEAAyE;IACzE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AASD,qBAAa,aAAa;IAWtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,wBAAwB,CAAQ;IACxC,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,YACmB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAG/C;IAED,oEAAoE;IACpE,QAAQ,IAAI,IAAI,CAOf;IAEK,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC/E;IAED,OAAO,CACL,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CAElB;YAEa,QAAQ;YAkCR,iBAAiB;IAuE/B,OAAO,CAAC,OAAO;YAYD,OAAO;YAiBP,UAAU;CAUzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EACL,KAAK,0BAA0B,EAIhC,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,SAAS,CAAC;AAQlE,gEAAgE;AAChE,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,0BAA0B,GACpC,OAAO,CAAC,qBAAqB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/mcp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EACL,KAAK,0BAA0B,EAIhC,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,SAAS,CAAC;AAQlE,gEAAgE;AAChE,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,0BAA0B,GACpC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAsElC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/openapi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/openapi.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAahF,OAAO,EACL,KAAK,0BAA0B,EAKhC,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgBjD,8DAA8D;AAC9D,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,0BAA0B,GACpC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAwHlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ConnectionOperation, ConnectionPhase, McpConnectionLimits } from './types.js';
|
|
2
|
+
export interface ResolvedConnectionLimits {
|
|
3
|
+
timeoutMs: number;
|
|
4
|
+
maxResponseBytes: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ConnectionReadContext extends ResolvedConnectionLimits {
|
|
7
|
+
operation: ConnectionOperation;
|
|
8
|
+
phase: ConnectionPhase;
|
|
9
|
+
observedReadBytes: number;
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
}
|
|
12
|
+
export interface McpPhaseLimits {
|
|
13
|
+
discovery: ResolvedConnectionLimits;
|
|
14
|
+
call: ResolvedConnectionLimits;
|
|
15
|
+
}
|
|
16
|
+
/** Resolve and validate once at the connection boundary, including unused phases. */
|
|
17
|
+
export declare function resolveMcpLimits(config: {
|
|
18
|
+
timeoutMs?: number;
|
|
19
|
+
maxResponseBytes?: number;
|
|
20
|
+
limits?: McpConnectionLimits;
|
|
21
|
+
}): McpPhaseLimits;
|
|
22
|
+
/** Arbitrary request names cannot become diagnostic strings carrying secrets. */
|
|
23
|
+
export declare function mcpOperation(method: string): ConnectionOperation;
|
|
24
|
+
export declare function connectionReadContext(operation: ConnectionOperation, limits: McpPhaseLimits): ConnectionReadContext;
|
|
25
|
+
//# sourceMappingURL=operation-limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-limits.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/operation-limits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEzF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,wBAAwB;IACrE,SAAS,EAAE,mBAAmB,CAAC;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,wBAAwB,CAAC;IACpC,IAAI,EAAE,wBAAwB,CAAC;CAChC;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,GAAG,cAAc,CAmBjB;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAUhE;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,cAAc,GACrB,qBAAqB,CAUvB"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
import type { ConnectionReadContext } from './operation-limits.js';
|
|
1
2
|
export interface SseFrame {
|
|
2
3
|
event: string;
|
|
3
4
|
data: string;
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
interface SseReadOptions {
|
|
7
|
+
totalLimit?: boolean;
|
|
8
|
+
context?: ConnectionReadContext;
|
|
9
|
+
currentContext?: () => ConnectionReadContext;
|
|
10
|
+
onChunk?: (bytes: number) => void;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}
|
|
13
|
+
/** Raw UTF-8 bytes include frame delimiters; partial code points never change the count. */
|
|
14
|
+
export declare function readSseFrames(response: Response, maxBytes: number, connectionName: string, options?: SseReadOptions): AsyncGenerator<SseFrame>;
|
|
15
|
+
export {};
|
|
7
16
|
//# sourceMappingURL=sse-frames.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-frames.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/sse-frames.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,
|
|
1
|
+
{"version":3,"file":"sse-frames.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/sse-frames.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,qBAAqB,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,4FAA4F;AAC5F,wBAAuB,aAAa,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,cAAmB,GAC3B,cAAc,CAAC,QAAQ,CAAC,CA4D1B"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { type JsonRpcRequest } from './json-rpc.js';
|
|
2
|
+
import { type ConnectionReadContext, type McpPhaseLimits } from './operation-limits.js';
|
|
2
3
|
interface SseSessionOptions {
|
|
3
4
|
baseUrl: string;
|
|
4
5
|
allowedHosts: ReadonlySet<string>;
|
|
5
6
|
headers: Record<string, string>;
|
|
6
7
|
timeoutMs: number;
|
|
7
8
|
maxResponseBytes: number;
|
|
9
|
+
phaseLimits?: McpPhaseLimits;
|
|
10
|
+
initialContext?: ConnectionReadContext;
|
|
8
11
|
}
|
|
9
12
|
/** One credential-scoped legacy connection, owned and closed by one tool call. */
|
|
10
13
|
export declare class SseSession {
|
|
@@ -13,13 +16,23 @@ export declare class SseSession {
|
|
|
13
16
|
private readonly options;
|
|
14
17
|
private readonly controller;
|
|
15
18
|
private readonly pending;
|
|
19
|
+
private readonly active;
|
|
20
|
+
private readonly streamBytes;
|
|
16
21
|
private readonly endpoint;
|
|
22
|
+
private readonly limits;
|
|
23
|
+
private endpointContext;
|
|
24
|
+
private endpointReady;
|
|
17
25
|
private failure;
|
|
18
26
|
constructor(connectionName: string, instanceId: string, options: SseSessionOptions);
|
|
19
|
-
ready(signal?: AbortSignal): Promise<string>;
|
|
27
|
+
ready(signal?: AbortSignal, context?: ConnectionReadContext): Promise<string>;
|
|
20
28
|
close(reason?: unknown): void;
|
|
21
|
-
|
|
29
|
+
private waitForEndpoint;
|
|
30
|
+
request(message: JsonRpcRequest, token: string | undefined, signal?: AbortSignal, context?: ConnectionReadContext): Promise<unknown>;
|
|
31
|
+
private requestWithin;
|
|
22
32
|
private assertStatus;
|
|
33
|
+
private currentContext;
|
|
34
|
+
/** Wrong-id frames and comments still consume every active operation's read budget. */
|
|
35
|
+
private observeChunk;
|
|
23
36
|
private open;
|
|
24
37
|
}
|
|
25
38
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-session.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/sse-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sse-session.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/sse-session.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,YAAY,CAAC;AAOzD,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAI5B,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAQD,kFAAkF;AAClF,qBAAa,UAAU;IAYnB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgD;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAU;IAEzB,YACmB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,EAQ5C;IAEK,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAalF;IAED,KAAK,CAAC,MAAM,GAAE,OAA6C,GAAG,IAAI,CAQjE;YAEa,eAAe;IAWvB,OAAO,CACX,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAUlB;YAEa,aAAa;YA2Cb,YAAY;IAsB1B,OAAO,CAAC,cAAc;IAUtB,uFAAuF;IACvF,OAAO,CAAC,YAAY;YAgBN,IAAI;CAiDnB"}
|
|
@@ -10,6 +10,22 @@ export interface McpToolFilter {
|
|
|
10
10
|
allow?: readonly string[];
|
|
11
11
|
block?: readonly string[];
|
|
12
12
|
}
|
|
13
|
+
/** The policy phase of a connection operation. */
|
|
14
|
+
export type ConnectionPhase = 'discovery' | 'call';
|
|
15
|
+
/** Fixed operation names carried by safe connection failures. */
|
|
16
|
+
export type ConnectionOperation = 'initialize' | 'notifications/initialized' | 'tools/list' | 'tools/call' | 'endpoint' | 'request' | 'openapi/spec' | 'openapi/call';
|
|
17
|
+
/** Positive finite integer bounds for one logical operation. */
|
|
18
|
+
export interface ConnectionOperationLimits {
|
|
19
|
+
/** Deadline in milliseconds, including transport negotiation and body reads. */
|
|
20
|
+
timeoutMs?: number;
|
|
21
|
+
/** Raw response-body byte ceiling, including SSE framing. */
|
|
22
|
+
maxResponseBytes?: number;
|
|
23
|
+
}
|
|
24
|
+
/** Phase-specific overrides of a connection's shared response bounds. */
|
|
25
|
+
export interface McpConnectionLimits {
|
|
26
|
+
discovery?: ConnectionOperationLimits;
|
|
27
|
+
call?: ConnectionOperationLimits;
|
|
28
|
+
}
|
|
13
29
|
/** Declarative MCP client connection, before it is mounted. */
|
|
14
30
|
export interface McpClientConnectionConfig {
|
|
15
31
|
name: string;
|
|
@@ -20,10 +36,12 @@ export interface McpClientConnectionConfig {
|
|
|
20
36
|
instanceKey?: string;
|
|
21
37
|
/** Extra hosts a request may name, beside the connection URL's own host. */
|
|
22
38
|
allowHosts?: readonly string[];
|
|
23
|
-
/**
|
|
39
|
+
/** Shared logical-operation deadline; defaults to 30_000 milliseconds. */
|
|
24
40
|
timeoutMs?: number;
|
|
25
41
|
/** Response body ceiling in bytes; defaults to 1 MiB. */
|
|
26
42
|
maxResponseBytes?: number;
|
|
43
|
+
/** Discovery and call overrides; omitted fields inherit the shared bounds. */
|
|
44
|
+
limits?: McpConnectionLimits;
|
|
27
45
|
/**
|
|
28
46
|
* Which surfaces this server's discovered tools appear on; default MCP and
|
|
29
47
|
* AGENT. Naming `['CLI']` is how a whole server becomes a set of commands,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAErF,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/connections/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAErF,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,MAAM,CAAC;AAEnD,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,2BAA2B,GAC3B,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,SAAS,GACT,cAAc,GACd,cAAc,CAAC;AAEnB,gEAAgE;AAChE,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,IAAI,CAAC,EAAE,yBAAyB,CAAC;CAClC;AAED,+DAA+D;AAC/D,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACvC;AAED,gCAAgC;AAChC,MAAM,WAAW,mBAAoB,SAAQ,yBAAyB;IACpE,IAAI,EAAE,KAAK,CAAC;CACb;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,uBAAuB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACvC;AAED,oCAAoC;AACpC,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE3E,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,0BAA0B,CAAC;CAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-result.d.ts","sourceRoot":"","sources":["../../src/tools/execute-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,QAAQ,EAIT,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"execute-result.d.ts","sourceRoot":"","sources":["../../src/tools/execute-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,QAAQ,EAIT,MAAM,oBAAoB,CAAC;AAK5B,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC3B;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAa7D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAkB7D;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAgBjE;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/tools/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-hook.d.ts","sourceRoot":"","sources":["../../../src/tools/internal/observe-hook.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/E"}
|
|
@@ -34,7 +34,8 @@ export interface SurfaceToolExtension<TContext extends Record<string, unknown> =
|
|
|
34
34
|
resolve: (args: Record<string, unknown>) => Partial<TContext> | Promise<Partial<TContext>>;
|
|
35
35
|
filter?: (service: ServiceDef, method: MethodDef) => boolean;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
/** Shared surface container; each executable mount supplies its own typed definition. */
|
|
38
|
+
export interface ToolSurfaceProjection<TRuntime> {
|
|
38
39
|
services?: readonly ServiceDef[];
|
|
39
40
|
runtimeTools?: readonly TRuntime[];
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-projector.d.ts","sourceRoot":"","sources":["../../../src/tools/internal/surface-projector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAK,MAAM,KAAK,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACf,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAUhE,wFAAwF;AACxF,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB;AAED,iFAAiF;AACjF,MAAM,WAAW,iCAAkC,SAAQ,4BAA4B;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/B;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB,CACnC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC;CAC9D;AAED,MAAM,WAAW,qBAAqB,
|
|
1
|
+
{"version":3,"file":"surface-projector.d.ts","sourceRoot":"","sources":["../../../src/tools/internal/surface-projector.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { McpServer, type ServerOptions } from '@modelcontextprotocol/server';
|
|
|
2
2
|
import type { ServiceDef, StitchLogger } from '../../server/types.js';
|
|
3
3
|
import type { ErrorHintFn, ToolCallHooks, ToolLifecycle } from '../execute-hooks.js';
|
|
4
4
|
import { type ToolExtend } from '../mount.js';
|
|
5
|
-
import type {
|
|
5
|
+
import type { RuntimeMcpToolDefinition } from '../runtime-tool-mcp.js';
|
|
6
6
|
import { type McpResourceDef } from './app.js';
|
|
7
7
|
import { type McpCatalogStamp } from './catalog.js';
|
|
8
8
|
import { type McpSchemaValidationConfig, type McpSurfaceRegistry, type PreparedMcpServerSurface, type PreparedMcpSurface, type ValidateMcpSchemasConfig } from './prepare.js';
|
|
@@ -117,7 +117,7 @@ export interface DirectMcpSurfaceConfig<TAuth> {
|
|
|
117
117
|
/** Contract services exposed as MCP tools — may depend on the identity. */
|
|
118
118
|
services: ServiceDef[] | ((auth: TAuth) => ServiceDef[]);
|
|
119
119
|
/** Framework-managed runtime tools — may depend on the identity. */
|
|
120
|
-
runtimeTools?: readonly
|
|
120
|
+
runtimeTools?: readonly RuntimeMcpToolDefinition[] | ((auth: TAuth) => readonly RuntimeMcpToolDefinition[]);
|
|
121
121
|
surfaces?: never;
|
|
122
122
|
selectSurface?: never;
|
|
123
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAET,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/mount.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,10 @@ import type { z } from 'zod';
|
|
|
3
3
|
import type { ServiceDef, StitchLogger } from '../../server/types.js';
|
|
4
4
|
import type { ErrorHintFn } from '../execute-hooks.js';
|
|
5
5
|
import type { ToolResult } from '../execute-result.js';
|
|
6
|
-
import { type McpProjectionPreparationConfig, type McpSchemaValidationConfig } from '../internal/surface-projector.js';
|
|
6
|
+
import { type McpProjectionPreparationConfig, type McpSchemaValidationConfig, type ToolSurfaceProjection } from '../internal/surface-projector.js';
|
|
7
7
|
import { type MountableTool, type ToolExtend } from '../mount.js';
|
|
8
|
-
import type {
|
|
8
|
+
import type { RuntimeMcpToolDefinition } from '../runtime-tool-mcp.js';
|
|
9
9
|
import type { ToolPresentationSchema } from '../schema/flatten.js';
|
|
10
|
-
import { type ToolSurfaceDefinition } from '../surface.js';
|
|
11
10
|
/**
|
|
12
11
|
* What to do when a tool's schema cannot be advertised on the MCP surface — a
|
|
13
12
|
* union / discriminated-union input (MCP needs an object), or a construct
|
|
@@ -53,14 +52,14 @@ export interface McpSurfacePreparationConfig extends McpProjectionPreparationCon
|
|
|
53
52
|
*/
|
|
54
53
|
export declare function prepareMcpSurface(services: ServiceDef | ServiceDef[], config?: McpSurfacePreparationConfig): PreparedMcpSurface;
|
|
55
54
|
/** One immutable, framework-managed MCP surface selected as a unit. */
|
|
56
|
-
export interface McpSurfaceDefinition extends
|
|
55
|
+
export interface McpSurfaceDefinition extends ToolSurfaceProjection<RuntimeMcpToolDefinition> {
|
|
57
56
|
services: ServiceDef[];
|
|
58
57
|
}
|
|
59
58
|
/** A finite set of surfaces known when the server/handler is constructed. */
|
|
60
59
|
export type McpSurfaceRegistry = Record<string, McpSurfaceDefinition>;
|
|
61
60
|
/** A runtime definition paired with its already validated MCP descriptor. */
|
|
62
61
|
export interface PreparedRuntimeMcpTool {
|
|
63
|
-
definition:
|
|
62
|
+
definition: RuntimeMcpToolDefinition;
|
|
64
63
|
descriptor: PreparedMcpTool;
|
|
65
64
|
}
|
|
66
65
|
/** Complete immutable tool descriptors for one fresh MCP server runtime. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/prepare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAE9B,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAiC,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE;;;;;;;;GAQG;AACH,gFAAgF;AAChF,YAAY,EACV,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAEvC,uFAAuF;AACvF,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAOD,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,cAAc,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,WAAW,GACtB,cAAc,CAyBhB;AAED,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,sBAAsB,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IACzB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,eAAe,EAAE,CAAC;AAE5D,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B;IACjF,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE,EACnC,MAAM,GAAE,2BAAgC,GACvC,kBAAkB,CAIpB;AA0CD,uEAAuE;AACvE,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB,CAAC,wBAAwB,CAAC;IAC3F,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,wBAAwB,CAAC;IACrC,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACjD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,MAAM,GAAE,2BAAgC,GACvC,wBAAwB,CAoC1B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type CallToolResult, type McpServer } from '@modelcontextprotocol/server';
|
|
2
2
|
import type { EndpointToolAnnotations, EndpointUiMeta } from '../../contract/tool-options.js';
|
|
3
3
|
import type { ToolExecutionOptions } from '../execute.js';
|
|
4
|
+
import type { ToolCallHooks } from '../execute-hooks.js';
|
|
4
5
|
import { type ToolResult } from '../execute-result.js';
|
|
5
6
|
import type { MountableTool } from '../mount.js';
|
|
6
7
|
import { type McpCatalogStamp } from './catalog.js';
|
|
@@ -13,7 +14,7 @@ export interface McpToolPresentation {
|
|
|
13
14
|
annotations?: EndpointToolAnnotations;
|
|
14
15
|
ui?: EndpointUiMeta;
|
|
15
16
|
/** A runtime tool's own MCP answer, built from its validated output. */
|
|
16
|
-
present
|
|
17
|
+
present?(data: unknown): unknown | Promise<unknown>;
|
|
17
18
|
}
|
|
18
19
|
/** The runner every registered tool calls through — `createToolRunner`'s. */
|
|
19
20
|
export type McpToolRunner = (tool: MountableTool, rawArgs: Record<string, unknown>, context?: Record<string, unknown>, options?: Pick<ToolExecutionOptions, 'finalizeOutput'>) => Promise<ToolResult>;
|
|
@@ -22,6 +23,8 @@ export interface McpToolRegistrationConfig {
|
|
|
22
23
|
formatResult: (result: ToolResult, mode: PreparedMcpTool['outputMode'], toolName: string) => CallToolResult;
|
|
23
24
|
catalog?: McpCatalogStamp;
|
|
24
25
|
multiRoundRuntime?: McpRoundRuntime;
|
|
26
|
+
hooks?: ToolCallHooks;
|
|
27
|
+
context?: Record<string, unknown>;
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* Register one prepared tool on one MCP server — the only place a tool's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/register.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,mBAAmB,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,KAAK,eAAe,EAA0C,MAAM,WAAW,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,SAAS,CAAC;AAIhE,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,wEAAwE;IACxE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrD;AAED,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,KACnD,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,aAAa,CAAC;IACvB,YAAY,EAAE,CACZ,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,EACnC,QAAQ,EAAE,MAAM,KACb,cAAc,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,mBAAmB,EACjC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,yBAAyB,GAChC,IAAI,CAgIN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/runtime-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,CACZ,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EACxD,QAAQ,EAAE,MAAM,KACb,cAAc,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,MAAM,EAAE,sBAAsB,GAC7B,IAAI,
|
|
1
|
+
{"version":3,"file":"runtime-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/mcp/runtime-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,CACZ,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,EACxD,QAAQ,EAAE,MAAM,KACb,cAAc,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,sBAAsB,EAAE,EACxC,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAgCN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/tools/remote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/tools/remote.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKnE,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAqC7D,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnE,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,EAChC,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,UAAU,CA+EZ"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ZodObject, ZodType, z } from 'zod';
|
|
2
|
+
import type { HttpMethod, ToolTransport } from '../contract/define.js';
|
|
3
|
+
import type { McpCallContext, RuntimeContext } from '../contract/runtime-context.js';
|
|
4
|
+
import type { EndpointMcpPolicy, EndpointToolAnnotations, EndpointUiMeta } from '../contract/tool-options.js';
|
|
5
|
+
import type { LocalStepDurability } from '../durability/contract.js';
|
|
6
|
+
export interface RuntimeToolIdentity {
|
|
7
|
+
serviceName: string;
|
|
8
|
+
action: string;
|
|
9
|
+
scope?: string;
|
|
10
|
+
/** Semantic operation verb for lifecycle and RequestEvent attribution. */
|
|
11
|
+
method: HttpMethod;
|
|
12
|
+
meta?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export type RuntimeMcpInput<TMcp extends EndpointMcpPolicy | undefined> = TMcp extends EndpointMcpPolicy<infer TRequests> ? {
|
|
15
|
+
mcpInput?: {
|
|
16
|
+
[Request in TRequests[number] as Request['key']]: z.output<Request['schema']>;
|
|
17
|
+
};
|
|
18
|
+
} : unknown;
|
|
19
|
+
export type RuntimeToolHandlerContext<TInput extends ZodObject, TMcp extends EndpointMcpPolicy | undefined = undefined> = RuntimeContext & {
|
|
20
|
+
params: undefined;
|
|
21
|
+
input: z.output<TInput>;
|
|
22
|
+
step?: LocalStepDurability['step'];
|
|
23
|
+
sleep?: LocalStepDurability['sleep'];
|
|
24
|
+
waitFor?: LocalStepDurability['waitFor'];
|
|
25
|
+
} & RuntimeMcpInput<TMcp>;
|
|
26
|
+
export type RuntimeToolOutput<TOutput extends ZodType | undefined> = TOutput extends ZodType ? z.output<TOutput> : undefined;
|
|
27
|
+
/** Parsed application context plus the canonical runtime-tool input fields. */
|
|
28
|
+
export type RuntimeToolFactoryHandlerContext<TContext extends ZodObject, TInput extends ZodObject, TMcp extends EndpointMcpPolicy | undefined = undefined> = Omit<RuntimeContext, 'input' | 'params' | 'mcp'> & Omit<z.output<TContext>, 'input' | 'params' | 'mcp'> & {
|
|
29
|
+
params: undefined;
|
|
30
|
+
input: z.output<TInput>;
|
|
31
|
+
mcp?: McpCallContext;
|
|
32
|
+
} & RuntimeMcpInput<TMcp>;
|
|
33
|
+
export interface RuntimeToolDefinitionBase<TInput extends ZodObject, TMcp extends EndpointMcpPolicy | undefined = undefined> {
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
identity: RuntimeToolIdentity;
|
|
37
|
+
input: TInput;
|
|
38
|
+
/** Default: MCP and AGENT. CLI is always explicit opt-in. */
|
|
39
|
+
transports?: readonly ToolTransport[];
|
|
40
|
+
annotations?: EndpointToolAnnotations;
|
|
41
|
+
ui?: EndpointUiMeta;
|
|
42
|
+
/** Opt-in multi-round input gate on the MCP transport only. */
|
|
43
|
+
mcp?: TMcp;
|
|
44
|
+
}
|
|
45
|
+
/** Executable contract shared by CLI and SDK adapters; presentation belongs to the adapter. */
|
|
46
|
+
export interface RuntimeToolExecutionWithOutput<TInput extends ZodObject, TOutput extends ZodType, TMcp extends EndpointMcpPolicy | undefined = undefined> extends RuntimeToolDefinitionBase<TInput, TMcp> {
|
|
47
|
+
output: TOutput;
|
|
48
|
+
handler: (context: RuntimeToolHandlerContext<TInput, TMcp>) => z.output<TOutput> | Promise<z.output<TOutput>>;
|
|
49
|
+
}
|
|
50
|
+
export interface RuntimeToolDefinitionWithoutOutput<TInput extends ZodObject, TMcp extends EndpointMcpPolicy | undefined = undefined> extends RuntimeToolDefinitionBase<TInput, TMcp> {
|
|
51
|
+
output?: never;
|
|
52
|
+
handler: (context: RuntimeToolHandlerContext<TInput, TMcp>) => void | Promise<void>;
|
|
53
|
+
present?: never;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Heterogeneous registration preserves each definition's validated input shape.
|
|
57
|
+
* Its erased handler cannot be called directly: the canonical mount supplies
|
|
58
|
+
* schema-parsed input before execution. Construction uses the generic contracts.
|
|
59
|
+
*/
|
|
60
|
+
export type RuntimeToolExecution = (Omit<RuntimeToolExecutionWithOutput<ZodObject, ZodType, EndpointMcpPolicy | undefined>, 'handler'> & {
|
|
61
|
+
handler: (context: never) => ReturnType<RuntimeToolExecutionWithOutput<ZodObject, ZodType, EndpointMcpPolicy | undefined>['handler']>;
|
|
62
|
+
}) | (Omit<RuntimeToolDefinitionWithoutOutput<ZodObject, EndpointMcpPolicy | undefined>, 'handler'> & {
|
|
63
|
+
handler: (context: never) => ReturnType<RuntimeToolDefinitionWithoutOutput<ZodObject, EndpointMcpPolicy | undefined>['handler']>;
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=runtime-tool-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-tool-execution.d.ts","sourceRoot":"","sources":["../../src/tools/runtime-tool-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/server';
|
|
2
|
+
import type { ZodObject, ZodType, z } from 'zod';
|
|
3
|
+
import type { EndpointMcpPolicy } from '../contract/tool-options.js';
|
|
4
|
+
import type { RuntimeToolExecution, RuntimeToolExecutionWithOutput } from './runtime-tool-execution.js';
|
|
5
|
+
/**
|
|
6
|
+
* Preserve the SDK's required content and metadata despite its extension index.
|
|
7
|
+
* Validation and error state belong to the canonical runner, never a presenter.
|
|
8
|
+
*/
|
|
9
|
+
export type RuntimeMcpPresentation = CallToolResult & {
|
|
10
|
+
structuredContent?: never;
|
|
11
|
+
isError?: never;
|
|
12
|
+
};
|
|
13
|
+
export interface RuntimeMcpToolPresenters<TOutput> {
|
|
14
|
+
mcp?: (output: TOutput) => RuntimeMcpPresentation | Promise<RuntimeMcpPresentation>;
|
|
15
|
+
}
|
|
16
|
+
/** Schema-aware construction for an MCP tool without an AI SDK declaration. */
|
|
17
|
+
export interface RuntimeMcpToolDefinitionWithOutput<TInput extends ZodObject, TOutput extends ZodType, TMcp extends EndpointMcpPolicy | undefined = undefined> extends RuntimeToolExecutionWithOutput<TInput, TOutput, TMcp> {
|
|
18
|
+
present?: RuntimeMcpToolPresenters<z.output<TOutput>>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Heterogeneous registration retains typed definitions. The canonical runner
|
|
22
|
+
* parses input and output before invoking either erased function.
|
|
23
|
+
*/
|
|
24
|
+
export type RuntimeMcpToolDefinition = RuntimeToolExecution & {
|
|
25
|
+
present?: RuntimeMcpToolPresenters<never>;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=runtime-tool-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-tool-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/runtime-tool-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG;IACpD,iBAAiB,CAAC,EAAE,KAAK,CAAC;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,wBAAwB,CAAC,OAAO;IAC/C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACrF;AAED,+EAA+E;AAC/E,MAAM,WAAW,kCAAkC,CACjD,MAAM,SAAS,SAAS,EACxB,OAAO,SAAS,OAAO,EACvB,IAAI,SAAS,iBAAiB,GAAG,SAAS,GAAG,SAAS,CACtD,SAAQ,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACvD;AAED;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,GAAG;IAC5D,OAAO,CAAC,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;CAC3C,CAAC"}
|