@toolgrain/mcp 0.3.0-alpha.0 → 0.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +17 -3
- package/dist/apps.d.ts +9 -0
- package/dist/apps.d.ts.map +1 -0
- package/dist/apps.js +21 -0
- package/dist/apps.js.map +1 -0
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +9 -1
- package/dist/connection.js.map +1 -1
- package/dist/dispatcher.d.ts +2 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +3 -3
- package/dist/dispatcher.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy/dispatcher.d.ts +2 -1
- package/dist/legacy/dispatcher.d.ts.map +1 -1
- package/dist/legacy/dispatcher.js +23 -8
- package/dist/legacy/dispatcher.js.map +1 -1
- package/dist/legacy/handlers.d.ts +1 -1
- package/dist/legacy/handlers.d.ts.map +1 -1
- package/dist/legacy/handlers.js +2 -2
- package/dist/legacy/handlers.js.map +1 -1
- package/dist/modern/dispatcher.d.ts +2 -1
- package/dist/modern/dispatcher.d.ts.map +1 -1
- package/dist/modern/dispatcher.js +22 -8
- package/dist/modern/dispatcher.js.map +1 -1
- package/dist/modern/handlers.d.ts +1 -1
- package/dist/modern/handlers.d.ts.map +1 -1
- package/dist/modern/handlers.js +2 -2
- package/dist/modern/handlers.js.map +1 -1
- package/dist/modern/results.d.ts +6 -0
- package/dist/modern/results.d.ts.map +1 -1
- package/dist/modern/results.js +9 -0
- package/dist/modern/results.js.map +1 -1
- package/dist/pending-requests.d.ts +2 -1
- package/dist/pending-requests.d.ts.map +1 -1
- package/dist/pending-requests.js +17 -0
- package/dist/pending-requests.js.map +1 -1
- package/dist/resources/definition.d.ts +45 -0
- package/dist/resources/definition.d.ts.map +1 -0
- package/dist/resources/definition.js +46 -0
- package/dist/resources/definition.js.map +1 -0
- package/dist/resources/registry.d.ts +13 -0
- package/dist/resources/registry.d.ts.map +1 -0
- package/dist/resources/registry.js +48 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/resources/requests.d.ts +13 -0
- package/dist/resources/requests.d.ts.map +1 -0
- package/dist/resources/requests.js +43 -0
- package/dist/resources/requests.js.map +1 -0
- package/dist/resources/validation.d.ts +33 -0
- package/dist/resources/validation.d.ts.map +1 -0
- package/dist/resources/validation.js +61 -0
- package/dist/resources/validation.js.map +1 -0
- package/dist/server.d.ts +7 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -3
- package/dist/server.js.map +1 -1
- package/dist/tools/context.d.ts +5 -4
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +1 -1
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/progress.d.ts +4 -2
- package/dist/tools/progress.d.ts.map +1 -1
- package/dist/tools/progress.js +40 -6
- package/dist/tools/progress.js.map +1 -1
- package/dist/tools/rich-result.d.ts +19 -19
- package/dist/tools/rich-result.d.ts.map +1 -1
- package/dist/tools/rich-result.js.map +1 -1
- package/package.json +2 -2
- package/src/apps.ts +23 -0
- package/src/connection.ts +15 -0
- package/src/dispatcher.ts +4 -0
- package/src/index.ts +9 -0
- package/src/legacy/dispatcher.ts +55 -13
- package/src/legacy/handlers.ts +2 -1
- package/src/modern/dispatcher.ts +57 -21
- package/src/modern/handlers.ts +2 -1
- package/src/modern/results.ts +10 -0
- package/src/pending-requests.ts +17 -1
- package/src/resources/definition.ts +92 -0
- package/src/resources/registry.ts +72 -0
- package/src/resources/requests.ts +59 -0
- package/src/resources/validation.ts +82 -0
- package/src/server.ts +11 -4
- package/src/tools/context.ts +5 -4
- package/src/tools/progress.ts +46 -8
- package/src/tools/rich-result.ts +53 -27
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @toolgrain/mcp
|
|
2
2
|
|
|
3
|
+
## 0.3.0-alpha.2
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add reusable fixed-URI resources with text and binary reads, request context, and endpoint authorization across both MCP revisions.
|
|
8
|
+
- Add native MCP Apps protocol contracts and typed React widgets with shared-entry routing.
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
- @toolgrain/protocol@0.3.0-alpha.2
|
|
14
|
+
|
|
15
|
+
## 0.3.0-alpha.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Pace request-scoped progress notifications at 100 ms intervals while preserving ordered delivery, backpressure, and prompt cancellation. Reject duplicate active progress tokens on shared message connections, release tokens on completion or cancellation, and preserve isolation between independent HTTP response streams.
|
|
20
|
+
- @toolgrain/protocol@0.3.0-alpha.1
|
|
21
|
+
|
|
3
22
|
## 0.3.0-alpha.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -70,13 +70,27 @@ Handlers can accept `execute(input, ctx)` to use request information and
|
|
|
70
70
|
`ctx.signal` for cooperative cancellation. Report client-requested progress with
|
|
71
71
|
`await ctx.reportProgress({ progress: 1, total: 10, message: "Processing" })`.
|
|
72
72
|
The bound method is safe to pass to helpers and becomes a no-op without a
|
|
73
|
-
progress token or delivery channel.
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
progress token or delivery channel. The first update sends immediately; later
|
|
74
|
+
updates are spaced at least 100 ms apart per invocation, preserving order and
|
|
75
|
+
backpressure. Await each report. Duplicate active progress tokens are rejected
|
|
76
|
+
on shared message connections; independent HTTP response streams remain isolated.
|
|
77
|
+
Use `toolContext()` for direct handler calls, which bypass server validation and
|
|
78
|
+
result conversion. Unexpected server execution failures return generic errors
|
|
79
|
+
and reach the optional `onError`
|
|
76
80
|
callback. Request-cached dependencies use `createContext()` and inferred
|
|
77
81
|
accessors; see the
|
|
78
82
|
[context guide](https://toolgrain.mintlify.site/guides/context).
|
|
79
83
|
|
|
84
|
+
## Fixed resources
|
|
85
|
+
|
|
86
|
+
Declare reusable resources with `resource({ uri, name, read })` and register a
|
|
87
|
+
readonly array through `createServer({ name, version, tools, resources })`.
|
|
88
|
+
Readers receive `(uri, ctx)` and return `{ contents: [{ uri, text }] }` or base64
|
|
89
|
+
`blob` entries, with optional metadata. The same context supports authorization,
|
|
90
|
+
lazy providers, and cancellation. Resource lists are static; templates,
|
|
91
|
+
subscriptions, and MCP Apps remain separate work. See the
|
|
92
|
+
[resource guide](https://toolgrain.mintlify.site/guides/resources).
|
|
93
|
+
|
|
80
94
|
## Transports and compatibility
|
|
81
95
|
|
|
82
96
|
Use `stdio()` or `http()` from
|
package/dist/apps.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolContext } from "./tools/context.js";
|
|
2
|
+
/** Advisory client claim; never an authorization decision. */
|
|
3
|
+
export type AppSupport = "supported" | "not-advertised" | "unknown";
|
|
4
|
+
/**
|
|
5
|
+
* Read the current request's MCP Apps claim. Legacy independent HTTP has no
|
|
6
|
+
* retained client capabilities and returns unknown. A claim is not verified.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getAppSupport(ctx: ToolContext): AppSupport;
|
|
9
|
+
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,UAAU,CAY1D"}
|
package/dist/apps.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { APPS_EXTENSION_ID, APPS_MIME_TYPE } from "@toolgrain/protocol/apps";
|
|
2
|
+
/**
|
|
3
|
+
* Read the current request's MCP Apps claim. Legacy independent HTTP has no
|
|
4
|
+
* retained client capabilities and returns unknown. A claim is not verified.
|
|
5
|
+
*/
|
|
6
|
+
export function getAppSupport(ctx) {
|
|
7
|
+
const capabilities = ctx.request.client?.capabilities;
|
|
8
|
+
if (!capabilities)
|
|
9
|
+
return "unknown";
|
|
10
|
+
const extensions = capabilities.extensions;
|
|
11
|
+
if (typeof extensions !== "object" || extensions === null)
|
|
12
|
+
return "not-advertised";
|
|
13
|
+
const ui = extensions[APPS_EXTENSION_ID];
|
|
14
|
+
if (typeof ui !== "object" || ui === null)
|
|
15
|
+
return "not-advertised";
|
|
16
|
+
const mimeTypes = ui.mimeTypes;
|
|
17
|
+
return Array.isArray(mimeTypes) && mimeTypes.includes(APPS_MIME_TYPE)
|
|
18
|
+
? "supported"
|
|
19
|
+
: "not-advertised";
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=apps.js.map
|
package/dist/apps.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps.js","sourceRoot":"","sources":["../src/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM7E;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAgB;IAC5C,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC;IACtD,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IACpC,MAAM,UAAU,GAAI,YAAyC,CAAC,UAAU,CAAC;IACzE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;QACvD,OAAO,gBAAgB,CAAC;IAC1B,MAAM,EAAE,GAAI,UAAsC,CAAC,iBAAiB,CAAC,CAAC;IACtE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC;IACnE,MAAM,SAAS,GAAI,EAA8B,CAAC,SAAS,CAAC;IAC5D,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;QACnE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,gBAAgB,CAAC;AACvB,CAAC"}
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EAEV,MAAM,gBAAgB,CAAC;AAGxB,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,UAAU,EACpB,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,MAAM,IAAI,GACnB,mBAAmB,CAErB;AAED,UAAU,mBAAmB;IAC3B,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
package/dist/connection.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { INVALID_REQUEST, PARSE_ERROR, } from "@toolgrain/protocol";
|
|
1
|
+
import { INVALID_PARAMS, INVALID_REQUEST, PARSE_ERROR, } from "@toolgrain/protocol";
|
|
2
2
|
import { reportError } from "./diagnostics.js";
|
|
3
3
|
import { executeRequest } from "./execute-request.js";
|
|
4
4
|
import { createLegacyConnection } from "./legacy/connection.js";
|
|
5
5
|
import { createPendingRequests } from "./pending-requests.js";
|
|
6
6
|
import { decode } from "./protocol/decode.js";
|
|
7
7
|
import { protocolError } from "./protocol/responses.js";
|
|
8
|
+
import { isProgressToken } from "./tools/progress.js";
|
|
8
9
|
import { claimTransport } from "./transport-ownership.js";
|
|
9
10
|
export function createConnection(dispatch, onError, onClose) {
|
|
10
11
|
return new Connection(dispatch, onError, onClose);
|
|
@@ -135,6 +136,13 @@ class Connection {
|
|
|
135
136
|
await this.send(protocolError(INVALID_REQUEST, "Request ID is already in use", request.id));
|
|
136
137
|
return;
|
|
137
138
|
}
|
|
139
|
+
const token = request.params?._meta
|
|
140
|
+
?.progressToken;
|
|
141
|
+
if (isProgressToken(token) && !pending.claimProgress(token)) {
|
|
142
|
+
pending.finish();
|
|
143
|
+
await this.send(protocolError(INVALID_PARAMS, "Progress token is already in use", request.id));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
138
146
|
const initialization = this.legacy.begin(request, prepared.protocolVersion);
|
|
139
147
|
try {
|
|
140
148
|
const response = await executeRequest(this.dispatch, request, {
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,WAAW,GAGZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAqB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/dispatcher.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type Implementation, type JSONRPCErrorResponse, type ProgressNotificati
|
|
|
2
2
|
import type { AuthIdentity } from "./auth/types.js";
|
|
3
3
|
import type { ContextRegistry } from "./context/registry.js";
|
|
4
4
|
import type { Request } from "./protocol/messages.js";
|
|
5
|
+
import type { ResourceRegistry } from "./resources/registry.js";
|
|
5
6
|
import type { ToolAdapter } from "./tools/adapter.js";
|
|
6
7
|
import type { ToolClient, ToolContext } from "./tools/context.js";
|
|
7
8
|
/** Per-request execution state supplied by the connection or independent caller. */
|
|
@@ -15,7 +16,7 @@ export interface RequestScope {
|
|
|
15
16
|
}
|
|
16
17
|
export type Dispatcher = (request: Request, scope: RequestScope, protocolVersion?: SupportedProtocolVersion) => Promise<ProtocolResponse | undefined>;
|
|
17
18
|
/** Compose the two protocol adapters around one execution registry. */
|
|
18
|
-
export declare function createDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry): Dispatcher;
|
|
19
|
+
export declare function createDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry, resources?: ResourceRegistry): Dispatcher;
|
|
19
20
|
/** Envelope errors have no negotiated connection when processing independent calls. */
|
|
20
21
|
export declare function formatErrorResponse(response: JSONRPCErrorResponse, protocolVersion?: SupportedProtocolVersion): ProtocolResponse;
|
|
21
22
|
//# sourceMappingURL=dispatcher.d.ts.map
|
package/dist/dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAO7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,wFAAwF;IACxF,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,eAAe,CAAC,EAAE,wBAAwB,KACvC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;AAE3C,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAO7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,wFAAwF;IACxF,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,cAAc,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,UAAU,GAAG,CACvB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,YAAY,EACnB,eAAe,CAAC,EAAE,wBAAwB,KACvC,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;AAE3C,uEAAuE;AACvE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,eAAe,EAC3B,SAAS,CAAC,EAAE,gBAAgB,GAC3B,UAAU,CAqBZ;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,eAAe,CAAC,EAAE,wBAAwB,GACzC,gBAAgB,CAIlB"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -4,9 +4,9 @@ import { errorResponse as legacyErrorResponse } from "./legacy/responses.js";
|
|
|
4
4
|
import { createModernDispatcher } from "./modern/dispatcher.js";
|
|
5
5
|
import { validateVersionContext } from "./protocol/version-metadata.js";
|
|
6
6
|
/** Compose the two protocol adapters around one execution registry. */
|
|
7
|
-
export function createDispatcher(tools, identity, instructions, providers) {
|
|
8
|
-
const legacy = createLegacyDispatcher(tools, identity, instructions, providers);
|
|
9
|
-
const modern = createModernDispatcher(tools, identity, instructions, providers);
|
|
7
|
+
export function createDispatcher(tools, identity, instructions, providers, resources) {
|
|
8
|
+
const legacy = createLegacyDispatcher(tools, identity, instructions, providers, resources);
|
|
9
|
+
const modern = createModernDispatcher(tools, identity, instructions, providers, resources);
|
|
10
10
|
return (request, scope, protocolVersion) => {
|
|
11
11
|
validateVersionContext(request, protocolVersion);
|
|
12
12
|
return usesLegacyProtocol(request, protocolVersion)
|
package/dist/dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,GAIxB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAqBxE,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAC9B,KAAkB,EAClB,QAAwB,EACxB,YAAqB,EACrB,SAA2B,EAC3B,SAA4B;IAE5B,MAAM,MAAM,GAAG,sBAAsB,CACnC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,CACV,CAAC;IACF,MAAM,MAAM,GAAG,sBAAsB,CACnC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,CACV,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE;QACzC,sBAAsB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACjD,OAAO,kBAAkB,CAAC,OAAO,EAAE,eAAe,CAAC;YACjD,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YACxB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CACjC,QAA8B,EAC9B,eAA0C;IAE1C,OAAO,eAAe,KAAK,uBAAuB;QAChD,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export type { AppSupport } from "./apps.js";
|
|
2
|
+
export { getAppSupport } from "./apps.js";
|
|
1
3
|
export { validateTokenAudience } from "./auth/audience.js";
|
|
2
4
|
export { createAuthAccessor } from "./auth/context.js";
|
|
3
5
|
export type { AuthErrorCode } from "./auth/errors.js";
|
|
@@ -8,6 +10,8 @@ export { authUrl as validateAuthUrl } from "./auth/url.js";
|
|
|
8
10
|
export type { ContextProvider } from "./context/definition.js";
|
|
9
11
|
export { createContext } from "./context/definition.js";
|
|
10
12
|
export type { ToolErrorDetails } from "./diagnostics.js";
|
|
13
|
+
export type { Resource, ResourceDefinition, ResourceMetadata, ResourceReadResult, } from "./resources/definition.js";
|
|
14
|
+
export { resource } from "./resources/definition.js";
|
|
11
15
|
export type { HandleOptions, Server, ServerOptions } from "./server.js";
|
|
12
16
|
export { createServer } from "./server.js";
|
|
13
17
|
export type { ToolClient, ToolContext, ToolContextOptions, ToolRequest, } from "./tools/context.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
export { getAppSupport } from "./apps.js";
|
|
1
2
|
export { validateTokenAudience } from "./auth/audience.js";
|
|
2
3
|
export { createAuthAccessor } from "./auth/context.js";
|
|
3
4
|
export { AuthError, isAuthError } from "./auth/errors.js";
|
|
4
5
|
export { validateAuthScopes } from "./auth/scopes.js";
|
|
5
6
|
export { authUrl as validateAuthUrl } from "./auth/url.js";
|
|
6
7
|
export { createContext } from "./context/definition.js";
|
|
8
|
+
export { resource } from "./resources/definition.js";
|
|
7
9
|
export { createServer } from "./server.js";
|
|
8
10
|
export { toolContext } from "./tools/context.js";
|
|
9
11
|
export { tool } from "./tools/definition.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQtD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQxD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -3,8 +3,9 @@ import type { JSONRPCResponse } from "@toolgrain/protocol/2025-06-18";
|
|
|
3
3
|
import type { ContextRegistry } from "../context/registry.js";
|
|
4
4
|
import type { RequestScope } from "../dispatcher.js";
|
|
5
5
|
import type { Request } from "../protocol/messages.js";
|
|
6
|
+
import type { ResourceRegistry } from "../resources/registry.js";
|
|
6
7
|
import type { ToolAdapter } from "../tools/adapter.js";
|
|
7
8
|
/** Initialization selects this adapter only without an explicit modern context. */
|
|
8
9
|
export declare function usesLegacyProtocol(request: Request, protocolVersion?: SupportedProtocolVersion): boolean;
|
|
9
|
-
export declare function createLegacyDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry): (request: Request, scope: RequestScope) => Promise<JSONRPCResponse | undefined>;
|
|
10
|
+
export declare function createLegacyDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry, resources?: ResourceRegistry): (request: Request, scope: RequestScope) => Promise<JSONRPCResponse | undefined>;
|
|
10
11
|
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/legacy/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/legacy/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,eAAe,CAAC,EAAE,wBAAwB,GACzC,OAAO,CAOT;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,eAAe,EAC3B,SAAS,CAAC,EAAE,gBAAgB,aAGjB,OAAO,SACT,YAAY,KAClB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAkExC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LEGACY_PROTOCOL_VERSION, METHOD_NOT_FOUND, } from "@toolgrain/protocol";
|
|
2
2
|
import { ProtocolError } from "../protocol/responses.js";
|
|
3
3
|
import { hasProtocolVersionMetadata } from "../protocol/version-metadata.js";
|
|
4
|
+
import { listResources, listResourceTemplates, readResource, requireResources, } from "../resources/requests.js";
|
|
4
5
|
import { createToolContext } from "../tools/context.js";
|
|
5
6
|
import { callTool, initialize, listTools, ping } from "./handlers.js";
|
|
6
7
|
import { successResponse } from "./responses.js";
|
|
@@ -11,12 +12,18 @@ export function usesLegacyProtocol(request, protocolVersion) {
|
|
|
11
12
|
!hasProtocolVersionMetadata(request) &&
|
|
12
13
|
request.method === "initialize"));
|
|
13
14
|
}
|
|
14
|
-
export function createLegacyDispatcher(tools, identity, instructions, providers) {
|
|
15
|
+
export function createLegacyDispatcher(tools, identity, instructions, providers, resources) {
|
|
15
16
|
return async (request, scope) => {
|
|
17
|
+
const context = (params) => createToolContext(scope.signal, {
|
|
18
|
+
id: request.id,
|
|
19
|
+
protocolVersion: LEGACY_PROTOCOL_VERSION,
|
|
20
|
+
...(scope.client === undefined ? {} : { client: scope.client }),
|
|
21
|
+
meta: params._meta ?? {},
|
|
22
|
+
}, scope.auth, providers, scope.reportProgress);
|
|
16
23
|
let result;
|
|
17
24
|
switch (request.method) {
|
|
18
25
|
case "initialize":
|
|
19
|
-
result = initialize(request.params, identity, instructions);
|
|
26
|
+
result = initialize(request.params, identity, instructions, resources !== undefined);
|
|
20
27
|
break;
|
|
21
28
|
case "ping":
|
|
22
29
|
result = ping(request.params);
|
|
@@ -25,12 +32,20 @@ export function createLegacyDispatcher(tools, identity, instructions, providers)
|
|
|
25
32
|
result = listTools(request.params, tools);
|
|
26
33
|
break;
|
|
27
34
|
case "tools/call":
|
|
28
|
-
result = await callTool(request.params, tools,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
result = await callTool(request.params, tools, context);
|
|
36
|
+
break;
|
|
37
|
+
case "resources/list": {
|
|
38
|
+
const listed = listResources(request.params, requireResources(resources));
|
|
39
|
+
result = {
|
|
40
|
+
resources: listed.resources.map(({ icons: _icons, ...entry }) => entry),
|
|
41
|
+
};
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case "resources/templates/list":
|
|
45
|
+
result = listResourceTemplates(request.params, requireResources(resources));
|
|
46
|
+
break;
|
|
47
|
+
case "resources/read":
|
|
48
|
+
result = await readResource(request.params, requireResources(resources), context, -32002);
|
|
34
49
|
break;
|
|
35
50
|
default:
|
|
36
51
|
throw new ProtocolError(METHOD_NOT_FOUND, "Method not found");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/legacy/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAChC,OAAgB,EAChB,eAA0C;IAE1C,OAAO,CACL,eAAe,KAAK,uBAAuB;QAC3C,CAAC,eAAe,KAAK,SAAS;YAC5B,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACpC,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAkB,EAClB,QAAwB,EACxB,YAAqB,EACrB,SAA2B;
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/legacy/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { InitializeResult, ListToolsResult } from "@toolgrain/protocol/2025
|
|
|
3
3
|
import type { ToolAdapter } from "../tools/adapter.js";
|
|
4
4
|
import type { ToolContext } from "../tools/context.js";
|
|
5
5
|
/** Initialization can only negotiate the initialization-based revision. */
|
|
6
|
-
export declare function initialize(params: unknown, identity: Implementation, instructions?: string): InitializeResult;
|
|
6
|
+
export declare function initialize(params: unknown, identity: Implementation, instructions?: string, resources?: boolean): InitializeResult;
|
|
7
7
|
export declare function ping(params: unknown): Record<string, never>;
|
|
8
8
|
export declare function listTools(params: unknown, tools: ToolAdapter): ListToolsResult;
|
|
9
9
|
export declare function callTool(params: unknown, tools: ToolAdapter, ctx: (params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/legacy/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASvD,2EAA2E;AAC3E,wBAAgB,UAAU,CACxB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/legacy/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASvD,2EAA2E;AAC3E,wBAAgB,UAAU,CACxB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,UAAQ,GAChB,gBAAgB,CAYlB;AAED,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAI3D;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,eAAe,CAcjB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,KAAK,WAAW,gFAO9E"}
|
package/dist/legacy/handlers.js
CHANGED
|
@@ -4,12 +4,12 @@ import { callTool as executeToolCall } from "../tools/call.js";
|
|
|
4
4
|
import { callParams, commonParams, initializeParams, listParams, } from "./messages.js";
|
|
5
5
|
import { toolResult } from "./results.js";
|
|
6
6
|
/** Initialization can only negotiate the initialization-based revision. */
|
|
7
|
-
export function initialize(params, identity, instructions) {
|
|
7
|
+
export function initialize(params, identity, instructions, resources = false) {
|
|
8
8
|
if (!initializeParams.safeParse(params).success)
|
|
9
9
|
throw new ProtocolError(INVALID_PARAMS, "Invalid initialization parameters");
|
|
10
10
|
return {
|
|
11
11
|
protocolVersion: LEGACY_PROTOCOL_VERSION,
|
|
12
|
-
capabilities: { tools: {} },
|
|
12
|
+
capabilities: { tools: {}, ...(resources ? { resources: {} } : {}) },
|
|
13
13
|
serverInfo: { ...identity },
|
|
14
14
|
...(instructions === undefined ? {} : { instructions }),
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/legacy/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CACxB,MAAe,EACf,QAAwB,EACxB,YAAqB;
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/legacy/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CACxB,MAAe,EACf,QAAwB,EACxB,YAAqB,EACrB,SAAS,GAAG,KAAK;IAEjB,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO;QAC7C,MAAM,IAAI,aAAa,CACrB,cAAc,EACd,mCAAmC,CACpC,CAAC;IACJ,OAAO;QACL,eAAe,EAAE,uBAAuB;QACxC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QACpE,UAAU,EAAE,EAAE,GAAG,QAAQ,EAAE;QAC3B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,MAAe;IAClC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO;QAC/C,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAe,EACf,KAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;QACvC,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1E,OAAO;QACL,KAAK,EAAE,KAAK;aACT,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,GAAG,UAAU;YACb,GAAG,CAAC,YAAY,EAAE,IAAI,KAAK,QAAQ;gBACjC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,IAAI,EAAE,QAAiB,EAAE,EAAE;gBAChE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAe,EACf,KAAkB,EAClB,GAA6E;IAE7E,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { type Implementation, type JSONRPCResultResponse } from "@toolgrain/prot
|
|
|
2
2
|
import type { ContextRegistry } from "../context/registry.js";
|
|
3
3
|
import type { RequestScope } from "../dispatcher.js";
|
|
4
4
|
import type { Request } from "../protocol/messages.js";
|
|
5
|
+
import type { ResourceRegistry } from "../resources/registry.js";
|
|
5
6
|
import type { ToolAdapter } from "../tools/adapter.js";
|
|
6
|
-
export declare function createModernDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry): (request: Request, scope: RequestScope) => Promise<JSONRPCResultResponse | undefined>;
|
|
7
|
+
export declare function createModernDispatcher(tools: ToolAdapter, identity: Implementation, instructions?: string, providers?: ContextRegistry, resources?: ResourceRegistry): (request: Request, scope: RequestScope) => Promise<JSONRPCResultResponse | undefined>;
|
|
7
8
|
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/modern/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAM3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/modern/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EAEnB,KAAK,qBAAqB,EAM3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAOjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQvD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,eAAe,EAC3B,SAAS,CAAC,EAAE,gBAAgB,aAGjB,OAAO,SACT,YAAY,KAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAyE9C"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { INVALID_PARAMS, METHOD_NOT_FOUND, PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, UNSUPPORTED_PROTOCOL_VERSION, } from "@toolgrain/protocol";
|
|
2
2
|
import { ProtocolError } from "../protocol/responses.js";
|
|
3
|
+
import { listResources, listResourceTemplates, readResource, requireResources, } from "../resources/requests.js";
|
|
3
4
|
import { createToolContext, toolClient } from "../tools/context.js";
|
|
4
5
|
import { callTool, discover, listTools } from "./handlers.js";
|
|
5
6
|
import { metadata } from "./metadata.js";
|
|
6
7
|
import { successResponse } from "./responses.js";
|
|
7
|
-
|
|
8
|
+
import { resourceResult } from "./results.js";
|
|
9
|
+
export function createModernDispatcher(tools, identity, instructions, providers, resources) {
|
|
8
10
|
return async (request, scope) => {
|
|
9
11
|
const parsed = metadata.safeParse(request.params?._meta);
|
|
10
12
|
if (!parsed.success)
|
|
@@ -12,22 +14,34 @@ export function createModernDispatcher(tools, identity, instructions, providers)
|
|
|
12
14
|
const revision = parsed.data["io.modelcontextprotocol/protocolVersion"];
|
|
13
15
|
if (revision !== PROTOCOL_VERSION)
|
|
14
16
|
throw new ProtocolError(UNSUPPORTED_PROTOCOL_VERSION, "Unsupported protocol version", { supported: [...SUPPORTED_PROTOCOL_VERSIONS], requested: revision });
|
|
17
|
+
const context = (params) => createToolContext(scope.signal, {
|
|
18
|
+
id: request.id,
|
|
19
|
+
protocolVersion: PROTOCOL_VERSION,
|
|
20
|
+
client: toolClient(parsed.data["io.modelcontextprotocol/clientInfo"], parsed.data["io.modelcontextprotocol/clientCapabilities"]),
|
|
21
|
+
meta: params._meta ?? {},
|
|
22
|
+
}, scope.auth, providers, scope.reportProgress);
|
|
15
23
|
let result;
|
|
16
24
|
switch (request.method) {
|
|
17
25
|
case "server/discover":
|
|
18
|
-
result = discover(request.params, instructions);
|
|
26
|
+
result = discover(request.params, instructions, resources !== undefined);
|
|
19
27
|
break;
|
|
20
28
|
case "tools/list":
|
|
21
29
|
result = listTools(request.params, tools);
|
|
22
30
|
break;
|
|
23
31
|
case "tools/call":
|
|
24
|
-
result = await callTool(request.params, tools,
|
|
25
|
-
id: request.id,
|
|
26
|
-
protocolVersion: PROTOCOL_VERSION,
|
|
27
|
-
client: toolClient(parsed.data["io.modelcontextprotocol/clientInfo"], parsed.data["io.modelcontextprotocol/clientCapabilities"]),
|
|
28
|
-
meta: params._meta ?? {},
|
|
29
|
-
}, scope.auth, providers, scope.reportProgress));
|
|
32
|
+
result = await callTool(request.params, tools, context);
|
|
30
33
|
break;
|
|
34
|
+
case "resources/list":
|
|
35
|
+
result = resourceResult(listResources(request.params, requireResources(resources)));
|
|
36
|
+
break;
|
|
37
|
+
case "resources/templates/list":
|
|
38
|
+
result = resourceResult(listResourceTemplates(request.params, requireResources(resources)));
|
|
39
|
+
break;
|
|
40
|
+
case "resources/read": {
|
|
41
|
+
const value = await readResource(request.params, requireResources(resources), context, INVALID_PARAMS);
|
|
42
|
+
result = value === undefined ? undefined : resourceResult(value);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
31
45
|
default:
|
|
32
46
|
throw new ProtocolError(METHOD_NOT_FOUND, "Method not found");
|
|
33
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/modern/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAEd,gBAAgB,EAChB,gBAAgB,EAEhB,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/modern/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type DiscoverResult, type ListToolsResult } from "@toolgrain/protocol";
|
|
2
2
|
import type { ToolAdapter } from "../tools/adapter.js";
|
|
3
3
|
import type { ToolContext } from "../tools/context.js";
|
|
4
|
-
export declare function discover(params: unknown, instructions?: string): DiscoverResult;
|
|
4
|
+
export declare function discover(params: unknown, instructions?: string, resources?: boolean): DiscoverResult;
|
|
5
5
|
export declare function listTools(params: unknown, tools: ToolAdapter): ListToolsResult;
|
|
6
6
|
export declare function callTool(params: unknown, tools: ToolAdapter, ctx: (params: {
|
|
7
7
|
_meta?: Record<string, unknown> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/modern/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,wBAAgB,QAAQ,CACtB,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/modern/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,wBAAgB,QAAQ,CACtB,MAAM,EAAE,OAAO,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,UAAQ,GAChB,cAAc,CAWhB;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,GACjB,eAAe,CAUjB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,KAAK,WAAW,qEAO9E"}
|
package/dist/modern/handlers.js
CHANGED
|
@@ -3,7 +3,7 @@ import { ProtocolError } from "../protocol/responses.js";
|
|
|
3
3
|
import { callTool as executeToolCall } from "../tools/call.js";
|
|
4
4
|
import { callParams, commonParams, listParams } from "./messages.js";
|
|
5
5
|
import { toolResult } from "./results.js";
|
|
6
|
-
export function discover(params, instructions) {
|
|
6
|
+
export function discover(params, instructions, resources = false) {
|
|
7
7
|
if (!commonParams.safeParse(params).success)
|
|
8
8
|
throw new ProtocolError(INVALID_PARAMS, "Invalid discovery parameters");
|
|
9
9
|
return {
|
|
@@ -11,7 +11,7 @@ export function discover(params, instructions) {
|
|
|
11
11
|
ttlMs: 0,
|
|
12
12
|
cacheScope: "private",
|
|
13
13
|
supportedVersions: [...SUPPORTED_PROTOCOL_VERSIONS],
|
|
14
|
-
capabilities: { tools: {} },
|
|
14
|
+
capabilities: { tools: {}, ...(resources ? { resources: {} } : {}) },
|
|
15
15
|
...(instructions === undefined ? {} : { instructions }),
|
|
16
16
|
};
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/modern/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEd,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,QAAQ,CACtB,MAAe,EACf,YAAqB;
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/modern/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAEd,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,QAAQ,CACtB,MAAe,EACf,YAAqB,EACrB,SAAS,GAAG,KAAK;IAEjB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO;QACzC,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1E,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,SAAS;QACrB,iBAAiB,EAAE,CAAC,GAAG,2BAA2B,CAAC;QACnD,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QACpE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAe,EACf,KAAkB;IAElB,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;QACvC,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1E,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAe,EACf,KAAkB,EAClB,GAA6E;IAE7E,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,OAAO;QACjB,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,8BAA8B,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC"}
|
package/dist/modern/results.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { CallToolResult } from "@toolgrain/protocol";
|
|
2
2
|
import type { ToolExecutionResult } from "../tools/results.js";
|
|
3
3
|
export declare function toolResult(result: ToolExecutionResult): CallToolResult;
|
|
4
|
+
/** Resource results do not enable caching until applications have a cache-policy API. */
|
|
5
|
+
export declare function resourceResult<Result extends object>(result: Result): Result & {
|
|
6
|
+
resultType: "complete";
|
|
7
|
+
ttlMs: number;
|
|
8
|
+
cacheScope: "private";
|
|
9
|
+
};
|
|
4
10
|
//# sourceMappingURL=results.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/modern/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAEtE"}
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/modern/results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAEtE;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM;gBAGpD,UAAU;;gBAEV,SAAS;EAExB"}
|
package/dist/modern/results.js
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export function toolResult(result) {
|
|
2
2
|
return { resultType: "complete", ...result };
|
|
3
3
|
}
|
|
4
|
+
/** Resource results do not enable caching until applications have a cache-policy API. */
|
|
5
|
+
export function resourceResult(result) {
|
|
6
|
+
return {
|
|
7
|
+
...result,
|
|
8
|
+
resultType: "complete",
|
|
9
|
+
ttlMs: 0,
|
|
10
|
+
cacheScope: "private",
|
|
11
|
+
};
|
|
12
|
+
}
|
|
4
13
|
//# sourceMappingURL=results.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/modern/results.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CAAC,MAA2B;IACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/modern/results.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CAAC,MAA2B;IACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,cAAc,CAAwB,MAAc;IAClE,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,UAAmB;QAC/B,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,SAAkB;KAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { RequestId } from "@toolgrain/protocol";
|
|
1
|
+
import type { ProgressToken, RequestId } from "@toolgrain/protocol";
|
|
2
2
|
/** Owns duplicate detection and cancellation signals for in-flight requests. */
|
|
3
3
|
export declare function createPendingRequests(isOpen: () => boolean): {
|
|
4
4
|
begin(id: RequestId): {
|
|
5
5
|
signal: AbortSignal;
|
|
6
6
|
isActive: () => boolean;
|
|
7
|
+
claimProgress(token: ProgressToken): boolean;
|
|
7
8
|
finish: () => void;
|
|
8
9
|
} | undefined;
|
|
9
10
|
cancel(id: RequestId): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-requests.d.ts","sourceRoot":"","sources":["../src/pending-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pending-requests.d.ts","sourceRoot":"","sources":["../src/pending-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEpE,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,OAAO;IAIvD,KAAK,KAAK,SAAS;;;6BAQM,aAAa;;;IAmBtC,MAAM,KAAK,SAAS;IAKpB,KAAK;EAMR"}
|