@kya-os/mcp-i-cloudflare 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +81 -51
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +9 -12
- package/dist/app.js.map +1 -1
- package/dist/audit/deployment-binding.d.ts +12 -12
- package/dist/config.d.ts +28 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -1
- package/dist/config.js.map +1 -1
- package/dist/constants/storage-keys.d.ts +9 -0
- package/dist/constants/storage-keys.d.ts.map +1 -1
- package/dist/constants/storage-keys.js +9 -0
- package/dist/constants/storage-keys.js.map +1 -1
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -1
- package/dist/delegation-http/bearer-retry.d.ts +20 -4
- package/dist/delegation-http/bearer-retry.d.ts.map +1 -1
- package/dist/delegation-http/bearer-retry.js +56 -10
- package/dist/delegation-http/bearer-retry.js.map +1 -1
- package/dist/delegation-http/consent-anchor-bridge.d.ts.map +1 -1
- package/dist/delegation-http/consent-anchor-bridge.js +72 -13
- package/dist/delegation-http/consent-anchor-bridge.js.map +1 -1
- package/dist/delegation-http/native-oauth-state.d.ts +16 -0
- package/dist/delegation-http/native-oauth-state.d.ts.map +1 -1
- package/dist/delegation-http/native-oauth-state.js +24 -9
- package/dist/delegation-http/native-oauth-state.js.map +1 -1
- package/dist/delegation-http/native-oauth.d.ts.map +1 -1
- package/dist/delegation-http/native-oauth.js +26 -7
- package/dist/delegation-http/native-oauth.js.map +1 -1
- package/dist/delegation-http/oauth-recovery.d.ts +3 -0
- package/dist/delegation-http/oauth-recovery.d.ts.map +1 -0
- package/dist/delegation-http/oauth-recovery.js +39 -0
- package/dist/delegation-http/oauth-recovery.js.map +1 -0
- package/dist/delegation-http/remote-issuer.d.ts +15 -0
- package/dist/delegation-http/remote-issuer.d.ts.map +1 -1
- package/dist/delegation-http/remote-issuer.js +27 -8
- package/dist/delegation-http/remote-issuer.js.map +1 -1
- package/dist/helpers/env-mapper.d.ts.map +1 -1
- package/dist/helpers/env-mapper.js +28 -6
- package/dist/helpers/env-mapper.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/proof-generator.d.ts +8 -7
- package/dist/proof-generator.d.ts.map +1 -1
- package/dist/proof-generator.js +32 -34
- package/dist/proof-generator.js.map +1 -1
- package/dist/runtime/oauth-handler.d.ts.map +1 -1
- package/dist/runtime/oauth-handler.js +43 -31
- package/dist/runtime/oauth-handler.js.map +1 -1
- package/dist/runtime/tool-activity.d.ts +31 -4
- package/dist/runtime/tool-activity.d.ts.map +1 -1
- package/dist/runtime/tool-activity.js +48 -0
- package/dist/runtime/tool-activity.js.map +1 -1
- package/dist/runtime.d.ts +31 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +65 -0
- package/dist/runtime.js.map +1 -1
- package/dist/security/admission-refusal.d.ts +32 -0
- package/dist/security/admission-refusal.d.ts.map +1 -0
- package/dist/security/admission-refusal.js +97 -0
- package/dist/security/admission-refusal.js.map +1 -0
- package/dist/security/card-proof-support.d.ts +66 -0
- package/dist/security/card-proof-support.d.ts.map +1 -0
- package/dist/security/card-proof-support.js +121 -0
- package/dist/security/card-proof-support.js.map +1 -0
- package/dist/security/mcp-admission.d.ts +28 -2
- package/dist/security/mcp-admission.d.ts.map +1 -1
- package/dist/security/mcp-admission.js +129 -29
- package/dist/security/mcp-admission.js.map +1 -1
- package/dist/security/mcp-holder-admission.d.ts +12 -1
- package/dist/security/mcp-holder-admission.d.ts.map +1 -1
- package/dist/security/mcp-holder-admission.js +46 -8
- package/dist/security/mcp-holder-admission.js.map +1 -1
- package/dist/security/presented-delegation.d.ts +10 -0
- package/dist/security/presented-delegation.d.ts.map +1 -1
- package/dist/security/presented-delegation.js +23 -3
- package/dist/security/presented-delegation.js.map +1 -1
- package/dist/services/admin.service.d.ts.map +1 -1
- package/dist/services/admin.service.js +24 -9
- package/dist/services/admin.service.js.map +1 -1
- package/dist/services/approval-route.d.ts +48 -0
- package/dist/services/approval-route.d.ts.map +1 -0
- package/dist/services/approval-route.js +87 -0
- package/dist/services/approval-route.js.map +1 -0
- package/dist/services/consent-config.service.d.ts.map +1 -1
- package/dist/services/consent-config.service.js +20 -5
- package/dist/services/consent-config.service.js.map +1 -1
- package/dist/services/consent.service.d.ts +113 -5
- package/dist/services/consent.service.d.ts.map +1 -1
- package/dist/services/consent.service.js +746 -904
- package/dist/services/consent.service.js.map +1 -1
- package/dist/services/credential-auth.handler.d.ts +2 -0
- package/dist/services/credential-auth.handler.d.ts.map +1 -1
- package/dist/services/credential-auth.handler.js +19 -3
- package/dist/services/credential-auth.handler.js.map +1 -1
- package/dist/services/delegation-trust.d.ts +97 -0
- package/dist/services/delegation-trust.d.ts.map +1 -0
- package/dist/services/delegation-trust.js +378 -0
- package/dist/services/delegation-trust.js.map +1 -0
- package/dist/services/delegation.service.d.ts +56 -14
- package/dist/services/delegation.service.d.ts.map +1 -1
- package/dist/services/delegation.service.js +160 -68
- package/dist/services/delegation.service.js.map +1 -1
- package/dist/services/multipart-parser.d.ts +73 -0
- package/dist/services/multipart-parser.d.ts.map +1 -0
- package/dist/services/multipart-parser.js +116 -0
- package/dist/services/multipart-parser.js.map +1 -0
- package/dist/services/proof.service.d.ts +38 -0
- package/dist/services/proof.service.d.ts.map +1 -1
- package/dist/services/proof.service.js +41 -2
- package/dist/services/proof.service.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/checkpoint-project-id.d.ts +31 -0
- package/dist/utils/checkpoint-project-id.d.ts.map +1 -0
- package/dist/utils/checkpoint-project-id.js +35 -0
- package/dist/utils/checkpoint-project-id.js.map +1 -0
- package/dist/utils/oauth-profile.d.ts +7 -0
- package/dist/utils/oauth-profile.d.ts.map +1 -0
- package/dist/utils/oauth-profile.js +24 -0
- package/dist/utils/oauth-profile.js.map +1 -0
- package/package.json +7 -6
package/dist/runtime.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { type KVNamespace } from "./cache/kv-tool-protection-cache";
|
|
|
15
15
|
import type { CloudflareRuntimeConfig } from "./config";
|
|
16
16
|
import type { AgentIdentity } from "@kya-os/mcp-i-runtime";
|
|
17
17
|
import type { VerifiedDelegation } from "@kya-os/contracts/config";
|
|
18
|
+
import type { AdmissionRefusalCode } from "./security/admission-refusal";
|
|
18
19
|
/**
|
|
19
20
|
* CloudflareRuntime extends MCPIRuntimeBase with CloudflareProofGenerator
|
|
20
21
|
*/
|
|
@@ -33,6 +34,14 @@ export declare class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
33
34
|
private lastDetachedProof?;
|
|
34
35
|
private lastToolCallContext?;
|
|
35
36
|
private readonly proofByInvocation;
|
|
37
|
+
/**
|
|
38
|
+
* The delegation id THIS call's verify returned, keyed by the session object
|
|
39
|
+
* processToolCall builds for that call. Keyed by object, not by
|
|
40
|
+
* auditInvocationId, because a caller may reuse one invocation id across
|
|
41
|
+
* concurrent calls. Only processToolCall holds the key, so a caller can
|
|
42
|
+
* never plant a value here that createProof would sign.
|
|
43
|
+
*/
|
|
44
|
+
private readonly verifiedDelegationIdBySession;
|
|
36
45
|
private serverUrl?;
|
|
37
46
|
private proofService?;
|
|
38
47
|
/**
|
|
@@ -100,6 +109,28 @@ export declare class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
100
109
|
* so a telemetry failure never replaces the refusal the caller rethrows.
|
|
101
110
|
*/
|
|
102
111
|
private reportDeniedToolCall;
|
|
112
|
+
/**
|
|
113
|
+
* Send the activity event for a tools/call that request admission refused,
|
|
114
|
+
* so a tampered, replayed or stale signed call still leaves one record in
|
|
115
|
+
* Checkpoint. The proof service decides whether to send anything
|
|
116
|
+
* (structured mode only). Awaited for the same reason as a denial, and
|
|
117
|
+
* guarded so a telemetry failure never replaces the refusal the client is
|
|
118
|
+
* about to receive.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* await runtime.reportAdmissionRefusal({
|
|
123
|
+
* toolName: "place_order",
|
|
124
|
+
* code: "nonce_replayed",
|
|
125
|
+
* sessionId,
|
|
126
|
+
* });
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
reportAdmissionRefusal(refusal: {
|
|
130
|
+
toolName: string;
|
|
131
|
+
code: AdmissionRefusalCode;
|
|
132
|
+
sessionId?: string;
|
|
133
|
+
}): Promise<void>;
|
|
103
134
|
/**
|
|
104
135
|
* Get the CloudflareProofGenerator instance (for advanced usage)
|
|
105
136
|
*/
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,KAAK,2BAA2B,EAChC,uBAAuB,EACvB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -13,11 +13,31 @@ import { CloudflareProofGenerator } from "./proof-generator";
|
|
|
13
13
|
import { KVToolProtectionCache, } from "./cache/kv-tool-protection-cache";
|
|
14
14
|
import { ProofService } from "./services/proof.service";
|
|
15
15
|
import { activityForResult, isDelegationRequiredError, } from "./runtime/tool-activity";
|
|
16
|
+
/**
|
|
17
|
+
* The DID request admission proved for this call, or undefined.
|
|
18
|
+
*
|
|
19
|
+
* Only admission sets verifiedInvokerDid, after checking the request's
|
|
20
|
+
* signature. session.agentDid and clientDid are never read: the first can
|
|
21
|
+
* fall back to the server's own DID and the second is caller-asserted.
|
|
22
|
+
*/
|
|
23
|
+
function provedHolderDid(session) {
|
|
24
|
+
return typeof session?.verifiedInvokerDid === "string"
|
|
25
|
+
? session.verifiedInvokerDid
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
16
28
|
export class CloudflareRuntime extends MCPIRuntimeBase {
|
|
17
29
|
proofGenerator;
|
|
18
30
|
lastDetachedProof;
|
|
19
31
|
lastToolCallContext;
|
|
20
32
|
proofByInvocation = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* The delegation id THIS call's verify returned, keyed by the session object
|
|
35
|
+
* processToolCall builds for that call. Keyed by object, not by
|
|
36
|
+
* auditInvocationId, because a caller may reuse one invocation id across
|
|
37
|
+
* concurrent calls. Only processToolCall holds the key, so a caller can
|
|
38
|
+
* never plant a value here that createProof would sign.
|
|
39
|
+
*/
|
|
40
|
+
verifiedDelegationIdBySession = new WeakMap();
|
|
21
41
|
serverUrl; // Store server URL for consent URL building
|
|
22
42
|
proofService; // Proof submission service
|
|
23
43
|
// accessControlService is inherited from MCPIRuntimeBase (protected), no need to redeclare
|
|
@@ -137,10 +157,16 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
137
157
|
if (this.config.environment === "development" && scopeId) {
|
|
138
158
|
console.error(`[MCP-I] Proof scopeId for tool "${session.toolName}": ${scopeId}`);
|
|
139
159
|
}
|
|
160
|
+
// Checkpoint links a deployment-signed proof to a grant only when the
|
|
161
|
+
// signed delegationRef equals the posted delegation_id. Session fields
|
|
162
|
+
// like delegationRef or delegationId are stored or caller-supplied, so
|
|
163
|
+
// they are never signed.
|
|
164
|
+
const delegationRef = this.verifiedDelegationIdBySession.get(session);
|
|
140
165
|
// ✅ Generate full JWS proof WITH scopeId using CloudflareProofGenerator
|
|
141
166
|
const detachedProof = await this.proofGenerator.generateProof(request, response, sessionContext, {
|
|
142
167
|
scopeId, // ← ADDED: Pass scopeId for tool auto-discovery
|
|
143
168
|
clientDid: session.clientDid, // ← ADDED: Pass clientDid from session
|
|
169
|
+
...(delegationRef ? { delegationRef } : {}),
|
|
144
170
|
});
|
|
145
171
|
// Keep the legacy latest-value accessor for compatibility, but route the
|
|
146
172
|
// active request through an invocation-keyed map so concurrent calls never
|
|
@@ -204,6 +230,9 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
204
230
|
let verifiedDelegationId;
|
|
205
231
|
const handlerRecordingVerified = (handlerArgs, verified) => {
|
|
206
232
|
verifiedDelegationId = verified?.id;
|
|
233
|
+
if (enhancedSession && verified?.id) {
|
|
234
|
+
this.verifiedDelegationIdBySession.set(enhancedSession, verified.id);
|
|
235
|
+
}
|
|
207
236
|
// Keep the exact arity: an unverified call still receives only (args).
|
|
208
237
|
return verified ? handler(handlerArgs, verified) : handler(handlerArgs);
|
|
209
238
|
};
|
|
@@ -249,6 +278,7 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
249
278
|
mcpServerUrl,
|
|
250
279
|
activity: activityForResult(result),
|
|
251
280
|
verifiedDelegationId,
|
|
281
|
+
holderDid: provedHolderDid(enhancedSession),
|
|
252
282
|
});
|
|
253
283
|
console.error("[CloudflareRuntime] ✅ Proof submission completed");
|
|
254
284
|
}
|
|
@@ -312,12 +342,47 @@ export class CloudflareRuntime extends MCPIRuntimeBase {
|
|
|
312
342
|
toolName,
|
|
313
343
|
error,
|
|
314
344
|
delegationId: session?.delegationId,
|
|
345
|
+
holderDid: provedHolderDid(session),
|
|
315
346
|
});
|
|
316
347
|
}
|
|
317
348
|
catch (reportError) {
|
|
318
349
|
console.error("[CloudflareRuntime] Failed to report denied tool call:", reportError);
|
|
319
350
|
}
|
|
320
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Send the activity event for a tools/call that request admission refused,
|
|
354
|
+
* so a tampered, replayed or stale signed call still leaves one record in
|
|
355
|
+
* Checkpoint. The proof service decides whether to send anything
|
|
356
|
+
* (structured mode only). Awaited for the same reason as a denial, and
|
|
357
|
+
* guarded so a telemetry failure never replaces the refusal the client is
|
|
358
|
+
* about to receive.
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```typescript
|
|
362
|
+
* await runtime.reportAdmissionRefusal({
|
|
363
|
+
* toolName: "place_order",
|
|
364
|
+
* code: "nonce_replayed",
|
|
365
|
+
* sessionId,
|
|
366
|
+
* });
|
|
367
|
+
* ```
|
|
368
|
+
*/
|
|
369
|
+
async reportAdmissionRefusal(refusal) {
|
|
370
|
+
if (!this.proofService) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
const identity = await this.getIdentity();
|
|
375
|
+
await this.proofService.reportAdmissionRefused({
|
|
376
|
+
serverDid: identity.did,
|
|
377
|
+
sessionId: refusal.sessionId,
|
|
378
|
+
toolName: refusal.toolName,
|
|
379
|
+
code: refusal.code,
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
catch (reportError) {
|
|
383
|
+
console.error("[CloudflareRuntime] Failed to report admission refusal:", reportError);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
321
386
|
/**
|
|
322
387
|
* Get the CloudflareProofGenerator instance (for advanced usage)
|
|
323
388
|
*/
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** The S2 item 10 codes, in its table order. */
|
|
2
|
+
export declare const ADMISSION_REFUSAL_CODES: readonly ["malformed_proof", "invalid_signature", "kid_not_in_did_document", "request_hash_mismatch", "audience_mismatch", "nonce_replayed", "expired", "created_in_future", "authorization_unavailable", "proof_missing", "proof_invalid"];
|
|
3
|
+
export type AdmissionRefusalCode = (typeof ADMISSION_REFUSAL_CODES)[number];
|
|
4
|
+
/** Why admission refused a call. Set only by trusted admission code. */
|
|
5
|
+
export interface AdmissionRefusal {
|
|
6
|
+
readonly code: AdmissionRefusalCode;
|
|
7
|
+
}
|
|
8
|
+
/** True only for one of the 11 S2 item 10 codes, exactly as written. */
|
|
9
|
+
export declare function isAdmissionRefusalCode(value: unknown): value is AdmissionRefusalCode;
|
|
10
|
+
/**
|
|
11
|
+
* Turn an admission denial into exactly one S2 item 10 code.
|
|
12
|
+
*
|
|
13
|
+
* The first priority reason present wins, whatever the gate code. Without
|
|
14
|
+
* one, `proof_missing` stays itself, a gate code meaning the call could not
|
|
15
|
+
* be checked gives `authorization_unavailable`, and everything else,
|
|
16
|
+
* including a reason or gate code upstream adds later, gives
|
|
17
|
+
* `proof_invalid` until item 10 names it.
|
|
18
|
+
*
|
|
19
|
+
* @param gateCode The code the admission denied with, as sent on the wire.
|
|
20
|
+
* @param reasons The verifier's recompute reasons, in any order.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* // A tampered replay reads as tampering.
|
|
24
|
+
* classifyAdmissionRefusal("proof_invalid", ["nonce_replayed", "request_hash_mismatch"]);
|
|
25
|
+
* // => "request_hash_mismatch"
|
|
26
|
+
*
|
|
27
|
+
* // A replay of a proof that has also expired reads as a replay.
|
|
28
|
+
* classifyAdmissionRefusal("proof_invalid", ["expired", "nonce_replayed"]);
|
|
29
|
+
* // => "nonce_replayed"
|
|
30
|
+
*/
|
|
31
|
+
export declare function classifyAdmissionRefusal(gateCode: string, reasons?: readonly string[]): AdmissionRefusalCode;
|
|
32
|
+
//# sourceMappingURL=admission-refusal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-refusal.d.ts","sourceRoot":"","sources":["../../src/security/admission-refusal.ts"],"names":[],"mappings":"AAeA,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,6OAY1B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;CACrC;AAsCD,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAC1B,oBAAoB,CAUtB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why an admission refused a call, reduced to one code Checkpoint can show.
|
|
3
|
+
*
|
|
4
|
+
* The wire result stays the gate code (`proof_invalid` for every recompute
|
|
5
|
+
* failure) so a caller learns nothing extra. The recompute reasons that
|
|
6
|
+
* `@kya-os/mcp` 1.16.0's `requireProof` returns are what tells a tampered,
|
|
7
|
+
* replayed or stale call apart, so they are classified here before they are
|
|
8
|
+
* dropped.
|
|
9
|
+
*
|
|
10
|
+
* Pure and value-free apart from one constant: `@kya-os/mcp/card` must only
|
|
11
|
+
* be reached through `card-proof-support` (see its header), and nothing here
|
|
12
|
+
* needs the runtime.
|
|
13
|
+
*/
|
|
14
|
+
import { PROOF_SUPPORT_UNAVAILABLE } from "./card-proof-support";
|
|
15
|
+
/** The S2 item 10 codes, in its table order. */
|
|
16
|
+
export const ADMISSION_REFUSAL_CODES = [
|
|
17
|
+
"malformed_proof",
|
|
18
|
+
"invalid_signature",
|
|
19
|
+
"kid_not_in_did_document",
|
|
20
|
+
"request_hash_mismatch",
|
|
21
|
+
"audience_mismatch",
|
|
22
|
+
"nonce_replayed",
|
|
23
|
+
"expired",
|
|
24
|
+
"created_in_future",
|
|
25
|
+
"authorization_unavailable",
|
|
26
|
+
"proof_missing",
|
|
27
|
+
"proof_invalid",
|
|
28
|
+
];
|
|
29
|
+
// Sets, not object lookups, so "__proto__" or "constructor" can never match.
|
|
30
|
+
const REFUSAL_CODES = new Set(ADMISSION_REFUSAL_CODES);
|
|
31
|
+
/**
|
|
32
|
+
* S2 item 10's priority: who signed, then what was signed, then where it was
|
|
33
|
+
* sent, then single use, then freshness. The reason strings are the ones the
|
|
34
|
+
* installed `@kya-os/mcp` 1.16.0 card verifier emits: `proof/verify.js`
|
|
35
|
+
* pushes all but two, returns `malformed_proof` directly, and
|
|
36
|
+
* `middleware.js` returns `proof_verifier_threw`.
|
|
37
|
+
*/
|
|
38
|
+
const REASON_PRIORITY = [
|
|
39
|
+
["malformed_proof", "malformed_proof"],
|
|
40
|
+
// Both mean the proof could not be checked at all, not that it was bad.
|
|
41
|
+
["proof_verifier_threw", "authorization_unavailable"],
|
|
42
|
+
["nonce_seam_missing", "authorization_unavailable"],
|
|
43
|
+
["invalid_signature", "invalid_signature"],
|
|
44
|
+
["kid_not_in_did_document", "kid_not_in_did_document"],
|
|
45
|
+
["request_hash_mismatch", "request_hash_mismatch"],
|
|
46
|
+
["audience_mismatch", "audience_mismatch"],
|
|
47
|
+
["nonce_replayed", "nonce_replayed"],
|
|
48
|
+
["expired", "expired"],
|
|
49
|
+
["created_in_future", "created_in_future"],
|
|
50
|
+
];
|
|
51
|
+
// Gate codes that say the call could not be checked, rather than that its
|
|
52
|
+
// proof failed: the non-proof admission codes and missing card support.
|
|
53
|
+
const UNCHECKABLE_GATE_CODES = new Set([
|
|
54
|
+
"invalid_request",
|
|
55
|
+
"policy_unavailable",
|
|
56
|
+
"executor_not_authorized",
|
|
57
|
+
"authorization_unavailable",
|
|
58
|
+
PROOF_SUPPORT_UNAVAILABLE,
|
|
59
|
+
]);
|
|
60
|
+
/** True only for one of the 11 S2 item 10 codes, exactly as written. */
|
|
61
|
+
export function isAdmissionRefusalCode(value) {
|
|
62
|
+
return REFUSAL_CODES.has(value);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Turn an admission denial into exactly one S2 item 10 code.
|
|
66
|
+
*
|
|
67
|
+
* The first priority reason present wins, whatever the gate code. Without
|
|
68
|
+
* one, `proof_missing` stays itself, a gate code meaning the call could not
|
|
69
|
+
* be checked gives `authorization_unavailable`, and everything else,
|
|
70
|
+
* including a reason or gate code upstream adds later, gives
|
|
71
|
+
* `proof_invalid` until item 10 names it.
|
|
72
|
+
*
|
|
73
|
+
* @param gateCode The code the admission denied with, as sent on the wire.
|
|
74
|
+
* @param reasons The verifier's recompute reasons, in any order.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* // A tampered replay reads as tampering.
|
|
78
|
+
* classifyAdmissionRefusal("proof_invalid", ["nonce_replayed", "request_hash_mismatch"]);
|
|
79
|
+
* // => "request_hash_mismatch"
|
|
80
|
+
*
|
|
81
|
+
* // A replay of a proof that has also expired reads as a replay.
|
|
82
|
+
* classifyAdmissionRefusal("proof_invalid", ["expired", "nonce_replayed"]);
|
|
83
|
+
* // => "nonce_replayed"
|
|
84
|
+
*/
|
|
85
|
+
export function classifyAdmissionRefusal(gateCode, reasons) {
|
|
86
|
+
// Reasons come from another package, so do not trust their runtime shape.
|
|
87
|
+
const present = new Set(Array.isArray(reasons) ? reasons : []);
|
|
88
|
+
const winner = REASON_PRIORITY.find(([reason]) => present.has(reason));
|
|
89
|
+
if (winner)
|
|
90
|
+
return winner[1];
|
|
91
|
+
if (gateCode === "proof_missing")
|
|
92
|
+
return "proof_missing";
|
|
93
|
+
if (UNCHECKABLE_GATE_CODES.has(gateCode))
|
|
94
|
+
return "authorization_unavailable";
|
|
95
|
+
return "proof_invalid";
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=admission-refusal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission-refusal.js","sourceRoot":"","sources":["../../src/security/admission-refusal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,gDAAgD;AAChD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,iBAAiB;IACjB,mBAAmB;IACnB,yBAAyB;IACzB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,SAAS;IACT,mBAAmB;IACnB,2BAA2B;IAC3B,eAAe;IACf,eAAe;CACP,CAAC;AASX,6EAA6E;AAC7E,MAAM,aAAa,GAAyB,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,eAAe,GAEjB;IACF,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACtC,wEAAwE;IACxE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACrD,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;IACnD,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC1C,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IACtD,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAClD,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC1C,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACpC,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AAEF,0EAA0E;AAC1E,wEAAwE;AACxE,MAAM,sBAAsB,GAAyB,IAAI,GAAG,CAAC;IAC3D,iBAAiB;IACjB,oBAAoB;IACpB,yBAAyB;IACzB,2BAA2B;IAC3B,yBAAyB;CAC1B,CAAC,CAAC;AAEH,wEAAwE;AACxE,MAAM,UAAU,sBAAsB,CACpC,KAAc;IAEd,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,OAA2B;IAE3B,0EAA0E;IAC1E,MAAM,OAAO,GAAyB,IAAI,GAAG,CAC3C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACtC,CAAC;IACF,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,QAAQ,KAAK,eAAe;QAAE,OAAO,eAAe,CAAC;IACzD,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,2BAA2B,CAAC;IAC7E,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The only way the admission path reaches `@kya-os/mcp/card` values.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists: in an esbuild bundle of `MCPICloudflareAgent` the agent
|
|
5
|
+
* reaches the card modules through dynamic imports, so esbuild wraps them in
|
|
6
|
+
* lazy initialisers. `@kya-os/mcp` declares `"sideEffects": false` and the
|
|
7
|
+
* card entry only re-exports, so esbuild drops the call that initialises
|
|
8
|
+
* `card/proof/types.js`. A static import then reads `undefined` for the meta
|
|
9
|
+
* key and `NaN` for anything computed from `MAX_TTL_SEC`, and admission fails
|
|
10
|
+
* OPEN. An awaited dynamic import of the entry runs the initialisers, and
|
|
11
|
+
* validating the result turns any remaining breakage into a refusal instead.
|
|
12
|
+
*
|
|
13
|
+
* Only type imports from the card module are allowed in this file: a value
|
|
14
|
+
* import would reintroduce the lazily initialised binding.
|
|
15
|
+
*/
|
|
16
|
+
import type { requireProof } from "@kya-os/mcp/card";
|
|
17
|
+
/** Admission refusal code when proof support cannot be validated. */
|
|
18
|
+
export declare const PROOF_SUPPORT_UNAVAILABLE = "proof_support_unavailable";
|
|
19
|
+
export interface CardProofSupport {
|
|
20
|
+
readonly metaKey: string;
|
|
21
|
+
readonly legacyMetaKey: string;
|
|
22
|
+
readonly maxTtlSec: number;
|
|
23
|
+
readonly defaultSkewSec: number;
|
|
24
|
+
readonly requireProof: typeof requireProof;
|
|
25
|
+
}
|
|
26
|
+
export type CardProofSupportResult = {
|
|
27
|
+
readonly ok: true;
|
|
28
|
+
readonly support: CardProofSupport;
|
|
29
|
+
} | {
|
|
30
|
+
readonly ok: false;
|
|
31
|
+
readonly reason: string;
|
|
32
|
+
};
|
|
33
|
+
/** Resolves the card module namespace. Injectable so tests can force failure. */
|
|
34
|
+
export type CardModuleLoader = () => Promise<unknown>;
|
|
35
|
+
/** Never rejects: every failure is an `ok: false` result. */
|
|
36
|
+
export type CardProofSupportGetter = () => Promise<CardProofSupportResult>;
|
|
37
|
+
export interface CardProofSupportAccessor {
|
|
38
|
+
readonly get: CardProofSupportGetter;
|
|
39
|
+
/** The settled result, or undefined while the first load is in flight. */
|
|
40
|
+
readonly peek: () => CardProofSupportResult | undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build an accessor that loads the card module once. Concurrent callers share
|
|
44
|
+
* one load, and a failure is cached and logged once, because a bundled module
|
|
45
|
+
* that failed to initialise will not recover within the same isolate.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createCardProofSupport(load?: CardModuleLoader): CardProofSupportAccessor;
|
|
48
|
+
export declare const getCardProofSupport: CardProofSupportGetter;
|
|
49
|
+
export declare const peekCardProofSupport: CardProofSupportAccessor["peek"];
|
|
50
|
+
/**
|
|
51
|
+
* Card-independent superset of "this `_meta` carries a request proof": the
|
|
52
|
+
* pinned canonical and legacy keys (present with any value, including null),
|
|
53
|
+
* any keys a resolved support names, and any value shaped like a proof under
|
|
54
|
+
* an unknown key. It must not depend on the card module, because it decides
|
|
55
|
+
* which calls to refuse when that module is unavailable.
|
|
56
|
+
*/
|
|
57
|
+
export declare function isProofShapedMeta(meta: unknown, support?: Pick<CardProofSupport, "metaKey" | "legacyMetaKey">): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* How long a consumed nonce must be kept: the verifier's full acceptance
|
|
60
|
+
* window (TTL plus skew on both sides) plus one second, matching the card
|
|
61
|
+
* module's NONCE_RETENTION_SEC for a caller-chosen skew. Throws rather than
|
|
62
|
+
* return NaN, because a NaN retention makes every nonce expire at once and
|
|
63
|
+
* lets replays through.
|
|
64
|
+
*/
|
|
65
|
+
export declare function requestProofNonceRetentionSec(support: Pick<CardProofSupport, "maxTtlSec" | "defaultSkewSec">, skewSec?: number): number;
|
|
66
|
+
//# sourceMappingURL=card-proof-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-proof-support.d.ts","sourceRoot":"","sources":["../../src/security/card-proof-support.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AASrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,YAAY,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,sBAAsB,GAAG,SAAS,CAAC;CACzD;AAkED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAGpC,IAAI,GAAE,gBAAmD,GACxD,wBAAwB,CAe1B;AAID,eAAO,MAAM,mBAAmB,EAAE,sBACL,CAAC;AAE9B,eAAO,MAAM,oBAAoB,EAAE,wBAAwB,CAAC,MAAM,CACpC,CAAC;AAM/B;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,eAAe,CAAC,GAC5D,OAAO,CAMT;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,gBAAgB,CAAC,EAC/D,OAAO,GAAE,MAA+B,GACvC,MAAM,CAUR"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** Admission refusal code when proof support cannot be validated. */
|
|
2
|
+
export const PROOF_SUPPORT_UNAVAILABLE = "proof_support_unavailable";
|
|
3
|
+
const LOG_PREFIX = "[mcp-i-cloudflare] card proof support unavailable";
|
|
4
|
+
// Pinned here, not read from the card module, so the fail-closed check still
|
|
5
|
+
// sees a proof when that module is the thing that failed to load.
|
|
6
|
+
const CANONICAL_PROOF_META_KEY = "org.kya-os/request-proof";
|
|
7
|
+
const LEGACY_PROOF_META_KEY = "org.kya-os/proof@1";
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
function hasOwn(target, key) {
|
|
12
|
+
return Object.prototype.hasOwnProperty.call(target, key);
|
|
13
|
+
}
|
|
14
|
+
function isPositiveFinite(value) {
|
|
15
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0;
|
|
16
|
+
}
|
|
17
|
+
function unavailable(reason) {
|
|
18
|
+
return { ok: false, reason };
|
|
19
|
+
}
|
|
20
|
+
function validateCardModule(card) {
|
|
21
|
+
// Module namespace objects are plain objects here, so a non-record means
|
|
22
|
+
// the loader resolved something other than the card entry.
|
|
23
|
+
if (!isRecord(card))
|
|
24
|
+
return unavailable("card module is not an object");
|
|
25
|
+
const metaKey = card.KYA_OS_CARD_PROOF_META_KEY;
|
|
26
|
+
if (typeof metaKey !== "string" || metaKey === "")
|
|
27
|
+
return unavailable("KYA_OS_CARD_PROOF_META_KEY is not a non-empty string");
|
|
28
|
+
const legacyMetaKey = card.LEGACY_CARD_PROOF_META_KEY;
|
|
29
|
+
if (typeof legacyMetaKey !== "string" || legacyMetaKey === "")
|
|
30
|
+
return unavailable("LEGACY_CARD_PROOF_META_KEY is not a non-empty string");
|
|
31
|
+
// Equal keys would let a legacy carrier satisfy a canonical-key check.
|
|
32
|
+
if (legacyMetaKey === metaKey)
|
|
33
|
+
return unavailable("LEGACY_CARD_PROOF_META_KEY equals KYA_OS_CARD_PROOF_META_KEY");
|
|
34
|
+
const maxTtlSec = card.MAX_TTL_SEC;
|
|
35
|
+
if (!isPositiveFinite(maxTtlSec))
|
|
36
|
+
return unavailable("MAX_TTL_SEC is not a finite positive number");
|
|
37
|
+
const defaultSkewSec = card.DEFAULT_SKEW_SEC;
|
|
38
|
+
if (!isPositiveFinite(defaultSkewSec))
|
|
39
|
+
return unavailable("DEFAULT_SKEW_SEC is not a finite positive number");
|
|
40
|
+
if (typeof card.requireProof !== "function")
|
|
41
|
+
return unavailable("requireProof is not a function");
|
|
42
|
+
return {
|
|
43
|
+
ok: true,
|
|
44
|
+
support: Object.freeze({
|
|
45
|
+
metaKey,
|
|
46
|
+
legacyMetaKey,
|
|
47
|
+
maxTtlSec,
|
|
48
|
+
defaultSkewSec,
|
|
49
|
+
requireProof: card.requireProof,
|
|
50
|
+
}),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async function loadAndValidate(load) {
|
|
54
|
+
try {
|
|
55
|
+
return validateCardModule(await load());
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
59
|
+
return unavailable(`card module failed to load: ${detail}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Build an accessor that loads the card module once. Concurrent callers share
|
|
64
|
+
* one load, and a failure is cached and logged once, because a bundled module
|
|
65
|
+
* that failed to initialise will not recover within the same isolate.
|
|
66
|
+
*/
|
|
67
|
+
export function createCardProofSupport(
|
|
68
|
+
// The specifier must stay a string literal inside this arrow so esbuild
|
|
69
|
+
// sees the dynamic import and bundles the card entry with it.
|
|
70
|
+
load = () => import("@kya-os/mcp/card")) {
|
|
71
|
+
let pending;
|
|
72
|
+
let settled;
|
|
73
|
+
const get = () => {
|
|
74
|
+
pending ??= loadAndValidate(load).then((result) => {
|
|
75
|
+
settled = result;
|
|
76
|
+
if (!result.ok)
|
|
77
|
+
console.error(`${LOG_PREFIX}; refusing proof-bearing calls: ${result.reason}`);
|
|
78
|
+
return result;
|
|
79
|
+
});
|
|
80
|
+
return pending;
|
|
81
|
+
};
|
|
82
|
+
return { get, peek: () => settled };
|
|
83
|
+
}
|
|
84
|
+
const defaultCardProofSupport = createCardProofSupport();
|
|
85
|
+
export const getCardProofSupport = defaultCardProofSupport.get;
|
|
86
|
+
export const peekCardProofSupport = defaultCardProofSupport.peek;
|
|
87
|
+
function isProofShapedValue(value) {
|
|
88
|
+
return isRecord(value) && hasOwn(value, "prf") && hasOwn(value, "jws");
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Card-independent superset of "this `_meta` carries a request proof": the
|
|
92
|
+
* pinned canonical and legacy keys (present with any value, including null),
|
|
93
|
+
* any keys a resolved support names, and any value shaped like a proof under
|
|
94
|
+
* an unknown key. It must not depend on the card module, because it decides
|
|
95
|
+
* which calls to refuse when that module is unavailable.
|
|
96
|
+
*/
|
|
97
|
+
export function isProofShapedMeta(meta, support) {
|
|
98
|
+
if (!isRecord(meta))
|
|
99
|
+
return false;
|
|
100
|
+
const keys = [CANONICAL_PROOF_META_KEY, LEGACY_PROOF_META_KEY];
|
|
101
|
+
if (support)
|
|
102
|
+
keys.push(support.metaKey, support.legacyMetaKey);
|
|
103
|
+
if (keys.some((key) => hasOwn(meta, key)))
|
|
104
|
+
return true;
|
|
105
|
+
return Object.values(meta).some(isProofShapedValue);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* How long a consumed nonce must be kept: the verifier's full acceptance
|
|
109
|
+
* window (TTL plus skew on both sides) plus one second, matching the card
|
|
110
|
+
* module's NONCE_RETENTION_SEC for a caller-chosen skew. Throws rather than
|
|
111
|
+
* return NaN, because a NaN retention makes every nonce expire at once and
|
|
112
|
+
* lets replays through.
|
|
113
|
+
*/
|
|
114
|
+
export function requestProofNonceRetentionSec(support, skewSec = support.defaultSkewSec) {
|
|
115
|
+
if (!isPositiveFinite(support.maxTtlSec))
|
|
116
|
+
throw new RangeError(`request proof maxTtlSec must be a finite positive number, got ${support.maxTtlSec}`);
|
|
117
|
+
if (!Number.isFinite(skewSec) || skewSec < 0)
|
|
118
|
+
throw new RangeError(`request proof skewSec must be a finite non-negative number, got ${skewSec}`);
|
|
119
|
+
return support.maxTtlSec + 2 * skewSec + 1;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=card-proof-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-proof-support.js","sourceRoot":"","sources":["../../src/security/card-proof-support.ts"],"names":[],"mappings":"AAiBA,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE,MAAM,UAAU,GAAG,mDAAmD,CAAC;AAEvE,6EAA6E;AAC7E,kEAAkE;AAClE,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AAC5D,MAAM,qBAAqB,GAAG,oBAAoB,CAAC;AA4BnD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,MAAM,CAAC,MAAc,EAAE,GAAW;IACzC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,yEAAyE;IACzE,2DAA2D;IAC3D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE;QAC/C,OAAO,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC;IACtD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,EAAE;QAC3D,OAAO,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAC7E,uEAAuE;IACvE,IAAI,aAAa,KAAK,OAAO;QAC3B,OAAO,WAAW,CAChB,8DAA8D,CAC/D,CAAC;IACJ,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;IACnC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAC9B,OAAO,WAAW,CAAC,6CAA6C,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC7C,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;QACnC,OAAO,WAAW,CAAC,kDAAkD,CAAC,CAAC;IACzE,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;QACzC,OAAO,WAAW,CAAC,gCAAgC,CAAC,CAAC;IACvD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,OAAO;YACP,aAAa;YACb,SAAS;YACT,cAAc;YACd,YAAY,EAAE,IAAI,CAAC,YAAmC;SACvD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAsB;IAEtB,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;AACpC,wEAAwE;AACxE,8DAA8D;AAC9D,OAAyB,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAEzD,IAAI,OAAoD,CAAC;IACzD,IAAI,OAA2C,CAAC;IAChD,MAAM,GAAG,GAA2B,GAAG,EAAE;QACvC,OAAO,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,OAAO,GAAG,MAAM,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,EAAE;gBACZ,OAAO,CAAC,KAAK,CACX,GAAG,UAAU,mCAAmC,MAAM,CAAC,MAAM,EAAE,CAChE,CAAC;YACJ,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,uBAAuB,GAAG,sBAAsB,EAAE,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAC9B,uBAAuB,CAAC,GAAG,CAAC;AAE9B,MAAM,CAAC,MAAM,oBAAoB,GAC/B,uBAAuB,CAAC,IAAI,CAAC;AAE/B,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAa,EACb,OAA6D;IAE7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,MAAM,IAAI,GAAG,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,CAAC;IAC/D,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA+D,EAC/D,UAAkB,OAAO,CAAC,cAAc;IAExC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,MAAM,IAAI,UAAU,CAClB,iEAAiE,OAAO,CAAC,SAAS,EAAE,CACrF,CAAC;IACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;QAC1C,MAAM,IAAI,UAAU,CAClB,mEAAmE,OAAO,EAAE,CAC7E,CAAC;IACJ,OAAO,OAAO,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
|
|
3
3
|
import type { CallToolResult, JSONRPCRequest, MessageExtraInfo } from "@modelcontextprotocol/sdk/types.js";
|
|
4
|
+
import { type AdmissionRefusal, type AdmissionRefusalCode } from "./admission-refusal";
|
|
4
5
|
export interface McpAdmissionContext {
|
|
5
6
|
/** Transport-issued session, not a parameter supplied by the tool caller. */
|
|
6
7
|
sessionId?: string;
|
|
@@ -14,7 +15,25 @@ export type McpAdmissionResult = {
|
|
|
14
15
|
} | {
|
|
15
16
|
allowed: false;
|
|
16
17
|
result: CallToolResult;
|
|
18
|
+
/**
|
|
19
|
+
* Why the call was refused, for Checkpoint only; never sent to the
|
|
20
|
+
* caller. Set by `createMcpHolderAdmission`, and by `withMcpAdmission`
|
|
21
|
+
* when it rejects the delegation carriers before admission runs. A
|
|
22
|
+
* custom admission that leaves it unset is reported as nothing.
|
|
23
|
+
*/
|
|
24
|
+
refusal?: AdmissionRefusal;
|
|
17
25
|
};
|
|
26
|
+
/** One refused tools/call, as reported to Checkpoint. Carries no proof or params. */
|
|
27
|
+
export type McpAdmissionRefusalReport = {
|
|
28
|
+
toolName: string;
|
|
29
|
+
code: AdmissionRefusalCode;
|
|
30
|
+
sessionId?: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Awaited before the refusal is sent, for at most
|
|
34
|
+
* ADMISSION_REFUSAL_REPORT_BUDGET_MS; its failures never reach the caller.
|
|
35
|
+
*/
|
|
36
|
+
export type McpAdmissionRefusalReporter = (report: McpAdmissionRefusalReport) => Promise<void>;
|
|
18
37
|
export interface McpRequestHolder {
|
|
19
38
|
readonly did: string;
|
|
20
39
|
readonly level: "L3" | "L3-minus";
|
|
@@ -33,11 +52,18 @@ export type McpRequestAdmission = (request: JSONRPCRequest, context: McpAdmissio
|
|
|
33
52
|
* the public Transport contract, so it works with both DO and ordinary MCP
|
|
34
53
|
* transports without patching private SDK handlers.
|
|
35
54
|
*/
|
|
36
|
-
export declare function withMcpAdmission(transport: Transport, admit: McpRequestAdmission): Transport;
|
|
55
|
+
export declare function withMcpAdmission(transport: Transport, admit: McpRequestAdmission, reportRefusal?: McpAdmissionRefusalReporter): Transport;
|
|
56
|
+
/** How long a refused call waits for its Checkpoint report before replying. */
|
|
57
|
+
export declare const ADMISSION_REFUSAL_REPORT_BUDGET_MS = 2000;
|
|
58
|
+
export interface AdmissionMcpServerOptions {
|
|
59
|
+
/** Called once per refused tools/call of a registered tool, before the reply. */
|
|
60
|
+
reportRefusal?: McpAdmissionRefusalReporter;
|
|
61
|
+
}
|
|
37
62
|
/** McpAgent calls this public connect method when attaching its DO transport. */
|
|
38
63
|
export declare class AdmissionMcpServer extends McpServer {
|
|
39
64
|
private readonly admission;
|
|
40
|
-
|
|
65
|
+
private readonly options;
|
|
66
|
+
constructor(info: ConstructorParameters<typeof McpServer>[0], admission: McpRequestAdmission, options?: AdmissionMcpServerOptions);
|
|
41
67
|
connect(transport: Transport): Promise<void>;
|
|
42
68
|
}
|
|
43
69
|
//# sourceMappingURL=mcp-admission.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-admission.d.ts","sourceRoot":"","sources":["../../src/security/mcp-admission.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-admission.d.ts","sourceRoot":"","sources":["../../src/security/mcp-admission.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAM7B,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAC5C;IACE,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEN,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,CACxC,MAAM,EAAE,yBAAyB,KAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,UAAU,CAAC;CACnC;AAQD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAElE;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAE9D;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,mBAAmB,EAC1B,aAAa,CAAC,EAAE,2BAA2B,GAC1C,SAAS,CA0IX;AAyED,+EAA+E;AAC/E,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AAuCxD,MAAM,WAAW,yBAAyB;IACxC,iFAAiF;IACjF,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C;AAiBD,iFAAiF;AACjF,qBAAa,kBAAmB,SAAQ,SAAS;IAG7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFxB,IAAI,EAAE,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,GAAE,yBAA8B;IAKjD,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAatD"}
|