@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
@@ -1,5 +1,6 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { classifyAdmissionRefusal, isAdmissionRefusalCode, } from "./admission-refusal";
3
4
  import { InvalidDelegationPresentation, readPresentedMcpDelegation, } from "./presented-delegation";
4
5
  // Established only by trusted transport admission, never tool params or a
5
6
  // stored handshake DID label. Async scope isolates concurrent MCP requests.
@@ -16,7 +17,7 @@ export function getMcpPresentedDelegation() {
16
17
  * the public Transport contract, so it works with both DO and ordinary MCP
17
18
  * transports without patching private SDK handlers.
18
19
  */
19
- export function withMcpAdmission(transport, admit) {
20
+ export function withMcpAdmission(transport, admit, reportRefusal) {
20
21
  let closed = false;
21
22
  const pending = new Map();
22
23
  const wrapped = {
@@ -80,33 +81,14 @@ export function withMcpAdmission(transport, admit) {
80
81
  authInfo: extra?.authInfo,
81
82
  requestInfo: extra?.requestInfo,
82
83
  };
84
+ // Read before admission, which receives `context` and could rewrite it.
85
+ const sessionId = context.sessionId;
83
86
  void (async () => {
84
- let verdict;
85
- let presentedDelegation;
86
- try {
87
- // Snapshot carriers before a callback can mutate context/headers.
88
- presentedDelegation = readPresentedMcpDelegation(original, context.requestInfo?.headers);
89
- verdict = await admit(structuredClone(original), context);
90
- }
91
- catch (error) {
92
- verdict = {
93
- allowed: false,
94
- result: {
95
- isError: true,
96
- content: [
97
- {
98
- type: "text",
99
- text: JSON.stringify({
100
- error: error instanceof InvalidDelegationPresentation
101
- ? "invalid_request"
102
- : "authorization_unavailable",
103
- message: "Request authorization could not be verified. Retry with a fresh proof.",
104
- }),
105
- },
106
- ],
107
- },
108
- };
109
- }
87
+ const { verdict, presentedDelegation } = await admitOriginal(original, context, admit);
88
+ // Before the cancelled check: a refused call is still an attempt
89
+ // worth recording, even when its caller has stopped waiting.
90
+ if (reportRefusal)
91
+ await reportAdmissionRefusal(reportRefusal, verdict, original.params?.name, sessionId);
110
92
  if (closed || active.cancelled)
111
93
  return;
112
94
  if (verdict?.allowed === true) {
@@ -151,15 +133,133 @@ export function withMcpAdmission(transport, admit) {
151
133
  };
152
134
  return wrapped;
153
135
  }
136
+ /** The reply when no admission verdict could be reached. */
137
+ function unverifiableRequest(error) {
138
+ const gateCode = error instanceof InvalidDelegationPresentation
139
+ ? "invalid_request"
140
+ : "authorization_unavailable";
141
+ return {
142
+ gateCode,
143
+ result: {
144
+ isError: true,
145
+ content: [
146
+ {
147
+ type: "text",
148
+ text: JSON.stringify({
149
+ error: gateCode,
150
+ message: "Request authorization could not be verified. Retry with a fresh proof.",
151
+ }),
152
+ },
153
+ ],
154
+ },
155
+ };
156
+ }
157
+ /**
158
+ * Reads the delegation carriers, then runs admission, over the original
159
+ * request.
160
+ *
161
+ * A carrier the wrapper rejects is refused here before any admission runs,
162
+ * so that refusal is the wrapper's own and carries its classified code (S2
163
+ * item 10 reads invalid_request as authorization_unavailable). A thrown
164
+ * admission carries none: the wrapper cannot tell which admission threw or
165
+ * why, so it is not reported.
166
+ */
167
+ async function admitOriginal(original, context, admit) {
168
+ let presentedDelegation;
169
+ try {
170
+ // Snapshot carriers before a callback can mutate context/headers.
171
+ presentedDelegation = readPresentedMcpDelegation(original, context.requestInfo?.headers);
172
+ }
173
+ catch (error) {
174
+ const { gateCode, result } = unverifiableRequest(error);
175
+ return {
176
+ verdict: {
177
+ allowed: false,
178
+ result,
179
+ refusal: { code: classifyAdmissionRefusal(gateCode) },
180
+ },
181
+ };
182
+ }
183
+ try {
184
+ return {
185
+ verdict: await admit(structuredClone(original), context),
186
+ presentedDelegation,
187
+ };
188
+ }
189
+ catch (error) {
190
+ return {
191
+ verdict: { allowed: false, result: unverifiableRequest(error).result },
192
+ };
193
+ }
194
+ }
195
+ /** How long a refused call waits for its Checkpoint report before replying. */
196
+ export const ADMISSION_REFUSAL_REPORT_BUDGET_MS = 2_000;
197
+ /**
198
+ * Reports a refusal only when trusted code classified it: the holder
199
+ * admission, or the wrapper's own carrier check. A thrown admission carries
200
+ * no refusal, so it is never reported.
201
+ */
202
+ async function reportAdmissionRefusal(reportRefusal, verdict, toolName, sessionId) {
203
+ try {
204
+ // Custom admissions return arbitrary values, so read them defensively.
205
+ if (verdict?.allowed !== false)
206
+ return;
207
+ const code = verdict.refusal?.code;
208
+ if (!isAdmissionRefusalCode(code) || typeof toolName !== "string")
209
+ return;
210
+ // The events fetch has no timeout of its own, so a slow or hung
211
+ // Checkpoint must not hold the refusal: after the budget the caller gets
212
+ // its answer and the report finishes, or fails, on its own.
213
+ let timer;
214
+ const budget = new Promise((resolve) => {
215
+ timer = setTimeout(resolve, ADMISSION_REFUSAL_REPORT_BUDGET_MS);
216
+ });
217
+ try {
218
+ await Promise.race([
219
+ reportRefusal({ toolName, code, sessionId }),
220
+ budget,
221
+ ]);
222
+ }
223
+ finally {
224
+ clearTimeout(timer);
225
+ }
226
+ }
227
+ catch {
228
+ // Telemetry must never change or withhold the refusal the caller gets;
229
+ // the reporter owns its own logging.
230
+ }
231
+ }
232
+ /**
233
+ * The SDK keeps its tool registry private and offers no lookup, so this is
234
+ * the minimal private read (precedent: utils/hidden-consent-tools.ts). An own
235
+ * property check keeps "__proto__" and other inherited names from counting.
236
+ */
237
+ function isRegisteredTool(server, name) {
238
+ const registry = server
239
+ ._registeredTools;
240
+ return (typeof registry === "object" &&
241
+ registry !== null &&
242
+ Object.prototype.hasOwnProperty.call(registry, name));
243
+ }
154
244
  /** McpAgent calls this public connect method when attaching its DO transport. */
155
245
  export class AdmissionMcpServer extends McpServer {
156
246
  admission;
157
- constructor(info, admission) {
247
+ options;
248
+ constructor(info, admission, options = {}) {
158
249
  super(info);
159
250
  this.admission = admission;
251
+ this.options = options;
160
252
  }
161
253
  connect(transport) {
162
- return super.connect(withMcpAdmission(transport, this.admission));
254
+ const report = this.options.reportRefusal;
255
+ // Only registered tools are reported, so a caller cannot write arbitrary
256
+ // tool names into Checkpoint by spraying signed calls at made-up tools.
257
+ const reportRegistered = report &&
258
+ (async (refusal) => {
259
+ if (isRegisteredTool(this, refusal.toolName))
260
+ await report(refusal);
261
+ });
262
+ return super.connect(withMcpAdmission(transport, this.admission, reportRegistered));
163
263
  }
164
264
  }
165
265
  //# sourceMappingURL=mcp-admission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-admission.js","sourceRoot":"","sources":["../../src/security/mcp-admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-admission.js","sourceRoot":"","sources":["../../src/security/mcp-admission.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type VerifyProofDeps } from "@kya-os/mcp/card";
1
+ import type { VerifyProofDeps } from "@kya-os/mcp/card";
2
2
  import type { JSONRPCRequest } from "@modelcontextprotocol/sdk/types.js";
3
+ import { type CardProofSupportGetter } from "./card-proof-support";
3
4
  import type { McpAdmissionContext, McpRequestAdmission } from "./mcp-admission";
4
5
  export interface McpHolderAdmissionOptions {
5
6
  /** Select from trusted resource/tool configuration, never incoming params. */
@@ -16,4 +17,14 @@ export interface McpHolderAdmissionOptions {
16
17
  * provider and scopes. Invalid native proofs never fall back to an executor.
17
18
  */
18
19
  export declare function createMcpHolderAdmission(options: McpHolderAdmissionOptions): McpRequestAdmission;
20
+ /**
21
+ * `createMcpHolderAdmission` with the card proof support passed in, so tests
22
+ * can make it unavailable. The source of the card module decides which calls
23
+ * count as signed, so it is a separate typed argument and never read from
24
+ * the options object, where a spread tenant config could carry it in
25
+ * unnoticed. Not exported from the package entry.
26
+ *
27
+ * @internal
28
+ */
29
+ export declare function createMcpHolderAdmissionWithSupport(options: McpHolderAdmissionOptions, getSupport: CardProofSupportGetter): McpRequestAdmission;
19
30
  //# sourceMappingURL=mcp-holder-admission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-holder-admission.d.ts","sourceRoot":"","sources":["../../src/security/mcp-holder-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EACV,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,WAAW,CACT,IAAI,EAAE,MAAM,GAEV,OAAO,CAAC,QAAQ,GAAG,kBAAkB,GAAG,QAAQ,CAAC,GACjD,QAAQ,GACR,kBAAkB,GAClB,QAAQ,CAAC;IACb,+EAA+E;IAC/E,KAAK,CACH,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IAC9C;0EACsE;IACtE,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAYD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,mBAAmB,CAsCrB"}
1
+ {"version":3,"file":"mcp-holder-admission.d.ts","sourceRoot":"","sources":["../../src/security/mcp-holder-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,yBAAyB;IACxC,8EAA8E;IAC9E,WAAW,CACT,IAAI,EAAE,MAAM,GAEV,OAAO,CAAC,QAAQ,GAAG,kBAAkB,GAAG,QAAQ,CAAC,GACjD,QAAQ,GACR,kBAAkB,GAClB,QAAQ,CAAC;IACb,+EAA+E;IAC/E,KAAK,CACH,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;IAC9C;0EACsE;IACtE,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AA4BD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,mBAAmB,CAErB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,yBAAyB,EAClC,UAAU,EAAE,sBAAsB,GACjC,mBAAmB,CA+CrB"}
@@ -1,20 +1,46 @@
1
- import { KYA_OS_CARD_PROOF_META_KEY, requireProof, } from "@kya-os/mcp/card";
2
- import { hasMcpRequestProof } from "./presented-delegation";
3
- function deny(code) {
1
+ import { classifyAdmissionRefusal } from "./admission-refusal";
2
+ import { getCardProofSupport, isProofShapedMeta, PROOF_SUPPORT_UNAVAILABLE, } from "./card-proof-support";
3
+ import { hasCardProofCarrier } from "./presented-delegation";
4
+ /**
5
+ * The caller sees only the gate code. The classified refusal rides beside
6
+ * the result for Checkpoint, so a tampered, replayed or stale call can be
7
+ * told apart there without telling the caller which check it failed.
8
+ */
9
+ function deny(code, reasons) {
4
10
  return {
5
11
  allowed: false,
6
12
  result: {
7
13
  isError: true,
8
14
  content: [{ type: "text", text: JSON.stringify({ error: code }) }],
9
15
  },
16
+ refusal: { code: classifyAdmissionRefusal(code, reasons) },
10
17
  };
11
18
  }
19
+ // The verifier widens its acceptance window by skewSec, so NaN or Infinity
20
+ // would stop it rejecting stale proofs, and nonce retention derived from it
21
+ // would stop catching replays.
22
+ function hasValidSkew(deps) {
23
+ return (deps.skewSec === undefined ||
24
+ (Number.isFinite(deps.skewSec) && deps.skewSec >= 0));
25
+ }
12
26
  /**
13
27
  * Authenticate the live invoker before the existing consent/delegation gate.
14
28
  * This grants no authority: the runtime must still verify the grant, account,
15
29
  * provider and scopes. Invalid native proofs never fall back to an executor.
16
30
  */
17
31
  export function createMcpHolderAdmission(options) {
32
+ return createMcpHolderAdmissionWithSupport(options, getCardProofSupport);
33
+ }
34
+ /**
35
+ * `createMcpHolderAdmission` with the card proof support passed in, so tests
36
+ * can make it unavailable. The source of the card module decides which calls
37
+ * count as signed, so it is a separate typed argument and never read from
38
+ * the options object, where a spread tenant config could carry it in
39
+ * unnoticed. Not exported from the package entry.
40
+ *
41
+ * @internal
42
+ */
43
+ export function createMcpHolderAdmissionWithSupport(options, getSupport) {
18
44
  return async (request, context) => {
19
45
  try {
20
46
  const { _meta, ...params } = request.params ?? {};
@@ -23,19 +49,31 @@ export function createMcpHolderAdmission(options) {
23
49
  const mode = await options.modeForTool(params.name);
24
50
  if (!["native", "runtime-executor", "public"].includes(mode))
25
51
  return deny("policy_unavailable");
26
- if (mode === "native" || hasMcpRequestProof(_meta)) {
52
+ const cardSupport = await getSupport();
53
+ if (!cardSupport.ok) {
54
+ // Without the card module no proof can be checked, so anything that
55
+ // looks signed must not run as an unsigned (server DID) call.
56
+ if (mode === "native" || isProofShapedMeta(_meta))
57
+ return deny(PROOF_SUPPORT_UNAVAILABLE);
58
+ }
59
+ else if (mode === "native" ||
60
+ hasCardProofCarrier(_meta, cardSupport.support)) {
61
+ const { metaKey, requireProof } = cardSupport.support;
27
62
  // The canonical carrier wins even when null/malformed. Published core
28
63
  // 1.15 uses nullish fallback; do not let a legacy proof replace an
29
64
  // explicitly empty canonical proof on this required admission path.
30
65
  if (_meta &&
31
- Object.prototype.hasOwnProperty.call(_meta, KYA_OS_CARD_PROOF_META_KEY) &&
32
- _meta[KYA_OS_CARD_PROOF_META_KEY] == null)
66
+ Object.prototype.hasOwnProperty.call(_meta, metaKey) &&
67
+ _meta[metaKey] == null)
33
68
  return deny("proof_missing");
34
- const guard = requireProof(await options.proof(context));
69
+ const deps = await options.proof(context);
70
+ if (!hasValidSkew(deps))
71
+ return deny("authorization_unavailable");
72
+ const guard = requireProof(deps);
35
73
  const proof = await guard({ method: request.method, params }, _meta);
36
74
  return proof.ok
37
75
  ? { allowed: true, holder: { did: proof.did, level: proof.level } }
38
- : deny(proof.error.code);
76
+ : deny(proof.error.code, proof.error.reasons);
39
77
  }
40
78
  if (mode === "runtime-executor") {
41
79
  return (await options.authorizeExecutor?.(request, context)) === true
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-holder-admission.js","sourceRoot":"","sources":["../../src/security/mcp-holder-admission.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,YAAY,GAEb,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAuB5D,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACnE;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACpE,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1D,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,sEAAsE;gBACtE,mEAAmE;gBACnE,oEAAoE;gBACpE,IACE,KAAK;oBACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAClC,KAAK,EACL,0BAA0B,CAC3B;oBACD,KAAK,CAAC,0BAA0B,CAAC,IAAI,IAAI;oBAEzC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrE,OAAO,KAAK,CAAC,EAAE;oBACb,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE;oBACnE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI;oBACnE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;oBACnB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mcp-holder-admission.js","sourceRoot":"","sources":["../../src/security/mcp-holder-admission.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { JSONRPCRequest } from "@modelcontextprotocol/sdk/types.js";
2
+ import { type CardProofSupport, type CardProofSupportGetter } from "./card-proof-support";
2
3
  /** Parsing identifies a credential carrier only. It establishes no authority. */
3
4
  export declare function decodeJwtPayload(jwt: string): Record<string, unknown> | null;
4
5
  export declare class InvalidDelegationPresentation extends Error {
@@ -6,7 +7,16 @@ export declare class InvalidDelegationPresentation extends Error {
6
7
  }
7
8
  export declare function readHeaderDelegation(getHeader: (name: string) => string | null): string | undefined;
8
9
  /** Presence, including malformed values, must never select an unsigned lane. */
10
+ export declare function hasCardProofCarrier(meta: unknown, support: Pick<CardProofSupport, "metaKey" | "legacyMetaKey">): boolean;
11
+ /**
12
+ * Sync check for callers that cannot await. Exact once card support has
13
+ * resolved in this isolate; until then (or if it failed) it errs towards
14
+ * "signed", which is the safe answer for every caller that must not rewrite
15
+ * or downgrade a signed request.
16
+ */
9
17
  export declare function hasMcpRequestProof(meta: unknown): boolean;
18
+ /** Like {@link hasMcpRequestProof}, but waits for card support to resolve. */
19
+ export declare function hasMcpRequestProofAsync(meta: unknown, getSupport?: CardProofSupportGetter): Promise<boolean>;
10
20
  /** Keep the original request intact; handlers consume this unverified token
11
21
  * out of band and still require the existing delegation verifier to accept it. */
12
22
  export declare function readPresentedMcpDelegation(request: JSONRPCRequest, headers?: Record<string, string | string[] | undefined>): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"presented-delegation.d.ts","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIzE,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAc5E;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAIvD;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACzC,MAAM,GAAG,SAAS,CAiBpB;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAQzD;AAED;kFACkF;AAClF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAM,GAC1D,MAAM,GAAG,SAAS,CA4BpB"}
1
+ {"version":3,"file":"presented-delegation.d.ts","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAK5B,MAAM,sBAAsB,CAAC;AAE9B,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAc5E;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAIvD;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GACzC,MAAM,GAAG,SAAS,CAiBpB;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,eAAe,CAAC,GAC3D,OAAO,CAQT;AAaD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED,8EAA8E;AAC9E,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,OAAO,EACb,UAAU,GAAE,sBAA4C,GACvD,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;kFACkF;AAClF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAM,GAC1D,MAAM,GAAG,SAAS,CA4BpB"}
@@ -1,5 +1,5 @@
1
- import { KYA_OS_CARD_PROOF_META_KEY, LEGACY_CARD_PROOF_META_KEY, } from "@kya-os/mcp/card";
2
1
  import { FALLBACK_DELEGATION_HEADER } from "../delegation-http/constants";
2
+ import { getCardProofSupport, isProofShapedMeta, peekCardProofSupport, } from "./card-proof-support";
3
3
  /** Parsing identifies a credential carrier only. It establishes no authority. */
4
4
  export function decodeJwtPayload(jwt) {
5
5
  const parts = jwt.split(".");
@@ -39,10 +39,30 @@ export function readHeaderDelegation(getHeader) {
39
39
  return credential;
40
40
  }
41
41
  /** Presence, including malformed values, must never select an unsigned lane. */
42
- export function hasMcpRequestProof(meta) {
42
+ export function hasCardProofCarrier(meta, support) {
43
43
  return (meta !== null &&
44
44
  typeof meta === "object" &&
45
- [KYA_OS_CARD_PROOF_META_KEY, LEGACY_CARD_PROOF_META_KEY].some((key) => Object.prototype.hasOwnProperty.call(meta, key)));
45
+ [support.metaKey, support.legacyMetaKey].some((key) => Object.prototype.hasOwnProperty.call(meta, key)));
46
+ }
47
+ // Without validated card support, the card-independent superset decides, so a
48
+ // bundle that never initialised the card constants still sees the proof.
49
+ function hasProofFor(meta, result) {
50
+ return result?.ok
51
+ ? hasCardProofCarrier(meta, result.support)
52
+ : isProofShapedMeta(meta);
53
+ }
54
+ /**
55
+ * Sync check for callers that cannot await. Exact once card support has
56
+ * resolved in this isolate; until then (or if it failed) it errs towards
57
+ * "signed", which is the safe answer for every caller that must not rewrite
58
+ * or downgrade a signed request.
59
+ */
60
+ export function hasMcpRequestProof(meta) {
61
+ return hasProofFor(meta, peekCardProofSupport());
62
+ }
63
+ /** Like {@link hasMcpRequestProof}, but waits for card support to resolve. */
64
+ export async function hasMcpRequestProofAsync(meta, getSupport = getCardProofSupport) {
65
+ return hasProofFor(meta, await getSupport());
46
66
  }
47
67
  /** Keep the original request intact; handlers consume this unverified token
48
68
  * out of band and still require the existing delegation verifier to accept it. */
@@ -1 +1 @@
1
- {"version":3,"file":"presented-delegation.js","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presented-delegation.js","sourceRoot":"","sources":["../../src/security/presented-delegation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.service.d.ts","sourceRoot":"","sources":["../../src/services/admin.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAW9C,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAgB;gBAEf,GAAG,EAAE,aAAa;IAI9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoDjD;;OAEG;YACW,gBAAgB;CA0hB/B"}
1
+ {"version":3,"file":"admin.service.d.ts","sourceRoot":"","sources":["../../src/services/admin.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkB9C,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAgB;gBAEf,GAAG,EAAE,aAAa;IAI9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoDjD;;OAEG;YACW,gBAAgB;CA6iB/B"}
@@ -5,8 +5,9 @@
5
5
  * Only enabled when config.admin.enabled === true
6
6
  */
7
7
  import { DEFAULT_CHECKPOINT_URL } from "../constants";
8
- import { MCP_CORS_HEADERS, PREFLIGHT_CORS_HEADERS } from "@kya-os/mcp-i-runtime";
8
+ import { MCP_CORS_HEADERS, PREFLIGHT_CORS_HEADERS, } from "@kya-os/mcp-i-runtime";
9
9
  import { clearCacheRequestSchema } from "@kya-os/contracts/checkpoint-api";
10
+ import { ToolProtectionSchema, } from "@kya-os/contracts/tool-protection";
10
11
  export class AdminService {
11
12
  env;
12
13
  constructor(env) {
@@ -291,14 +292,26 @@ export class AdminService {
291
292
  const toolProtections = {};
292
293
  const rawProtections = freshData.data.toolProtections || freshData.data.tools || {};
293
294
  for (const [toolName, toolConfig] of Object.entries(rawProtections)) {
295
+ if (!toolConfig ||
296
+ typeof toolConfig !== "object" ||
297
+ Array.isArray(toolConfig)) {
298
+ throw new Error("Invalid tool protection in cache refresh");
299
+ }
294
300
  const tc = toolConfig;
295
- const requiresDelegation = tc.requiresDelegation ?? tc.requires_delegation ?? false;
296
- const requiredScopes = tc.requiredScopes ?? tc.required_scopes ?? tc.scopes ?? [];
297
- toolProtections[toolName] = {
298
- requiresDelegation,
299
- requiredScopes,
300
- };
301
- if (requiresDelegation) {
301
+ // Cache hits are used directly by ToolProtectionService. Keep
302
+ // every enforcement field, particularly the identity method;
303
+ // warming must not turn OAuth into consent-only authorization.
304
+ // Reject malformed authorization instead of caching a weakened
305
+ // subset. The existing catch leaves the normal API fetch path.
306
+ const protection = ToolProtectionSchema.parse({
307
+ requiresDelegation: tc.requiresDelegation ?? tc.requires_delegation ?? false,
308
+ requiredScopes: tc.requiredScopes ?? tc.required_scopes ?? tc.scopes ?? [],
309
+ oauthProvider: tc.oauthProvider ?? tc.oauth_provider ?? undefined,
310
+ riskLevel: tc.riskLevel ?? tc.risk_level ?? undefined,
311
+ authorization: tc.authorization,
312
+ });
313
+ toolProtections[toolName] = protection;
314
+ if (protection.requiresDelegation) {
302
315
  refreshedProtectedTools.push(toolName);
303
316
  }
304
317
  }
@@ -325,7 +338,9 @@ export class AdminService {
325
338
  }
326
339
  }
327
340
  catch (error) {
328
- console.warn("[Admin] Error warming cache with fresh config:", error);
341
+ // Log the message only: Node 24.12's util.inspect throws on a zod
342
+ // 3.25 ZodError, which would turn this warning into a failed clear.
343
+ console.warn("[Admin] Error warming cache with fresh config:", error instanceof Error ? error.message : String(error));
329
344
  // Continue without warming - cache clear still happened
330
345
  }
331
346
  }
@@ -1 +1 @@
1
- {"version":3,"file":"admin.service.js","sourceRoot":"","sources":["../../src/services/admin.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,MAAM,OAAO,YAAY;IACf,GAAG,CAAgB;IAE3B,YAAY,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,IAAY,EACZ,OAAe,EACf,MAAc,EACd,OAAiC;QAEjC,MAAM,SAAS,GAA+B;YAC5C,IAAI;YACJ,OAAO;YACP,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC;QAEF,MAAM,WAAW,GAAsD;YACrE,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE;gBACR,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF,CAAC;QAEF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;YAC/C,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,gBAAgB;aACpB;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,GAAG,CAAC,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC/D,oCAAoC;YACpC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACxB,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE;wBACP,GAAG,sBAAsB;qBAC1B;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,mBAAmB,CAC7B,oBAAoB,EACpB,+BAA+B,EAC/B,GAAG,EACH;oBACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,eAAe,EAAE,CAAC,MAAM,CAAC;iBAC1B,CACF,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,yDAAyD;QACzD,OAAO,IAAI,CAAC,mBAAmB,CAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,GAAG,EACH;YACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,mBAAmB,EAAE,CAAC,oBAAoB,CAAC;YAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,kGAAkG;SACzG,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAAgB;QAC7C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAExD,4EAA4E;QAC5E,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;gBAClE,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE;gBACnD,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,mBAAmB,CAC7B,kBAAkB,EAClB,0CAA0C,EAC1C,GAAG,EACH,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,CACrD,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC;YAEtD,4CAA4C;YAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC,mBAAmB,CAC7B,cAAc,EACd,wDAAwD,EACxD,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;YAE9D,iEAAiE;YACjE,sFAAsF;YACtF,sDAAsD;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,4DAA4D;oBAC1D,kEAAkE,CACrE,CAAC;gBACF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,qBAAqB,EACrB,8DAA8D,EAC9D,GAAG,EACH;oBACE,IAAI,EAAE,+FAA+F;iBACtG,CACF,CAAC;YACJ,CAAC;YAED,mFAAmF;YACnF,MAAM,aAAa,GACjB,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,sBAAsB,CAAC;YACxD,MAAM,aAAa,GAAG,GAAG,aAAa,4BAA4B,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;YAEzG,IAAI,CAAC;gBACH,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;oBACpD,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;qBAClC;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CACV,oCAAoC,EACpC,kBAAkB,CAAC,MAAM,CAC1B,CAAC;oBACF,OAAO,IAAI,CAAC,mBAAmB,CAC7B,iBAAiB,EACjB,gCAAgC,EAChC,GAAG,CACJ,CAAC;gBACJ,CAAC;gBAED,2CAA2C;gBAC3C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,mBAAmB,CAC7B,mBAAmB,EACnB,4CAA4C,EAC5C,GAAG,EACH;oBACE,aAAa,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACzD,CACF,CAAC;YACJ,CAAC;YAED,qDAAqD;YACrD,uCAAuC;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,+CAA+C;gBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CACrE,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE;oBACnE,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB;oBAClD,SAAS,EAAE,SAAS,IAAI,MAAM;oBAC9B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oBACvC,eAAe,EAAE,OAAO;oBACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,8BAA8B;iBAC/E,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,mBAAmB,CAC7B,qBAAqB,EACrB,6CAA6C,EAC7C,GAAG,EACH;oBACE,IAAI,EAAE,8KAA8K;oBACpL,eAAe,EAAE,OAAO;iBACzB,CACF,CAAC;YACJ,CAAC;YAED,mEAAmE;YACnE,sEAAsE;YACtE,iDAAiD;YACjD,MAAM,YAAY,GAAG,SAAS;gBAC5B,CAAC,CAAC,2BAA2B,SAAS,EAAE;gBACxC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,mBAAmB,YAAY,EAAE,CAAC;YAEnD,8EAA8E;YAC9E,MAAM,WAAW,GAAG,SAAS;gBAC3B,CAAC,CAAC,yBAAyB,QAAQ,EAAE;gBACrC,CAAC,CAAC,IAAI,CAAC;YAET,qDAAqD;YACrD,MAAM,mBAAmB,GAAG,SAAS;gBACnC,CAAC,CAAC,gBAAgB,SAAS,EAAE;gBAC7B,CAAC,CAAC,IAAI,CAAC;YAET,uDAAuD;YACvD,MAAM,qBAAqB,GAAG,SAAS;gBACrC,CAAC,CAAC,kBAAkB,SAAS,EAAE;gBAC/B,CAAC,CAAC,IAAI,CAAC;YAET,qCAAqC;YACrC,IAAI,MAAM,GAAQ,IAAI,CAAC;YACvB,IAAI,SAAS,GAAQ,IAAI,CAAC;YAC1B,IAAI,WAAW,GAAQ,IAAI,CAAC;YAC5B,IAAI,aAAa,GAAQ,IAAI,CAAC;YAC9B,IAAI,YAAY,GAAa,EAAE,CAAC;YAEhC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,oDAAoD,EACpD,KAAK,CACN,CAAC;YACJ,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACjD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,wDAAwD,EACxD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,iEAAiE,EACjE,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,aAAa,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBAC/D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,mEAAmE,EACnE,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,IAAI,CAAC;gBACH,MAAM,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,YAAY,CAAC,IAAI,CAAC,oBAAoB,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBACtC,OAAO,CAAC,KAAK,CACX,6CAA6C,EAC7C,WAAW,CACZ,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzD,YAAY,CAAC,IAAI,CAAC,oBAAoB,WAAW,KAAK,QAAQ,EAAE,CAAC,CAAC;oBAClE,OAAO,CAAC,KAAK,CACX,yCAAyC,EACzC,WAAW,EACX,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,qDAAqD;YACrD,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;oBAC9C,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,mBAAmB,CACpB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzD,YAAY,CAAC,IAAI,CACf,oBAAoB,mBAAmB,KAAK,QAAQ,EAAE,CACvD,CAAC;oBACF,OAAO,CAAC,KAAK,CACX,kDAAkD,EAClD,mBAAmB,EACnB,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uDAAuD;YACvD,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBAChD,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,qBAAqB,CACtB,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,QAAQ,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzD,YAAY,CAAC,IAAI,CACf,oBAAoB,qBAAqB,KAAK,QAAQ,EAAE,CACzD,CAAC;oBACF,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,qBAAqB,EACrB,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,8DAA8D;YAC9D,uEAAuE;YACvE,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,IAAI,uBAAuB,GAAa,EAAE,CAAC;YAE3C,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,OAAO,CAAC,KAAK,CACX,kEAAkE,CACnE,CAAC;oBACF,+EAA+E;oBAC/E,4EAA4E;oBAC5E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;oBACvC,MAAM,kBAAkB,GAAG,GAAG,aAAa,4BAA4B,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,WAAW,EAAE,CAAC;oBAEvI,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAE;wBACpD,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,0DAA0D;4BAC1D,6DAA6D;4BAC7D,WAAW,EAAE,MAAM;4BACnB,cAAc,EAAE,SAAS;4BACzB,qCAAqC;4BACrC,eAAe,EAAE,qCAAqC;4BACtD,MAAM,EAAE,UAAU;yBACnB;qBACF,CAAC,CAAC;oBAEH,IAAI,aAAa,CAAC,EAAE,EAAE,CAAC;wBACrB,MAAM,SAAS,GAAQ,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;wBAElD,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;4BACxC,uCAAuC;4BACvC,MAAM,eAAe,GAAwB,EAAE,CAAC;4BAChD,MAAM,cAAc,GAClB,SAAS,CAAC,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;4BAE/D,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CACjD,cAAc,CACf,EAAE,CAAC;gCACF,MAAM,EAAE,GAAG,UAAiB,CAAC;gCAC7B,MAAM,kBAAkB,GACtB,EAAE,CAAC,kBAAkB,IAAI,EAAE,CAAC,mBAAmB,IAAI,KAAK,CAAC;gCAC3D,MAAM,cAAc,GAClB,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;gCAE7D,eAAe,CAAC,QAAQ,CAAC,GAAG;oCAC1B,kBAAkB;oCAClB,cAAc;iCACf,CAAC;gCAEF,IAAI,kBAAkB,EAAE,CAAC;oCACvB,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCACzC,CAAC;4BACH,CAAC;4BAED,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;4BAEzD,uDAAuD;4BACvD,MAAM,WAAW,GAAG;gCAClB,eAAe;gCACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;gCACpB,MAAM,EAAE,aAAa;6BACtB,CAAC;4BAEF,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gCAC3D,aAAa,EAAE,GAAG,EAAE,uBAAuB;6BAC5C,CAAC,CAAC;4BAEH,kBAAkB,GAAG,IAAI,CAAC;4BAC1B,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD;gCACE,QAAQ;gCACR,SAAS,EAAE,kBAAkB;gCAC7B,cAAc,EAAE,uBAAuB;6BACxC,CACF,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CACV,uCAAuC,EACvC,aAAa,CAAC,MAAM,CACrB,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;oBACtE,wDAAwD;gBAC1D,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,mEAAmE;YACnE,uFAAuF;YACvF,IAAI,KAAK,GAAQ,IAAI,CAAC;YACtB,IAAI,qBAAqB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;gBAChE,iEAAiE;gBACjE,kDAAkD;gBAClD,qBAAqB,GAAG,KAAK,CAAC;YAChC,CAAC;YAED,8CAA8C;YAC9C,gGAAgG;YAChG,6BAA6B;YAC7B,6EAA6E;YAC7E,yDAAyD;YACzD,MAAM,OAAO,GAAG,kBAAkB;gBAChC,CAAC,CAAC,IAAI,CAAC,4DAA4D;gBACnE,CAAC,CAAC,qBAAqB;oBACrB,CAAC,CAAC,CAAC,KAAK,CAAC,8DAA8D;oBACvE,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,0DAA0D;YAE3F,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;YAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;YAEhC,gEAAgE;YAChE,iDAAiD;YACjD,IAAI,qBAAqB,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1D,OAAO,CAAC,KAAK,CACX,+EAA+E,EAC/E;oBACE,QAAQ;oBACR,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;oBACvC,UAAU,EAAE,QAAQ;oBACpB,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;iBAC9D,CACF,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE;gBACvD,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;gBACvC,SAAS,EAAE,SAAS,IAAI,MAAM;gBAC9B,QAAQ;gBACR,WAAW,EAAE,WAAW,IAAI,MAAM;gBAClC,mBAAmB,EAAE,mBAAmB,IAAI,MAAM;gBAClD,qBAAqB,EAAE,qBAAqB,IAAI,MAAM;gBACtD,QAAQ;gBACR,WAAW;gBACX,aAAa,EAAE,CAAC,CAAC,WAAW;gBAC5B,eAAe,EAAE,CAAC,CAAC,aAAa;gBAChC,OAAO;gBACP,qBAAqB;gBACrB,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC;YAEH,+EAA+E;YAC/E,wFAAwF;YACxF,wEAAwE;YACxE,uEAAuE;YACvE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,mBAAmB,CAC7B,iBAAiB,EACjB,6BAA6B,EAC7B,GAAG,EACH;oBACE,aAAa,EAAE,YAAY;oBAC3B,SAAS,EAAE,QAAQ;oBACnB,aAAa,EAAE,WAAW,IAAI,IAAI;oBAClC,SAAS,EAAE,QAAQ;oBACnB,aAAa,EAAE,WAAW;oBAC1B,OAAO,EAAE,OAAO;oBAChB,sBAAsB,EAAE,qBAAqB;iBAC9C,CACF,CAAC;YACJ,CAAC;YAED,yEAAyE;YACzE,mEAAmE;YACnE,IAAI,CAAC,qBAAqB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,KAAK,CACX,qEAAqE,EACrE;oBACE,QAAQ;oBACR,QAAQ;iBACT,CACF,CAAC;YACJ,CAAC;YAED,4BAA4B;YAC5B,qFAAqF;YACrF,8EAA8E;YAC9E,MAAM,YAAY,GAQd;gBACF,OAAO,EAAE,kBAAkB;oBACzB,CAAC,CAAC,+CAA+C,uBAAuB,CAAC,MAAM,uBAAuB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;oBACpJ,CAAC,CAAC,OAAO;wBACP,CAAC,CAAC,qFAAqF;wBACvF,CAAC,CAAC,qFAAqF;gBAC3F,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,SAAS,IAAI,IAAI;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,WAAW,IAAI,IAAI;gBAClC,SAAS,EAAE,CAAC,CAAC,MAAM;gBACnB,aAAa,EAAE,CAAC,CAAC,SAAS;gBAC1B,OAAO,EAAE,OAAO,EAAE,mCAAmC;gBACrD,YAAY,EAAE,kBAAkB;gBAChC,oBAAoB,EAAE,kBAAkB;oBACtC,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,SAAS;gBACb,yBAAyB,EAAE,kBAAkB;oBAC3C,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,SAAS;gBACb,sBAAsB,EAAE,mBAAmB,IAAI,IAAI;gBACnD,wBAAwB,EAAE,qBAAqB,IAAI,IAAI;gBACvD,eAAe,EAAE,CAAC,CAAC,WAAW;gBAC9B,iBAAiB,EAAE,CAAC,CAAC,aAAa;aACnC,CAAC;YAEF,yCAAyC;YACzC,MAAM,WAAW,GAA8C;gBAC7D,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE;oBACR,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC;aACF,CAAC;YAEF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBAC/C,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,gBAAgB;iBACpB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,+CAA+C;YAC/C,MAAM,YAAY,GAAG;gBACnB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACrD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBACvD,KAAK,EACH,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK;oBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;oBACrB,CAAC,CAAC,SAAS;aAChB,CAAC;YAEF,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAC;YAC9D,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;YAE/D,OAAO,IAAI,CAAC,mBAAmB,CAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,GAAG,EACH;gBACE,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACrE,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC5D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"admin.service.js","sourceRoot":"","sources":["../../src/services/admin.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Routing and input hygiene for `/consent/approve`.
3
+ *
4
+ * SECURITY: `provider_type` decides which identity check an approval goes
5
+ * through, so it is matched against an allowlist. A value outside it used to
6
+ * fall through to an unchecked path that minted under a DID looked up from the
7
+ * caller's own `oauth_identity`, and that labelled the grant with the caller's
8
+ * `customFields`. Everything that names who signed in, or how, is now set by
9
+ * the server; the caller only chooses the route.
10
+ *
11
+ * Pure functions, no I/O.
12
+ */
13
+ /**
14
+ * The checks an approval can go through.
15
+ * - `credential`: real credential sign-in (`handleCredentialApproval`).
16
+ * - `clickwrap`: consent-only, or the clickwrap step after a credential or
17
+ * OAuth sign-in (the latter two need a signed identity assertion).
18
+ * - `oauth`: the clickwrap step after OAuth; always needs a signed assertion.
19
+ */
20
+ export type ApprovalRoute = "credential" | "clickwrap" | "oauth";
21
+ /**
22
+ * Map a caller's `provider_type` to its route, or `null` when it is missing,
23
+ * not a string, or not one of the allowed values.
24
+ *
25
+ * @example
26
+ * resolveApprovalRoute(" OAuth2 "); // "oauth"
27
+ * resolveApprovalRoute("magic_link"); // null
28
+ */
29
+ export declare function resolveApprovalRoute(raw: unknown): ApprovalRoute | null;
30
+ /** True when `oauth_provider_type` marks a post-OAuth clickwrap. */
31
+ export declare function isPostOAuthMarker(raw: unknown): boolean;
32
+ /** True when `credential_provider_type` marks a post-credential clickwrap. */
33
+ export declare function isPostCredentialMarker(raw: unknown): boolean;
34
+ /**
35
+ * `customFields` keys the server owns. Checkpoint reads the delegation's
36
+ * authorization type and provider from these, and the dashboard shows the
37
+ * user fields, so a caller must never set them.
38
+ */
39
+ export declare const SERVER_OWNED_CUSTOM_FIELDS: readonly string[];
40
+ /**
41
+ * Copy a caller's `customFields` without the server-owned keys. Anything that
42
+ * is not a plain object becomes `{}`.
43
+ *
44
+ * @example
45
+ * stripServerOwnedFields({ note: "hi", provider_type: "oauth" }); // { note: "hi" }
46
+ */
47
+ export declare function stripServerOwnedFields(customFields: unknown): Record<string, unknown>;
48
+ //# sourceMappingURL=approval-route.d.ts.map