@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.
Files changed (129) hide show
  1. package/README.md +37 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +81 -51
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +9 -12
  7. package/dist/app.js.map +1 -1
  8. package/dist/audit/deployment-binding.d.ts +12 -12
  9. package/dist/config.d.ts +28 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +16 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/constants/storage-keys.d.ts +9 -0
  14. package/dist/constants/storage-keys.d.ts.map +1 -1
  15. package/dist/constants/storage-keys.js +9 -0
  16. package/dist/constants/storage-keys.js.map +1 -1
  17. package/dist/constants.d.ts +6 -0
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/constants.js +6 -0
  20. package/dist/constants.js.map +1 -1
  21. package/dist/delegation-http/bearer-retry.d.ts +20 -4
  22. package/dist/delegation-http/bearer-retry.d.ts.map +1 -1
  23. package/dist/delegation-http/bearer-retry.js +56 -10
  24. package/dist/delegation-http/bearer-retry.js.map +1 -1
  25. package/dist/delegation-http/consent-anchor-bridge.d.ts.map +1 -1
  26. package/dist/delegation-http/consent-anchor-bridge.js +72 -13
  27. package/dist/delegation-http/consent-anchor-bridge.js.map +1 -1
  28. package/dist/delegation-http/native-oauth-state.d.ts +16 -0
  29. package/dist/delegation-http/native-oauth-state.d.ts.map +1 -1
  30. package/dist/delegation-http/native-oauth-state.js +24 -9
  31. package/dist/delegation-http/native-oauth-state.js.map +1 -1
  32. package/dist/delegation-http/native-oauth.d.ts.map +1 -1
  33. package/dist/delegation-http/native-oauth.js +26 -7
  34. package/dist/delegation-http/native-oauth.js.map +1 -1
  35. package/dist/delegation-http/oauth-recovery.d.ts +3 -0
  36. package/dist/delegation-http/oauth-recovery.d.ts.map +1 -0
  37. package/dist/delegation-http/oauth-recovery.js +39 -0
  38. package/dist/delegation-http/oauth-recovery.js.map +1 -0
  39. package/dist/delegation-http/remote-issuer.d.ts +15 -0
  40. package/dist/delegation-http/remote-issuer.d.ts.map +1 -1
  41. package/dist/delegation-http/remote-issuer.js +27 -8
  42. package/dist/delegation-http/remote-issuer.js.map +1 -1
  43. package/dist/helpers/env-mapper.d.ts.map +1 -1
  44. package/dist/helpers/env-mapper.js +28 -6
  45. package/dist/helpers/env-mapper.js.map +1 -1
  46. package/dist/index.d.ts +6 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +9 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/proof-generator.d.ts +8 -7
  51. package/dist/proof-generator.d.ts.map +1 -1
  52. package/dist/proof-generator.js +32 -34
  53. package/dist/proof-generator.js.map +1 -1
  54. package/dist/runtime/oauth-handler.d.ts.map +1 -1
  55. package/dist/runtime/oauth-handler.js +43 -31
  56. package/dist/runtime/oauth-handler.js.map +1 -1
  57. package/dist/runtime/tool-activity.d.ts +31 -4
  58. package/dist/runtime/tool-activity.d.ts.map +1 -1
  59. package/dist/runtime/tool-activity.js +48 -0
  60. package/dist/runtime/tool-activity.js.map +1 -1
  61. package/dist/runtime.d.ts +31 -0
  62. package/dist/runtime.d.ts.map +1 -1
  63. package/dist/runtime.js +65 -0
  64. package/dist/runtime.js.map +1 -1
  65. package/dist/security/admission-refusal.d.ts +32 -0
  66. package/dist/security/admission-refusal.d.ts.map +1 -0
  67. package/dist/security/admission-refusal.js +97 -0
  68. package/dist/security/admission-refusal.js.map +1 -0
  69. package/dist/security/card-proof-support.d.ts +66 -0
  70. package/dist/security/card-proof-support.d.ts.map +1 -0
  71. package/dist/security/card-proof-support.js +121 -0
  72. package/dist/security/card-proof-support.js.map +1 -0
  73. package/dist/security/mcp-admission.d.ts +28 -2
  74. package/dist/security/mcp-admission.d.ts.map +1 -1
  75. package/dist/security/mcp-admission.js +129 -29
  76. package/dist/security/mcp-admission.js.map +1 -1
  77. package/dist/security/mcp-holder-admission.d.ts +12 -1
  78. package/dist/security/mcp-holder-admission.d.ts.map +1 -1
  79. package/dist/security/mcp-holder-admission.js +46 -8
  80. package/dist/security/mcp-holder-admission.js.map +1 -1
  81. package/dist/security/presented-delegation.d.ts +10 -0
  82. package/dist/security/presented-delegation.d.ts.map +1 -1
  83. package/dist/security/presented-delegation.js +23 -3
  84. package/dist/security/presented-delegation.js.map +1 -1
  85. package/dist/services/admin.service.d.ts.map +1 -1
  86. package/dist/services/admin.service.js +24 -9
  87. package/dist/services/admin.service.js.map +1 -1
  88. package/dist/services/approval-route.d.ts +48 -0
  89. package/dist/services/approval-route.d.ts.map +1 -0
  90. package/dist/services/approval-route.js +87 -0
  91. package/dist/services/approval-route.js.map +1 -0
  92. package/dist/services/consent-config.service.d.ts.map +1 -1
  93. package/dist/services/consent-config.service.js +20 -5
  94. package/dist/services/consent-config.service.js.map +1 -1
  95. package/dist/services/consent.service.d.ts +113 -5
  96. package/dist/services/consent.service.d.ts.map +1 -1
  97. package/dist/services/consent.service.js +746 -904
  98. package/dist/services/consent.service.js.map +1 -1
  99. package/dist/services/credential-auth.handler.d.ts +2 -0
  100. package/dist/services/credential-auth.handler.d.ts.map +1 -1
  101. package/dist/services/credential-auth.handler.js +19 -3
  102. package/dist/services/credential-auth.handler.js.map +1 -1
  103. package/dist/services/delegation-trust.d.ts +97 -0
  104. package/dist/services/delegation-trust.d.ts.map +1 -0
  105. package/dist/services/delegation-trust.js +378 -0
  106. package/dist/services/delegation-trust.js.map +1 -0
  107. package/dist/services/delegation.service.d.ts +56 -14
  108. package/dist/services/delegation.service.d.ts.map +1 -1
  109. package/dist/services/delegation.service.js +160 -68
  110. package/dist/services/delegation.service.js.map +1 -1
  111. package/dist/services/multipart-parser.d.ts +73 -0
  112. package/dist/services/multipart-parser.d.ts.map +1 -0
  113. package/dist/services/multipart-parser.js +116 -0
  114. package/dist/services/multipart-parser.js.map +1 -0
  115. package/dist/services/proof.service.d.ts +38 -0
  116. package/dist/services/proof.service.d.ts.map +1 -1
  117. package/dist/services/proof.service.js +41 -2
  118. package/dist/services/proof.service.js.map +1 -1
  119. package/dist/types.d.ts +17 -0
  120. package/dist/types.d.ts.map +1 -1
  121. package/dist/utils/checkpoint-project-id.d.ts +31 -0
  122. package/dist/utils/checkpoint-project-id.d.ts.map +1 -0
  123. package/dist/utils/checkpoint-project-id.js +35 -0
  124. package/dist/utils/checkpoint-project-id.js.map +1 -0
  125. package/dist/utils/oauth-profile.d.ts +7 -0
  126. package/dist/utils/oauth-profile.d.ts.map +1 -0
  127. package/dist/utils/oauth-profile.js +24 -0
  128. package/dist/utils/oauth-profile.js.map +1 -0
  129. package/package.json +7 -6
@@ -26,6 +26,8 @@ export interface CredentialAuthResult {
26
26
  expiresIn?: number;
27
27
  /** Error message on failure */
28
28
  error?: string;
29
+ /** Provider explicitly rejected credentials, before any identity or mint. */
30
+ authenticationRejected?: true;
29
31
  }
30
32
  /**
31
33
  * Credential authentication handler interface
@@ -1 +1 @@
1
- {"version":3,"file":"credential-auth.handler.d.ts","sourceRoot":"","sources":["../../src/services/credential-auth.handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,YAAY,CACV,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC/B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,2BAA2B,GAClC,sBAAsB,CAmRxB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBtE;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"credential-auth.handler.d.ts","sourceRoot":"","sources":["../../src/services/credential-auth.handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,YAAY,CACV,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8CAA8C;IAC9C,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC/B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,2BAA2B,GAClC,sBAAsB,CA0SxB;AAED;;;;;;;;;;GAUG;AACH,iBAAS,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiBtE;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -139,7 +139,15 @@ export function createCredentialAuthHandler(config) {
139
139
  actual: checkValue,
140
140
  error: errorMsg,
141
141
  });
142
- return { success: false, error: String(errorMsg) };
142
+ return {
143
+ success: false,
144
+ error: String(errorMsg),
145
+ ...((response.ok && checkValue !== undefined) ||
146
+ response.status === 401 ||
147
+ response.status === 403
148
+ ? { authenticationRejected: true }
149
+ : {}),
150
+ };
143
151
  }
144
152
  }
145
153
  else if (!response.ok) {
@@ -147,7 +155,13 @@ export function createCredentialAuthHandler(config) {
147
155
  logger("[CredentialAuthHandler] HTTP error", {
148
156
  status: response.status,
149
157
  });
150
- return { success: false, error: `HTTP ${response.status}` };
158
+ return {
159
+ success: false,
160
+ error: `HTTP ${response.status}`,
161
+ ...(response.status === 401 || response.status === 403
162
+ ? { authenticationRejected: true }
163
+ : {}),
164
+ };
151
165
  }
152
166
  // 5. Extract session token - handle "cookie" special case
153
167
  let sessionToken;
@@ -167,7 +181,9 @@ export function createCredentialAuthHandler(config) {
167
181
  const firstCookie = setCookie.split(";")[0];
168
182
  const valueIndex = firstCookie.indexOf("=");
169
183
  sessionToken =
170
- valueIndex > 0 ? firstCookie.substring(valueIndex + 1) : undefined;
184
+ valueIndex > 0
185
+ ? firstCookie.substring(valueIndex + 1)
186
+ : undefined;
171
187
  }
172
188
  logger("[CredentialAuthHandler] Extracted token from Set-Cookie", {
173
189
  hasMatch: !!cookieMatch,
@@ -1 +1 @@
1
- {"version":3,"file":"credential-auth.handler.js","sourceRoot":"","sources":["../../src/services/credential-auth.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-auth.handler.js","sourceRoot":"","sources":["../../src/services/credential-auth.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Delegation credential trust policy.
3
+ *
4
+ * Decides which issuers this worker accepts delegation VC-JWTs from, which
5
+ * audience they must name, which key verifies them, and whether their status
6
+ * entry is clear. `DelegationService` applies it before any verdict is reached
7
+ * or cached, with or without a Checkpoint API key.
8
+ *
9
+ * Pinned issuers:
10
+ * - the worker's own identity (`MCP_IDENTITY_AGENT_DID`), which signs the
11
+ * anchor flow's self-issued delegations;
12
+ * - the native issuer binding's org DID (`MCPI_NATIVE_HTTP_ISSUER_CONFIG`), and
13
+ * any native issuer the caller configured in code;
14
+ * - `KYA_OS_TRUSTED_DELEGATION_ISSUERS`;
15
+ * - the Checkpoint platform signer, found through the configured Checkpoint
16
+ * origin's own DID document (`CHECKPOINT_API_URL`, default kya.vouched.id),
17
+ * which names that did:key in `alsoKnownAs` under the same key.
18
+ *
19
+ * Nothing is hard-coded, and nothing named only by a token is fetched: an
20
+ * issuer is pinned before its DID document is resolved, and a status list is
21
+ * fetched only from a credential a pinned issuer signed.
22
+ *
23
+ * Accepted audiences: the worker's DID, `CHECKPOINT_PROJECT_ID`, the binding's
24
+ * org DID and project, any native issuer the caller configured in code, and
25
+ * `KYA_OS_DELEGATION_AUDIENCES`.
26
+ */
27
+ import { type DIDDocument, type DIDResolver } from "@kya-os/mcp";
28
+ import type { CloudflareEnv } from "../types";
29
+ /** Trust inputs a caller holds beyond the environment (e.g. a native issuer). */
30
+ export interface DelegationTrustOptions {
31
+ /** Issuer DIDs to pin in addition to the environment-derived set. */
32
+ trustedIssuers?: readonly (string | undefined)[];
33
+ /** Audiences to accept in addition to the environment-derived set. */
34
+ audiences?: readonly (string | undefined)[];
35
+ }
36
+ export interface DelegationTrust {
37
+ readonly issuers: ReadonlySet<string>;
38
+ readonly audiences: ReadonlySet<string>;
39
+ /** The worker's own DID: the only issuer allowed to omit `aud`. */
40
+ readonly ownDid?: string;
41
+ /** Origin whose `/.well-known/did.json` names the Checkpoint platform signer. */
42
+ readonly checkpointOrigin?: string;
43
+ }
44
+ /** DID resolution plus the configured Checkpoint origin's own DID document. */
45
+ export interface DelegationDidResolver extends DIDResolver {
46
+ checkpointIdentity(origin: string): Promise<DIDDocument | null>;
47
+ }
48
+ export type AudienceVerdict = "accepted" | "unmatched" | "missing";
49
+ export type StatusVerdict = "clear" | "revoked" | "unresolvable";
50
+ /** Build the trust policy from deployment configuration. */
51
+ export declare function resolveDelegationTrust(env: CloudflareEnv, options?: DelegationTrustOptions): DelegationTrust;
52
+ /**
53
+ * A credential's handle: `vc.id`, else the `jti` claim. The same rule as
54
+ * Checkpoint's reporter, so both name a credential alike. Org-issued
55
+ * delegations carry their per-delegation credential id as `vc.id` and no `jti`.
56
+ */
57
+ export declare function credentialHandle(payload: Record<string, unknown>): string | undefined;
58
+ /** RFC 7519 §4.1.3: `aud` is a string or an array; one accepted value is enough. */
59
+ export declare function audienceVerdict(aud: unknown, trust: DelegationTrust): AudienceVerdict;
60
+ /**
61
+ * did:key resolves locally and did:web through `@kya-os/mcp`'s resolver; every
62
+ * fetch refuses redirects, times out and is size-capped. Successful documents
63
+ * are cached for five minutes per resolver; a failed Checkpoint discovery for
64
+ * thirty seconds, so a degraded origin is not refetched for every token.
65
+ */
66
+ export declare function createDelegationDidResolver(fetchUpstream?: (url: string) => Promise<Response>): DelegationDidResolver;
67
+ /** One resolver per isolate, so DID documents stay cached across requests. */
68
+ export declare function sharedDelegationDidResolver(): DelegationDidResolver;
69
+ /**
70
+ * Ed25519 keys the document authorizes for assertions (`assertionMethod`),
71
+ * narrowed to `kid` when the token names one. A did:key has exactly one key,
72
+ * so only its DID part has to match.
73
+ */
74
+ export declare function assertionKeys(doc: DIDDocument, kid?: string): Uint8Array[];
75
+ /** Ed25519 signature check against any of `keys`. */
76
+ export declare function verifiesWithAnyKey(signingInput: string, signature: string, keys: readonly Uint8Array[]): Promise<boolean>;
77
+ /**
78
+ * Whether `issuerDid` is the Checkpoint platform signer: the did:key the
79
+ * configured Checkpoint origin's DID document lists in `alsoKnownAs` AND
80
+ * publishes as one of its own assertion keys.
81
+ */
82
+ export declare function isCheckpointPlatformIssuer(issuerDid: string, trust: DelegationTrust, resolver: DelegationDidResolver): Promise<boolean>;
83
+ /**
84
+ * The status entries a VC-JWT carries: the W3C `vc.credentialStatus` and the
85
+ * draft-kya-http-02 top-level `credentialStatus`. Returns null when either is
86
+ * malformed or the two disagree.
87
+ */
88
+ export declare function credentialStatusEntries(payload: Record<string, unknown>): unknown[] | null;
89
+ /**
90
+ * Read one revocation entry, fail closed: an entry the native profile would not
91
+ * issue (`validNativeStatus`), an unreachable or malformed list, a purpose
92
+ * mismatch, or an out-of-range index is "unresolvable", never "clear".
93
+ */
94
+ export declare function checkCredentialStatusEntry(entry: unknown, fetchUpstream?: (url: string) => Promise<Response>): Promise<StatusVerdict>;
95
+ /** "1"/"true" opts a development worker into unchecked legacy tokens. */
96
+ export declare function insecureDevTokensEnabled(env: CloudflareEnv): boolean;
97
+ //# sourceMappingURL=delegation-trust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-trust.d.ts","sourceRoot":"","sources":["../../src/services/delegation-trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,aAAa,CAAC;AAUrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,cAAc,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACjD,sEAAsE;IACtE,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,+EAA+E;AAC/E,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;AAqBjE,4DAA4D;AAC5D,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,sBAA2B,GACnC,eAAe,CAuCjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,GAAG,SAAS,CASpB;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,GACrB,eAAe,CAMjB;AAiED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAiB,GAChE,qBAAqB,CAmEvB;AAID,8EAA8E;AAC9E,wBAAgB,2BAA2B,IAAI,qBAAqB,CAEnE;AAsBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA2B1E;AAED,qDAAqD;AACrD,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,SAAS,UAAU,EAAE,GAC1B,OAAO,CAAC,OAAO,CAAC,CAalB;AAMD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,EAAE,GAAG,IAAI,CAclB;AAWD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,OAAO,EACd,aAAa,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAiB,GAChE,OAAO,CAAC,aAAa,CAAC,CA6BxB;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAKpE"}
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Delegation credential trust policy.
3
+ *
4
+ * Decides which issuers this worker accepts delegation VC-JWTs from, which
5
+ * audience they must name, which key verifies them, and whether their status
6
+ * entry is clear. `DelegationService` applies it before any verdict is reached
7
+ * or cached, with or without a Checkpoint API key.
8
+ *
9
+ * Pinned issuers:
10
+ * - the worker's own identity (`MCP_IDENTITY_AGENT_DID`), which signs the
11
+ * anchor flow's self-issued delegations;
12
+ * - the native issuer binding's org DID (`MCPI_NATIVE_HTTP_ISSUER_CONFIG`), and
13
+ * any native issuer the caller configured in code;
14
+ * - `KYA_OS_TRUSTED_DELEGATION_ISSUERS`;
15
+ * - the Checkpoint platform signer, found through the configured Checkpoint
16
+ * origin's own DID document (`CHECKPOINT_API_URL`, default kya.vouched.id),
17
+ * which names that did:key in `alsoKnownAs` under the same key.
18
+ *
19
+ * Nothing is hard-coded, and nothing named only by a token is fetched: an
20
+ * issuer is pinned before its DID document is resolved, and a status list is
21
+ * fetched only from a credential a pinned issuer signed.
22
+ *
23
+ * Accepted audiences: the worker's DID, `CHECKPOINT_PROJECT_ID`, the binding's
24
+ * org DID and project, any native issuer the caller configured in code, and
25
+ * `KYA_OS_DELEGATION_AUDIENCES`.
26
+ */
27
+ import { canonicalize } from "json-canonicalize";
28
+ import { base58Decode, base64urlDecodeToBytes, buildDidResolverRegistry, bytesToBase64, createDidKeyResolver, createDidWebResolver, extractPublicKeyFromDidKey, isIndexSet, } from "@kya-os/mcp";
29
+ import { DEFAULT_CHECKPOINT_URL } from "../constants";
30
+ import { fetchNativeNoRedirect } from "../delegation-http/native-fetch";
31
+ import { secureHttpUrl, validNativeStatus, } from "../delegation-http/native-http";
32
+ import { parseNativeIssuerBinding } from "../delegation-http/remote-issuer";
33
+ import { WebCryptoProvider } from "../providers/crypto";
34
+ const DID_PATTERN = /^did:[a-z0-9]+:[^\s#?]+$/;
35
+ const UPSTREAM_TIMEOUT_MS = 3_000;
36
+ const DID_DOCUMENT_TTL_MS = 5 * 60_000;
37
+ /** A failed Checkpoint discovery is retried at most this often per isolate. */
38
+ const DISCOVERY_RETRY_MS = 30_000;
39
+ const DID_DOCUMENT_MAX_BYTES = 64 * 1024;
40
+ const STATUS_RESPONSE_MAX_BYTES = 1024 * 1024;
41
+ /** Same ceiling as `@kya-os/mcp`'s MAX_STATUS_LIST_BYTES (16 MiB inflated). */
42
+ const STATUS_LIST_MAX_BYTES = 16 * 1024 * 1024;
43
+ function listFrom(value) {
44
+ return typeof value === "string" ? value.split(/[\s,]+/).filter(Boolean) : [];
45
+ }
46
+ function checkpointOriginFor(url) {
47
+ if (!secureHttpUrl(url, true))
48
+ return undefined;
49
+ return new URL(url).origin;
50
+ }
51
+ /** Build the trust policy from deployment configuration. */
52
+ export function resolveDelegationTrust(env, options = {}) {
53
+ const issuers = new Set();
54
+ const audiences = new Set();
55
+ const ownDid = typeof env.MCP_IDENTITY_AGENT_DID === "string" &&
56
+ DID_PATTERN.test(env.MCP_IDENTITY_AGENT_DID)
57
+ ? env.MCP_IDENTITY_AGENT_DID
58
+ : undefined;
59
+ if (ownDid) {
60
+ issuers.add(ownDid);
61
+ audiences.add(ownDid);
62
+ }
63
+ const binding = parseNativeIssuerBinding(env.MCPI_NATIVE_HTTP_ISSUER_CONFIG);
64
+ if (binding) {
65
+ issuers.add(binding.issuerDid);
66
+ audiences.add(binding.issuerDid);
67
+ audiences.add(binding.projectId);
68
+ }
69
+ for (const did of [
70
+ ...listFrom(env.KYA_OS_TRUSTED_DELEGATION_ISSUERS),
71
+ ...(options.trustedIssuers ?? []),
72
+ ])
73
+ if (did && DID_PATTERN.test(did))
74
+ issuers.add(did);
75
+ for (const aud of [
76
+ ...listFrom(env.CHECKPOINT_PROJECT_ID),
77
+ ...listFrom(env.KYA_OS_DELEGATION_AUDIENCES),
78
+ ...(options.audiences ?? []),
79
+ ])
80
+ if (aud)
81
+ audiences.add(aud);
82
+ const checkpointUrl = env.CHECKPOINT_API_URL || DEFAULT_CHECKPOINT_URL;
83
+ return {
84
+ issuers,
85
+ audiences,
86
+ ownDid,
87
+ checkpointOrigin: typeof checkpointUrl === "string"
88
+ ? checkpointOriginFor(checkpointUrl)
89
+ : undefined,
90
+ };
91
+ }
92
+ /**
93
+ * A credential's handle: `vc.id`, else the `jti` claim. The same rule as
94
+ * Checkpoint's reporter, so both name a credential alike. Org-issued
95
+ * delegations carry their per-delegation credential id as `vc.id` and no `jti`.
96
+ */
97
+ export function credentialHandle(payload) {
98
+ const vc = payload.vc;
99
+ const vcId = typeof vc === "object" && vc !== null
100
+ ? vc.id
101
+ : undefined;
102
+ if (typeof vcId === "string" && vcId.length > 0)
103
+ return vcId;
104
+ const jti = payload.jti;
105
+ return typeof jti === "string" && jti.length > 0 ? jti : undefined;
106
+ }
107
+ /** RFC 7519 §4.1.3: `aud` is a string or an array; one accepted value is enough. */
108
+ export function audienceVerdict(aud, trust) {
109
+ if (aud === undefined)
110
+ return "missing";
111
+ const values = Array.isArray(aud) ? aud : [aud];
112
+ return values.some((v) => typeof v === "string" && trust.audiences.has(v))
113
+ ? "accepted"
114
+ : "unmatched";
115
+ }
116
+ async function readBounded(stream, maxBytes) {
117
+ if (!stream)
118
+ throw new Error("Empty body");
119
+ const reader = stream.getReader();
120
+ const chunks = [];
121
+ let length = 0;
122
+ try {
123
+ for (;;) {
124
+ const { done, value } = await reader.read();
125
+ if (done)
126
+ break;
127
+ length += value.length;
128
+ if (length > maxBytes) {
129
+ void reader.cancel().catch(() => { });
130
+ throw new Error("Body exceeds limit");
131
+ }
132
+ chunks.push(value);
133
+ }
134
+ }
135
+ finally {
136
+ reader.releaseLock();
137
+ }
138
+ const bytes = new Uint8Array(length);
139
+ let offset = 0;
140
+ for (const chunk of chunks) {
141
+ bytes.set(chunk, offset);
142
+ offset += chunk.length;
143
+ }
144
+ return bytes;
145
+ }
146
+ async function readBoundedJson(response, maxBytes) {
147
+ if (response.status !== 200) {
148
+ void response.body?.cancel().catch(() => { });
149
+ throw new Error(`Unexpected status ${response.status}`);
150
+ }
151
+ return JSON.parse(new TextDecoder().decode(await readBounded(response.body, maxBytes)));
152
+ }
153
+ function upstreamFetch(url) {
154
+ return fetchNativeNoRedirect(url, {
155
+ signal: AbortSignal.timeout(UPSTREAM_TIMEOUT_MS),
156
+ headers: { Accept: "application/did+ld+json, application/json" },
157
+ });
158
+ }
159
+ function isDidDocument(value) {
160
+ if (!value || typeof value !== "object")
161
+ return false;
162
+ const doc = value;
163
+ return (typeof doc.id === "string" &&
164
+ (doc.verificationMethod === undefined ||
165
+ Array.isArray(doc.verificationMethod)) &&
166
+ (doc.assertionMethod === undefined || Array.isArray(doc.assertionMethod)) &&
167
+ (doc.alsoKnownAs === undefined || Array.isArray(doc.alsoKnownAs)));
168
+ }
169
+ /**
170
+ * did:key resolves locally and did:web through `@kya-os/mcp`'s resolver; every
171
+ * fetch refuses redirects, times out and is size-capped. Successful documents
172
+ * are cached for five minutes per resolver; a failed Checkpoint discovery for
173
+ * thirty seconds, so a degraded origin is not refetched for every token.
174
+ */
175
+ export function createDelegationDidResolver(fetchUpstream = upstreamFetch) {
176
+ const provider = {
177
+ // DidWebResolver reads the body unbounded, so hand it a capped copy.
178
+ async fetch(url) {
179
+ const response = await fetchUpstream(url);
180
+ if (!response.ok) {
181
+ void response.body?.cancel().catch(() => { });
182
+ return new Response(null, { status: response.status });
183
+ }
184
+ return new Response((await readBounded(response.body, DID_DOCUMENT_MAX_BYTES)), { status: response.status });
185
+ },
186
+ resolveDID: async () => null,
187
+ fetchStatusList: async () => null,
188
+ fetchDelegationChain: async () => [],
189
+ };
190
+ const resolvers = buildDidResolverRegistry({
191
+ key: createDidKeyResolver(),
192
+ web: (fp) => createDidWebResolver(fp, { cacheTtl: DID_DOCUMENT_TTL_MS }),
193
+ }, provider);
194
+ const checkpointDocs = new Map();
195
+ const remember = (origin, doc) => {
196
+ checkpointDocs.set(origin, {
197
+ doc,
198
+ expiresAt: Date.now() + (doc ? DID_DOCUMENT_TTL_MS : DISCOVERY_RETRY_MS),
199
+ });
200
+ return doc;
201
+ };
202
+ return {
203
+ async resolve(did) {
204
+ const method = /^did:([a-z0-9]+):/.exec(did)?.[1];
205
+ const resolver = method ? resolvers[method] : undefined;
206
+ if (!resolver)
207
+ return null;
208
+ try {
209
+ return await resolver.resolve(did);
210
+ }
211
+ catch {
212
+ return null;
213
+ }
214
+ },
215
+ // Checkpoint serves its server identity at /.well-known/did.json with the
216
+ // production did:web id on every host, so this is fetched by origin rather
217
+ // than resolved as did:web (a staging host would fail the id check).
218
+ async checkpointIdentity(origin) {
219
+ const cached = checkpointDocs.get(origin);
220
+ if (cached && cached.expiresAt > Date.now())
221
+ return cached.doc;
222
+ try {
223
+ const doc = await readBoundedJson(await fetchUpstream(origin + "/.well-known/did.json"), DID_DOCUMENT_MAX_BYTES);
224
+ return remember(origin, isDidDocument(doc) ? doc : null);
225
+ }
226
+ catch {
227
+ return remember(origin, null);
228
+ }
229
+ },
230
+ };
231
+ }
232
+ let sharedResolver;
233
+ /** One resolver per isolate, so DID documents stay cached across requests. */
234
+ export function sharedDelegationDidResolver() {
235
+ return (sharedResolver ??= createDelegationDidResolver());
236
+ }
237
+ function methodKey(vm) {
238
+ try {
239
+ const jwk = vm.publicKeyJwk;
240
+ if (jwk && jwk.kty === "OKP" && jwk.crv === "Ed25519") {
241
+ const key = typeof jwk.x === "string" ? base64urlDecodeToBytes(jwk.x) : null;
242
+ return key?.length === 32 ? key : null;
243
+ }
244
+ if (vm.publicKeyMultibase?.startsWith("z")) {
245
+ const decoded = base58Decode(vm.publicKeyMultibase.slice(1));
246
+ return decoded.length === 34 && decoded[0] === 0xed && decoded[1] === 1
247
+ ? decoded.slice(2)
248
+ : null;
249
+ }
250
+ }
251
+ catch {
252
+ // Malformed key material is simply not a usable key.
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Ed25519 keys the document authorizes for assertions (`assertionMethod`),
258
+ * narrowed to `kid` when the token names one. A did:key has exactly one key,
259
+ * so only its DID part has to match.
260
+ */
261
+ export function assertionKeys(doc, kid) {
262
+ const absolute = (id) => (id.startsWith("#") ? doc.id + id : id);
263
+ const byId = new Map();
264
+ for (const vm of doc.verificationMethod ?? [])
265
+ if (typeof vm?.id === "string")
266
+ byId.set(absolute(vm.id), vm);
267
+ const methods = [];
268
+ for (const entry of doc.assertionMethod ?? []) {
269
+ const vm = typeof entry === "string"
270
+ ? byId.get(absolute(entry))
271
+ : (entry ?? undefined);
272
+ if (typeof vm?.id === "string")
273
+ methods.push(vm);
274
+ }
275
+ let selected = methods;
276
+ if (kid !== undefined) {
277
+ const wanted = absolute(kid);
278
+ selected = methods.filter((vm) => absolute(vm.id) === wanted);
279
+ if (!selected.length &&
280
+ doc.id.startsWith("did:key:") &&
281
+ wanted.split("#")[0] === doc.id)
282
+ selected = methods;
283
+ }
284
+ return selected
285
+ .map(methodKey)
286
+ .filter((key) => key !== null);
287
+ }
288
+ /** Ed25519 signature check against any of `keys`. */
289
+ export async function verifiesWithAnyKey(signingInput, signature, keys) {
290
+ let signatureBytes;
291
+ try {
292
+ signatureBytes = base64urlDecodeToBytes(signature);
293
+ }
294
+ catch {
295
+ return false;
296
+ }
297
+ const data = new TextEncoder().encode(signingInput);
298
+ const crypto = new WebCryptoProvider();
299
+ for (const key of keys)
300
+ if (await crypto.verify(data, signatureBytes, bytesToBase64(key)))
301
+ return true;
302
+ return false;
303
+ }
304
+ function sameBytes(a, b) {
305
+ return a.length === b.length && a.every((byte, i) => byte === b[i]);
306
+ }
307
+ /**
308
+ * Whether `issuerDid` is the Checkpoint platform signer: the did:key the
309
+ * configured Checkpoint origin's DID document lists in `alsoKnownAs` AND
310
+ * publishes as one of its own assertion keys.
311
+ */
312
+ export async function isCheckpointPlatformIssuer(issuerDid, trust, resolver) {
313
+ if (!trust.checkpointOrigin || !issuerDid.startsWith("did:key:"))
314
+ return false;
315
+ const doc = await resolver.checkpointIdentity(trust.checkpointOrigin);
316
+ if (!doc?.alsoKnownAs?.includes(issuerDid))
317
+ return false;
318
+ const aliasKey = extractPublicKeyFromDidKey(issuerDid);
319
+ return (!!aliasKey && assertionKeys(doc).some((key) => sameBytes(key, aliasKey)));
320
+ }
321
+ /**
322
+ * The status entries a VC-JWT carries: the W3C `vc.credentialStatus` and the
323
+ * draft-kya-http-02 top-level `credentialStatus`. Returns null when either is
324
+ * malformed or the two disagree.
325
+ */
326
+ export function credentialStatusEntries(payload) {
327
+ const vc = payload.vc;
328
+ const inner = vc?.credentialStatus;
329
+ const outer = payload.credentialStatus;
330
+ if (inner !== undefined &&
331
+ outer !== undefined &&
332
+ canonicalize(inner) !== canonicalize(outer))
333
+ return null;
334
+ const status = inner ?? outer;
335
+ if (status === undefined)
336
+ return [];
337
+ const entries = Array.isArray(status) ? status : [status];
338
+ return entries.length ? entries : null;
339
+ }
340
+ function gunzipBounded(bytes) {
341
+ const body = new Response(bytes).body;
342
+ if (!body)
343
+ throw new Error("Empty status list");
344
+ return readBounded(body.pipeThrough(new DecompressionStream("gzip")), STATUS_LIST_MAX_BYTES);
345
+ }
346
+ /**
347
+ * Read one revocation entry, fail closed: an entry the native profile would not
348
+ * issue (`validNativeStatus`), an unreachable or malformed list, a purpose
349
+ * mismatch, or an out-of-range index is "unresolvable", never "clear".
350
+ */
351
+ export async function checkCredentialStatusEntry(entry, fetchUpstream = upstreamFetch) {
352
+ if (!entry ||
353
+ typeof entry !== "object" ||
354
+ !validNativeStatus(entry))
355
+ return "unresolvable";
356
+ const status = entry;
357
+ try {
358
+ const list = (await readBoundedJson(await fetchUpstream(status.statusListCredential), STATUS_RESPONSE_MAX_BYTES));
359
+ const subject = list?.credentialSubject;
360
+ if (!subject ||
361
+ subject.statusPurpose !== status.statusPurpose ||
362
+ typeof subject.encodedList !== "string")
363
+ return "unresolvable";
364
+ const revoked = await isIndexSet(subject.encodedList, Number(status.statusListIndex), { decompress: gunzipBounded });
365
+ return revoked ? "revoked" : "clear";
366
+ }
367
+ catch {
368
+ return "unresolvable";
369
+ }
370
+ }
371
+ /** "1"/"true" opts a development worker into unchecked legacy tokens. */
372
+ export function insecureDevTokensEnabled(env) {
373
+ const flag = String(env.KYA_OS_INSECURE_DEV_TOKENS ?? "")
374
+ .trim()
375
+ .toLowerCase();
376
+ return flag === "1" || flag === "true";
377
+ }
378
+ //# sourceMappingURL=delegation-trust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-trust.js","sourceRoot":"","sources":["../../src/services/delegation-trust.ts"],"names":[],"mappings":"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"}