@kya-os/mcp 1.2.0 → 1.3.1

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 (91) hide show
  1. package/CHANGELOG.md +114 -10
  2. package/LICENSE +1 -1
  3. package/README.md +50 -33
  4. package/dist/auth/handshake.d.ts +1 -1
  5. package/dist/auth/handshake.js +1 -1
  6. package/dist/delegation/cascading-revocation.d.ts +1 -1
  7. package/dist/delegation/cascading-revocation.js +1 -1
  8. package/dist/delegation/delegation-graph.d.ts +1 -1
  9. package/dist/delegation/delegation-graph.js +1 -1
  10. package/dist/delegation/did-web-resolver.d.ts +51 -1
  11. package/dist/delegation/did-web-resolver.d.ts.map +1 -1
  12. package/dist/delegation/did-web-resolver.js +108 -0
  13. package/dist/delegation/did-web-resolver.js.map +1 -1
  14. package/dist/delegation/outbound-headers.d.ts +14 -14
  15. package/dist/delegation/outbound-headers.d.ts.map +1 -1
  16. package/dist/delegation/outbound-headers.js +15 -15
  17. package/dist/delegation/outbound-headers.js.map +1 -1
  18. package/dist/delegation/outbound-proof.d.ts +2 -2
  19. package/dist/delegation/outbound-proof.js +2 -2
  20. package/dist/delegation/vc-issuer.d.ts +1 -1
  21. package/dist/delegation/vc-issuer.js +1 -1
  22. package/dist/delegation/vc-verifier.d.ts +2 -1
  23. package/dist/delegation/vc-verifier.d.ts.map +1 -1
  24. package/dist/delegation/vc-verifier.js +1 -1
  25. package/dist/delegation/vc-verifier.js.map +1 -1
  26. package/dist/errors.d.ts +6 -6
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +3 -3
  29. package/dist/errors.js.map +1 -1
  30. package/dist/index.d.ts +8 -7
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/logging/logger.d.ts +1 -1
  35. package/dist/logging/logger.js +1 -1
  36. package/dist/middleware/index.d.ts +6 -6
  37. package/dist/middleware/index.d.ts.map +1 -1
  38. package/dist/middleware/index.js +6 -6
  39. package/dist/middleware/index.js.map +1 -1
  40. package/dist/middleware/{mcpi-transport.d.ts → kya-os-transport.d.ts} +8 -8
  41. package/dist/middleware/kya-os-transport.d.ts.map +1 -0
  42. package/dist/middleware/{mcpi-transport.js → kya-os-transport.js} +9 -9
  43. package/dist/middleware/kya-os-transport.js.map +1 -0
  44. package/dist/middleware/{with-mcpi-server.d.ts → with-kya-os-server.d.ts} +24 -24
  45. package/dist/middleware/with-kya-os-server.d.ts.map +1 -0
  46. package/dist/middleware/{with-mcpi-server.js → with-kya-os-server.js} +26 -26
  47. package/dist/middleware/with-kya-os-server.js.map +1 -0
  48. package/dist/middleware/{with-mcpi.d.ts → with-kya-os.d.ts} +41 -60
  49. package/dist/middleware/with-kya-os.d.ts.map +1 -0
  50. package/dist/middleware/{with-mcpi.js → with-kya-os.js} +66 -42
  51. package/dist/middleware/with-kya-os.js.map +1 -0
  52. package/dist/proof/errors.d.ts +1 -0
  53. package/dist/proof/errors.d.ts.map +1 -1
  54. package/dist/proof/errors.js +2 -0
  55. package/dist/proof/errors.js.map +1 -1
  56. package/dist/proof/generator.d.ts +1 -1
  57. package/dist/proof/generator.js +1 -1
  58. package/dist/proof/index.d.ts +1 -1
  59. package/dist/proof/index.d.ts.map +1 -1
  60. package/dist/proof/index.js +1 -1
  61. package/dist/proof/index.js.map +1 -1
  62. package/dist/proof/verifier.d.ts +49 -1
  63. package/dist/proof/verifier.d.ts.map +1 -1
  64. package/dist/proof/verifier.js +85 -2
  65. package/dist/proof/verifier.js.map +1 -1
  66. package/dist/providers/base.d.ts +32 -3
  67. package/dist/providers/base.d.ts.map +1 -1
  68. package/dist/providers/base.js.map +1 -1
  69. package/dist/providers/node-crypto.d.ts +2 -2
  70. package/dist/providers/node-crypto.js +2 -2
  71. package/dist/session/manager.d.ts +8 -6
  72. package/dist/session/manager.d.ts.map +1 -1
  73. package/dist/session/manager.js +16 -10
  74. package/dist/session/manager.js.map +1 -1
  75. package/dist/types/protocol.d.ts +15 -3
  76. package/dist/types/protocol.d.ts.map +1 -1
  77. package/dist/types/protocol.js +7 -3
  78. package/dist/types/protocol.js.map +1 -1
  79. package/package.json +4 -4
  80. package/schemas/README.md +6 -6
  81. package/schemas/delegation-credential.json +4 -4
  82. package/schemas/detached-proof.json +1 -1
  83. package/schemas/handshake-request.json +3 -3
  84. package/schemas/handshake-response.json +2 -2
  85. package/schemas/well-known-mcpi.json +14 -7
  86. package/dist/middleware/mcpi-transport.d.ts.map +0 -1
  87. package/dist/middleware/mcpi-transport.js.map +0 -1
  88. package/dist/middleware/with-mcpi-server.d.ts.map +0 -1
  89. package/dist/middleware/with-mcpi-server.js.map +0 -1
  90. package/dist/middleware/with-mcpi.d.ts.map +0 -1
  91. package/dist/middleware/with-mcpi.js.map +0 -1
@@ -1,17 +1,17 @@
1
1
  /**
2
- * MCP-I Middleware — Core Implementation
2
+ * KYA-OS Middleware — Core Implementation
3
3
  *
4
4
  * Adds identity, session management, and proof generation to MCP servers.
5
5
  *
6
- * For most use cases, prefer the high-level `withMCPI()` adapter from
7
- * `./with-mcpi-server.ts` which (by default) auto-registers the handshake
6
+ * For most use cases, prefer the high-level `withKyaOs()` adapter from
7
+ * `./with-kya-os-server.ts` which (by default) auto-registers the handshake
8
8
  * tool and auto-attaches proofs to all tool responses:
9
9
  *
10
- * import { withMCPI } from '@kya-os/mcp';
11
- * await withMCPI(server, { crypto: new NodeCryptoProvider() });
10
+ * import { withKyaOs } from '@kya-os/mcp';
11
+ * await withKyaOs(server, { crypto: new NodeCryptoProvider() });
12
12
  *
13
- * `createMCPIMiddleware()` in this file is the lower-level API used
14
- * internally by `withMCPI()` and for advanced use cases like the
13
+ * `createKyaOsMiddleware()` in this file is the lower-level API used
14
+ * internally by `withKyaOs()` and for advanced use cases like the
15
15
  * low-level `Server` API or custom request handler patterns.
16
16
  */
17
17
  import { FetchProvider, } from "../providers/base.js";
@@ -24,10 +24,10 @@ import { createDidWebResolver } from "../delegation/did-web-resolver.js";
24
24
  import { verifyDelegationAudience } from "../delegation/audience-validator.js";
25
25
  import { createNeedsAuthorizationError, extractDelegationFromVC, } from "../types/protocol.js";
26
26
  import { logger } from "../logging/index.js";
27
- import { MCPI_ERROR_CODES } from "../errors.js";
27
+ import { KYA_OS_ERROR_CODES } from "../errors.js";
28
28
  import { canonicalizeJSON, parseVCJWT } from "../delegation/utils.js";
29
29
  import { base64urlDecodeToBytes, base64urlEncodeFromBytes, bytesToBase64 } from "../utils/base64.js";
30
- export const MCPI_ACTIONS = ["handshake", "identity", "reputation"];
30
+ export const KYA_OS_ACTIONS = ["handshake", "identity", "reputation"];
31
31
  class RuntimeFetchProvider extends FetchProvider {
32
32
  async resolveDID() {
33
33
  return null;
@@ -79,13 +79,13 @@ function validateScopeAttenuation(parentCredential, childCredential) {
79
79
  return { valid: true };
80
80
  }
81
81
  /**
82
- * Create MCP-I middleware for a standard MCP SDK Server.
82
+ * Create KYA-OS middleware for a standard MCP SDK Server.
83
83
  *
84
- * For most use cases, prefer {@link withMCPI} from `./with-mcpi-server.ts`
84
+ * For most use cases, prefer {@link withKyaOs} from `./with-kya-os-server.ts`
85
85
  * which wraps this function and (by default) auto-registers handshake +
86
86
  * auto-attaches proofs.
87
87
  *
88
- * Use `createMCPIMiddleware` directly when:
88
+ * Use `createKyaOsMiddleware` directly when:
89
89
  * - You use the low-level `Server` API (not `McpServer`)
90
90
  * - You need custom request handler patterns
91
91
  * - You want per-tool control over proof/delegation wrapping
@@ -100,7 +100,12 @@ function validateScopeAttenuation(parentCredential, childCredential) {
100
100
  * deployments behind a load balancer. For distributed deployments, implement a custom
101
101
  * `SessionStore` backed by Redis, DynamoDB, or similar and pass it via `config.session`.
102
102
  */
103
- export function createMCPIMiddleware(config, cryptoProvider) {
103
+ // Module-level warn-once flags for unsafe configuration. Per-process,
104
+ // not per-session, so long-running servers don't spam logs on every new
105
+ // session.
106
+ let warnedAudienceOptOut = false;
107
+ let warnedLegacyUnsafeDelegation = false;
108
+ export function createKyaOsMiddleware(config, cryptoProvider) {
104
109
  const identity = {
105
110
  did: config.identity.did,
106
111
  kid: config.identity.kid,
@@ -118,8 +123,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
118
123
  // Active session tracking — set after handshake (manual or auto)
119
124
  let activeSessionId;
120
125
  const handshakeTool = {
121
- name: "_mcpi_handshake",
122
- description: "MCP-I identity handshake — establishes a cryptographic session",
126
+ name: "_kyaos_handshake",
127
+ description: "KYA-OS identity handshake — establishes a cryptographic session",
123
128
  inputSchema: {
124
129
  type: "object",
125
130
  properties: {
@@ -137,15 +142,15 @@ export function createMCPIMiddleware(config, cryptoProvider) {
137
142
  required: ["nonce", "audience", "timestamp"],
138
143
  },
139
144
  };
140
- const mcpiTool = {
141
- name: "_mcpi",
142
- description: "MCP-I protocol — identity verification, session handshake, and server metadata",
145
+ const kyaOsTool = {
146
+ name: "_kyaos",
147
+ description: "KYA-OS protocol — identity verification, session handshake, and server metadata",
143
148
  inputSchema: {
144
149
  type: "object",
145
150
  properties: {
146
151
  action: {
147
152
  type: "string",
148
- enum: [...MCPI_ACTIONS],
153
+ enum: [...KYA_OS_ACTIONS],
149
154
  description: "Protocol operation to perform",
150
155
  },
151
156
  nonce: { type: "string", description: "Client-generated unique nonce" },
@@ -171,7 +176,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
171
176
  text: JSON.stringify({
172
177
  success: false,
173
178
  error: {
174
- code: MCPI_ERROR_CODES.handshake_failed,
179
+ code: KYA_OS_ERROR_CODES.handshake_failed,
175
180
  message: "Invalid handshake format: requires nonce (string), audience (string), and timestamp (positive integer)",
176
181
  },
177
182
  }),
@@ -214,12 +219,13 @@ export function createMCPIMiddleware(config, cryptoProvider) {
214
219
  name: config.identity.agentName ?? identity.did,
215
220
  capabilities: ["handshake", "signing", "verification"],
216
221
  protocolVersion: "1.0.0",
222
+ clockSkewSeconds: sessionManager.getStats().config.timestampSkewSeconds,
217
223
  }),
218
224
  },
219
225
  ],
220
226
  };
221
227
  }
222
- async function handleMCPI(args) {
228
+ async function handleKyaOs(args) {
223
229
  const action = typeof args.action === "string"
224
230
  ? args.action
225
231
  : undefined;
@@ -236,7 +242,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
236
242
  text: JSON.stringify({
237
243
  success: false,
238
244
  error: {
239
- code: MCPI_ERROR_CODES.runtime_error,
245
+ code: KYA_OS_ERROR_CODES.runtime_error,
240
246
  message: 'action: "reputation" is not yet implemented.',
241
247
  },
242
248
  }),
@@ -252,8 +258,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
252
258
  text: JSON.stringify({
253
259
  success: false,
254
260
  error: {
255
- code: MCPI_ERROR_CODES.invalid_request,
256
- message: `Unknown _mcpi action: "${action ?? "(missing)"}". Valid actions: ${MCPI_ACTIONS.join(", ")}`,
261
+ code: KYA_OS_ERROR_CODES.invalid_request,
262
+ message: `Unknown _kyaos action: "${action ?? "(missing)"}". Valid actions: ${KYA_OS_ACTIONS.join(", ")}`,
257
263
  },
258
264
  }),
259
265
  },
@@ -264,8 +270,8 @@ export function createMCPIMiddleware(config, cryptoProvider) {
264
270
  }
265
271
  /**
266
272
  * Auto-create a session for proof generation when no handshake has occurred.
267
- * In production, MCP-I-aware runtimes should execute handshake before tool calls.
268
- * This convenience mode allows non-MCP-I clients (like MCP Inspector) to
273
+ * In production, KYA-OS-aware runtimes should execute handshake before tool calls.
274
+ * This convenience mode allows non-KYA-OS clients (like MCP Inspector) to
269
275
  * still see proofs without manual handshake.
270
276
  */
271
277
  async function ensureSession() {
@@ -315,7 +321,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
315
321
  result._meta = { proof };
316
322
  }
317
323
  catch (error) {
318
- logger.error("[mcpi] Proof generation failed", {
324
+ logger.error("[kya-os] Proof generation failed", {
319
325
  tool: toolName,
320
326
  error: error instanceof Error ? error.message : String(error),
321
327
  });
@@ -328,6 +334,19 @@ export function createMCPIMiddleware(config, cryptoProvider) {
328
334
  }
329
335
  function wrapWithDelegation(toolName, config, handler) {
330
336
  const legacyUnsafeDelegationEnabled = delegationConfig?.allowLegacyUnsafeDelegation === true;
337
+ if (legacyUnsafeDelegationEnabled && !warnedLegacyUnsafeDelegation) {
338
+ warnedLegacyUnsafeDelegation = true;
339
+ console.warn("⚠️ KYA-OS: allowLegacyUnsafeDelegation=true disables delegation-chain " +
340
+ "resolution and StatusList revocation checks. This is unsafe for production. " +
341
+ "See SECURITY.md (Unsafe Delegation Modes).");
342
+ }
343
+ if (delegationConfig?.requireAudienceOnRedelegation === false &&
344
+ !warnedAudienceOptOut) {
345
+ warnedAudienceOptOut = true;
346
+ console.warn("⚠️ KYA-OS: requireAudienceOnRedelegation=false disables confused-deputy " +
347
+ "protection on re-delegations. The default is true as of 1.3.x. " +
348
+ "See SECURITY.md (Unsafe Delegation Modes).");
349
+ }
331
350
  const didKeyResolver = createDidKeyResolver();
332
351
  const fetchProvider = delegationConfig?.fetchProvider ??
333
352
  (typeof globalThis.fetch === "function"
@@ -408,7 +427,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
408
427
  if (leafDelegation.parentId) {
409
428
  if (!delegationConfig?.resolveDelegationChain) {
410
429
  if (legacyUnsafeDelegationEnabled) {
411
- logger.warn(`[mcpi] Legacy delegation mode enabled: accepting parent-linked credential ${leafDelegation.id} without resolveDelegationChain`);
430
+ logger.warn(`[kya-os] Legacy delegation mode enabled: accepting parent-linked credential ${leafDelegation.id} without resolveDelegationChain`);
412
431
  return { valid: true };
413
432
  }
414
433
  return {
@@ -457,7 +476,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
457
476
  seenIds.add(delegation.id);
458
477
  if (credential.credentialStatus && !delegationConfig?.statusListResolver) {
459
478
  if (legacyUnsafeDelegationEnabled) {
460
- logger.warn(`[mcpi] Legacy delegation mode enabled: skipping status-list verification for ${delegation.id}`);
479
+ logger.warn(`[kya-os] Legacy delegation mode enabled: skipping status-list verification for ${delegation.id}`);
461
480
  }
462
481
  else {
463
482
  return {
@@ -489,7 +508,12 @@ export function createMCPIMiddleware(config, cryptoProvider) {
489
508
  // credential in the chain MUST have an audience constraint.
490
509
  // This prevents confused-deputy attacks where re-delegated
491
510
  // credentials are forwarded to unintended servers.
492
- if (delegationConfig?.requireAudienceOnRedelegation &&
511
+ //
512
+ // Defaults to `true`. Set explicitly to `false` to preserve
513
+ // legacy behavior (logged once per process — see opt-out warning
514
+ // below).
515
+ const requireAudienceOnRedelegation = delegationConfig?.requireAudienceOnRedelegation !== false;
516
+ if (requireAudienceOnRedelegation &&
493
517
  delegation.parentId &&
494
518
  !delegation.constraints.audience) {
495
519
  return {
@@ -537,7 +561,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
537
561
  return { valid: true };
538
562
  };
539
563
  return async (args, sessionId) => {
540
- const delegationArg = args["_mcpi_delegation"];
564
+ const delegationArg = args["_kyaos_delegation"];
541
565
  if (delegationArg === undefined || delegationArg === null) {
542
566
  // No delegation provided — return needs_authorization response
543
567
  const tokenBytes = await cryptoProvider.randomBytes(16);
@@ -571,7 +595,7 @@ export function createMCPIMiddleware(config, cryptoProvider) {
571
595
  if (typeof delegationArg === "string") {
572
596
  const parsed = parseVCJWT(delegationArg);
573
597
  if (!parsed || !parsed.payload.vc) {
574
- return buildDelegationErrorResponse(MCPI_ERROR_CODES.delegation_invalid, "Invalid VC-JWT format");
598
+ return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.delegation_invalid, "Invalid VC-JWT format");
575
599
  }
576
600
  vc = parsed.payload.vc;
577
601
  // VC-JWTs don't have an embedded proof — the JWT signature is the
@@ -592,21 +616,21 @@ export function createMCPIMiddleware(config, cryptoProvider) {
592
616
  skipSignature: isVCJWT,
593
617
  });
594
618
  if (!verificationResult.valid) {
595
- logger.warn(`[mcpi] Delegation verification failed for "${toolName}": ${verificationResult.reason}`);
596
- return buildDelegationErrorResponse(MCPI_ERROR_CODES.delegation_invalid, verificationResult.reason ?? "Unknown delegation validation error");
619
+ logger.warn(`[kya-os] Delegation verification failed for "${toolName}": ${verificationResult.reason}`);
620
+ return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.delegation_invalid, verificationResult.reason ?? "Unknown delegation validation error");
597
621
  }
598
622
  const scopes = getDelegationScopes(vc);
599
623
  if (!scopes.includes(config.scopeId)) {
600
- logger.warn(`[mcpi] Delegation missing required scope "${config.scopeId}" for "${toolName}"`);
601
- return buildDelegationErrorResponse(MCPI_ERROR_CODES.insufficient_scope, `Required scope "${config.scopeId}" not in delegation scopes`);
624
+ logger.warn(`[kya-os] Delegation missing required scope "${config.scopeId}" for "${toolName}"`);
625
+ return buildDelegationErrorResponse(KYA_OS_ERROR_CODES.insufficient_scope, `Required scope "${config.scopeId}" not in delegation scopes`);
602
626
  }
603
- // Strip _mcpi_delegation from args before passing to handler
627
+ // Strip _kyaos_delegation from args before passing to handler
604
628
  const cleanArgs = {};
605
629
  for (const [k, v] of Object.entries(args)) {
606
- if (k !== "_mcpi_delegation")
630
+ if (k !== "_kyaos_delegation")
607
631
  cleanArgs[k] = v;
608
632
  }
609
- logger.debug(`[mcpi] Delegation verified for "${toolName}", scope "${config.scopeId}"`);
633
+ logger.debug(`[kya-os] Delegation verified for "${toolName}", scope "${config.scopeId}"`);
610
634
  return handler(cleanArgs, sessionId);
611
635
  };
612
636
  }
@@ -614,12 +638,12 @@ export function createMCPIMiddleware(config, cryptoProvider) {
614
638
  identity: config.identity,
615
639
  sessionManager,
616
640
  proofGenerator,
617
- mcpiTool,
641
+ kyaOsTool,
618
642
  handshakeTool,
619
- handleMCPI,
643
+ handleKyaOs,
620
644
  handleHandshake,
621
645
  wrapWithProof,
622
646
  wrapWithDelegation,
623
647
  };
624
648
  }
625
- //# sourceMappingURL=with-mcpi.js.map
649
+ //# sourceMappingURL=with-kya-os.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-kya-os.js","sourceRoot":"","sources":["../../src/middleware/with-kya-os.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,GAIf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,4BAA4B,GAI7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,GAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUrG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AAgL/E,MAAM,oBAAqB,SAAQ,aAAa;IAC9C,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAiB;QACxC,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,OAAsB,CAAC,CAAC;IACvD,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,UAAgC;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAsC,EACtC,eAAqC;IAErC,MAAM,YAAY,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC;IAErE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,cAAc,eAAe,CAAC,EAAE,2DAA2D,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE;SACtJ,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,cAAc,eAAe,CAAC,EAAE,gCAAgC,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACxJ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sEAAsE;AACtE,wEAAwE;AACxE,WAAW;AACX,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAEzC,MAAM,UAAU,qBAAqB,CACnC,MAAmB,EACnB,cAA8B;IAE9B,MAAM,QAAQ,GAAuB;QACnC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;QACxB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;QACxB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;QACtC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;KACrC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,cAAc,EAAE;QACxD,GAAG,MAAM,CAAC,OAAO;QACjB,SAAS,EAAE,QAAQ,CAAC,GAAG;KACxB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;IAE3C,6DAA6D;IAC7D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,iEAAiE;IACjE,IAAI,eAAmC,CAAC;IAExC,MAAM,aAAa,GAAwB;QACzC,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,iEAAiE;QACnE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBACvE,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uCAAuC;iBACrD;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAChE,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC;SAC7C;KACF,CAAC;IAEF,MAAM,SAAS,GAAwB;QACrC,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,iFAAiF;QACnF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,GAAG,cAAc,CAAC;oBACzB,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;gBACvE,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uCAAuC;iBACrD;gBACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBAChE,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF,CAAC;IAEF,KAAK,UAAU,eAAe,CAAC,IAA6B;QAI1D,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE;gCACL,IAAI,EAAE,kBAAkB,CAAC,gBAAgB;gCACzC,OAAO,EACL,wGAAwG;6BAC3G;yBACF,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GACV,MAAM,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClE,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI;4BACpB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;4BACnC,SAAS,EAAE,QAAQ,CAAC,GAAG;4BACvB,SAAS,EAAE,QAAQ,CAAC,GAAG;yBACxB,CAAC;wBACF,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;qBAC7C,CAAC;iBACH;aACF;YACD,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,cAAc;QAI3B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;wBACjB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,GAAG;wBAC/C,YAAY,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC;wBACtD,eAAe,EAAE,OAAO;wBACxB,gBAAgB,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,oBAAoB;qBACxE,CAAC;iBACH;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,IAA6B;QAItD,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;YAC7B,CAAC,CAAE,IAAI,CAAC,MAAsB;YAC9B,CAAC,CAAC,SAAS,CAAC;QAEhB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,WAAW;gBACd,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/B,KAAK,UAAU;gBACb,OAAO,cAAc,EAAE,CAAC;YAE1B,KAAK,YAAY;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE;oCACL,IAAI,EAAE,kBAAkB,CAAC,aAAa;oCACtC,OAAO,EACL,8CAA8C;iCACjD;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YAEJ;gBACE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE;oCACL,IAAI,EAAE,kBAAkB,CAAC,eAAe;oCACxC,OAAO,EAAE,2BAA2B,MAAM,IAAI,WAAW,qBAAqB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iCAC1G;6BACF,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,aAAa;QAC1B,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YAClE,IAAI,QAAQ;gBAAE,OAAO,eAAe,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAE1C,kFAAkF;QAClF,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,iBAAiB,CAAC;YACpD,KAAK;YACL,QAAQ,EAAE,QAAQ,CAAC,GAAG;YACtB,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAC3C,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,aAAa,CACpB,QAAgB,EAChB,OAA4B;QAE5B,OAAO,KAAK,EAAE,IAA6B,EAAE,SAAkB,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAS,EAAE,SAAS,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iEAAiE;YACjE,MAAM,iBAAiB,GAAG,SAAS,IAAI,MAAM,aAAa,EAAE,CAAC;YAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBAChE,MAAM,QAAQ,GAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAExD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,aAAa,CAC9C,OAAO,EACP,QAAQ,EACR,OAAO,CACR,CAAC;gBAEF,uEAAuE;gBACvE,MAAM,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;oBAC/C,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;gBACH,MAAM,CAAC,KAAK,GAAG;oBACb,UAAU,EAAE,gDAAgD;iBAC7D,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB,CACzB,QAAgB,EAChB,MAA+C,EAC/C,OAAyB;QAEzB,MAAM,6BAA6B,GACjC,gBAAgB,EAAE,2BAA2B,KAAK,IAAI,CAAC;QACzD,IAAI,6BAA6B,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACnE,4BAA4B,GAAG,IAAI,CAAC;YACpC,OAAO,CAAC,IAAI,CACV,yEAAyE;gBACvE,8EAA8E;gBAC9E,4CAA4C,CAC/C,CAAC;QACJ,CAAC;QACD,IACE,gBAAgB,EAAE,6BAA6B,KAAK,KAAK;YACzD,CAAC,oBAAoB,EACrB,CAAC;YACD,oBAAoB,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,IAAI,CACV,2EAA2E;gBACzE,iEAAiE;gBACjE,4CAA4C,CAC/C,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC9C,MAAM,aAAa,GACjB,gBAAgB,EAAE,aAAa;YAC/B,CAAC,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,oBAAoB,EAAE;gBAC5B,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,MAAM,cAAc,GAAG,aAAa;YAClC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC;YACrC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GAAgB;YAC/B,KAAK,CAAC,OAAO,CAAC,GAAW;gBACvB,MAAM,cAAc,GAAG,gBAAgB,EAAE,WAAW,CAAC;gBACrD,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnD,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO,QAAQ,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACrC,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;gBAC9C,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;QAEF,MAAM,iBAAiB,GAAkC,KAAK,EAC5D,EAAwB,EACxB,YAAqB,EACyB,EAAE;YAChD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;YACnD,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAuB,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;YACjE,CAAC;YAED,yEAAyE;YACzE,MAAM,QAAQ,GAAG,EAA6B,CAAC;YAC/C,MAAM,cAAc,GAA4B,EAAE,CAAC;YACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,OAAO;oBAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEjD,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAEpD,iEAAiE;YACjE,MAAM,GAAG,GAAG,YAA8B,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;YAChE,CAAC;YAED,mEAAmE;YACnE,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YAEhD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;YACxE,OAAO;gBACL,KAAK;gBACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B;aAC5D,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,4BAA4B,CAAC;YAChD,WAAW;YACX,iBAAiB;YACjB,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB;SACzD,CAAC,CAAC;QAEH,MAAM,4BAA4B,GAAG,CACnC,KAAa,EACb,MAAc,EACyB,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;iBACxC;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,uBAAuB,GAAG,KAAK,EACnC,cAAoC,EACpC,OAAqC,EACS,EAAE;YAChD,MAAM,cAAc,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;YAC/D,IAAI,KAAK,GAA2B,CAAC,cAAc,CAAC,CAAC;YAErD,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;oBAC9C,IAAI,6BAA6B,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CACT,+EAA+E,cAAc,CAAC,EAAE,iCAAiC,CAClI,CAAC;wBACF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBACzB,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,cAAc,CAAC,EAAE,sBAAsB,cAAc,CAAC,QAAQ,sDAAsD;qBAC3I,CAAC;gBACJ,CAAC;gBAED,IAAI,aAAqC,CAAC;gBAC1C,IAAI,CAAC;oBACH,aAAa;wBACX,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBAClE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBAC1G,CAAC;gBACJ,CAAC;gBAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,cAAc,CAAC,EAAE,sBAAsB,cAAc,CAAC,QAAQ,kCAAkC;qBACvH,CAAC;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CACvC,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,CACnE,CAAC;gBACF,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,iCAAiC,cAAc,CAAC,EAAE,oCAAoC;qBAC/F,CAAC;gBACJ,CAAC;gBAED,KAAK;oBACH,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC1E,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,IAAI,kBAAgD,CAAC;YACrD,IAAI,kBAAoD,CAAC;YAEzD,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;gBAEvD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC/B,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,qDAAqD,UAAU,CAAC,EAAE,EAAE;qBAC7E,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAE3B,IAAI,UAAU,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;oBACzE,IAAI,6BAA6B,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CACT,kFAAkF,UAAU,CAAC,EAAE,EAAE,CAClG,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACR,OAAO;4BACL,KAAK,EAAE,KAAK;4BACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,+DAA+D;yBACnG,CAAC;oBACF,CAAC;gBACH,CAAC;gBAED,MAAM,mBAAmB,GACvB,6BAA6B;oBAC7B,CAAC,CAAC,UAAU,CAAC,gBAAgB;oBAC7B,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;gBACxC,MAAM,sBAAsB,GAAG,MAAM,QAAQ,CAAC,0BAA0B,CACtE,UAAU,EACV;oBACE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3D,CACF,CAAC;gBACF,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;oBAClC,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,aAAa,sBAAsB,CAAC,MAAM,EAAE;qBAChF,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxD,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,yCAAyC,QAAQ,CAAC,GAAG,EAAE;qBAC3F,CAAC;gBACJ,CAAC;gBAED,gEAAgE;gBAChE,4DAA4D;gBAC5D,2DAA2D;gBAC3D,mDAAmD;gBACnD,EAAE;gBACF,4DAA4D;gBAC5D,iEAAiE;gBACjE,UAAU;gBACV,MAAM,6BAA6B,GACjC,gBAAgB,EAAE,6BAA6B,KAAK,KAAK,CAAC;gBAC5D,IACE,6BAA6B;oBAC7B,UAAU,CAAC,QAAQ;oBACnB,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAChC,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,kCAAkC,UAAU,CAAC,QAAQ,yHAAyH;qBAClN,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC/C,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;wBACxB,OAAO;4BACL,KAAK,EAAE,KAAK;4BACZ,MAAM,EAAE,4DAA4D,UAAU,CAAC,EAAE,4BAA4B,UAAU,CAAC,QAAQ,EAAE;yBACnI,CAAC;oBACJ,CAAC;oBAED,kBAAkB,GAAG,UAAU,CAAC;oBAChC,kBAAkB,GAAG,UAAU,CAAC;oBAChC,SAAS;gBACX,CAAC;gBAED,IAAI,UAAU,CAAC,QAAQ,KAAK,kBAAkB,CAAC,EAAE,EAAE,CAAC;oBAClD,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,sBAAsB,UAAU,CAAC,QAAQ,iBAAiB,kBAAkB,CAAC,EAAE,EAAE;qBACrH,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBAC3D,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,cAAc,UAAU,CAAC,EAAE,cAAc,UAAU,CAAC,SAAS,0BAA0B,kBAAkB,CAAC,UAAU,EAAE;qBAC/H,CAAC;gBACJ,CAAC;gBAED,MAAM,eAAe,GAAG,wBAAwB,CAC9C,kBAAkB,EAClB,UAAU,CACX,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAC3B,OAAO,eAAe,CAAC;gBACzB,CAAC;gBAED,kBAAkB,GAAG,UAAU,CAAC;gBAChC,kBAAkB,GAAG,UAAU,CAAC;YAClC,CAAC;YAED,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;YAC1E,IAAI,eAAe,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE,CAAC;gBAC7C,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,sCAAsC,eAAe,CAAC,EAAE,oBAAoB,cAAc,CAAC,EAAE,EAAE;iBACxG,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC;QAEF,OAAO,KAAK,EACV,IAA6B,EAC7B,SAAkB,EAClB,EAAE;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAEhD,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC1D,+DAA+D;gBAC/D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACxD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;qBAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,MAAM,WAAW,GAAG;oBAClB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;oBACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;oBACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;iBACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;gBAEtD,MAAM,SAAS,GAAG,6BAA6B,CAAC;oBAC9C,OAAO,EAAE,SAAS,QAAQ,qCAAqC,MAAM,CAAC,OAAO,EAAE;oBAC/E,gBAAgB,EAAE,MAAM,CAAC,UAAU;oBACnC,WAAW;oBACX,SAAS;oBACT,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;iBACzB,CAAC,CAAC;gBAEH,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;iBAC7D,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,EAAwB,CAAC;YAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAClC,OAAO,4BAA4B,CACjC,kBAAkB,CAAC,kBAAkB,EACrC,uBAAuB,CACxB,CAAC;gBACJ,CAAC;gBACD,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAA0B,CAAC;gBAC/C,kEAAkE;gBAClE,kEAAkE;gBAClE,iEAAiE;gBACjE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;oBACd,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC;gBACtE,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,aAAqC,CAAC;YAC7C,CAAC;YAED,iEAAiE;YACjE,iEAAiE;YACjE,+BAA+B;YAC/B,MAAM,kBAAkB,GAAG,MAAM,uBAAuB,CAAC,EAAE,EAAE;gBAC3D,aAAa,EAAE,OAAO;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CACT,gDAAgD,QAAQ,MAAM,kBAAkB,CAAC,MAAM,EAAE,CAC1F,CAAC;gBACF,OAAO,4BAA4B,CACjC,kBAAkB,CAAC,kBAAkB,EACrC,kBAAkB,CAAC,MAAM,IAAI,qCAAqC,CACnE,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CACT,+CAA+C,MAAM,CAAC,OAAO,UAAU,QAAQ,GAAG,CACnF,CAAC;gBACF,OAAO,4BAA4B,CACjC,kBAAkB,CAAC,kBAAkB,EACrC,mBAAmB,MAAM,CAAC,OAAO,4BAA4B,CAC9D,CAAC;YACJ,CAAC;YAED,8DAA8D;YAC9D,MAAM,SAAS,GAA4B,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,mBAAmB;oBAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,CAAC,KAAK,CACV,qCAAqC,QAAQ,aAAa,MAAM,CAAC,OAAO,GAAG,CAC5E,CAAC;YACF,OAAO,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc;QACd,cAAc;QACd,SAAS;QACT,aAAa;QACb,WAAW;QACX,eAAe;QACf,aAAa;QACb,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -30,6 +30,7 @@ export declare const PROOF_VERIFICATION_ERROR_CODES: {
30
30
  readonly VERIFICATION_METHOD_NOT_FOUND: "VERIFICATION_METHOD_NOT_FOUND";
31
31
  readonly PUBLIC_KEY_NOT_FOUND: "PUBLIC_KEY_NOT_FOUND";
32
32
  readonly UNSUPPORTED_DID_METHOD: "UNSUPPORTED_DID_METHOD";
33
+ readonly META_POLICY_VIOLATION: "META_POLICY_VIOLATION";
33
34
  readonly VERIFICATION_ERROR: "VERIFICATION_ERROR";
34
35
  readonly INTERNAL_ERROR: "INTERNAL_ERROR";
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;CAoCjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,OAAO,8BAA8B,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAErF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,IAAI,EAAE,0BAA0B;aAEhC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,0BAA0B,EAChD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,sBAAsB,CAExB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,OAAO,8BAA8B,CAAC,MAAM,OAAO,8BAA8B,CAAC,CAAC;AAErF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,IAAI,EAAE,0BAA0B;aAEhC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,0BAA0B,EAChD,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,0BAA0B,EAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,sBAAsB,CAExB"}
@@ -35,6 +35,8 @@ export const PROOF_VERIFICATION_ERROR_CODES = {
35
35
  VERIFICATION_METHOD_NOT_FOUND: "VERIFICATION_METHOD_NOT_FOUND",
36
36
  PUBLIC_KEY_NOT_FOUND: "PUBLIC_KEY_NOT_FOUND",
37
37
  UNSUPPORTED_DID_METHOD: "UNSUPPORTED_DID_METHOD",
38
+ // Meta policy errors
39
+ META_POLICY_VIOLATION: "META_POLICY_VIOLATION",
38
40
  // Generic errors
39
41
  VERIFICATION_ERROR: "VERIFICATION_ERROR",
40
42
  INTERNAL_ERROR: "INTERNAL_ERROR",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,yBAAyB;IACzB,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAEhD,kBAAkB;IAClB,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IAEtC,mBAAmB;IACnB,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,4BAA4B,EAAE,8BAA8B;IAC5D,qBAAqB,EAAE,uBAAuB;IAE9C,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IAEpC,wBAAwB;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAEhD,iBAAiB;IACjB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAKX;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IAEA;IAHlB,YACkB,IAAgC,EAChD,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAEhC,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAgC,EAChC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/proof/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,yBAAyB;IACzB,uBAAuB,EAAE,yBAAyB;IAClD,sBAAsB,EAAE,wBAAwB;IAEhD,kBAAkB;IAClB,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IAEtC,mBAAmB;IACnB,qBAAqB,EAAE,uBAAuB;IAC9C,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,4BAA4B,EAAE,8BAA8B;IAC5D,qBAAqB,EAAE,uBAAuB;IAE9C,aAAa;IACb,kBAAkB,EAAE,oBAAoB;IACxC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,gBAAgB,EAAE,kBAAkB;IAEpC,wBAAwB;IACxB,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,6BAA6B,EAAE,+BAA+B;IAC9D,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAEhD,qBAAqB;IACrB,qBAAqB,EAAE,uBAAuB;IAE9C,iBAAiB;IACjB,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAKX;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE7B;IAEA;IAHlB,YACkB,IAAgC,EAChD,OAAe,EACC,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAEhC,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAgC,EAChC,OAAe,EACf,OAAiC;IAEjC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Proof Generation — Platform-agnostic Protocol Reference
3
3
  *
4
4
  * Handles JCS canonicalization, SHA-256 digest generation, and Ed25519 JWS
5
- * signing (compact format) according to MCP-I requirements 5.1, 5.2, 5.3, 5.6.
5
+ * signing (compact format) according to KYA-OS requirements 5.1, 5.2, 5.3, 5.6.
6
6
  *
7
7
  * This module is the authoritative proof implementation. All platform adapters
8
8
  * (Node.js, Cloudflare Workers) inject a CryptoProvider and delegate here.
@@ -2,7 +2,7 @@
2
2
  * Proof Generation — Platform-agnostic Protocol Reference
3
3
  *
4
4
  * Handles JCS canonicalization, SHA-256 digest generation, and Ed25519 JWS
5
- * signing (compact format) according to MCP-I requirements 5.1, 5.2, 5.3, 5.6.
5
+ * signing (compact format) according to KYA-OS requirements 5.1, 5.2, 5.3, 5.6.
6
6
  *
7
7
  * This module is the authoritative proof implementation. All platform adapters
8
8
  * (Node.js, Cloudflare Workers) inject a CryptoProvider and delegate here.
@@ -1,4 +1,4 @@
1
1
  export { ProofGenerator, createProofResponse, extractCanonicalData, type ProofAgentIdentity, type ToolRequest, type ToolResponse, type ProofOptions, } from './generator.js';
2
- export { ProofVerifier, type ProofVerifierConfig, type ProofVerificationResult, } from './verifier.js';
2
+ export { ProofVerifier, validateMetaStructure, extractProofFromMeta, DEFAULT_CLOCK_SKEW_SECONDS, MIN_CLOCK_SKEW_SECONDS, MAX_CLOCK_SKEW_SECONDS, type ProofVerifierConfig, type ProofVerificationResult, } from './verifier.js';
3
3
  export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, type ProofVerificationErrorCode, } from './errors.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { ProofGenerator, createProofResponse, extractCanonicalData, } from './generator.js';
2
- export { ProofVerifier, } from './verifier.js';
2
+ export { ProofVerifier, validateMetaStructure, extractProofFromMeta, DEFAULT_CLOCK_SKEW_SECONDS, MIN_CLOCK_SKEW_SECONDS, MAX_CLOCK_SKEW_SECONDS, } from './verifier.js';
3
3
  export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, } from './errors.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GAKrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,aAAa,CAAC"}
@@ -9,7 +9,7 @@ import { CryptoProvider } from "../providers/base.js";
9
9
  import { ClockProvider } from "../providers/base.js";
10
10
  import { NonceCacheProvider } from "../providers/base.js";
11
11
  import { FetchProvider } from "../providers/base.js";
12
- import { type DetachedProof } from "../types/protocol.js";
12
+ import { type DetachedProof, type MetaPolicy } from "../types/protocol.js";
13
13
  import { type ProofVerificationErrorCode } from "./errors.js";
14
14
  export interface ProofVerificationResult {
15
15
  valid: boolean;
@@ -26,6 +26,12 @@ export interface ProofVerifierConfig {
26
26
  timestampSkewSeconds?: number;
27
27
  nonceTtlSeconds?: number;
28
28
  }
29
+ /** Default timestamp skew for proof verification (seconds) */
30
+ export declare const DEFAULT_CLOCK_SKEW_SECONDS = 120;
31
+ /** Minimum allowed clock skew (seconds) */
32
+ export declare const MIN_CLOCK_SKEW_SECONDS = 30;
33
+ /** Maximum allowed clock skew (seconds) */
34
+ export declare const MAX_CLOCK_SKEW_SECONDS = 600;
29
35
  export declare class ProofVerifier {
30
36
  private cryptoService;
31
37
  private clock;
@@ -34,6 +40,18 @@ export declare class ProofVerifier {
34
40
  private timestampSkewSeconds;
35
41
  private nonceTtlSeconds;
36
42
  constructor(config: ProofVerifierConfig);
43
+ /**
44
+ * Update the timestamp skew from a server-advertised value.
45
+ * Clients SHOULD call this with the server's clockSkewSeconds from /.well-known/mcp.
46
+ * The value is clamped to [30, 600] seconds.
47
+ *
48
+ * @param skewSeconds - Server-advertised clock skew in seconds
49
+ */
50
+ setTimestampSkew(skewSeconds: number): void;
51
+ /**
52
+ * Get the current timestamp skew setting.
53
+ */
54
+ getTimestampSkew(): number;
37
55
  /**
38
56
  * Verify a DetachedProof
39
57
  * Automatically reconstructs canonical payload from proof.meta for signature verification
@@ -105,4 +123,34 @@ export declare class ProofVerifier {
105
123
  */
106
124
  buildCanonicalPayload(meta: DetachedProof["meta"]): string;
107
125
  }
126
+ /**
127
+ * Validate _meta structure according to meta policy.
128
+ *
129
+ * In 'strict' mode, _meta must contain only 'proof'.
130
+ * In 'allow-extensions' mode, additional keys are permitted.
131
+ *
132
+ * @param meta - The _meta object from a response
133
+ * @param policy - Meta policy ('strict' or 'allow-extensions')
134
+ * @returns Validation result with valid flag and optional reason
135
+ */
136
+ export declare function validateMetaStructure(meta: Record<string, unknown>, policy?: MetaPolicy): {
137
+ valid: boolean;
138
+ reason?: string;
139
+ extraKeys?: string[];
140
+ };
141
+ /**
142
+ * Extract proof from _meta with policy validation.
143
+ *
144
+ * @param meta - The _meta object from a response
145
+ * @param policy - Meta policy ('strict' or 'allow-extensions')
146
+ * @returns Extracted proof or error result
147
+ */
148
+ export declare function extractProofFromMeta(meta: Record<string, unknown>, policy?: MetaPolicy): {
149
+ success: true;
150
+ proof: DetachedProof;
151
+ } | {
152
+ success: false;
153
+ reason: string;
154
+ errorCode: string;
155
+ };
108
156
  //# sourceMappingURL=verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,EAAE,mBAAmB;IASvC;;;;;;OAMG;IACG,WAAW,CACf,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAcnC;;;;;;OAMG;IACG,mBAAmB,CACvB,KAAK,EAAE,aAAa,EACpB,gBAAgB,EAAE,MAAM,GAAG,UAAU,EACrC,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,uBAAuB,CAAC;IAcnC;;;OAGG;YACW,uBAAuB;IAiDrC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;OAGG;YACW,sBAAsB;IAuBpC;;;OAGG;YACW,aAAa;IAmB3B;;;OAGG;YACW,iBAAiB;IAqB/B;;;OAGG;YACW,eAAe;IAgC7B;;;OAGG;YACW,eAAe;IAQ7B;;;;;;OAMG;IACG,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuG7B;;;;;;;;;OASG;IACH,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM;CA0B3D"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/proof/verifier.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,12 @@ import { validateDetachedProof, } from "../types/protocol.js";
9
9
  import { canonicalize } from "json-canonicalize";
10
10
  import { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, } from "./errors.js";
11
11
  import { logger } from "../logging/index.js";
12
+ /** Default timestamp skew for proof verification (seconds) */
13
+ export const DEFAULT_CLOCK_SKEW_SECONDS = 120;
14
+ /** Minimum allowed clock skew (seconds) */
15
+ export const MIN_CLOCK_SKEW_SECONDS = 30;
16
+ /** Maximum allowed clock skew (seconds) */
17
+ export const MAX_CLOCK_SKEW_SECONDS = 600;
12
18
  export class ProofVerifier {
13
19
  cryptoService;
14
20
  clock;
@@ -21,9 +27,28 @@ export class ProofVerifier {
21
27
  this.clock = config.clockProvider;
22
28
  this.nonceCache = config.nonceCacheProvider;
23
29
  this.fetch = config.fetchProvider;
24
- this.timestampSkewSeconds = config.timestampSkewSeconds ?? 300; // Default 5 minutes
30
+ this.timestampSkewSeconds = config.timestampSkewSeconds ?? DEFAULT_CLOCK_SKEW_SECONDS;
25
31
  this.nonceTtlSeconds = config.nonceTtlSeconds ?? 300; // Default 5 minutes
26
32
  }
33
+ /**
34
+ * Update the timestamp skew from a server-advertised value.
35
+ * Clients SHOULD call this with the server's clockSkewSeconds from /.well-known/mcp.
36
+ * The value is clamped to [30, 600] seconds.
37
+ *
38
+ * @param skewSeconds - Server-advertised clock skew in seconds
39
+ */
40
+ setTimestampSkew(skewSeconds) {
41
+ if (typeof skewSeconds !== 'number' || !Number.isFinite(skewSeconds)) {
42
+ return;
43
+ }
44
+ this.timestampSkewSeconds = Math.max(MIN_CLOCK_SKEW_SECONDS, Math.min(MAX_CLOCK_SKEW_SECONDS, Math.floor(skewSeconds)));
45
+ }
46
+ /**
47
+ * Get the current timestamp skew setting.
48
+ */
49
+ getTimestampSkew() {
50
+ return this.timestampSkewSeconds;
51
+ }
27
52
  /**
28
53
  * Verify a DetachedProof
29
54
  * Automatically reconstructs canonical payload from proof.meta for signature verification
@@ -280,7 +305,7 @@ export class ProofVerifier {
280
305
  aud: meta.audience, // Audience (who the token is for)
281
306
  sub: meta.did, // Subject (agent DID)
282
307
  iss: meta.did, // Issuer (agent DID - self-issued)
283
- // Custom MCP-I proof claims
308
+ // Custom KYA-OS proof claims
284
309
  requestHash: meta.requestHash,
285
310
  responseHash: meta.responseHash,
286
311
  ts: meta.ts,
@@ -296,4 +321,62 @@ export class ProofVerifier {
296
321
  return canonicalize(payload);
297
322
  }
298
323
  }
324
+ /**
325
+ * Validate _meta structure according to meta policy.
326
+ *
327
+ * In 'strict' mode, _meta must contain only 'proof'.
328
+ * In 'allow-extensions' mode, additional keys are permitted.
329
+ *
330
+ * @param meta - The _meta object from a response
331
+ * @param policy - Meta policy ('strict' or 'allow-extensions')
332
+ * @returns Validation result with valid flag and optional reason
333
+ */
334
+ export function validateMetaStructure(meta, policy = 'strict') {
335
+ const keys = Object.keys(meta);
336
+ const extraKeys = keys.filter(k => k !== 'proof');
337
+ if (policy === 'strict' && extraKeys.length > 0) {
338
+ return {
339
+ valid: false,
340
+ reason: `_meta contains keys other than 'proof' in strict mode: ${extraKeys.join(', ')}`,
341
+ extraKeys,
342
+ };
343
+ }
344
+ return { valid: true };
345
+ }
346
+ /**
347
+ * Extract proof from _meta with policy validation.
348
+ *
349
+ * @param meta - The _meta object from a response
350
+ * @param policy - Meta policy ('strict' or 'allow-extensions')
351
+ * @returns Extracted proof or error result
352
+ */
353
+ export function extractProofFromMeta(meta, policy = 'strict') {
354
+ // Check for required proof field first
355
+ const proof = meta.proof;
356
+ if (!proof) {
357
+ return {
358
+ success: false,
359
+ reason: '_meta does not contain proof',
360
+ errorCode: PROOF_VERIFICATION_ERROR_CODES.MISSING_REQUIRED_FIELD,
361
+ };
362
+ }
363
+ // Validate meta structure according to policy
364
+ const validation = validateMetaStructure(meta, policy);
365
+ if (!validation.valid) {
366
+ return {
367
+ success: false,
368
+ reason: validation.reason,
369
+ errorCode: PROOF_VERIFICATION_ERROR_CODES.META_POLICY_VIOLATION,
370
+ };
371
+ }
372
+ const proofValidation = validateDetachedProof(proof);
373
+ if (!proofValidation.success) {
374
+ return {
375
+ success: false,
376
+ reason: proofValidation.error?.message ?? 'Invalid proof structure',
377
+ errorCode: PROOF_VERIFICATION_ERROR_CODES.INVALID_PROOF_STRUCTURE,
378
+ };
379
+ }
380
+ return { success: true, proof: proofValidation.data };
381
+ }
299
382
  //# sourceMappingURL=verifier.js.map