@haven_ai/sdk 0.8.1-alpha.0 → 0.10.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +1 -1
  2. package/dist/base64-CiR5BJhk.d.cts +1352 -0
  3. package/dist/base64-CxkinHPQ.d.ts +1352 -0
  4. package/dist/{chunk-HFOAYTD4.cjs → chunk-22FJ4JQO.cjs} +47 -35
  5. package/dist/chunk-22FJ4JQO.cjs.map +1 -0
  6. package/dist/chunk-6LEXYQ7J.cjs +106 -0
  7. package/dist/chunk-6LEXYQ7J.cjs.map +1 -0
  8. package/dist/chunk-EWTHDEIW.js +103 -0
  9. package/dist/chunk-EWTHDEIW.js.map +1 -0
  10. package/dist/{chunk-HX34HOW4.cjs → chunk-H37YVYZA.cjs} +6 -4
  11. package/dist/chunk-H37YVYZA.cjs.map +1 -0
  12. package/dist/{chunk-WDA3IGJP.js → chunk-MLUWABVT.js} +15 -6
  13. package/dist/chunk-MLUWABVT.js.map +1 -0
  14. package/dist/{chunk-H4APV67M.js → chunk-TD2PHUYP.js} +6 -4
  15. package/dist/chunk-TD2PHUYP.js.map +1 -0
  16. package/dist/edge.cjs +105 -89
  17. package/dist/edge.d.cts +4 -2
  18. package/dist/edge.d.ts +4 -2
  19. package/dist/edge.js +4 -4
  20. package/dist/index.cjs +1138 -500
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +128 -144
  23. package/dist/index.d.ts +128 -144
  24. package/dist/index.js +801 -199
  25. package/dist/index.js.map +1 -1
  26. package/dist/receipt-Cg9a5Seq.d.ts +130 -0
  27. package/dist/receipt-q7ez8Zb2.d.cts +130 -0
  28. package/dist/test-support.cjs +71 -18
  29. package/dist/test-support.cjs.map +1 -1
  30. package/dist/test-support.d.cts +21 -1
  31. package/dist/test-support.d.ts +21 -1
  32. package/dist/test-support.js +53 -3
  33. package/dist/test-support.js.map +1 -1
  34. package/dist/{base64-BjxHPgtC.d.cts → types-BKgqzvnk.d.cts} +238 -1307
  35. package/dist/{base64-BjxHPgtC.d.ts → types-BKgqzvnk.d.ts} +238 -1307
  36. package/package.json +1 -1
  37. package/dist/chunk-H4APV67M.js.map +0 -1
  38. package/dist/chunk-HFOAYTD4.cjs.map +0 -1
  39. package/dist/chunk-HX34HOW4.cjs.map +0 -1
  40. package/dist/chunk-WDA3IGJP.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkHX34HOW4_cjs = require('./chunk-HX34HOW4.cjs');
3
+ var chunkH37YVYZA_cjs = require('./chunk-H37YVYZA.cjs');
4
4
  var viem = require('viem');
5
5
  var crypto = require('crypto');
6
6
  var secp256k1 = require('@noble/curves/secp256k1');
7
7
  var accounts = require('viem/accounts');
8
8
 
9
9
  var TYPED_DATA_NOT_ALLOWED = "TYPED_DATA_NOT_ALLOWED";
10
- var HavenTypedDataRefusedError = class extends chunkHX34HOW4_cjs.HavenSigningError {
10
+ var HavenTypedDataRefusedError = class extends chunkH37YVYZA_cjs.HavenSigningError {
11
11
  constructor(message) {
12
12
  super(message);
13
13
  this.code = TYPED_DATA_NOT_ALLOWED;
@@ -48,7 +48,7 @@ function assertBoundDirectPaymentUserOp(typedData, delegateAddress) {
48
48
  `This signer only signs direct payments on chains the delegation rail has pinned contracts for (${[...DIRECT_PAYMENT_CHAIN_IDS].join(", ")}); this typed data names chain ${String(domain.chainId)}. Refusing.`
49
49
  );
50
50
  }
51
- const ownAccount = chunkHX34HOW4_cjs.deriveDelegateAccountAddress(delegateAddress);
51
+ const ownAccount = chunkH37YVYZA_cjs.deriveDelegateAccountAddress(delegateAddress);
52
52
  const sender = typeof message.sender === "string" ? message.sender : "";
53
53
  if (sender.toLowerCase() !== ownAccount.toLowerCase()) {
54
54
  throw new HavenTypedDataRefusedError(
@@ -78,9 +78,9 @@ function assertBoundDirectPaymentUserOp(typedData, delegateAddress) {
78
78
  "This UserOperation's execute() call does not re-encode to the exact callData bytes (trailing or non-canonical bytes). Refusing."
79
79
  );
80
80
  }
81
- if (decoded.target.toLowerCase() !== chunkHX34HOW4_cjs.DELEGATION_MANAGER.toLowerCase()) {
81
+ if (decoded.target.toLowerCase() !== chunkH37YVYZA_cjs.DELEGATION_MANAGER.toLowerCase()) {
82
82
  throw new HavenTypedDataRefusedError(
83
- `This UserOperation's execute() calls ${decoded.target}, not the DelegationManager (${chunkHX34HOW4_cjs.DELEGATION_MANAGER}). A direct payment only ever redeems the agent's own budget delegation \u2014 refusing what looks like a self-call (e.g. transferOwnership, updateSigners, upgradeToAndCall) or a call to an unrelated contract.`
83
+ `This UserOperation's execute() calls ${decoded.target}, not the DelegationManager (${chunkH37YVYZA_cjs.DELEGATION_MANAGER}). A direct payment only ever redeems the agent's own budget delegation \u2014 refusing what looks like a self-call (e.g. transferOwnership, updateSigners, upgradeToAndCall) or a call to an unrelated contract.`
84
84
  );
85
85
  }
86
86
  if (decoded.value !== 0n) {
@@ -89,20 +89,20 @@ function assertBoundDirectPaymentUserOp(typedData, delegateAddress) {
89
89
  );
90
90
  }
91
91
  try {
92
- chunkHX34HOW4_cjs.assertRedeemsOwnBudgetDelegation(decoded.callData, ownAccount);
92
+ chunkH37YVYZA_cjs.assertRedeemsOwnBudgetDelegation(decoded.callData, ownAccount);
93
93
  } catch (err) {
94
94
  throw new HavenTypedDataRefusedError(err instanceof Error ? err.message : String(err));
95
95
  }
96
96
  }
97
97
  function assertOwnSettlementChild(typedData, expectation, delegateAddress) {
98
98
  try {
99
- chunkHX34HOW4_cjs.verifySettlementChild(typedData, {
99
+ chunkH37YVYZA_cjs.verifySettlementChild(typedData, {
100
100
  ...expectation,
101
- delegatorAccount: chunkHX34HOW4_cjs.deriveDelegateAccountAddress(delegateAddress)
101
+ delegatorAccount: chunkH37YVYZA_cjs.deriveDelegateAccountAddress(delegateAddress)
102
102
  });
103
103
  } catch (err) {
104
104
  if (err instanceof HavenTypedDataRefusedError) throw err;
105
- if (err instanceof chunkHX34HOW4_cjs.HavenSigningError) throw new HavenTypedDataRefusedError(err.message);
105
+ if (err instanceof chunkH37YVYZA_cjs.HavenSigningError) throw new HavenTypedDataRefusedError(err.message);
106
106
  throw new HavenTypedDataRefusedError(
107
107
  `Refusing to sign the x402 settlement child: it is malformed (${err instanceof Error ? err.message : String(err)}).`
108
108
  );
@@ -131,7 +131,7 @@ function assertFundingLegPaysDelegate(typedData, expected) {
131
131
  try {
132
132
  const { args: executeArgs } = viem.decodeFunctionData({ abi: EXECUTE_ABI, data: message.callData });
133
133
  const inner = executeArgs[0].callData;
134
- const { args } = viem.decodeFunctionData({ abi: chunkHX34HOW4_cjs.REDEEM_DELEGATIONS_ABI, data: inner });
134
+ const { args } = viem.decodeFunctionData({ abi: chunkH37YVYZA_cjs.REDEEM_DELEGATIONS_ABI, data: inner });
135
135
  const executions = args[2];
136
136
  executionCallData = executions[0];
137
137
  } catch {
@@ -250,7 +250,7 @@ var TRANSFER_WITH_AUTHORIZATION_TYPES = {
250
250
  function sweepUsdcAddress(chainId) {
251
251
  const address = USDC_ADDRESS_BY_CHAIN[chainId];
252
252
  if (!address) {
253
- throw new chunkHX34HOW4_cjs.HavenSigningError(
253
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
254
254
  `Sweep is not supported on chain ${chainId}. Supported: ${SWEEPABLE_CHAIN_IDS.join(", ")}.`
255
255
  );
256
256
  }
@@ -259,7 +259,7 @@ function sweepUsdcAddress(chainId) {
259
259
  function sweepUsdcDomain(chainId) {
260
260
  const domain = USDC_EIP712_DOMAIN_BY_CHAIN[chainId];
261
261
  if (!domain) {
262
- throw new chunkHX34HOW4_cjs.HavenSigningError(
262
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
263
263
  `Sweep is not supported on chain ${chainId}. Supported: ${SWEEPABLE_CHAIN_IDS.join(", ")}.`
264
264
  );
265
265
  }
@@ -272,12 +272,12 @@ function buildSweepTypedData(auth) {
272
272
  const domain = sweepUsdcDomain(auth.chainId);
273
273
  const expectedToken = sweepUsdcAddress(auth.chainId);
274
274
  if (!sameAddress(auth.token, expectedToken)) {
275
- throw new chunkHX34HOW4_cjs.HavenSigningError(
275
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
276
276
  `Sweep token ${auth.token} is not the canonical USDC contract for chain ${auth.chainId}.`
277
277
  );
278
278
  }
279
279
  if (!/^0x[0-9a-fA-F]{64}$/.test(auth.nonce)) {
280
- throw new chunkHX34HOW4_cjs.HavenSigningError("Sweep nonce must be a 0x-prefixed 32-byte hex string.");
280
+ throw new chunkH37YVYZA_cjs.HavenSigningError("Sweep nonce must be a 0x-prefixed 32-byte hex string.");
281
281
  }
282
282
  return {
283
283
  domain,
@@ -448,6 +448,11 @@ function x402PaymentHeaderNamesFor(paymentHeader) {
448
448
  if (!accepted || typeof accepted !== "object" || Array.isArray(accepted)) return both;
449
449
  return isErc7710Option(accepted) ? [X402_PAYMENT_HEADER_NAME] : both;
450
450
  }
451
+ function x402RetryHeadersFor(paymentHeader) {
452
+ return Object.fromEntries(
453
+ x402PaymentHeaderNamesFor(paymentHeader).map((name) => [name, paymentHeader])
454
+ );
455
+ }
451
456
  function x402PaymentHeaderNamesSent(paymentHeader) {
452
457
  return x402PaymentHeaderNamesFor(paymentHeader).join(", ");
453
458
  }
@@ -777,7 +782,7 @@ function stableStringify2(value) {
777
782
  }
778
783
 
779
784
  // src/client-identity.ts
780
- var SDK_VERSION = "0.8.1-alpha.0";
785
+ var SDK_VERSION = "0.10.0-alpha.0";
781
786
  var HAVEN_CLIENT_HEADER = "X-Haven-Client";
782
787
  function havenClientIdentity(pkg, version) {
783
788
  return `${pkg}/${version}`;
@@ -810,7 +815,7 @@ function addressFromKey(privateKey) {
810
815
  try {
811
816
  return accounts.privateKeyToAddress(`0x${hexBytes(privateKey, 32, "private key")}`);
812
817
  } catch (err) {
813
- throw new chunkHX34HOW4_cjs.HavenSigningError(
818
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
814
819
  `Invalid private key: ${err instanceof Error ? err.message : String(err)}`
815
820
  );
816
821
  }
@@ -824,7 +829,7 @@ function signHash(privateKey, hash) {
824
829
  yParity: recovery
825
830
  });
826
831
  } catch (err) {
827
- throw new chunkHX34HOW4_cjs.HavenSigningError(
832
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
828
833
  `Failed to sign hash: ${err instanceof Error ? err.message : String(err)}`
829
834
  );
830
835
  }
@@ -860,7 +865,7 @@ var TAX_DECLARATION_TYPES = {
860
865
  var X_TAX_DECLARATION_HEADER = "X-Tax-Declaration";
861
866
  function validateContent(content) {
862
867
  if (typeof content !== "object" || content === null || Array.isArray(content)) {
863
- throw new chunkHX34HOW4_cjs.HavenSigningError("Tax declaration content must be an object.");
868
+ throw new chunkH37YVYZA_cjs.HavenSigningError("Tax declaration content must be an object.");
864
869
  }
865
870
  const record = content;
866
871
  for (const field of ["principalId", "principalAttributionHash"]) {
@@ -913,7 +918,7 @@ function taxPrincipalId(network, delegateAddress) {
913
918
  if (network.startsWith("eip155:")) {
914
919
  return `did:pkh:${network}:${delegateAddress}`;
915
920
  }
916
- const chainId = chunkHX34HOW4_cjs.chainIdForNetwork(network);
921
+ const chainId = chunkH37YVYZA_cjs.chainIdForNetwork(network);
917
922
  if (chainId === void 0) {
918
923
  throw new TaxDeclarationRefusedError(
919
924
  `The accepted payment option's network '${network}' is not a CAIP-2 eip155 chain this SDK can name; refusing to build a tax principal without the settlement network.`
@@ -958,18 +963,22 @@ function addressFromKeyForTax(delegateKey) {
958
963
  try {
959
964
  return addressFromKey(delegateKey);
960
965
  } catch (err) {
961
- throw new chunkHX34HOW4_cjs.HavenSigningError(
966
+ throw new chunkH37YVYZA_cjs.HavenSigningError(
962
967
  `Invalid delegate key for tax declaration signing: ${err instanceof Error ? err.message : String(err)}`
963
968
  );
964
969
  }
965
970
  }
966
- var TaxDeclarationRefusedError = class extends chunkHX34HOW4_cjs.HavenSigningError {
971
+ var TaxDeclarationRefusedError = class extends chunkH37YVYZA_cjs.HavenSigningError {
967
972
  code = "TAX_DECLARATION_REFUSED";
968
973
  constructor(message) {
969
974
  super(message);
970
975
  this.name = "TaxDeclarationRefusedError";
971
976
  }
972
977
  };
978
+ var X402_PAYMENT_NONCE_TAG = "haven-x402-payment-nonce:";
979
+ function deriveX402PaymentNonce(paymentId) {
980
+ return viem.keccak256(viem.concatHex([viem.toHex(X402_PAYMENT_NONCE_TAG), viem.toHex(paymentId)]));
981
+ }
973
982
 
974
983
  // src/next-step.ts
975
984
  var NEXT_TOOL_SERVER_NAMES = {
@@ -1115,10 +1124,10 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1115
1124
  if (td?.primaryType !== "Delegation") {
1116
1125
  refuseTaskChild("it is not a Delegation payload", `primaryType was '${String(td?.primaryType)}'.`);
1117
1126
  }
1118
- if (!same(td.domain?.verifyingContract, chunkHX34HOW4_cjs.DELEGATION_MANAGER)) {
1127
+ if (!same(td.domain?.verifyingContract, chunkH37YVYZA_cjs.DELEGATION_MANAGER)) {
1119
1128
  refuseTaskChild(
1120
1129
  "the EIP-712 domain names an unknown DelegationManager",
1121
- `Expected ${chunkHX34HOW4_cjs.DELEGATION_MANAGER}, got ${td.domain?.verifyingContract}.`
1130
+ `Expected ${chunkH37YVYZA_cjs.DELEGATION_MANAGER}, got ${td.domain?.verifyingContract}.`
1122
1131
  );
1123
1132
  }
1124
1133
  if (td.domain?.name !== DELEGATION_DOMAIN_NAME || td.domain?.version !== DELEGATION_DOMAIN_VERSION) {
@@ -1146,7 +1155,7 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1146
1155
  `Expected chain ${expected.chainId}; the child says ${td.domain?.chainId}.`
1147
1156
  );
1148
1157
  }
1149
- const ownAccount = chunkHX34HOW4_cjs.deriveDelegateAccountAddress(delegateAddress);
1158
+ const ownAccount = chunkH37YVYZA_cjs.deriveDelegateAccountAddress(delegateAddress);
1150
1159
  const delegator = td.message?.delegator;
1151
1160
  if (typeof delegator !== "string" || !same(delegator, ownAccount)) {
1152
1161
  refuseTaskChild(
@@ -1165,7 +1174,7 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1165
1174
  if (typeof authority !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(authority)) {
1166
1175
  refuseTaskChild("its authority is not a 32-byte delegation hash", `Got ${String(authority)}.`);
1167
1176
  }
1168
- if (authority.toLowerCase() === chunkHX34HOW4_cjs.ROOT_AUTHORITY) {
1177
+ if (authority.toLowerCase() === chunkH37YVYZA_cjs.ROOT_AUTHORITY) {
1169
1178
  refuseTaskChild(
1170
1179
  "it is a ROOT delegation, not a re-delegation of the agent budget",
1171
1180
  "A task budget always chains under the agent budget delegation."
@@ -1178,7 +1187,7 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1178
1187
  );
1179
1188
  }
1180
1189
  const caveats = td.message?.caveats ?? [];
1181
- const transfer = findCaveat(caveats, chunkHX34HOW4_cjs.CAVEAT_ENFORCERS.erc20TransferAmount);
1190
+ const transfer = findCaveat(caveats, chunkH37YVYZA_cjs.CAVEAT_ENFORCERS.erc20TransferAmount);
1182
1191
  if (!transfer) {
1183
1192
  refuseTaskChild(
1184
1193
  "it has no ERC-20 transfer-amount caveat",
@@ -1196,7 +1205,7 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1196
1205
  `Expected ${expected.maxAmountAtomic}; the child allows ${amount.toString()}.`
1197
1206
  );
1198
1207
  }
1199
- const timestamp = findCaveat(caveats, chunkHX34HOW4_cjs.CAVEAT_ENFORCERS.timestamp);
1208
+ const timestamp = findCaveat(caveats, chunkH37YVYZA_cjs.CAVEAT_ENFORCERS.timestamp);
1200
1209
  if (!timestamp) {
1201
1210
  refuseTaskChild("it never expires", "A task-budget child without a timestamp caveat is open-ended.");
1202
1211
  }
@@ -1217,7 +1226,7 @@ function assertOwnTaskChild(typedData, expected, delegateAddress, now = Date.now
1217
1226
  `Expected ${expected.expiresAt}; the child says ${beforeThreshold}.`
1218
1227
  );
1219
1228
  }
1220
- const calldata = findCaveat(caveats, chunkHX34HOW4_cjs.CAVEAT_ENFORCERS.allowedCalldata);
1229
+ const calldata = findCaveat(caveats, chunkH37YVYZA_cjs.CAVEAT_ENFORCERS.allowedCalldata);
1221
1230
  if (expected.recipientAddress) {
1222
1231
  if (!calldata) {
1223
1232
  refuseTaskChild(
@@ -1254,7 +1263,7 @@ var DISABLE_DELEGATION_ABI = [
1254
1263
  {
1255
1264
  type: "function",
1256
1265
  name: "disableDelegation",
1257
- inputs: [{ name: "delegation", type: "tuple", components: chunkHX34HOW4_cjs.DELEGATION_TUPLE_COMPONENTS }],
1266
+ inputs: [{ name: "delegation", type: "tuple", components: chunkH37YVYZA_cjs.DELEGATION_TUPLE_COMPONENTS }],
1258
1267
  outputs: [],
1259
1268
  stateMutability: "nonpayable"
1260
1269
  }
@@ -1273,7 +1282,7 @@ function assertOwnTaskBudgetCloseUserOp(typedData, expected, delegateAddress) {
1273
1282
  `This signer only signs a task-budget close on chains the delegation rail has pinned contracts for (${[...DIRECT_PAYMENT_CHAIN_IDS].join(", ")}); this typed data names chain ${String(domain.chainId)}. Refusing.`
1274
1283
  );
1275
1284
  }
1276
- const ownAccount = chunkHX34HOW4_cjs.deriveDelegateAccountAddress(delegateAddress);
1285
+ const ownAccount = chunkH37YVYZA_cjs.deriveDelegateAccountAddress(delegateAddress);
1277
1286
  const sender = typeof message.sender === "string" ? message.sender : "";
1278
1287
  if (sender.toLowerCase() !== ownAccount.toLowerCase()) {
1279
1288
  throw new HavenTypedDataRefusedError(
@@ -1296,9 +1305,9 @@ function assertOwnTaskBudgetCloseUserOp(typedData, expected, delegateAddress) {
1296
1305
  "This close UserOperation's execute() call does not re-encode to the exact callData bytes (trailing or non-canonical bytes). Refusing."
1297
1306
  );
1298
1307
  }
1299
- if (decoded.target.toLowerCase() !== chunkHX34HOW4_cjs.DELEGATION_MANAGER.toLowerCase()) {
1308
+ if (decoded.target.toLowerCase() !== chunkH37YVYZA_cjs.DELEGATION_MANAGER.toLowerCase()) {
1300
1309
  throw new HavenTypedDataRefusedError(
1301
- `This close UserOperation's execute() calls ${decoded.target}, not the DelegationManager (${chunkHX34HOW4_cjs.DELEGATION_MANAGER}). Refusing what looks like a self-call or a call to an unrelated contract.`
1310
+ `This close UserOperation's execute() calls ${decoded.target}, not the DelegationManager (${chunkH37YVYZA_cjs.DELEGATION_MANAGER}). Refusing what looks like a self-call or a call to an unrelated contract.`
1302
1311
  );
1303
1312
  }
1304
1313
  if (decoded.value !== 0n) {
@@ -1335,7 +1344,7 @@ function assertOwnTaskBudgetCloseUserOp(typedData, expected, delegateAddress) {
1335
1344
  `This close UserOperation disables a delegation granted to ${delegation.delegate}, not this signer's own account (${ownAccount}) \u2014 a task-budget child is always self-delegated. Refusing.`
1336
1345
  );
1337
1346
  }
1338
- if (delegation.authority.toLowerCase() === chunkHX34HOW4_cjs.ROOT_AUTHORITY) {
1347
+ if (delegation.authority.toLowerCase() === chunkH37YVYZA_cjs.ROOT_AUTHORITY) {
1339
1348
  throw new HavenTypedDataRefusedError(
1340
1349
  "This close UserOperation disables a ROOT delegation, not a re-delegation of the agent budget. A task-budget child always chains under the agent budget delegation. Refusing."
1341
1350
  );
@@ -1407,6 +1416,7 @@ exports.X402_MAX_AUTHORIZATION_WINDOW_SECONDS = X402_MAX_AUTHORIZATION_WINDOW_SE
1407
1416
  exports.X402_PAYMENT_HEADER_NAME = X402_PAYMENT_HEADER_NAME;
1408
1417
  exports.X402_PAYMENT_HEADER_NAMES = X402_PAYMENT_HEADER_NAMES;
1409
1418
  exports.X402_PAYMENT_HEADER_NAMES_SENT = X402_PAYMENT_HEADER_NAMES_SENT;
1419
+ exports.X402_PAYMENT_NONCE_TAG = X402_PAYMENT_NONCE_TAG;
1410
1420
  exports.X402_PAYMENT_REQUIRED_HEADER_NAME = X402_PAYMENT_REQUIRED_HEADER_NAME;
1411
1421
  exports.X402_PAYMENT_RESPONSE_HEADER_NAME = X402_PAYMENT_RESPONSE_HEADER_NAME;
1412
1422
  exports.X402_SETTLEMENT_FORWARD_MARGIN_SECONDS = X402_SETTLEMENT_FORWARD_MARGIN_SECONDS;
@@ -1427,6 +1437,7 @@ exports.createNextStepBuilder = createNextStepBuilder;
1427
1437
  exports.decodeBase64Json = decodeBase64Json;
1428
1438
  exports.decodeBase64Utf8 = decodeBase64Utf8;
1429
1439
  exports.defaultNextToolFor = defaultNextToolFor;
1440
+ exports.deriveX402PaymentNonce = deriveX402PaymentNonce;
1430
1441
  exports.encodeBase64Json = encodeBase64Json;
1431
1442
  exports.encodeBase64Utf8 = encodeBase64Utf8;
1432
1443
  exports.encodePaymentProof = encodePaymentProof;
@@ -1464,6 +1475,7 @@ exports.x402AuthorizationAmount = x402AuthorizationAmount;
1464
1475
  exports.x402FacilitatorAddresses = x402FacilitatorAddresses;
1465
1476
  exports.x402PaymentHeaderNamesFor = x402PaymentHeaderNamesFor;
1466
1477
  exports.x402PaymentHeaderNamesSent = x402PaymentHeaderNamesSent;
1478
+ exports.x402RetryHeadersFor = x402RetryHeadersFor;
1467
1479
  exports.x402V2PaymentEnvelope = x402V2PaymentEnvelope;
1468
- //# sourceMappingURL=chunk-HFOAYTD4.cjs.map
1469
- //# sourceMappingURL=chunk-HFOAYTD4.cjs.map
1480
+ //# sourceMappingURL=chunk-22FJ4JQO.cjs.map
1481
+ //# sourceMappingURL=chunk-22FJ4JQO.cjs.map