@agenticprimitives/delegation 0.1.0-alpha.3 → 1.0.0-alpha.11

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 (44) hide show
  1. package/README.md +17 -2
  2. package/dist/caveats.d.ts +72 -1
  3. package/dist/caveats.d.ts.map +1 -1
  4. package/dist/caveats.js +113 -2
  5. package/dist/caveats.js.map +1 -1
  6. package/dist/client.d.ts +1 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +2 -2
  9. package/dist/client.js.map +1 -1
  10. package/dist/evaluator.d.ts +1 -1
  11. package/dist/evaluator.d.ts.map +1 -1
  12. package/dist/evaluator.js +4 -1
  13. package/dist/evaluator.js.map +1 -1
  14. package/dist/hash.d.ts +1 -1
  15. package/dist/hash.d.ts.map +1 -1
  16. package/dist/index.d.ts +20 -11
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +16 -8
  19. package/dist/index.js.map +1 -1
  20. package/dist/onchain.d.ts +17 -4
  21. package/dist/onchain.d.ts.map +1 -1
  22. package/dist/onchain.js +77 -6
  23. package/dist/onchain.js.map +1 -1
  24. package/dist/session-delegation.d.ts +30 -0
  25. package/dist/session-delegation.d.ts.map +1 -0
  26. package/dist/session-delegation.js +32 -0
  27. package/dist/session-delegation.js.map +1 -0
  28. package/dist/session-manager.d.ts +1 -2
  29. package/dist/session-manager.d.ts.map +1 -1
  30. package/dist/session-manager.js +14 -5
  31. package/dist/session-manager.js.map +1 -1
  32. package/dist/token.d.ts +13 -1
  33. package/dist/token.d.ts.map +1 -1
  34. package/dist/token.js +233 -96
  35. package/dist/token.js.map +1 -1
  36. package/dist/types.d.ts +56 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +7 -1
  39. package/dist/types.js.map +1 -1
  40. package/dist/verify-authorization.d.ts +28 -0
  41. package/dist/verify-authorization.d.ts.map +1 -0
  42. package/dist/verify-authorization.js +73 -0
  43. package/dist/verify-authorization.js.map +1 -0
  44. package/package.json +11 -11
package/README.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # @agenticprimitives/delegation
2
2
 
3
- EIP-712 smart-account delegations spanning web app → agent → MCP. **Now also owns session lifecycle** — `SessionManager` binds a delegation to its session-signing key, persisted via `@agenticprimitives/key-custody` envelope encryption.
3
+ **One delegation model, everywhere — permissions, never keys.**
4
+
5
+ When an agent acts for a human, most stacks hand it a key and hope. This package hands it a delegation instead: an EIP-712 signed grant from a Smart Agent, constrained by caveats that on-chain enforcers actually check — time windows, value caps, allowed targets and methods, quorums — and revocable on-chain at any moment. The same primitive spans the whole stack: a web app session, an agent-to-agent call, and an MCP tool invocation all verify against the same `Delegation` struct. "This session may call these two tools until tomorrow, and I can kill it instantly" is one signed object, not three products.
6
+
7
+ The package also owns session lifecycle: `SessionManager` binds a delegation to its session-signing key, with the private key envelope-encrypted via `@agenticprimitives/key-custody` before it ever touches storage. Verification is fail-closed by design — an unknown enforcer is a rejection, not a warning — and minted tokens carry JTI replay protection. Because the principal is the Smart Agent address, not a credential, every delegation survives the issuer's credential rotation; and because custody is firewalled from delegation, no delegate can ever escalate into account control ([ADR-0011](../../docs/architecture/decisions/0011-credential-recovery-and-re-association.md)).
8
+
9
+ > Part of [agenticprimitives](../../README.md) — the trust substrate for the agent economy: one canonical Smart Agent identity with custody, delegation, naming, credentials, and audit evidence designed as one system.
4
10
 
5
11
  See [`spec.md`](./spec.md) → [`specs/202-delegation.md`](../../specs/202-delegation.md) for the full contract: 8 on-chain enforcers, 3 off-chain sentinels, token envelope, cross-delegation, two session variants.
6
12
 
7
13
  ## Quick start
8
14
 
9
15
  Browser (issuance):
16
+
10
17
  ```ts
11
18
  import { DelegationClient, buildMcpToolScopeCaveat, encodeTimestampTerms, buildCaveat } from '@agenticprimitives/delegation';
12
19
 
@@ -21,6 +28,7 @@ const delegation = await client.issueDelegation({
21
28
  ```
22
29
 
23
30
  Node (session lifecycle):
31
+
24
32
  ```ts
25
33
  import { SessionManager } from '@agenticprimitives/delegation';
26
34
 
@@ -31,6 +39,7 @@ await sessions.package(sessionId, signedDelegation);
31
39
  ```
32
40
 
33
41
  Node (token mint + verify):
42
+
34
43
  ```ts
35
44
  import { mintDelegationToken, verifyDelegationToken } from '@agenticprimitives/delegation';
36
45
 
@@ -41,6 +50,12 @@ if ('error' in result) throw new Error(result.error);
41
50
  const { principal, grants } = result;
42
51
  ```
43
52
 
53
+ `principal` is the verified delegator's Smart Agent address — every downstream action is attributable to a canonical on-chain identity, not an API key.
54
+
55
+ ## How it's different
56
+
57
+ The closest neighbors are MetaMask's Delegation Toolkit and the session-key features in smart-account SDKs — both real, both well-built, and the caveat-enforcer shape here deliberately mirrors the ERC-7710 direction so the models stay interoperable. The differences are scope and posture. Session keys typically live and die inside one wallet stack and one transport; this delegation crosses transports — the token a browser session mints is the token an MCP server or A2A endpoint verifies, against the same on-chain enforcer registry. And the evaluator's posture is fail-closed as a hard invariant: unknown enforcer means reject, with no permissive default to quietly widen authority. Custody operations are structurally excluded — a delegation here cannot rotate credentials or change account control, ever, because that path doesn't exist in this package.
58
+
44
59
  ## Status
45
60
 
46
- Pre-alpha. Spec stable.
61
+ **Alpha track — testnet-only.** Spec + API stable; do not deploy to production until the gates listed in the root [`README.md` Status section](../../README.md#status) are cleared — including third-party contract audit and governance key rotation. Track every security finding live in [`docs/audits/findings.yaml`](../../docs/audits/findings.yaml).
package/dist/caveats.d.ts CHANGED
@@ -1,15 +1,27 @@
1
1
  import { type Hex, type Address } from 'viem';
2
- import type { Caveat, DataScopeGrant } from './types';
2
+ import type { Caveat, DataScopeGrant, VaultKeyUseGrant } from './types.js';
3
3
  export declare const MCP_TOOL_SCOPE_ENFORCER: Address;
4
4
  export declare const DATA_SCOPE_ENFORCER: Address;
5
5
  export declare const DELEGATE_BINDING_ENFORCER: Address;
6
+ /** Spec 278 — vault-key-use authorization sentinel. Off-chain only; the KAS
7
+ * (key-authorization) enforces the grant's scope. Inert in the on-chain evaluator. */
8
+ export declare const VAULT_KEY_USE_ENFORCER: Address;
6
9
  export declare function buildCaveat(enforcer: Address, terms: Hex, args?: Hex): Caveat;
7
10
  export declare function encodeTimestampTerms(validAfter: number, validUntil: number): Hex;
8
11
  export declare function encodeValueTerms(maxValue: bigint): Hex;
9
12
  export declare function encodeAllowedTargetsTerms(targets: Address[]): Hex;
10
13
  export declare function encodeAllowedMethodsTerms(selectors: Hex[]): Hex;
14
+ /** Exact-calldata pinning (CallDataHashEnforcer — ADR-0027 / spec 249 RW1-4b): terms =
15
+ * abi.encode(bytes32 keccak256(callData)). Binds a (sub-)delegation to EXACTLY one call so a
16
+ * registry checking `verifyAuthorizationForCall` authorizes only that precise payload — not
17
+ * merely its target + selector. Pass the exact `execute(...)`/inner calldata the grant permits. */
18
+ export declare function encodeCallDataHashTerms(callData: Hex): Hex;
11
19
  export declare function buildMcpToolScopeCaveat(allowedTools: string[]): Caveat;
12
20
  export declare function buildDataScopeCaveat(grants: DataScopeGrant[]): Caveat;
21
+ export declare function buildVaultKeyUseCaveat(grant: VaultKeyUseGrant): Caveat;
22
+ /** Decode a `VAULT_KEY_USE` caveat's terms back to its grant. Used by the KAS
23
+ * (key-authorization, P2) to evaluate the authorization's scope against a request. */
24
+ export declare function decodeVaultKeyUseTerms(terms: Hex): VaultKeyUseGrant;
13
25
  export declare function buildDelegateBindingCaveat(delegateSmartAccount: Address, delegatePersonAgent: Address): Caveat;
14
26
  export interface QuorumCaveatOpts {
15
27
  /**
@@ -47,4 +59,63 @@ export interface QuorumCaveatOpts {
47
59
  * into the on-chain caveat evaluation.
48
60
  */
49
61
  export declare function buildQuorumCaveat(opts: QuorumCaveatOpts): Caveat;
62
+ /** The ONLY method an x402 payment delegation may invoke: `IERC20.transfer(address,uint256)`. */
63
+ export declare const PAYMENT_TRANSFER_SELECTOR: Hex;
64
+ export interface PaymentMandateCaveatOpts {
65
+ /** Deployed enforcer addresses: the PaymentEnforcer + the timestamp / allowedTargets /
66
+ * allowedMethods enforcers it composes with (from `EnforcerAddressMap`). */
67
+ enforcers: {
68
+ payment: Address;
69
+ timestamp: Address;
70
+ allowedTargets: Address;
71
+ allowedMethods: Address;
72
+ };
73
+ /** Treasury SA that receives every charge (payee). */
74
+ payee: Address;
75
+ /** Fee asset (USDC). */
76
+ asset: Address;
77
+ /** Smallest-unit caps. `maxAggregate` is the session budget (X402-D5). */
78
+ maxAmountPerCharge: bigint;
79
+ maxAggregate: bigint;
80
+ maxRedemptionsPerWindow: number;
81
+ windowSeconds: number;
82
+ validAfter?: number;
83
+ validUntil: number;
84
+ }
85
+ /** Encode the immutable `PaymentEnforcer` terms. MUST match `PaymentEnforcer.sol` `abi.decode`
86
+ * order/types: (treasury, asset, maxAmountPerCharge, maxAggregate, maxRedemptionsPerWindow,
87
+ * windowSeconds) → 192 bytes. */
88
+ export declare function encodePaymentTerms(opts: {
89
+ payee: Address;
90
+ asset: Address;
91
+ maxAmountPerCharge: bigint;
92
+ maxAggregate: bigint;
93
+ maxRedemptionsPerWindow: number;
94
+ windowSeconds: number;
95
+ }): Hex;
96
+ /**
97
+ * PAY-DEL-1 — the caveat set for an x402 PAYMENT delegation (delegator = reader, delegate = the
98
+ * paid service agent). Composes the stateful `PaymentEnforcer` (spend + windowed-frequency cap +
99
+ * transfer-only + single-use nonce) with `timestamp` (expiry), `allowedTargets` (USDC only), and
100
+ * `allowedMethods` (transfer only) so the on-chain enforcers and the off-chain mandate agree.
101
+ *
102
+ * Caveat `args` are left `'0x'` at mint; the rail executor fills the PaymentEnforcer caveat's `args`
103
+ * with `abi.encode(mandateId, nonce, resourceHash)` at REDEMPTION time (terms = mint, args = redeem).
104
+ * Resource/skill binding rides the mandate's `contextBinding`, not an on-chain caveat (PAY-WIRE-5).
105
+ */
106
+ export declare function buildPaymentMandateCaveats(opts: PaymentMandateCaveatOpts): Caveat[];
107
+ /** PAY-DEL-4 — human-readable consent for the connect UI ("Allow X to charge your agent wallet?").
108
+ * The UI renders THIS, never raw `delegate execute to contract`. Amounts are smallest-unit; the
109
+ * caller formats with the token's decimals. */
110
+ export interface PaymentMandateConsent {
111
+ recipient: Address;
112
+ asset: Address;
113
+ maxAmountPerCharge: bigint;
114
+ sessionBudget: bigint;
115
+ maxRedemptionsPerWindow: number;
116
+ windowSeconds: number;
117
+ expiresAt: number;
118
+ revocable: true;
119
+ }
120
+ export declare function describePaymentMandate(opts: PaymentMandateCaveatOpts): PaymentMandateConsent;
50
121
  //# sourceMappingURL=caveats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caveats.d.ts","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"AAQA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAEnE,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAWtD,eAAO,MAAM,uBAAuB,EAAE,OAA2D,CAAC;AAClG,eAAO,MAAM,mBAAmB,EAAE,OAAuD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,EAAE,OAA6D,CAAC;AAItG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAE7E;AAID,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAWhF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAGtD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAGjE;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAQ/D;AAID,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAItE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAgBrE;AAED,wBAAgB,0BAA0B,CACxC,oBAAoB,EAAE,OAAO,EAC7B,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAMR;AAWD,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;yDAEqD;IACrD,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB;;kDAE8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB;kEAC8D;IAC9D,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAwBhE"}
1
+ {"version":3,"file":"caveats.d.ts","sourceRoot":"","sources":["../src/caveats.ts"],"names":[],"mappings":"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"}
package/dist/caveats.js CHANGED
@@ -5,8 +5,8 @@
5
5
  // addresses are derived via keccak256('urn:smart-agent:<name>')[0:20]. The
6
6
  // sentinels never live on-chain; their semantics live in this package's
7
7
  // evaluator (off-chain only).
8
- import { encodeAbiParameters } from 'viem';
9
- import { keccak_256 } from '@noble/hashes/sha3';
8
+ import { encodeAbiParameters, decodeAbiParameters, keccak256 } from 'viem';
9
+ import { keccak_256 } from '@noble/hashes/sha3.js';
10
10
  // ─── Off-chain sentinel addresses ────────────────────────────────────────
11
11
  function sentinelAddress(urn) {
12
12
  const hash = keccak_256(new TextEncoder().encode(urn));
@@ -18,6 +18,9 @@ function sentinelAddress(urn) {
18
18
  export const MCP_TOOL_SCOPE_ENFORCER = sentinelAddress('urn:smart-agent:mcp-tool-scope');
19
19
  export const DATA_SCOPE_ENFORCER = sentinelAddress('urn:smart-agent:data-scope');
20
20
  export const DELEGATE_BINDING_ENFORCER = sentinelAddress('urn:smart-agent:delegate-binding');
21
+ /** Spec 278 — vault-key-use authorization sentinel. Off-chain only; the KAS
22
+ * (key-authorization) enforces the grant's scope. Inert in the on-chain evaluator. */
23
+ export const VAULT_KEY_USE_ENFORCER = sentinelAddress('urn:smart-agent:vault-key-use');
21
24
  // ─── Generic caveat builder ──────────────────────────────────────────────
22
25
  export function buildCaveat(enforcer, terms, args) {
23
26
  return { enforcer, terms, args: args ?? '0x' };
@@ -52,6 +55,16 @@ export function encodeAllowedMethodsTerms(selectors) {
52
55
  }
53
56
  return encodeAbiParameters([{ type: 'bytes4[]' }], [selectors]);
54
57
  }
58
+ /** Exact-calldata pinning (CallDataHashEnforcer — ADR-0027 / spec 249 RW1-4b): terms =
59
+ * abi.encode(bytes32 keccak256(callData)). Binds a (sub-)delegation to EXACTLY one call so a
60
+ * registry checking `verifyAuthorizationForCall` authorizes only that precise payload — not
61
+ * merely its target + selector. Pass the exact `execute(...)`/inner calldata the grant permits. */
62
+ export function encodeCallDataHashTerms(callData) {
63
+ if (!/^0x([0-9a-fA-F]{2})*$/.test(callData)) {
64
+ throw new Error('encodeCallDataHashTerms: callData must be 0x-prefixed even-length hex');
65
+ }
66
+ return encodeAbiParameters([{ type: 'bytes32' }], [keccak256(callData)]);
67
+ }
55
68
  // ─── Off-chain sentinel caveat builders ──────────────────────────────────
56
69
  export function buildMcpToolScopeCaveat(allowedTools) {
57
70
  if (allowedTools.length === 0)
@@ -74,6 +87,40 @@ export function buildDataScopeCaveat(grants) {
74
87
  ], [grants]);
75
88
  return { enforcer: DATA_SCOPE_ENFORCER, terms, args: '0x' };
76
89
  }
90
+ // VAULT_KEY_USE (spec 278 §3.2): the person SA authorizes a host to wield a KEK
91
+ // for bounded resources/ops. ABI shape mirrors `VaultKeyUseGrant`; the KAS decodes
92
+ // it (via `decodeVaultKeyUseTerms`) to check scope ⊇ request before releasing a key.
93
+ const VAULT_KEY_USE_COMPONENTS = [
94
+ { name: 'vaultId', type: 'string' },
95
+ { name: 'kmsKeyRef', type: 'string' },
96
+ { name: 'resources', type: 'string[]' },
97
+ { name: 'classificationCeiling', type: 'string' },
98
+ { name: 'ops', type: 'string[]' },
99
+ { name: 'noSubdelegation', type: 'bool' },
100
+ ];
101
+ const VAULT_KEY_USE_ABI = [{ type: 'tuple', components: VAULT_KEY_USE_COMPONENTS }];
102
+ export function buildVaultKeyUseCaveat(grant) {
103
+ if (!grant.vaultId)
104
+ throw new Error('buildVaultKeyUseCaveat: vaultId required');
105
+ if (!grant.kmsKeyRef)
106
+ throw new Error('buildVaultKeyUseCaveat: kmsKeyRef required');
107
+ if (grant.resources.length === 0)
108
+ throw new Error('buildVaultKeyUseCaveat: at least one resource required');
109
+ if (grant.ops.length === 0)
110
+ throw new Error('buildVaultKeyUseCaveat: at least one op required');
111
+ if (!grant.classificationCeiling)
112
+ throw new Error('buildVaultKeyUseCaveat: classificationCeiling required');
113
+ if (grant.noSubdelegation !== true)
114
+ throw new Error('buildVaultKeyUseCaveat: noSubdelegation must be true (vault-key authorizations are non-subdelegable, spec 278 VKB-D5)');
115
+ const terms = encodeAbiParameters(VAULT_KEY_USE_ABI, [grant]);
116
+ return { enforcer: VAULT_KEY_USE_ENFORCER, terms, args: '0x' };
117
+ }
118
+ /** Decode a `VAULT_KEY_USE` caveat's terms back to its grant. Used by the KAS
119
+ * (key-authorization, P2) to evaluate the authorization's scope against a request. */
120
+ export function decodeVaultKeyUseTerms(terms) {
121
+ const [g] = decodeAbiParameters(VAULT_KEY_USE_ABI, terms);
122
+ return g;
123
+ }
77
124
  export function buildDelegateBindingCaveat(delegateSmartAccount, delegatePersonAgent) {
78
125
  const terms = encodeAbiParameters([{ type: 'address' }, { type: 'address' }], [delegateSmartAccount, delegatePersonAgent]);
79
126
  return { enforcer: DELEGATE_BINDING_ENFORCER, terms, args: '0x' };
@@ -113,4 +160,68 @@ export function buildQuorumCaveat(opts) {
113
160
  ], [opts.signers, opts.threshold, opts.approvedHashRegistry]);
114
161
  return { enforcer: opts.enforcer, terms, args: '0x' };
115
162
  }
163
+ // ── Spec 272 (PAY-DEL-1) — x402 payment-mandate caveats ───────────────────────────────────────────
164
+ /** The ONLY method an x402 payment delegation may invoke: `IERC20.transfer(address,uint256)`. */
165
+ export const PAYMENT_TRANSFER_SELECTOR = '0xa9059cbb';
166
+ /** Encode the immutable `PaymentEnforcer` terms. MUST match `PaymentEnforcer.sol` `abi.decode`
167
+ * order/types: (treasury, asset, maxAmountPerCharge, maxAggregate, maxRedemptionsPerWindow,
168
+ * windowSeconds) → 192 bytes. */
169
+ export function encodePaymentTerms(opts) {
170
+ if (opts.maxAmountPerCharge <= 0n)
171
+ throw new Error('encodePaymentTerms: maxAmountPerCharge must be > 0');
172
+ if (opts.maxAggregate < opts.maxAmountPerCharge) {
173
+ throw new Error('encodePaymentTerms: maxAggregate must be >= maxAmountPerCharge');
174
+ }
175
+ if (!Number.isInteger(opts.maxRedemptionsPerWindow) || opts.maxRedemptionsPerWindow <= 0) {
176
+ throw new Error('encodePaymentTerms: maxRedemptionsPerWindow must be a positive integer');
177
+ }
178
+ if (!Number.isInteger(opts.windowSeconds) || opts.windowSeconds <= 0) {
179
+ throw new Error('encodePaymentTerms: windowSeconds must be a positive integer');
180
+ }
181
+ return encodeAbiParameters([
182
+ { type: 'address' },
183
+ { type: 'address' },
184
+ { type: 'uint256' },
185
+ { type: 'uint256' },
186
+ { type: 'uint32' },
187
+ { type: 'uint32' },
188
+ ], [
189
+ opts.payee,
190
+ opts.asset,
191
+ opts.maxAmountPerCharge,
192
+ opts.maxAggregate,
193
+ opts.maxRedemptionsPerWindow,
194
+ opts.windowSeconds,
195
+ ]);
196
+ }
197
+ /**
198
+ * PAY-DEL-1 — the caveat set for an x402 PAYMENT delegation (delegator = reader, delegate = the
199
+ * paid service agent). Composes the stateful `PaymentEnforcer` (spend + windowed-frequency cap +
200
+ * transfer-only + single-use nonce) with `timestamp` (expiry), `allowedTargets` (USDC only), and
201
+ * `allowedMethods` (transfer only) so the on-chain enforcers and the off-chain mandate agree.
202
+ *
203
+ * Caveat `args` are left `'0x'` at mint; the rail executor fills the PaymentEnforcer caveat's `args`
204
+ * with `abi.encode(mandateId, nonce, resourceHash)` at REDEMPTION time (terms = mint, args = redeem).
205
+ * Resource/skill binding rides the mandate's `contextBinding`, not an on-chain caveat (PAY-WIRE-5).
206
+ */
207
+ export function buildPaymentMandateCaveats(opts) {
208
+ return [
209
+ buildCaveat(opts.enforcers.payment, encodePaymentTerms(opts)),
210
+ buildCaveat(opts.enforcers.timestamp, encodeTimestampTerms(opts.validAfter ?? 0, opts.validUntil)),
211
+ buildCaveat(opts.enforcers.allowedTargets, encodeAllowedTargetsTerms([opts.asset])),
212
+ buildCaveat(opts.enforcers.allowedMethods, encodeAllowedMethodsTerms([PAYMENT_TRANSFER_SELECTOR])),
213
+ ];
214
+ }
215
+ export function describePaymentMandate(opts) {
216
+ return {
217
+ recipient: opts.payee,
218
+ asset: opts.asset,
219
+ maxAmountPerCharge: opts.maxAmountPerCharge,
220
+ sessionBudget: opts.maxAggregate,
221
+ maxRedemptionsPerWindow: opts.maxRedemptionsPerWindow,
222
+ windowSeconds: opts.windowSeconds,
223
+ expiresAt: opts.validUntil,
224
+ revocable: true,
225
+ };
226
+ }
116
227
  //# sourceMappingURL=caveats.js.map
@@ -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/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Address, Hex } from '@agenticprimitives/types';
2
- import type { Caveat, Delegation, DelegationClientOpts } from './types';
2
+ import type { Caveat, Delegation, DelegationClientOpts } from './types.js';
3
3
  export declare class DelegationClient {
4
4
  private readonly opts;
5
5
  constructor(opts: DelegationClientOpts);
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAaxE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;gBAChC,IAAI,EAAE,oBAAoB;IAItC;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;CA6BxB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAa3E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;gBAChC,IAAI,EAAE,oBAAoB;IAItC;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;CA6BxB"}
package/dist/client.js CHANGED
@@ -5,8 +5,8 @@
5
5
  // resulting signature, paired with the Delegation struct, becomes a
6
6
  // fully-formed Delegation that the DelegationManager + ERC-1271 path on
7
7
  // the smart account can validate.
8
- import { ROOT_AUTHORITY } from './types';
9
- import { DELEGATION_EIP712_TYPES, delegationDomain } from './hash';
8
+ import { ROOT_AUTHORITY } from './types.js';
9
+ import { DELEGATION_EIP712_TYPES, delegationDomain } from './hash.js';
10
10
  function randomSalt() {
11
11
  const buf = new Uint8Array(32);
12
12
  // 32-byte random; high bit cleared to keep BigInt sign-safe (uint256 still has full range).
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,wEAAwE;AACxE,kCAAkC;AAIlC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAEnE,SAAS,UAAU;IACjB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/B,4FAA4F;IAC5F,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAuB;IAC5C,YAAY,IAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAKrB;QACC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC;QACrD,MAAM,UAAU,GAAkC;YAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACrD,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACxE,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE;gBACP,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;gBACH,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,wEAAwE;AACxE,kCAAkC;AAIlC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEtE,SAAS,UAAU;IACjB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/B,4FAA4F;IAC5F,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,IAAI,CAAuB;IAC5C,YAAY,IAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,MAKrB;QACC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC;QACrD,MAAM,UAAU,GAAkC;YAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI;SACL,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACrD,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACxE,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE;gBACP,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;gBACH,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC;IACtC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { Caveat, CaveatContext, CaveatVerdict, EnforcerAddressMap, EvaluateOpts } from './types';
1
+ import type { Caveat, CaveatContext, CaveatVerdict, EnforcerAddressMap, EvaluateOpts } from './types.js';
2
2
  /**
3
3
  * Evaluate every caveat in the array. Returns one verdict per caveat,
4
4
  * in input order. Caller decides what to do on the first deny.
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACb,MAAM,SAAS,CAAC;AAgJjB;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,kBAAkB,EAC/B,IAAI,GAAE,YAAiB,GACtB,aAAa,EAAE,CA2BjB"}
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAY,CAAC;AAiJpB;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,kBAAkB,EAC/B,IAAI,GAAE,YAAiB,GACtB,aAAa,EAAE,CA8BjB"}
package/dist/evaluator.js CHANGED
@@ -23,7 +23,7 @@
23
23
  // gating is not an on-chain redeem). Off-chain pre-checks pass strict mode;
24
24
  // on-chain redeem flows pass `{ enforceOnChain: true }`.
25
25
  import { decodeAbiParameters } from 'viem';
26
- import { MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, } from './caveats';
26
+ import { MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, VAULT_KEY_USE_ENFORCER, } from './caveats.js';
27
27
  function lower(a) {
28
28
  return a?.toLowerCase();
29
29
  }
@@ -186,6 +186,9 @@ export function evaluateCaveats(caveats, ctx, enforcerMap, opts = {}) {
186
186
  dispatch.set(MCP_TOOL_SCOPE_ENFORCER.toLowerCase(), evalMcpToolScope);
187
187
  dispatch.set(DATA_SCOPE_ENFORCER.toLowerCase(), evalInert);
188
188
  dispatch.set(DELEGATE_BINDING_ENFORCER.toLowerCase(), evalInert);
189
+ // Spec 278: VAULT_KEY_USE is enforced by the KAS (key-authorization), not on-chain
190
+ // or in this evaluator — inert here (shape-only / on-chain opt-in), like DATA_SCOPE.
191
+ dispatch.set(VAULT_KEY_USE_ENFORCER.toLowerCase(), evalInert);
189
192
  // On-chain-only enforcers are inert here (taskBinding, callDataHash, recovery, rateLimit).
190
193
  if (enforcerMap.taskBinding)
191
194
  dispatch.set(lower(enforcerMap.taskBinding), evalInert);
@@ -1 +1 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../src/evaluator.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,2CAA2C;AAC3C,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,kFAAkF;AAClF,EAAE;AACF,8EAA8E;AAC9E,+DAA+D;AAC/D,4EAA4E;AAC5E,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,yDAAyD;AAEzD,OAAO,EAAE,mBAAmB,EAAgB,MAAM,MAAM,CAAC;AAQzD,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAItB,SAAS,KAAK,CAAC,CAAW;IACxB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,SAAS,gBAAgB,CAAC,CAAS,EAAE,IAAkB;IACrD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9E,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,4FAA4F;KACrG,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,GAAkB;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,mBAAmB,CAClD,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,CAAC,KAAK,CACqB,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,UAAU;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAClG,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,EAAE,GAAG,UAAU;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;QACjG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC3H,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,GAAkB,EAAE,IAAkB;IAClE,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAsB,CAAC;QAC5F,IAAI,GAAG,CAAC,KAAK,GAAG,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACpG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS,EAAE,GAAkB,EAAE,IAAkB;IAC3E,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAyB,CAAC;QAChG,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACpG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACrF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzH,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAS,EAAE,GAAkB,EAAE,IAAkB;IAC3E,IAAI,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAA+B,CAAC;QACvG,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACnG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACzH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAS,EAAE,GAAkB;IACrD,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACrG,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAwB,CAAC;QAC5F,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChF,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC/E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChI,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAS,EAAE,IAAmB,EAAE,IAAkB;IACnE,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,gEAAgE;IAChE,4EAA4E;IAC5E,uDAAuD;IACvD,EAAE;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,aAAa,KAAK,yBAAyB,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,iEAAiE;YACjE,8DAA8D;YAC9D,kEAAkE;YAClE,iEAAiE;YACjE,oDAAoD;YACpD,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,kBAAkB;YACrD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,kCAAkC,CAAC,CAAC,KAAK,CAAC,MAAM,eAAe,cAAc,oDAAoD;iBAC1I,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,mBAAmB,CACrD,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,CAAC,KAAK,CACR,CAAC;YACF,IACE,YAAY,KAAK,4CAA4C;gBAC7D,WAAW,KAAK,4CAA4C,EAC5D,CAAC;gBACD,OAAO;oBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,yCAAyC;iBAClD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,uCAAuC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;aACpF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,gEAAgE;IAChE,OAAO,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAiB,EACjB,GAAkB,EAClB,WAA+B,EAC/B,OAAqB,EAAE;IAEvB,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,WAAW,CAAC,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAE,EAAE,aAAa,CAAC,CAAC;IACtF,IAAI,WAAW,CAAC,KAAK;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAE,EAAE,SAAS,CAAC,CAAC;IAC1E,IAAI,WAAW,CAAC,cAAc;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAE,EAAE,kBAAkB,CAAC,CAAC;IACrG,IAAI,WAAW,CAAC,cAAc;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAE,EAAE,kBAAkB,CAAC,CAAC;IACrG,wDAAwD;IACxD,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,WAAW,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACtE,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;IACjE,mFAAmF;IACnF,qFAAqF;IACrF,QAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,2FAA2F;IAC3F,IAAI,WAAW,CAAC,WAAW;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAE,EAAE,SAAS,CAAC,CAAC;IACtF,IAAI,WAAW,CAAC,YAAY;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAE,EAAE,SAAS,CAAC,CAAC;IACxF,IAAI,WAAW,CAAC,QAAQ;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAE,EAAE,SAAS,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,SAAS;QAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAE,EAAE,SAAS,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/hash.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Hex, type Address } from 'viem';
2
- import type { Caveat, Delegation } from './types';
2
+ import type { Caveat, Delegation } from './types.js';
3
3
  export declare const DELEGATION_EIP712_TYPES: {
4
4
  readonly Delegation: readonly [{
5
5
  readonly name: "delegator";
@@ -1 +1 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiD,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKlD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;CAkB1B,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO;;;;;EAO3E;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,GAAG,CAa9F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAclD"}
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiD,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKrD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;CAkB1B,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO;;;;;EAO3E;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,GAAG,CAa9F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAclD"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,21 @@
1
- export { ROOT_AUTHORITY } from './types';
2
- export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, } from './caveats';
3
- export type { QuorumCaveatOpts } from './caveats';
4
- export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash';
5
- export { evaluateCaveats } from './evaluator';
6
- export { DelegationClient } from './client';
7
- export { SessionManager, createMemorySessionStore } from './session-manager';
8
- export { mintDelegationToken, verifyDelegationToken } from './token';
9
- export { isRevoked, revokeDelegation } from './onchain';
10
- export type { Address, Hex, Caveat, CaveatContext, CaveatVerdict, Delegation, DataScopeGrant, DelegationClientOpts, DelegationTokenClaims, EnforcerAddressMap, EvaluateOpts, JtiStore, SessionMeta, SessionPackage, SessionRow, SessionStore, TxContext, VerifyError, VerifyOpts, } from './types';
11
- export type { VerifyOptsExt } from './token';
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';
3
+ export type { QuorumCaveatOpts, PaymentMandateCaveatOpts, PaymentMandateConsent } from './caveats.js';
4
+ export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash.js';
5
+ export { buildSessionDelegation } from './session-delegation.js';
6
+ export type { SessionDelegationParams } from './session-delegation.js';
7
+ export { evaluateCaveats } from './evaluator.js';
8
+ export { DelegationClient } from './client.js';
9
+ export { SessionManager, createMemorySessionStore } from './session-manager.js';
10
+ /**
11
+ * Spec 242 PD-9 — SDK helper for the `verifyAuthorization(...)` view entrypoint
12
+ * on DelegationManager.sol. View-only verification of a delegation chain.
13
+ * Consumed by `@agenticprimitives/attestations` for the bilateral-consent path.
14
+ */
15
+ export { verifyAuthorization } from './verify-authorization.js';
16
+ export type { VerifyAuthorizationResult } from './verify-authorization.js';
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';
20
+ export type { VerifyOptsExt } from './token.js';
12
21
  //# 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,SAAS,CAAC;AAEzC,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAM7E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAExD,YAAY,EACV,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,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,SAAS,CAAC;AAKjB,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,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,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"}
package/dist/index.js CHANGED
@@ -1,16 +1,24 @@
1
1
  // @agenticprimitives/delegation — public API
2
2
  //
3
3
  // See ../../specs/202-delegation.md for the full contract.
4
- export { ROOT_AUTHORITY } from './types';
5
- export { buildCaveat, buildMcpToolScopeCaveat, buildDataScopeCaveat, buildDelegateBindingCaveat, buildQuorumCaveat, encodeTimestampTerms, encodeValueTerms, encodeAllowedTargetsTerms, encodeAllowedMethodsTerms, MCP_TOOL_SCOPE_ENFORCER, DATA_SCOPE_ENFORCER, DELEGATE_BINDING_ENFORCER, } from './caveats';
6
- export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash';
7
- export { evaluateCaveats } from './evaluator';
8
- export { DelegationClient } from './client';
9
- export { SessionManager, createMemorySessionStore } from './session-manager';
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';
6
+ export { hashDelegation, hashCaveats, DELEGATION_EIP712_TYPES, delegationDomain } from './hash.js';
7
+ // DEL-001 session-delegation leaf builder (spec 270 v4 W2) — every connect flow uses this.
8
+ export { buildSessionDelegation } from './session-delegation.js';
9
+ export { evaluateCaveats } from './evaluator.js';
10
+ export { DelegationClient } from './client.js';
11
+ export { SessionManager, createMemorySessionStore } from './session-manager.js';
12
+ /**
13
+ * Spec 242 PD-9 — SDK helper for the `verifyAuthorization(...)` view entrypoint
14
+ * on DelegationManager.sol. View-only verification of a delegation chain.
15
+ * Consumed by `@agenticprimitives/attestations` for the bilateral-consent path.
16
+ */
17
+ export { verifyAuthorization } from './verify-authorization.js';
10
18
  // H7-B.8: `verifyCrossDelegation` removed from the public surface (XPKG-002 /
11
19
  // EXT-024 closure). The stub unconditionally returned a "not implemented"
12
20
  // error string — a public symbol that lies about runtime capability. When the
13
21
  // work resumes it lands behind `./experimental` per spec 100 §6.
14
- export { mintDelegationToken, verifyDelegationToken } from './token';
15
- export { isRevoked, revokeDelegation } from './onchain';
22
+ export { mintDelegationToken, verifyDelegationToken, sessionDelegateBindingError } from './token.js';
23
+ export { isRevoked, buildRevokeDelegationCall } from './onchain.js';
16
24
  //# 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,SAAS,CAAC;AAEzC,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,iEAAiE;AACjE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,WAAW,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,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"}
package/dist/onchain.d.ts CHANGED
@@ -1,8 +1,21 @@
1
- import type { Hex, Address } from '@agenticprimitives/types';
2
- import type { TxContext } from './types';
3
- export declare function isRevoked(_hash: Hex, _opts: {
1
+ import { type Hex, type Address } from 'viem';
2
+ import type { Delegation } from './types.js';
3
+ /** Is this delegation hash revoked on-chain? The canonical, single mechanism (ADR-0013): reads the
4
+ * DelegationManager's `_revoked` map. Returns `false` if absent — never escalates to a second path. */
5
+ export declare function isRevoked(hash: Hex, opts: {
4
6
  delegationManager: Address;
5
7
  rpcUrl: string;
6
8
  }): Promise<boolean>;
7
- export declare function revokeDelegation(_hash: Hex, _ctx: TxContext): Promise<Hex>;
9
+ /**
10
+ * Build the call that revokes a delegation on-chain: `DelegationManager.revokeDelegationByOwner(d)`.
11
+ * The caller (the delegator OR the delegate) submits this through their Smart Account's `execute`
12
+ * (this package owns delegation semantics, not tx/UserOp submission — agent-account/app layer does).
13
+ * Once mined, `isRevoked(hash)` is true and `redeemDelegation` reverts. The on-chain function
14
+ * re-verifies the delegation's signature, so a forged hash cannot be marked revoked.
15
+ */
16
+ export declare function buildRevokeDelegationCall(delegation: Delegation, delegationManager: Address): {
17
+ to: Address;
18
+ value: bigint;
19
+ data: Hex;
20
+ };
8
21
  //# sourceMappingURL=onchain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onchain.d.ts","sourceRoot":"","sources":["../src/onchain.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAsB,SAAS,CAC7B,KAAK,EAAE,GAAG,EACV,KAAK,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAIhF"}
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"}