@kya-os/mcp 1.17.0 → 1.20.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 +398 -0
- package/CONFORMANCE.md +18 -6
- package/README.md +59 -0
- package/SPEC.md +57 -4
- package/dist/card/cimd.js +6 -2
- package/dist/card/cimd.js.map +1 -1
- package/dist/card/delegation.d.ts +12 -3
- package/dist/card/delegation.js +13 -7
- package/dist/card/delegation.js.map +1 -1
- package/dist/card/index.d.ts +1 -0
- package/dist/card/index.js +1 -0
- package/dist/card/index.js.map +1 -1
- package/dist/card/revocation.d.ts +15 -4
- package/dist/card/revocation.js +9 -4
- package/dist/card/revocation.js.map +1 -1
- package/dist/card/status-list-proof.d.ts +32 -0
- package/dist/card/status-list-proof.js +102 -0
- package/dist/card/status-list-proof.js.map +1 -0
- package/dist/delegation/chain-enforcement.d.ts +16 -0
- package/dist/delegation/chain-enforcement.js +17 -0
- package/dist/delegation/chain-enforcement.js.map +1 -1
- package/dist/delegation/verification-method-key.d.ts +4 -1
- package/dist/delegation/verification-method-key.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/index.d.ts +3 -1
- package/dist/middleware/index.js +2 -0
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/kya-os-transport.d.ts +43 -12
- package/dist/middleware/kya-os-transport.js +151 -28
- package/dist/middleware/kya-os-transport.js.map +1 -1
- package/dist/middleware/mcp-tool-callback.d.ts +48 -0
- package/dist/middleware/mcp-tool-callback.js +38 -0
- package/dist/middleware/mcp-tool-callback.js.map +1 -0
- package/dist/middleware/serve-in-process.d.ts +41 -0
- package/dist/middleware/serve-in-process.js +86 -0
- package/dist/middleware/serve-in-process.js.map +1 -0
- package/dist/middleware/with-kya-os-server.d.ts +20 -3
- package/dist/middleware/with-kya-os-server.js +16 -1
- package/dist/middleware/with-kya-os-server.js.map +1 -1
- package/dist/middleware/with-kya-os.config-types.d.ts +34 -0
- package/dist/middleware/with-kya-os.d.ts +4 -0
- package/dist/middleware/with-kya-os.delegation-gate.d.ts +2 -1
- package/dist/middleware/with-kya-os.delegation-gate.js +12 -18
- package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.delegation-verify.d.ts +7 -12
- package/dist/middleware/with-kya-os.delegation-verify.js +44 -9
- package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
- package/dist/middleware/with-kya-os.deps.d.ts +15 -4
- package/dist/middleware/with-kya-os.helpers.d.ts +5 -0
- package/dist/middleware/with-kya-os.helpers.js +13 -0
- package/dist/middleware/with-kya-os.helpers.js.map +1 -1
- package/dist/middleware/with-kya-os.js +23 -0
- package/dist/middleware/with-kya-os.js.map +1 -1
- package/dist/middleware/with-kya-os.outcome.d.ts +18 -0
- package/dist/middleware/with-kya-os.outcome.js +36 -0
- package/dist/middleware/with-kya-os.outcome.js.map +1 -0
- package/dist/middleware/with-kya-os.policy-gate.d.ts +2 -1
- package/dist/middleware/with-kya-os.policy-gate.js +2 -1
- package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.session.d.ts +76 -10
- package/dist/middleware/with-kya-os.session.js +739 -164
- package/dist/middleware/with-kya-os.session.js.map +1 -1
- package/dist/middleware/with-kya-os.types.d.ts +102 -8
- package/dist/proof/generator.d.ts +13 -0
- package/dist/proof/generator.js +15 -0
- package/dist/proof/generator.js.map +1 -1
- package/dist/proof/verifier.js +14 -9
- package/dist/proof/verifier.js.map +1 -1
- package/package.json +18 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-enforcement.js","sourceRoot":"","sources":["../../src/delegation/chain-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,uBAAuB,GAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,2EAA2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,UAAgC;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACtF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACtC,gBAAsC,EACtC,eAAqC;IAErC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;IAClE,MAAM,OAAO,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;IAChE,MAAM,eAAe,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IACnD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,cAAc,OAAO,2DAA2D,QAAQ,EAAE;SACnG,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,cAAc,OAAO,qDAAqD,QAAQ,KAAK,eAAe;iBAC3G,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;iBAC1C,IAAI,CAAC,IAAI,CAAC,EAAE;SAChB,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1G,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,cAAc,OAAO,gCAAgC,QAAQ,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACrG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"chain-enforcement.js","sourceRoot":"","sources":["../../src/delegation/chain-enforcement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { VerificationMethod } from './vc-verifier.types.js';
|
|
2
|
+
/** The verification-method fields that can carry an Ed25519 public key. */
|
|
3
|
+
type VerificationMethodKeyMaterial = Pick<VerificationMethod, 'publicKeyJwk' | 'publicKeyMultibase' | 'publicKeyBase58'>;
|
|
2
4
|
/**
|
|
3
5
|
* The verification method's public key as an Ed25519 OKP JWK: an existing
|
|
4
6
|
* `publicKeyJwk` is returned untouched (byte-for-byte — zero behavior change
|
|
@@ -7,8 +9,9 @@ import type { VerificationMethod } from './vc-verifier.types.js';
|
|
|
7
9
|
* prefix) or legacy `publicKeyBase58`. `undefined` when no usable Ed25519 key
|
|
8
10
|
* is present (fail-closed).
|
|
9
11
|
*/
|
|
10
|
-
export declare function verificationMethodJwk(method:
|
|
12
|
+
export declare function verificationMethodJwk(method: VerificationMethodKeyMaterial): {
|
|
11
13
|
kty: string;
|
|
12
14
|
crv: string;
|
|
13
15
|
x: string;
|
|
14
16
|
} | undefined;
|
|
17
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-method-key.js","sourceRoot":"","sources":["../../src/delegation/verification-method-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"verification-method-key.js","sourceRoot":"","sources":["../../src/delegation/verification-method-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAQhC;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAqC;IAErC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,YAAuD,CAAC;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,iHAAiH;AACjH,SAAS,aAAa,CAAC,MAAqC;IAC1D,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/D,wEAAwE;YACxE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,wBAAwB,CAAC,CAAC;YAC3F,MAAM,QAAQ,GACZ,OAAO,CAAC,MAAM,KAAK,yBAAyB,GAAG,yBAAyB,CAAC,MAAM;gBAC/E,OAAO,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,QAAQ,CAAC,MAAM,KAAK,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;YAC/E,OAAO,OAAO,CAAC,MAAM,KAAK,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,iCAAiC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export { AuditLogProvider, MemoryAuditLogProvider, NoopAuditLogProvider, buildAu
|
|
|
51
51
|
export * from './audit/index.js';
|
|
52
52
|
export { GrantStore, MemoryGrantStore, type Grant, type MemoryGrantStoreOptions, } from './providers/grant-store.js';
|
|
53
53
|
export { PendingFlowStore, MemoryPendingFlowStore, type PendingFlow, type MemoryPendingFlowStoreOptions, } from './authz/oidc/pending-flow-store.js';
|
|
54
|
-
export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsServer, withKyaOs, generateIdentity, type WithKyaOsOptions, } from './middleware/index.js';
|
|
54
|
+
export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsToolResult, type KyaOsServer, type KyaOsAuthorizationOutcome, type KyaOsOutcomeProofRequest, type KyaOsOutcomeProver, type KyaOsChallengeResult, type KyaOsChallengeFormatter, withKyaOs, generateIdentity, type WithKyaOsOptions, toMcpToolCallback, type McpToolCallback, type McpToolCallbackResult, createKyaOsTransport, serveInProcess, type InProcessServer, } from './middleware/index.js';
|
|
55
55
|
export * from './policy/index.js';
|
|
56
56
|
export { matchScope, scopeSatisfies, type ScopeMatcher, type ScopeSatisfaction, } from './delegation/scope-matcher.js';
|
|
57
57
|
export { logger, createDefaultConsoleLogger, type Logger, type Level, } from './logging/index.js';
|
package/dist/index.js
CHANGED
|
@@ -63,7 +63,7 @@ export { GrantStore, MemoryGrantStore, } from './providers/grant-store.js';
|
|
|
63
63
|
// Pending OAuth/OIDC PKCE-flow store (durable resume across instances/restarts).
|
|
64
64
|
export { PendingFlowStore, MemoryPendingFlowStore, } from './authz/oidc/pending-flow-store.js';
|
|
65
65
|
// Middleware
|
|
66
|
-
export { createKyaOsMiddleware, withKyaOs, generateIdentity, } from './middleware/index.js';
|
|
66
|
+
export { createKyaOsMiddleware, withKyaOs, generateIdentity, toMcpToolCallback, createKyaOsTransport, serveInProcess, } from './middleware/index.js';
|
|
67
67
|
// Policy-as-Code subsystem + step-up gate
|
|
68
68
|
export * from './policy/index.js';
|
|
69
69
|
export { matchScope, scopeSatisfies, } from './delegation/scope-matcher.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
*
|
|
7
7
|
* For the low-level `Server` API or custom patterns, use `createKyaOsMiddleware` directly.
|
|
8
8
|
*/
|
|
9
|
-
export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsServer, } from './with-kya-os.js';
|
|
9
|
+
export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsToolResult, type KyaOsServer, type KyaOsAuthorizationOutcome, type KyaOsOutcomeProofRequest, type KyaOsOutcomeProver, type KyaOsChallengeResult, type KyaOsChallengeFormatter, } from './with-kya-os.js';
|
|
10
10
|
export { withKyaOs, generateIdentity, type WithKyaOsOptions, } from './with-kya-os-server.js';
|
|
11
|
+
export { toMcpToolCallback, type McpToolCallback, type McpToolCallbackResult, } from './mcp-tool-callback.js';
|
|
11
12
|
export { createKyaOsTransport, type Transport, type JSONRPCMessage, } from './kya-os-transport.js';
|
|
13
|
+
export { serveInProcess, type InProcessServer } from './serve-in-process.js';
|
|
12
14
|
export { card, CardBuilder, type CardBuilderInit, type AccountableToOptions, type VcInput, } from '../card/builder.js';
|
|
13
15
|
export { withKyaOsCard, requireProof, readCardProof, type KyaOsCardMount, type ServerJsonLike, type DidDocumentLike, type ProofGuard, type ProofGateResult, type ProofGateError, type ProofGateCode, type RequireProofOptions, type MinProofLevel, } from '../card/middleware.js';
|
package/dist/middleware/index.js
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export { createKyaOsMiddleware, } from './with-kya-os.js';
|
|
10
10
|
export { withKyaOs, generateIdentity, } from './with-kya-os-server.js';
|
|
11
|
+
export { toMcpToolCallback, } from './mcp-tool-callback.js';
|
|
11
12
|
export { createKyaOsTransport, } from './kya-os-transport.js';
|
|
13
|
+
export { serveInProcess } from './serve-in-process.js';
|
|
12
14
|
// Entity Card DevX surface — the 10-minute adoption path. The fluent `card()` builder and the
|
|
13
15
|
// `withKyaOsCard` / `requireProof` wrappers hide the RFC 9421/9449/8785 machinery behind
|
|
14
16
|
// ergonomics (see `src/card/builder.ts` + `src/card/middleware.ts`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GActB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,GAGlB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAE7E,8FAA8F;AAC9F,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,IAAI,EACJ,WAAW,GAIZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,GAUd,MAAM,uBAAuB,CAAC"}
|
|
@@ -13,30 +13,61 @@
|
|
|
13
13
|
* 1. Incoming `tools/call` requests are captured (by id) to record tool
|
|
14
14
|
* name and arguments for proof generation.
|
|
15
15
|
* 2. Outgoing responses for those ids get a proof injected into `_meta`,
|
|
16
|
-
* unless the middleware's own wrappers
|
|
17
|
-
*
|
|
18
|
-
* 3.
|
|
19
|
-
*
|
|
16
|
+
* unless the middleware's own wrappers produced the result, which they
|
|
17
|
+
* mark with a private per-middleware stamp.
|
|
18
|
+
* 3. The wrappers leave their proofs here, and every proof is made in
|
|
19
|
+
* `send()`, over the result as the MCP SDK finished it: the SDK changes
|
|
20
|
+
* a result after the handler returns (`resultType` on the 2026-07-28
|
|
21
|
+
* revision, a filled-in or appended `content`), and the proof covers
|
|
22
|
+
* what it covers of the result the client receives.
|
|
23
|
+
* 4. All other message types pass through unmodified, except that the
|
|
24
|
+
* middleware's private members are removed from every result before it
|
|
25
|
+
* is sent.
|
|
20
26
|
*
|
|
21
27
|
* @module kya-os-transport
|
|
22
28
|
*/
|
|
23
29
|
import type { KyaOsMiddleware } from "./with-kya-os.js";
|
|
24
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Minimal Transport interface — matches @modelcontextprotocol/sdk Transport.
|
|
32
|
+
* The callbacks are declared as methods, so an SDK transport, whose callbacks
|
|
33
|
+
* take the SDK's own message type, is accepted as it is (SDK 1 and SDK 2).
|
|
34
|
+
* The SDK's send options and message context (`extra`: the session id,
|
|
35
|
+
* `authInfo`, `requestInfo`) are opaque here and passed through unchanged.
|
|
36
|
+
*/
|
|
25
37
|
export interface Transport {
|
|
26
38
|
start(): Promise<void>;
|
|
27
|
-
send(message: JSONRPCMessage): Promise<void>;
|
|
39
|
+
send(message: JSONRPCMessage, options?: unknown): Promise<void>;
|
|
28
40
|
close(): Promise<void>;
|
|
29
|
-
onmessage
|
|
30
|
-
onclose
|
|
31
|
-
onerror
|
|
41
|
+
onmessage?(message: JSONRPCMessage, extra?: unknown): void;
|
|
42
|
+
onclose?(): void;
|
|
43
|
+
onerror?(error: Error): void;
|
|
44
|
+
sessionId?: string;
|
|
45
|
+
setProtocolVersion?(version: string): void;
|
|
46
|
+
setSupportedProtocolVersions?(versions: string[]): void;
|
|
47
|
+
/** SDK 2: installs per-tool OAuth `scopeChallenge` enforcement on an HTTP transport. */
|
|
48
|
+
setScopeChallengeResolver?(resolver: unknown): void;
|
|
49
|
+
readonly hasPerRequestStream?: boolean;
|
|
32
50
|
}
|
|
33
51
|
export type JSONRPCMessage = Record<string, unknown>;
|
|
34
52
|
/**
|
|
35
53
|
* Creates a transport wrapper that injects KYA-OS proofs into `tools/call`
|
|
36
|
-
* responses
|
|
54
|
+
* responses, and makes the proofs the middleware's wrappers and
|
|
55
|
+
* `proveOutcome` leave to it, over each result as it is sent. A server on the
|
|
56
|
+
* low-level `Server` API connects through it:
|
|
57
|
+
* `server.connect(createKyaOsTransport(transport, kyaos))`.
|
|
58
|
+
*
|
|
59
|
+
* It proves and audits the result of every tool it is not told to exclude,
|
|
60
|
+
* including tools registered without a wrapper, as `withKyaOs` does. A
|
|
61
|
+
* low-level server that used only the wrappers on an unwrapped transport,
|
|
62
|
+
* which 1.19.0 allowed, sent its unwrapped tools' results unproven; through
|
|
63
|
+
* this transport they carry a proof too.
|
|
37
64
|
*
|
|
38
65
|
* @param inner - The real transport (Stdio, HTTP, etc.)
|
|
39
66
|
* @param kyaos - Configured KyaOsMiddleware instance
|
|
40
|
-
* @param exclude -
|
|
67
|
+
* @param exclude - More tool names whose results are not proved by the
|
|
68
|
+
* transport itself, in addition to the protocol tools `_kyaos` and
|
|
69
|
+
* `_kyaos_handshake`, which are always excluded (as `excludeTools` adds
|
|
70
|
+
* to them in `withKyaOs`). A wrapper's own proof is made whatever this
|
|
71
|
+
* says.
|
|
41
72
|
*/
|
|
42
|
-
export declare function createKyaOsTransport(inner: Transport, kyaos: KyaOsMiddleware, exclude?: string[]): Transport;
|
|
73
|
+
export declare function createKyaOsTransport(inner: Transport, kyaos: KyaOsMiddleware, exclude?: readonly string[]): Transport;
|
|
@@ -13,33 +13,72 @@
|
|
|
13
13
|
* 1. Incoming `tools/call` requests are captured (by id) to record tool
|
|
14
14
|
* name and arguments for proof generation.
|
|
15
15
|
* 2. Outgoing responses for those ids get a proof injected into `_meta`,
|
|
16
|
-
* unless the middleware's own wrappers
|
|
17
|
-
*
|
|
18
|
-
* 3.
|
|
19
|
-
*
|
|
16
|
+
* unless the middleware's own wrappers produced the result, which they
|
|
17
|
+
* mark with a private per-middleware stamp.
|
|
18
|
+
* 3. The wrappers leave their proofs here, and every proof is made in
|
|
19
|
+
* `send()`, over the result as the MCP SDK finished it: the SDK changes
|
|
20
|
+
* a result after the handler returns (`resultType` on the 2026-07-28
|
|
21
|
+
* revision, a filled-in or appended `content`), and the proof covers
|
|
22
|
+
* what it covers of the result the client receives.
|
|
23
|
+
* 4. All other message types pass through unmodified, except that the
|
|
24
|
+
* middleware's private members are removed from every result before it
|
|
25
|
+
* is sent.
|
|
20
26
|
*
|
|
21
27
|
* @module kya-os-transport
|
|
22
28
|
*/
|
|
23
|
-
import { attachOuterProofLayer,
|
|
29
|
+
import { attachOuterProofLayer, withoutOutcomeMeta, withoutPrivateMeta, withoutPrivateMembers, } from "./with-kya-os.session.js";
|
|
24
30
|
import { logger } from "../logging/index.js";
|
|
25
31
|
/**
|
|
26
32
|
* Creates a transport wrapper that injects KYA-OS proofs into `tools/call`
|
|
27
|
-
* responses
|
|
33
|
+
* responses, and makes the proofs the middleware's wrappers and
|
|
34
|
+
* `proveOutcome` leave to it, over each result as it is sent. A server on the
|
|
35
|
+
* low-level `Server` API connects through it:
|
|
36
|
+
* `server.connect(createKyaOsTransport(transport, kyaos))`.
|
|
37
|
+
*
|
|
38
|
+
* It proves and audits the result of every tool it is not told to exclude,
|
|
39
|
+
* including tools registered without a wrapper, as `withKyaOs` does. A
|
|
40
|
+
* low-level server that used only the wrappers on an unwrapped transport,
|
|
41
|
+
* which 1.19.0 allowed, sent its unwrapped tools' results unproven; through
|
|
42
|
+
* this transport they carry a proof too.
|
|
28
43
|
*
|
|
29
44
|
* @param inner - The real transport (Stdio, HTTP, etc.)
|
|
30
45
|
* @param kyaos - Configured KyaOsMiddleware instance
|
|
31
|
-
* @param exclude -
|
|
46
|
+
* @param exclude - More tool names whose results are not proved by the
|
|
47
|
+
* transport itself, in addition to the protocol tools `_kyaos` and
|
|
48
|
+
* `_kyaos_handshake`, which are always excluded (as `excludeTools` adds
|
|
49
|
+
* to them in `withKyaOs`). A wrapper's own proof is made whatever this
|
|
50
|
+
* says.
|
|
32
51
|
*/
|
|
33
|
-
export function createKyaOsTransport(inner, kyaos, exclude = [
|
|
52
|
+
export function createKyaOsTransport(inner, kyaos, exclude = []) {
|
|
34
53
|
// Request id → { toolName, args } for pending tool calls
|
|
35
54
|
const pending = new Map();
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
55
|
+
const excluded = new Set(["_kyaos", "_kyaos_handshake", ...exclude]);
|
|
56
|
+
// From here on the middleware's wrappers stamp what they return, and the
|
|
57
|
+
// layer tells a stamped result from one that only looks proven, and makes
|
|
58
|
+
// the proofs they leave to it. Undefined for a custom middleware, whose
|
|
59
|
+
// results are all proved here.
|
|
60
|
+
const layer = attachOuterProofLayer(kyaos.wrapWithProof);
|
|
61
|
+
// While started and not closed, this transport counts as open for the
|
|
62
|
+
// middleware; its wrappers run only then.
|
|
63
|
+
let release;
|
|
64
|
+
const releaseOpen = () => {
|
|
65
|
+
release?.();
|
|
66
|
+
release = undefined;
|
|
67
|
+
};
|
|
68
|
+
// The close handler the server installed through the wrapper. It runs the
|
|
69
|
+
// handler the caller set on the inner transport before connecting, which
|
|
70
|
+
// the server read through the getter below and chained.
|
|
71
|
+
let closeHandler;
|
|
72
|
+
const closed = () => {
|
|
73
|
+
releaseOpen();
|
|
74
|
+
closeHandler?.();
|
|
75
|
+
};
|
|
40
76
|
const wrapper = {
|
|
41
77
|
start: () => inner.start(),
|
|
42
|
-
close: () =>
|
|
78
|
+
close: async () => {
|
|
79
|
+
releaseOpen();
|
|
80
|
+
await inner.close();
|
|
81
|
+
},
|
|
43
82
|
// McpServer writes into wrapper.onmessage — forward to inner so the
|
|
44
83
|
// real transport can drive it.
|
|
45
84
|
set onmessage(handler) {
|
|
@@ -48,11 +87,17 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
48
87
|
get onmessage() {
|
|
49
88
|
return inner.onmessage;
|
|
50
89
|
},
|
|
90
|
+
// The inner transport may close on its own (the client went away), so
|
|
91
|
+
// its close also ends this transport's count. Before a handler is set
|
|
92
|
+
// here, the getter reports the inner transport's own: the SDK reads it
|
|
93
|
+
// when it connects and chains it (a session map's cleanup, say), so it
|
|
94
|
+
// keeps running.
|
|
51
95
|
set onclose(handler) {
|
|
52
|
-
|
|
96
|
+
closeHandler = handler;
|
|
97
|
+
inner.onclose = closed;
|
|
53
98
|
},
|
|
54
99
|
get onclose() {
|
|
55
|
-
return inner.onclose;
|
|
100
|
+
return closeHandler ?? (inner.onclose === closed ? undefined : inner.onclose);
|
|
56
101
|
},
|
|
57
102
|
set onerror(handler) {
|
|
58
103
|
inner.onerror = handler;
|
|
@@ -60,9 +105,43 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
60
105
|
get onerror() {
|
|
61
106
|
return inner.onerror;
|
|
62
107
|
},
|
|
108
|
+
// What the SDK reads off, or hands to, the transport it connects passes
|
|
109
|
+
// through to the inner transport: its session id (which the SDK puts on
|
|
110
|
+
// each request's context), the negotiated protocol versions, the scope
|
|
111
|
+
// challenge resolver, and whether it streams per request. These are every
|
|
112
|
+
// transport member SDK 1 and SDK 2 servers read or feature-detect.
|
|
113
|
+
get sessionId() {
|
|
114
|
+
return inner.sessionId;
|
|
115
|
+
},
|
|
116
|
+
set sessionId(sessionId) {
|
|
117
|
+
inner.sessionId = sessionId;
|
|
118
|
+
},
|
|
119
|
+
get setProtocolVersion() {
|
|
120
|
+
return inner.setProtocolVersion === undefined
|
|
121
|
+
? undefined
|
|
122
|
+
: (version) => inner.setProtocolVersion(version);
|
|
123
|
+
},
|
|
124
|
+
get setSupportedProtocolVersions() {
|
|
125
|
+
return inner.setSupportedProtocolVersions === undefined
|
|
126
|
+
? undefined
|
|
127
|
+
: (versions) => inner.setSupportedProtocolVersions(versions);
|
|
128
|
+
},
|
|
129
|
+
// SDK 2's McpServer installs per-tool OAuth scope enforcement only when
|
|
130
|
+
// the transport has this member (an `in` check), so a wrapper without it
|
|
131
|
+
// silently switched the enforcement off.
|
|
132
|
+
get setScopeChallengeResolver() {
|
|
133
|
+
return inner.setScopeChallengeResolver === undefined
|
|
134
|
+
? undefined
|
|
135
|
+
: (resolver) => inner.setScopeChallengeResolver(resolver);
|
|
136
|
+
},
|
|
137
|
+
get hasPerRequestStream() {
|
|
138
|
+
return inner.hasPerRequestStream;
|
|
139
|
+
},
|
|
63
140
|
// McpServer calls send() for every outgoing message.
|
|
64
141
|
// Intercept tools/call responses here to inject proofs.
|
|
65
|
-
|
|
142
|
+
// The SDK's send options (relatedRequestId, resumption tokens) are
|
|
143
|
+
// passed through unchanged.
|
|
144
|
+
async send(message, options) {
|
|
66
145
|
// Only a response (result or error, no method) can answer a pending call:
|
|
67
146
|
// a server-initiated request such as elicitation/create numbers its ids
|
|
68
147
|
// in the server's own space, so its id can equal a pending client id.
|
|
@@ -74,11 +153,12 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
74
153
|
const rawResult = message.result;
|
|
75
154
|
// A result the middleware's wrappers already proved or audited (a
|
|
76
155
|
// delegated call's scope-bearing proof, a signed needs_authorization
|
|
77
|
-
// outcome, an
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
|
|
156
|
+
// outcome, an outcome application code proved with proveOutcome, an
|
|
157
|
+
// audited error) passes through: proving it again would replace its
|
|
158
|
+
// proof and record its lifecycle twice. Only the stamp shows that;
|
|
159
|
+
// proof, proofError and audit members can come from any handler,
|
|
160
|
+
// including one relaying an upstream server's result.
|
|
161
|
+
if (rawResult && layer?.owns(rawResult) !== true) {
|
|
82
162
|
// Those members are untrusted here, so they are removed and the
|
|
83
163
|
// result is proved and audited as any other. Other members stay.
|
|
84
164
|
const received = withoutOutcomeMeta(rawResult);
|
|
@@ -116,13 +196,33 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
116
196
|
}
|
|
117
197
|
}
|
|
118
198
|
}
|
|
119
|
-
//
|
|
199
|
+
// Whichever path the message took: a proof a wrapper left for the wire
|
|
200
|
+
// is made now, over the result as it is sent, and only by a proof left
|
|
201
|
+
// for the tool this answers. The private members never leave the
|
|
202
|
+
// process, from a result or from any other part of a message: a
|
|
203
|
+
// notification or request's params (a tool logging a wrapped result,
|
|
204
|
+
// say) or an error's data.
|
|
120
205
|
if (typeof message.result === "object" && message.result !== null) {
|
|
121
|
-
const
|
|
206
|
+
const result = message.result;
|
|
207
|
+
const sent = layer
|
|
208
|
+
? await layer.send(result, call === undefined ? undefined : { toolName: call.toolName })
|
|
209
|
+
: withoutPrivateMeta(result);
|
|
122
210
|
if (sent !== message.result)
|
|
123
211
|
message = { ...message, result: sent };
|
|
124
212
|
}
|
|
125
|
-
|
|
213
|
+
const scrub = (value) => (layer ? layer.scrub(value) : withoutPrivateMembers(value));
|
|
214
|
+
if (message.params !== undefined) {
|
|
215
|
+
const params = scrub(message.params);
|
|
216
|
+
if (params !== message.params)
|
|
217
|
+
message = { ...message, params };
|
|
218
|
+
}
|
|
219
|
+
const error = message.error;
|
|
220
|
+
if (error !== null && typeof error === "object" && error.data !== undefined) {
|
|
221
|
+
const data = scrub(error.data);
|
|
222
|
+
if (data !== error.data)
|
|
223
|
+
message = { ...message, error: { ...error, data } };
|
|
224
|
+
}
|
|
225
|
+
return options === undefined ? inner.send(message) : inner.send(message, options);
|
|
126
226
|
},
|
|
127
227
|
};
|
|
128
228
|
// Intercept incoming messages from the real transport to capture
|
|
@@ -131,18 +231,35 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
131
231
|
// via server.connect() — so we proxy through the getter/setter above and
|
|
132
232
|
// add our interception in a one-time initializer on start().
|
|
133
233
|
const originalStart = inner.start.bind(inner);
|
|
234
|
+
let interceptor;
|
|
134
235
|
wrapper.start = async () => {
|
|
135
236
|
await originalStart();
|
|
237
|
+
// Counted once however often start() is called, until the transport closes.
|
|
238
|
+
release ??= layer?.open();
|
|
239
|
+
// A close handler set on the inner transport and never read through the
|
|
240
|
+
// wrapper is adopted, so it still runs, after the one installed here.
|
|
241
|
+
const foreign = inner.onclose;
|
|
242
|
+
if (foreign !== undefined && foreign !== closed) {
|
|
243
|
+
const installed = closeHandler;
|
|
244
|
+
closeHandler = installed === undefined ? foreign : () => {
|
|
245
|
+
foreign();
|
|
246
|
+
installed();
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
inner.onclose = closed;
|
|
136
250
|
// At this point McpServer has called server.connect(wrapper) which set
|
|
137
251
|
// wrapper.onmessage = <McpServer handler>. That assignment forwarded to
|
|
138
|
-
// inner.onmessage via the setter above. Now we inject our interceptor
|
|
252
|
+
// inner.onmessage via the setter above. Now we inject our interceptor,
|
|
253
|
+
// once.
|
|
254
|
+
if (interceptor !== undefined && inner.onmessage === interceptor)
|
|
255
|
+
return;
|
|
139
256
|
const downstream = inner.onmessage;
|
|
140
|
-
|
|
257
|
+
interceptor = (message, extra) => {
|
|
141
258
|
if (message.method === "tools/call" &&
|
|
142
259
|
message.id !== undefined) {
|
|
143
260
|
const params = message.params;
|
|
144
261
|
const toolName = params?.name;
|
|
145
|
-
if (toolName && !
|
|
262
|
+
if (toolName && !excluded.has(toolName)) {
|
|
146
263
|
pending.set(message.id, {
|
|
147
264
|
toolName,
|
|
148
265
|
args: params?.arguments ?? {},
|
|
@@ -155,8 +272,14 @@ export function createKyaOsTransport(inner, kyaos, exclude = ["_kyaos", "_kyaos_
|
|
|
155
272
|
const params = message.params;
|
|
156
273
|
pending.delete(params?.requestId);
|
|
157
274
|
}
|
|
158
|
-
|
|
275
|
+
// The SDK's message context (session id, authInfo, requestInfo) rides
|
|
276
|
+
// through unchanged.
|
|
277
|
+
if (extra === undefined)
|
|
278
|
+
downstream?.(message);
|
|
279
|
+
else
|
|
280
|
+
downstream?.(message, extra);
|
|
159
281
|
};
|
|
282
|
+
inner.onmessage = interceptor;
|
|
160
283
|
};
|
|
161
284
|
return wrapper;
|
|
162
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kya-os-transport.js","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"kya-os-transport.js","sourceRoot":"","sources":["../../src/middleware/kya-os-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAqC7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAgB,EAChB,KAAsB,EACtB,UAA6B,EAAE;IAE/B,yDAAyD;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,+BAA+B;IAC/B,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD,sEAAsE;IACtE,0CAA0C;IAC1C,IAAI,OAAiC,CAAC;IACtC,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,GAAG,SAAS,CAAC;IACtB,CAAC,CAAC;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,wDAAwD;IACxD,IAAI,YAAsC,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAc;QACzB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,WAAW,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,SAAS,CAAC,OAAqE;YACjF,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;QAC5B,CAAC;QACD,IAAI,SAAS;YACX,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,iBAAiB;QACjB,IAAI,OAAO,CAAC,OAAiC;YAC3C,YAAY,GAAG,OAAO,CAAC;YACvB,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,OAAO;YACT,OAAO,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,OAAO,CAAC,OAA2C;YACrD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO;YACT,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,SAAS;YACX,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,SAAS,CAAC,SAA6B;YACzC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,kBAAkB;YACpB,OAAO,KAAK,CAAC,kBAAkB,KAAK,SAAS;gBAC3C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAmB,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,4BAA4B;YAC9B,OAAO,KAAK,CAAC,4BAA4B,KAAK,SAAS;gBACrD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,4BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC;QACD,wEAAwE;QACxE,yEAAyE;QACzE,yCAAyC;QACzC,IAAI,yBAAyB;YAC3B,OAAO,KAAK,CAAC,yBAAyB,KAAK,SAAS;gBAClD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,yBAA0B,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,mBAAmB;YACrB,OAAO,KAAK,CAAC,mBAAmB,CAAC;QACnC,CAAC;QAED,qDAAqD;QACrD,wDAAwD;QACxD,mEAAmE;QACnE,4BAA4B;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAuB,EAAE,OAAiB;YACnD,0EAA0E;YAC1E,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,UAAU,GACd,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC;YAC9E,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,UAAU,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1E,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgC,CAAC;gBAC3D,kEAAkE;gBAClE,qEAAqE;gBACrE,oEAAoE;gBACpE,oEAAoE;gBACpE,mEAAmE;gBACnE,iEAAiE;gBACjE,sDAAsD;gBACtD,IAAI,SAAS,IAAI,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjD,gEAAgE;oBAChE,iEAAiE;oBACjE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC/C,IAAI,CAAC;wBACH,gEAAgE;wBAChE,kEAAkE;wBAClE,kEAAkE;wBAClE,0DAA0D;wBAC1D,MAAM,OAAO,GAAqB,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;wBAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAC7D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,gEAAgE;wBAChE,+DAA+D;wBAC/D,+DAA+D;wBAC/D,OAAO,GAAG;4BACR,GAAG,OAAO;4BACV,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;yBAC9E,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;4BACxD,IAAI,EAAE,IAAI,CAAC,QAAQ;4BACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC9D,CAAC,CAAC;wBACH,OAAO,GAAG;4BACR,GAAG,OAAO;4BACV,MAAM,EAAE;gCACN,GAAG,QAAQ;gCACX,KAAK,EAAE;oCACL,GAAG,CAAE,QAAQ,CAAC,KAA6C,IAAI,EAAE,CAAC;oCAClE,UAAU,EAAE,gDAAgD;iCAC7D;6BACF;yBACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,uEAAuE;YACvE,iEAAiE;YACjE,gEAAgE;YAChE,qEAAqE;YACrE,2BAA2B;YAC3B,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAoB,CAAC;gBAC5C,MAAM,IAAI,GAAG,KAAK;oBAChB,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACxF,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM;oBAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACtE,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvG,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,MAAM,KAAK,OAAO,CAAC,MAAM;oBAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAuC,CAAC;YAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI;oBAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YAC/E,CAAC;YAED,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;IAEF,iEAAiE;IACjE,uDAAuD;IACvD,6EAA6E;IAC7E,yEAAyE;IACzE,6DAA6D;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,WAA4D,CAAC;IACjE,OAAO,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,EAAE,CAAC;QACtB,4EAA4E;QAC5E,OAAO,KAAK,KAAK,EAAE,IAAI,EAAE,CAAC;QAC1B,wEAAwE;QACxE,sEAAsE;QACtE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,YAAY,CAAC;YAC/B,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;gBACtD,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,CAAC;YACd,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACvB,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,QAAQ;QACR,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW;YAAE,OAAO;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;QACnC,WAAW,GAAG,CAAC,OAAuB,EAAE,KAAe,EAAE,EAAE;YACzD,IACE,OAAO,CAAC,MAAM,KAAK,YAAY;gBAC/B,OAAO,CAAC,EAAE,KAAK,SAAS,EACxB,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAEV,CAAC;gBACd,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC;gBAC9B,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;wBACtB,QAAQ;wBACR,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE;qBAC9B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;gBACxD,oEAAoE;gBACpE,sBAAsB;gBACtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAA6C,CAAC;gBACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,sEAAsE;YACtE,qBAAqB;YACrB,IAAI,KAAK,KAAK,SAAS;gBAAE,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;;gBAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a middleware-wrapped handler with the MCP SDK's `registerTool`.
|
|
3
|
+
*
|
|
4
|
+
* A {@link KyaOsToolHandler} takes `(args, sessionId?, context?)`; the SDK
|
|
5
|
+
* calls a tool callback with `(args, extra)`, where `extra` is its own request
|
|
6
|
+
* context. Passed straight in, the handler needs a cast, and the SDK's context
|
|
7
|
+
* then arrives as the KYA-OS session id: no session matches it, and the
|
|
8
|
+
* result goes out unproven. The adapter passes the arguments alone, so the
|
|
9
|
+
* handler resolves its session as any unthreaded call does. The SDK's
|
|
10
|
+
* transport session id is a different thing from a KYA-OS session id, so
|
|
11
|
+
* nothing from `extra` is forwarded.
|
|
12
|
+
*
|
|
13
|
+
* Typed structurally, so this package keeps no type dependency on the SDK.
|
|
14
|
+
*/
|
|
15
|
+
import type { KyaOsToolHandler } from "./with-kya-os.types.js";
|
|
16
|
+
/** A tool result in the shape the MCP SDK's `registerTool` callback returns. */
|
|
17
|
+
export interface McpToolCallbackResult {
|
|
18
|
+
content: Array<{
|
|
19
|
+
type: "text";
|
|
20
|
+
text: string;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}>;
|
|
23
|
+
structuredContent?: Record<string, unknown>;
|
|
24
|
+
isError?: boolean;
|
|
25
|
+
_meta?: Record<string, unknown>;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A callback for a tool registered with an `inputSchema` (an empty one for a
|
|
30
|
+
* tool without arguments): the SDK calls it with the parsed arguments and its
|
|
31
|
+
* request context.
|
|
32
|
+
*/
|
|
33
|
+
export type McpToolCallback<T extends Record<string, unknown> = Record<string, unknown>> = (args: T, extra: unknown) => Promise<McpToolCallbackResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Adapt a handler (one from `wrapWithProof`, `wrapWithDelegation`,
|
|
36
|
+
* `withPolicyGate`, or one returning `proveOutcome`'s result) to the MCP
|
|
37
|
+
* SDK's `registerTool`, with no cast:
|
|
38
|
+
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* server.registerTool('checkout', { inputSchema }, toMcpToolCallback(gated));
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* The handler's result is returned as it is; the SDK validates it. Called
|
|
44
|
+
* with one argument, which is how the SDK calls a tool registered without an
|
|
45
|
+
* `inputSchema`, the handler gets empty arguments instead of the SDK's
|
|
46
|
+
* request context.
|
|
47
|
+
*/
|
|
48
|
+
export declare function toMcpToolCallback<T extends Record<string, unknown> = Record<string, unknown>>(handler: KyaOsToolHandler<T>): McpToolCallback<T>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register a middleware-wrapped handler with the MCP SDK's `registerTool`.
|
|
3
|
+
*
|
|
4
|
+
* A {@link KyaOsToolHandler} takes `(args, sessionId?, context?)`; the SDK
|
|
5
|
+
* calls a tool callback with `(args, extra)`, where `extra` is its own request
|
|
6
|
+
* context. Passed straight in, the handler needs a cast, and the SDK's context
|
|
7
|
+
* then arrives as the KYA-OS session id: no session matches it, and the
|
|
8
|
+
* result goes out unproven. The adapter passes the arguments alone, so the
|
|
9
|
+
* handler resolves its session as any unthreaded call does. The SDK's
|
|
10
|
+
* transport session id is a different thing from a KYA-OS session id, so
|
|
11
|
+
* nothing from `extra` is forwarded.
|
|
12
|
+
*
|
|
13
|
+
* Typed structurally, so this package keeps no type dependency on the SDK.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Adapt a handler (one from `wrapWithProof`, `wrapWithDelegation`,
|
|
17
|
+
* `withPolicyGate`, or one returning `proveOutcome`'s result) to the MCP
|
|
18
|
+
* SDK's `registerTool`, with no cast:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* server.registerTool('checkout', { inputSchema }, toMcpToolCallback(gated));
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* The handler's result is returned as it is; the SDK validates it. Called
|
|
25
|
+
* with one argument, which is how the SDK calls a tool registered without an
|
|
26
|
+
* `inputSchema`, the handler gets empty arguments instead of the SDK's
|
|
27
|
+
* request context.
|
|
28
|
+
*/
|
|
29
|
+
export function toMcpToolCallback(handler) {
|
|
30
|
+
return async (...params) => {
|
|
31
|
+
const args = params.length > 1 ? params[0] : {};
|
|
32
|
+
// KyaOsToolHandler types content items' `type` as string; the SDK checks
|
|
33
|
+
// the result it receives, so the narrower declared type is not a claim
|
|
34
|
+
// this adapter has to prove.
|
|
35
|
+
return (await handler(args));
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=mcp-tool-callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-callback.js","sourceRoot":"","sources":["../../src/middleware/mcp-tool-callback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAuBH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO,KAAK,EAAE,GAAG,MAAqB,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,EAAQ,CAAC;QACvD,yEAAyE;QACzE,uEAAuE;QACvE,6BAA6B;QAC7B,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAA0B,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC"}
|