@agenticprimitives/delegation 1.0.0-alpha.12 → 1.0.0-alpha.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/caveats.d.ts CHANGED
@@ -18,6 +18,9 @@ export declare function encodeAllowedMethodsTerms(selectors: Hex[]): Hex;
18
18
  export declare function encodeCallDataHashTerms(callData: Hex): Hex;
19
19
  export declare function buildMcpToolScopeCaveat(allowedTools: string[]): Caveat;
20
20
  export declare function buildDataScopeCaveat(grants: DataScopeGrant[]): Caveat;
21
+ /** Decode a `DATA_SCOPE` caveat's terms back to its grants. Used OFF-CHAIN by the resource server (the
22
+ * vault/MCP runtime) to scope the field projection — the on-chain evaluator treats the sentinel as inert. */
23
+ export declare function decodeDataScopeTerms(terms: Hex): DataScopeGrant[];
21
24
  export declare function buildVaultKeyUseCaveat(grant: VaultKeyUseGrant): Caveat;
22
25
  /** Decode a `VAULT_KEY_USE` caveat's terms back to its grant. Used by the KAS
23
26
  * (key-authorization, P2) to evaluate the authorization's scope against a request. */
@@ -1 +1 @@
1
- {"version":3,"file":"caveats.d.ts","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caveats.d.ts","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"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"}
package/dist/caveats.js CHANGED
@@ -87,6 +87,22 @@ export function buildDataScopeCaveat(grants) {
87
87
  ], [grants]);
88
88
  return { enforcer: DATA_SCOPE_ENFORCER, terms, args: '0x' };
89
89
  }
90
+ const DATA_SCOPE_ABI = [
91
+ {
92
+ type: 'tuple[]',
93
+ components: [
94
+ { name: 'server', type: 'string' },
95
+ { name: 'resources', type: 'string[]' },
96
+ { name: 'fields', type: 'string[]' },
97
+ ],
98
+ },
99
+ ];
100
+ /** Decode a `DATA_SCOPE` caveat's terms back to its grants. Used OFF-CHAIN by the resource server (the
101
+ * vault/MCP runtime) to scope the field projection — the on-chain evaluator treats the sentinel as inert. */
102
+ export function decodeDataScopeTerms(terms) {
103
+ const [grants] = decodeAbiParameters(DATA_SCOPE_ABI, terms);
104
+ return grants;
105
+ }
90
106
  // VAULT_KEY_USE (spec 278 §3.2): the person SA authorizes a host to wield a KEK
91
107
  // for bounded resources/ops. ABI shape mirrors `VaultKeyUseGrant`; the KAS decodes
92
108
  // it (via `decodeVaultKeyUseTerms`) to check scope ⊇ request before releasing a key.
@@ -1 +1 @@
1
- {"version":3,"file":"caveats.js","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"caveats.js","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { ROOT_AUTHORITY } from './types.js';
2
- export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, buildVaultKeyUseCaveat, decodeVaultKeyUseTerms, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, encodeCallDataHashTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, VAULT_KEY_USE_ENFORCER, PAYMENT_TRANSFER_SELECTOR, encodePaymentTerms, buildPaymentMandateCaveats, describePaymentMandate, } from './caveats.js';
2
+ export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, decodeDataScopeTerms, buildVaultKeyUseCaveat, decodeVaultKeyUseTerms, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, encodeCallDataHashTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, VAULT_KEY_USE_ENFORCER, PAYMENT_TRANSFER_SELECTOR, encodePaymentTerms, buildPaymentMandateCaveats, describePaymentMandate, } from './caveats.js';
3
3
  export type { QuorumCaveatOpts, PaymentMandateCaveatOpts, PaymentMandateConsent } from './caveats.js';
4
4
  export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash.js';
5
5
  export { buildSessionDelegation } from './session-delegation.js';
@@ -15,7 +15,11 @@ export { SessionManager, createMemorySessionStore } from './session-manager.js';
15
15
  export { verifyAuthorization } from './verify-authorization.js';
16
16
  export type { VerifyAuthorizationResult } from './verify-authorization.js';
17
17
  export { mintDelegationToken, verifyDelegationToken, sessionDelegateBindingError } from './token.js';
18
- export { isRevoked, buildRevokeDelegationCall } from './onchain.js';
19
- export type { Address, Hex, Caveat, CaveatContext, CaveatVerdict, Delegation, DataScopeGrant, VaultKeyUseGrant, DelegationClientOpts, DelegationTokenClaims, EnforcerAddressMap, EvaluateOpts, JtiStore, SessionMeta, SessionPackage, SessionRow, SessionStore, TxContext, VerifyError, VerifyOpts, } from './types.js';
18
+ export { isRevoked, buildRevokeDelegationCall, verifyUniversalSignature } from './onchain.js';
19
+ export { verifyOffChainQuorum } from './quorum.js';
20
+ export type { OffChainQuorumProof, VerifyOffChainQuorumInput, OffChainQuorumResult } from './quorum.js';
21
+ export { INVOCATION_PROOF_VERSION, INVOCATION_PROOF_EIP712_TYPES, DEFAULT_MAX_PROOF_TTL_MS, DEFAULT_PROOF_CLOCK_SKEW_MS, invocationProofDomain, hashInvocationProof, canonicalArgumentsHash, hashDelegationTokenString, buildInvocationProof, verifyInvocationProofClaims, } from './invocation-proof.js';
22
+ export type { AgenticInvocationProofV1, InvocationProofSignedFields, InvocationProofSignatureVerifier, VerifyInvocationProofInput, InvocationProofResult, } from './invocation-proof.js';
23
+ export type { Address, Hex, Caveat, CaveatContext, CaveatVerdict, Delegation, DataScopeGrant, VaultKeyUseGrant, DelegationClientOpts, DelegationTokenClaims, EnforcerAddressMap, EvaluateOpts, JtiStore, JtiReservation, SessionMeta, SessionPackage, SessionRow, SessionStore, TxContext, VerifyError, VerifyOpts, } from './types.js';
20
24
  export type { VerifyOptsExt } from './token.js';
21
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAM3E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEpE,YAAY,EACV,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAM3E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAG9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxG,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAKpB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // See ../../specs/202-delegation.md for the full contract.
4
4
  export { ROOT_AUTHORITY } from './types.js';
5
- export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, buildVaultKeyUseCaveat, decodeVaultKeyUseTerms, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, encodeCallDataHashTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, VAULT_KEY_USE_ENFORCER, PAYMENT_TRANSFER_SELECTOR, encodePaymentTerms, buildPaymentMandateCaveats, describePaymentMandate, } from './caveats.js';
5
+ export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, decodeDataScopeTerms, buildVaultKeyUseCaveat, decodeVaultKeyUseTerms, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, encodeCallDataHashTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, VAULT_KEY_USE_ENFORCER, PAYMENT_TRANSFER_SELECTOR, encodePaymentTerms, buildPaymentMandateCaveats, describePaymentMandate, } from './caveats.js';
6
6
  export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash.js';
7
7
  // DEL-001 session-delegation leaf builder (spec 270 v4 W2) — every connect flow uses this.
8
8
  export { buildSessionDelegation } from './session-delegation.js';
@@ -20,5 +20,10 @@ export { verifyAuthorization } from './verify-authorization.js';
20
20
  // error string — a public symbol that lies about runtime capability. When the
21
21
  // work resumes it lands behind `./experimental` per spec 100 §6.
22
22
  export { mintDelegationToken, verifyDelegationToken, sessionDelegateBindingError } from './token.js';
23
- export { isRevoked, buildRevokeDelegationCall } from './onchain.js';
23
+ export { isRevoked, buildRevokeDelegationCall, verifyUniversalSignature } from './onchain.js';
24
+ // Off-chain quorum verification (spec 291 §6b) — for MCP-only ops that never redeem on chain.
25
+ export { verifyOffChainQuorum } from './quorum.js';
26
+ // Agentic Invocation Proof (spec 287) — per-call proof-of-possession for the
27
+ // public native MCP ingress. Crypto primitive only; mcp-runtime wires it.
28
+ export { INVOCATION_PROOF_VERSION, INVOCATION_PROOF_EIP712_TYPES, DEFAULT_MAX_PROOF_TTL_MS, DEFAULT_PROOF_CLOCK_SKEW_MS, invocationProofDomain, hashInvocationProof, canonicalArgumentsHash, hashDelegationTokenString, buildInvocationProof, verifyInvocationProofClaims, } from './invocation-proof.js';
24
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,2DAA2D;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACnG,2FAA2F;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,2DAA2D;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACnG,2FAA2F;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE9F,8FAA8F;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,6EAA6E;AAC7E,0EAA0E;AAC1E,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,133 @@
1
+ import type { Address, Hex } from '@agenticprimitives/types';
2
+ import type { JtiStore } from './types.js';
3
+ export declare const INVOCATION_PROOF_VERSION: "agentic-invocation-v1";
4
+ /** Default bounded TTL window (spec 287 §5). */
5
+ export declare const DEFAULT_MAX_PROOF_TTL_MS = 120000;
6
+ export declare const DEFAULT_PROOF_CLOCK_SKEW_MS = 30000;
7
+ /**
8
+ * The proof envelope. `chainId` + `audience` are domain separators; `principal`
9
+ * and `sessionKey` are carried for the runtime's cross-checks but are NOT in the
10
+ * signed message — their binding is closed by signature recovery + the delegation
11
+ * token's `sub` (spec 287 §6).
12
+ */
13
+ export interface AgenticInvocationProofV1 {
14
+ version: typeof INVOCATION_PROOF_VERSION;
15
+ chainId: number;
16
+ audience: string;
17
+ principal: Address;
18
+ sessionKey: Address;
19
+ operation: string;
20
+ argumentsHash: Hex;
21
+ delegationTokenHash: Hex;
22
+ requestId: string;
23
+ issuedAt: number;
24
+ expiresAt: number;
25
+ signature: Hex;
26
+ }
27
+ /** The signed fields (spec 287 §3) — `chainId` rides in the EIP-712 domain. */
28
+ export type InvocationProofSignedFields = Pick<AgenticInvocationProofV1, 'chainId' | 'audience' | 'operation' | 'argumentsHash' | 'delegationTokenHash' | 'requestId' | 'issuedAt' | 'expiresAt'>;
29
+ export declare const INVOCATION_PROOF_EIP712_TYPES: {
30
+ readonly AgenticInvocationProofV1: readonly [{
31
+ readonly name: "audience";
32
+ readonly type: "string";
33
+ }, {
34
+ readonly name: "operation";
35
+ readonly type: "string";
36
+ }, {
37
+ readonly name: "argumentsHash";
38
+ readonly type: "bytes32";
39
+ }, {
40
+ readonly name: "delegationTokenHash";
41
+ readonly type: "bytes32";
42
+ }, {
43
+ readonly name: "requestId";
44
+ readonly type: "string";
45
+ }, {
46
+ readonly name: "issuedAt";
47
+ readonly type: "uint256";
48
+ }, {
49
+ readonly name: "expiresAt";
50
+ readonly type: "uint256";
51
+ }];
52
+ };
53
+ /** EIP-712 domain — no `verifyingContract` (this is an off-chain proof). */
54
+ export declare function invocationProofDomain(chainId: number): {
55
+ readonly name: "AgenticInvocationProof";
56
+ readonly version: "1";
57
+ readonly chainId: number;
58
+ };
59
+ /**
60
+ * The digest the session key signs (and the verifier recomputes). Building it is
61
+ * pure — importable client-side to build + sign a proof.
62
+ */
63
+ export declare function hashInvocationProof(p: InvocationProofSignedFields): Hex;
64
+ /**
65
+ * Canonical hash of the EXACT tool arguments (spec 287 §4). Uses the repo's
66
+ * cross-runtime-stable `canonicalJSON` so the client's signed hash and the
67
+ * runtime's recomputed hash are byte-identical. The runtime MUST recompute this
68
+ * from the args it actually received — never trust the client's stated value.
69
+ */
70
+ export declare function canonicalArgumentsHash(args: unknown): Hex;
71
+ /** Bind the proof to the presented delegation token (spec 287 §4). */
72
+ export declare function hashDelegationTokenString(rawToken: string): Hex;
73
+ /**
74
+ * Client-side builder: assemble + sign an invocation proof. The caller supplies
75
+ * a `sign(digest)` that produces the session key's signature over the EIP-712
76
+ * digest (e.g. `account.sign({ hash })` for an EOA session key, or any SA
77
+ * `Signer`). `args` MUST be the exact tool arguments the call will
78
+ * carry — the runtime recomputes `canonicalArgumentsHash(args)` from what it
79
+ * receives and rejects a mismatch. Pure (no chain); importable in the browser.
80
+ */
81
+ export declare function buildInvocationProof(input: {
82
+ chainId: number;
83
+ audience: string;
84
+ principal: Address;
85
+ sessionKey: Address;
86
+ operation: string;
87
+ /** The exact tool arguments (excluding the token/quorumProof/invocationProof envelope). */
88
+ args: unknown;
89
+ /** The raw delegation token string presented alongside this call. */
90
+ rawDelegationToken: string;
91
+ requestId: string;
92
+ issuedAt: number;
93
+ expiresAt: number;
94
+ sign: (digest: Hex) => Promise<Hex>;
95
+ }): Promise<AgenticInvocationProofV1>;
96
+ /** Injected signature verifier — wired to `UniversalSignatureValidator` in prod. */
97
+ export type InvocationProofSignatureVerifier = (input: {
98
+ signer: Address;
99
+ digest: Hex;
100
+ signature: Hex;
101
+ }) => Promise<boolean>;
102
+ export interface VerifyInvocationProofInput {
103
+ proof: AgenticInvocationProofV1;
104
+ /** Server-recomputed values the proof MUST match (never the client's claims). */
105
+ expected: {
106
+ chainId: number;
107
+ audience: string;
108
+ operation: string;
109
+ argumentsHash: Hex;
110
+ delegationTokenHash: Hex;
111
+ };
112
+ verifySignature: InvocationProofSignatureVerifier;
113
+ jtiStore: JtiStore;
114
+ now?: () => number;
115
+ maxProofTtlMs?: number;
116
+ clockSkewMs?: number;
117
+ }
118
+ export type InvocationProofResult = {
119
+ ok: true;
120
+ } | {
121
+ ok: false;
122
+ reason: string;
123
+ };
124
+ /**
125
+ * Verify an invocation proof. Cheap local checks gate first; the (potentially
126
+ * chain-bound) signature verify runs next; the one-shot `requestId` is reserved
127
+ * ONLY after the signature verifies (so an unauthenticated party can't burn a
128
+ * victim's requestId). Fail-closed: every failure returns `{ ok: false, reason }`.
129
+ * Callers MUST NOT echo `reason` to external clients — log it, return a generic
130
+ * error (spec 287 §5, ADR-0013).
131
+ */
132
+ export declare function verifyInvocationProofClaims(input: VerifyInvocationProofInput): Promise<InvocationProofResult>;
133
+ //# sourceMappingURL=invocation-proof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-proof.d.ts","sourceRoot":"","sources":["../src/invocation-proof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ // Agentic Invocation Proof (spec 287). A per-call proof-of-possession: the
2
+ // DEL-001-bound session key (spec 270) signs an EIP-712 digest over the EXACT
3
+ // call so a public native MCP request is bound to its exact argument payload —
4
+ // the property A2A already has via `hashA2aMessage` and the internal mesh has
5
+ // via the service MAC, but which the direct public hop lacked.
6
+ //
7
+ // This module is the PURE crypto primitive: the type, the EIP-712 digest, the
8
+ // canonical argument/token hashing, and a claims verifier that takes an INJECTED
9
+ // signature verifier (the `UniversalSignatureValidator` surface — so any
10
+ // credential strategy works) + an INJECTED `JtiStore` (one-shot requestId). It
11
+ // imports no audit/transport — it returns a `{ ok, reason }` result and never
12
+ // emits. The MCP-specific wiring (recompute argsHash from the received call,
13
+ // cross-check against the delegation token, gate on `requireInvocationProof`,
14
+ // emit audit) lives in `mcp-runtime`'s `with-delegation` — spec 287 §9.
15
+ import { hashTypedData, keccak256, toBytes } from 'viem';
16
+ import { canonicalJSON } from './token.js';
17
+ export const INVOCATION_PROOF_VERSION = 'agentic-invocation-v1';
18
+ /** Default bounded TTL window (spec 287 §5). */
19
+ export const DEFAULT_MAX_PROOF_TTL_MS = 120_000;
20
+ export const DEFAULT_PROOF_CLOCK_SKEW_MS = 30_000;
21
+ export const INVOCATION_PROOF_EIP712_TYPES = {
22
+ AgenticInvocationProofV1: [
23
+ { name: 'audience', type: 'string' },
24
+ { name: 'operation', type: 'string' },
25
+ { name: 'argumentsHash', type: 'bytes32' },
26
+ { name: 'delegationTokenHash', type: 'bytes32' },
27
+ { name: 'requestId', type: 'string' },
28
+ { name: 'issuedAt', type: 'uint256' },
29
+ { name: 'expiresAt', type: 'uint256' },
30
+ ],
31
+ };
32
+ /** EIP-712 domain — no `verifyingContract` (this is an off-chain proof). */
33
+ export function invocationProofDomain(chainId) {
34
+ return { name: 'AgenticInvocationProof', version: '1', chainId };
35
+ }
36
+ /**
37
+ * The digest the session key signs (and the verifier recomputes). Building it is
38
+ * pure — importable client-side to build + sign a proof.
39
+ */
40
+ export function hashInvocationProof(p) {
41
+ return hashTypedData({
42
+ domain: invocationProofDomain(p.chainId),
43
+ types: INVOCATION_PROOF_EIP712_TYPES,
44
+ primaryType: 'AgenticInvocationProofV1',
45
+ message: {
46
+ audience: p.audience,
47
+ operation: p.operation,
48
+ argumentsHash: p.argumentsHash,
49
+ delegationTokenHash: p.delegationTokenHash,
50
+ requestId: p.requestId,
51
+ issuedAt: BigInt(p.issuedAt),
52
+ expiresAt: BigInt(p.expiresAt),
53
+ },
54
+ });
55
+ }
56
+ /**
57
+ * Canonical hash of the EXACT tool arguments (spec 287 §4). Uses the repo's
58
+ * cross-runtime-stable `canonicalJSON` so the client's signed hash and the
59
+ * runtime's recomputed hash are byte-identical. The runtime MUST recompute this
60
+ * from the args it actually received — never trust the client's stated value.
61
+ */
62
+ export function canonicalArgumentsHash(args) {
63
+ return keccak256(toBytes(canonicalJSON(args)));
64
+ }
65
+ /** Bind the proof to the presented delegation token (spec 287 §4). */
66
+ export function hashDelegationTokenString(rawToken) {
67
+ return keccak256(toBytes(rawToken));
68
+ }
69
+ /**
70
+ * Client-side builder: assemble + sign an invocation proof. The caller supplies
71
+ * a `sign(digest)` that produces the session key's signature over the EIP-712
72
+ * digest (e.g. `account.sign({ hash })` for an EOA session key, or any SA
73
+ * `Signer`). `args` MUST be the exact tool arguments the call will
74
+ * carry — the runtime recomputes `canonicalArgumentsHash(args)` from what it
75
+ * receives and rejects a mismatch. Pure (no chain); importable in the browser.
76
+ */
77
+ export async function buildInvocationProof(input) {
78
+ const signed = {
79
+ chainId: input.chainId,
80
+ audience: input.audience,
81
+ operation: input.operation,
82
+ argumentsHash: canonicalArgumentsHash(input.args),
83
+ delegationTokenHash: hashDelegationTokenString(input.rawDelegationToken),
84
+ requestId: input.requestId,
85
+ issuedAt: input.issuedAt,
86
+ expiresAt: input.expiresAt,
87
+ };
88
+ const signature = await input.sign(hashInvocationProof(signed));
89
+ return {
90
+ version: INVOCATION_PROOF_VERSION,
91
+ principal: input.principal,
92
+ sessionKey: input.sessionKey,
93
+ signature,
94
+ ...signed,
95
+ };
96
+ }
97
+ function hexEq(a, b) {
98
+ return a.toLowerCase() === b.toLowerCase();
99
+ }
100
+ /**
101
+ * Verify an invocation proof. Cheap local checks gate first; the (potentially
102
+ * chain-bound) signature verify runs next; the one-shot `requestId` is reserved
103
+ * ONLY after the signature verifies (so an unauthenticated party can't burn a
104
+ * victim's requestId). Fail-closed: every failure returns `{ ok: false, reason }`.
105
+ * Callers MUST NOT echo `reason` to external clients — log it, return a generic
106
+ * error (spec 287 §5, ADR-0013).
107
+ */
108
+ export async function verifyInvocationProofClaims(input) {
109
+ const { proof, expected } = input;
110
+ const now = (input.now ?? Date.now)();
111
+ const maxTtl = input.maxProofTtlMs ?? DEFAULT_MAX_PROOF_TTL_MS;
112
+ const skew = input.clockSkewMs ?? DEFAULT_PROOF_CLOCK_SKEW_MS;
113
+ if (proof.version !== INVOCATION_PROOF_VERSION)
114
+ return { ok: false, reason: 'version' };
115
+ if (proof.chainId !== expected.chainId)
116
+ return { ok: false, reason: 'chain_mismatch' };
117
+ if (proof.audience !== expected.audience)
118
+ return { ok: false, reason: 'audience_mismatch' };
119
+ if (proof.operation !== expected.operation)
120
+ return { ok: false, reason: 'operation_mismatch' };
121
+ if (!hexEq(proof.argumentsHash, expected.argumentsHash))
122
+ return { ok: false, reason: 'arguments_mismatch' };
123
+ if (!hexEq(proof.delegationTokenHash, expected.delegationTokenHash)) {
124
+ return { ok: false, reason: 'delegation_token_mismatch' };
125
+ }
126
+ // Bounded window (spec 287 §5).
127
+ if (!Number.isFinite(proof.issuedAt) || !Number.isFinite(proof.expiresAt)) {
128
+ return { ok: false, reason: 'window_malformed' };
129
+ }
130
+ if (proof.expiresAt <= proof.issuedAt)
131
+ return { ok: false, reason: 'window_inverted' };
132
+ if (proof.expiresAt - proof.issuedAt > maxTtl)
133
+ return { ok: false, reason: 'window_too_long' };
134
+ if (proof.issuedAt > now + skew)
135
+ return { ok: false, reason: 'not_yet_valid' };
136
+ if (now > proof.expiresAt)
137
+ return { ok: false, reason: 'expired' };
138
+ // Proof-of-possession over the exact digest. Injected verifier → any credential
139
+ // strategy (EOA ECDSA, ERC-1271, ERC-6492) via UniversalSignatureValidator.
140
+ const digest = hashInvocationProof(proof);
141
+ let sigOk = false;
142
+ try {
143
+ sigOk = await input.verifySignature({ signer: proof.sessionKey, digest, signature: proof.signature });
144
+ }
145
+ catch {
146
+ return { ok: false, reason: 'signature_error' };
147
+ }
148
+ if (!sigOk)
149
+ return { ok: false, reason: 'signature_invalid' };
150
+ // One-shot requestId reservation — ONLY after the signature verified.
151
+ const jti = `invproof:${proof.audience}:${proof.requestId}`;
152
+ const tracked = await input.jtiStore.trackUsage(jti, 1);
153
+ if (!tracked.allowed)
154
+ return { ok: false, reason: 'request_replayed' };
155
+ return { ok: true };
156
+ }
157
+ //# sourceMappingURL=invocation-proof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-proof.js","sourceRoot":"","sources":["../src/invocation-proof.ts"],"names":[],"mappings":"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"}
package/dist/onchain.d.ts CHANGED
@@ -1,5 +1,28 @@
1
1
  import { type Hex, type Address } from 'viem';
2
2
  import type { Delegation } from './types.js';
3
+ /**
4
+ * Validate a signature by `signer` over `digest`, connection-agnostically
5
+ * (spec 270 v4 / spec 287 §7). The verification primitive is selected by the
6
+ * signer's TYPE — a deterministic branch on whether the signer has code, NOT a
7
+ * try-strong-catch-weak fallback (ADR-0013):
8
+ * - **EOA** (no code) → local ECDSA `recoverAddress` (the deployed
9
+ * `UniversalSignatureValidator` reverts on bare EOAs, and a session-key
10
+ * delegate is typically an EOA — same local-recover path `token.ts` uses for
11
+ * the token's own session-key signature).
12
+ * - **Contract** (has code) → on-chain `UniversalSignatureValidator.isValidSig`
13
+ * (ERC-1271 deployed / ERC-6492 counterfactual) via one `eth_call`.
14
+ *
15
+ * Reusable signature surface (spec 287 injects this as the invocation-proof
16
+ * verifier). `readContract` only — no log scans (ADR-0012). Returns `false` on a
17
+ * recover/RPC error rather than throwing, so callers fail closed cleanly.
18
+ */
19
+ export declare function verifyUniversalSignature(args: {
20
+ signer: Address;
21
+ digest: Hex;
22
+ signature: Hex;
23
+ rpcUrl: string;
24
+ universalSignatureValidator: Address;
25
+ }): Promise<boolean>;
3
26
  /** Is this delegation hash revoked on-chain? The canonical, single mechanism (ADR-0013): reads the
4
27
  * DelegationManager's `_revoked` map. Returns `false` if absent — never escalates to a second path. */
5
28
  export declare function isRevoked(hash: Hex, opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgD,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4C7C;wGACwG;AACxG,wBAAsB,SAAS,CAC7B,IAAI,EAAE,GAAG,EACT,IAAI,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,GACzB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAgB3C"}
1
+ {"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC5G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA2B7C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B,EAAE,OAAO,CAAC;CACtC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BnB;AAkCD;wGACwG;AACxG,wBAAsB,SAAS,CAC7B,IAAI,EAAE,GAAG,EACT,IAAI,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,GACzB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAgB3C"}
package/dist/onchain.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // On-chain revocation helpers (spec 272 PAY-DEL-3). `isRevoked` is the read the x402 rail executor
2
2
  // MUST run before settling (off-chain check); the DelegationManager ALSO enforces revocation in
3
3
  // `redeemDelegation` (on-chain), so revocation is checked twice and is never off-chain-only.
4
- import { createPublicClient, http, encodeFunctionData } from 'viem';
4
+ import { createPublicClient, http, encodeFunctionData, recoverAddress } from 'viem';
5
5
  const IS_REVOKED_ABI = [
6
6
  {
7
7
  type: 'function',
@@ -11,6 +11,69 @@ const IS_REVOKED_ABI = [
11
11
  outputs: [{ type: 'bool' }],
12
12
  },
13
13
  ];
14
+ // spec 270 v4 — the one connection-agnostic signature surface (ERC-1271 / ERC-6492 / ECDSA).
15
+ const UNIVERSAL_SIG_VALIDATOR_ABI = [
16
+ {
17
+ type: 'function',
18
+ name: 'isValidSig',
19
+ stateMutability: 'view',
20
+ inputs: [
21
+ { name: 'signer', type: 'address' },
22
+ { name: 'hash', type: 'bytes32' },
23
+ { name: 'sig', type: 'bytes' },
24
+ ],
25
+ outputs: [{ name: '', type: 'bool' }],
26
+ },
27
+ ];
28
+ /**
29
+ * Validate a signature by `signer` over `digest`, connection-agnostically
30
+ * (spec 270 v4 / spec 287 §7). The verification primitive is selected by the
31
+ * signer's TYPE — a deterministic branch on whether the signer has code, NOT a
32
+ * try-strong-catch-weak fallback (ADR-0013):
33
+ * - **EOA** (no code) → local ECDSA `recoverAddress` (the deployed
34
+ * `UniversalSignatureValidator` reverts on bare EOAs, and a session-key
35
+ * delegate is typically an EOA — same local-recover path `token.ts` uses for
36
+ * the token's own session-key signature).
37
+ * - **Contract** (has code) → on-chain `UniversalSignatureValidator.isValidSig`
38
+ * (ERC-1271 deployed / ERC-6492 counterfactual) via one `eth_call`.
39
+ *
40
+ * Reusable signature surface (spec 287 injects this as the invocation-proof
41
+ * verifier). `readContract` only — no log scans (ADR-0012). Returns `false` on a
42
+ * recover/RPC error rather than throwing, so callers fail closed cleanly.
43
+ */
44
+ export async function verifyUniversalSignature(args) {
45
+ const client = createPublicClient({ transport: http(args.rpcUrl) });
46
+ let code;
47
+ try {
48
+ code = await client.getCode({ address: args.signer });
49
+ }
50
+ catch {
51
+ return false;
52
+ }
53
+ const isContract = !!code && code !== '0x' && code.length > 2;
54
+ if (!isContract) {
55
+ // EOA signer → local ECDSA recovery.
56
+ try {
57
+ const recovered = await recoverAddress({ hash: args.digest, signature: args.signature });
58
+ return recovered.toLowerCase() === args.signer.toLowerCase();
59
+ }
60
+ catch {
61
+ return false;
62
+ }
63
+ }
64
+ // Contract signer → ERC-1271 / ERC-6492 via the on-chain validator.
65
+ try {
66
+ return (await client.readContract({
67
+ address: args.universalSignatureValidator,
68
+ abi: UNIVERSAL_SIG_VALIDATOR_ABI,
69
+ functionName: 'isValidSig',
70
+ args: [args.signer, args.digest, args.signature],
71
+ }));
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
14
77
  // Matches IDelegationManager.Delegation / Caveat (enforcer, terms, args).
15
78
  const REVOKE_BY_OWNER_ABI = [
16
79
  {
@@ -1 +1 @@
1
- {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onchain.js","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ export interface OffChainQuorumProof {
3
+ mode: 'off-chain';
4
+ /** The hash the signers signed — MUST equal the bound payload (the delegation hash). */
5
+ payloadHash: Hex;
6
+ /** Concatenated 65-byte ECDSA/packed signatures (Safe-style packing). */
7
+ packedSignatures: Hex;
8
+ }
9
+ export interface VerifyOffChainQuorumInput {
10
+ /** The QuorumCaveat `terms`: abi(address[] signers, uint8 threshold, address approvedHashRegistry). */
11
+ caveatTerms: Hex;
12
+ proof: OffChainQuorumProof;
13
+ /** The hash the quorum MUST have signed (bound to this delegation). */
14
+ expectedPayloadHash: Hex;
15
+ /** Connection-agnostic signature verifier (token.ts wires `verifyUniversalSignature`). */
16
+ verifySignature: (signer: Address, digest: Hex, signature: Hex) => Promise<boolean>;
17
+ }
18
+ export type OffChainQuorumResult = {
19
+ ok: true;
20
+ matched: Address[];
21
+ } | {
22
+ ok: false;
23
+ reason: string;
24
+ };
25
+ export declare function verifyOffChainQuorum(input: VerifyOffChainQuorumInput): Promise<OffChainQuorumResult>;
26
+ //# sourceMappingURL=quorum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../src/quorum.ts"],"names":[],"mappings":"AAeA,OAAO,EAAuB,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,wFAAwF;IACxF,WAAW,EAAE,GAAG,CAAC;IACjB,yEAAyE;IACzE,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,uGAAuG;IACvG,WAAW,EAAE,GAAG,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,uEAAuE;IACvE,mBAAmB,EAAE,GAAG,CAAC;IACzB,0FAA0F;IAC1F,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrF;AAED,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAWpG,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAoD1G"}