@haven_ai/sdk 0.8.0-alpha.0 → 0.8.1-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.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWJFDXCYP_cjs = require('./chunk-WJFDXCYP.cjs');
3
+ var chunkHFOAYTD4_cjs = require('./chunk-HFOAYTD4.cjs');
4
4
  var chunkHX34HOW4_cjs = require('./chunk-HX34HOW4.cjs');
5
5
  var viem = require('viem');
6
6
  var ethers = require('ethers');
@@ -61,7 +61,7 @@ function verifySignature(hash, signature, expectedAddress) {
61
61
  var DEFAULT_BASE_URL = "http://localhost:3001";
62
62
  var DEFAULT_REQUEST_TIMEOUT = 3e4;
63
63
  function withoutClientHeader(headers) {
64
- const target = chunkWJFDXCYP_cjs.HAVEN_CLIENT_HEADER.toLowerCase();
64
+ const target = chunkHFOAYTD4_cjs.HAVEN_CLIENT_HEADER.toLowerCase();
65
65
  return Object.fromEntries(Object.entries(headers).filter(([name]) => name.toLowerCase() !== target));
66
66
  }
67
67
  var HavenApiTransport = class {
@@ -77,7 +77,7 @@ var HavenApiTransport = class {
77
77
  this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
78
78
  this.requestTimeout = config.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT;
79
79
  this.defaultHeaders = { ...config.defaultHeaders ?? {} };
80
- this.clientIdentity = config.clientIdentity ?? chunkWJFDXCYP_cjs.SDK_CLIENT_IDENTITY;
80
+ this.clientIdentity = config.clientIdentity ?? chunkHFOAYTD4_cjs.SDK_CLIENT_IDENTITY;
81
81
  }
82
82
  /**
83
83
  * The newest `client_update` the backend sent (#3303): inside a
@@ -90,7 +90,7 @@ var HavenApiTransport = class {
90
90
  }
91
91
  recordClientUpdate(data) {
92
92
  if (data === null || typeof data !== "object" || Array.isArray(data)) return;
93
- const hint = chunkWJFDXCYP_cjs.readClientUpdate(data.client_update);
93
+ const hint = chunkHFOAYTD4_cjs.readClientUpdate(data.client_update);
94
94
  if (!hint) return;
95
95
  this.lastClientUpdate = hint;
96
96
  const store = this.requestContext.getStore();
@@ -123,7 +123,7 @@ var HavenApiTransport = class {
123
123
  // JOIN `x-haven-client` and `X-Haven-Client` into one unparseable
124
124
  // value), so neither `defaultHeaders` nor a dispatch context can
125
125
  // misname the client; `clientIdentity` is the one way to set it.
126
- [chunkWJFDXCYP_cjs.HAVEN_CLIENT_HEADER]: this.clientIdentity
126
+ [chunkHFOAYTD4_cjs.HAVEN_CLIENT_HEADER]: this.clientIdentity
127
127
  },
128
128
  body: body ? JSON.stringify(body) : void 0,
129
129
  signal: controller.signal
@@ -173,7 +173,7 @@ async function fetchUnsignedTaxDeclaration(client) {
173
173
  );
174
174
  }
175
175
  async function resolveTaxDeclarationHeader(client, input) {
176
- if (chunkWJFDXCYP_cjs.isErc7710Option(input.accepted)) {
176
+ if (chunkHFOAYTD4_cjs.isErc7710Option(input.accepted)) {
177
177
  return { header: void 0 };
178
178
  }
179
179
  let content;
@@ -185,7 +185,7 @@ async function resolveTaxDeclarationHeader(client, input) {
185
185
  if (!content.available) {
186
186
  return { header: void 0 };
187
187
  }
188
- const signed = chunkWJFDXCYP_cjs.buildSignedTaxDeclaration({
188
+ const signed = chunkHFOAYTD4_cjs.buildSignedTaxDeclaration({
189
189
  content: content.declaration,
190
190
  network: input.accepted.network,
191
191
  delegateKey: input.delegateKey
@@ -194,19 +194,19 @@ async function resolveTaxDeclarationHeader(client, input) {
194
194
  `[haven-sdk] signing x402 tax declaration taxId=${JSON.stringify(content.declaration.taxId)} jurisdiction=${JSON.stringify(content.declaration.jurisdiction)} principalId=${signed.declaration.principalId}
195
195
  `
196
196
  );
197
- return { header: chunkWJFDXCYP_cjs.encodeTaxDeclarationHeader(signed) };
197
+ return { header: chunkHFOAYTD4_cjs.encodeTaxDeclarationHeader(signed) };
198
198
  }
199
199
  function withTaxDeclarationHeader(init, header) {
200
200
  if (!header) {
201
- if (init?.headers && new Headers(init.headers).has(chunkWJFDXCYP_cjs.X_TAX_DECLARATION_HEADER)) {
201
+ if (init?.headers && new Headers(init.headers).has(chunkHFOAYTD4_cjs.X_TAX_DECLARATION_HEADER)) {
202
202
  const headers2 = new Headers(init.headers);
203
- headers2.delete(chunkWJFDXCYP_cjs.X_TAX_DECLARATION_HEADER);
203
+ headers2.delete(chunkHFOAYTD4_cjs.X_TAX_DECLARATION_HEADER);
204
204
  return { ...init, headers: headers2 };
205
205
  }
206
206
  return init ?? {};
207
207
  }
208
208
  const headers = new Headers(init?.headers);
209
- headers.set(chunkWJFDXCYP_cjs.X_TAX_DECLARATION_HEADER, header);
209
+ headers.set(chunkHFOAYTD4_cjs.X_TAX_DECLARATION_HEADER, header);
210
210
  return { ...init, headers };
211
211
  }
212
212
 
@@ -697,8 +697,8 @@ var McpMerchantTransport = class {
697
697
  async deliverPayment(url, init, paymentHeader) {
698
698
  assertSecureX402RetryTarget(url);
699
699
  const headers = new Headers(init?.headers);
700
- const send = chunkWJFDXCYP_cjs.x402PaymentHeaderNamesFor(paymentHeader);
701
- for (const name of chunkWJFDXCYP_cjs.X402_PAYMENT_HEADER_NAMES) {
700
+ const send = chunkHFOAYTD4_cjs.x402PaymentHeaderNamesFor(paymentHeader);
701
+ for (const name of chunkHFOAYTD4_cjs.X402_PAYMENT_HEADER_NAMES) {
702
702
  if (send.includes(name)) headers.set(name, paymentHeader);
703
703
  else headers.delete(name);
704
704
  }
@@ -785,7 +785,7 @@ function mcpToolResultOf(value) {
785
785
  function extractMcpPaymentRequired(toolResult) {
786
786
  if (toolResult.isError !== true) return void 0;
787
787
  if (isRecord(toolResult.structuredContent)) {
788
- const parsed = chunkWJFDXCYP_cjs.normalizePaymentRequired(toolResult.structuredContent);
788
+ const parsed = chunkHFOAYTD4_cjs.normalizePaymentRequired(toolResult.structuredContent);
789
789
  if (parsed) return parsed;
790
790
  }
791
791
  if (Array.isArray(toolResult.content)) {
@@ -797,7 +797,7 @@ function extractMcpPaymentRequired(toolResult) {
797
797
  } catch {
798
798
  continue;
799
799
  }
800
- const parsed = chunkWJFDXCYP_cjs.normalizePaymentRequired(candidate);
800
+ const parsed = chunkHFOAYTD4_cjs.normalizePaymentRequired(candidate);
801
801
  if (parsed) return parsed;
802
802
  }
803
803
  }
@@ -821,7 +821,7 @@ function withMcpPaymentMeta(init, paymentHeader) {
821
821
  if (!request) return init;
822
822
  let envelope;
823
823
  try {
824
- envelope = chunkWJFDXCYP_cjs.decodeBase64Json(paymentHeader);
824
+ envelope = chunkHFOAYTD4_cjs.decodeBase64Json(paymentHeader);
825
825
  } catch {
826
826
  return init;
827
827
  }
@@ -837,7 +837,7 @@ function withMcpPaymentMeta(init, paymentHeader) {
837
837
  };
838
838
  }
839
839
  function encodeMcpSettlementReceipt(settlement) {
840
- return chunkWJFDXCYP_cjs.encodeBase64Json(settlement);
840
+ return chunkHFOAYTD4_cjs.encodeBase64Json(settlement);
841
841
  }
842
842
  function parseJsonRpcToolsCall(body) {
843
843
  if (typeof body !== "string") return void 0;
@@ -1032,7 +1032,7 @@ function deriveReadiness(status, allowances) {
1032
1032
  return allowances.some((allowance) => safeBigInt(allowance.remainingAtomic) > 0n) ? "ready" : "needs_approval";
1033
1033
  }
1034
1034
  function formatRemainingDisplay(tokenAddress, tokenSymbol, remainingAtomic) {
1035
- const token = chunkWJFDXCYP_cjs.resolveTokenFromAddress(tokenAddress);
1035
+ const token = chunkHFOAYTD4_cjs.resolveTokenFromAddress(tokenAddress);
1036
1036
  return token ? `${formatAtomicAmount(safeBigInt(remainingAtomic), token.decimals)} ${tokenSymbol}` : `${remainingAtomic} ${tokenSymbol} (atomic; unknown decimals)`;
1037
1037
  }
1038
1038
  function formatTokenAmount(atomic, decimals) {
@@ -1108,7 +1108,7 @@ function summarizePendingSubBudget(row) {
1108
1108
  };
1109
1109
  }
1110
1110
  function summarizeTaskBudget(taskBudget) {
1111
- const token = chunkWJFDXCYP_cjs.resolveTokenFromAddress(taskBudget.tokenAddress);
1111
+ const token = chunkHFOAYTD4_cjs.resolveTokenFromAddress(taskBudget.tokenAddress);
1112
1112
  const maxDisplay = token ? `${formatAtomicAmount(safeBigInt(taskBudget.maxAtomic), token.decimals)} ${token.symbol}` : `${taskBudget.maxAtomic} (atomic; unknown decimals)`;
1113
1113
  const spendDisplay = (atomic) => {
1114
1114
  if (atomic === null) return null;
@@ -1479,8 +1479,8 @@ var DelegateSweepApi = class {
1479
1479
  const provider = createJsonRpcProvider(rpcUrl);
1480
1480
  const wallet = createWallet(this.options.delegateKey, provider);
1481
1481
  const transfers = [];
1482
- if (chunkWJFDXCYP_cjs.isSweepableChain(agent.chainId)) {
1483
- const contract = createErc20Contract(chunkWJFDXCYP_cjs.sweepUsdcAddress(agent.chainId), ["function balanceOf(address) view returns (uint256)", "function transfer(address to, uint256 amount) returns (bool)"], wallet);
1482
+ if (chunkHFOAYTD4_cjs.isSweepableChain(agent.chainId)) {
1483
+ const contract = createErc20Contract(chunkHFOAYTD4_cjs.sweepUsdcAddress(agent.chainId), ["function balanceOf(address) view returns (uint256)", "function transfer(address to, uint256 amount) returns (bool)"], wallet);
1484
1484
  const balance2 = await contract.balanceOf(agent.delegateAddress);
1485
1485
  if (balance2 > 0n) {
1486
1486
  const tx = await contract.transfer(agent.accountAddress, balance2);
@@ -1589,9 +1589,9 @@ function requestInitFromSnapshot(request) {
1589
1589
  };
1590
1590
  }
1591
1591
  function noCompatiblePaymentOptionError(accepts) {
1592
- const erc7710Only = chunkWJFDXCYP_cjs.selectErc7710PaymentOption(accepts) !== null;
1592
+ const erc7710Only = chunkHFOAYTD4_cjs.selectErc7710PaymentOption(accepts) !== null;
1593
1593
  const unsupportedOnly = !erc7710Only && accepts.some(
1594
- (opt) => opt !== null && typeof opt === "object" && !chunkWJFDXCYP_cjs.isErc7710Option(opt) && (chunkWJFDXCYP_cjs.x402AssetTransferMethod(opt) !== null || opt.extra?.paymentFlow !== void 0)
1594
+ (opt) => opt !== null && typeof opt === "object" && !chunkHFOAYTD4_cjs.isErc7710Option(opt) && (chunkHFOAYTD4_cjs.x402AssetTransferMethod(opt) !== null || opt.extra?.paymentFlow !== void 0)
1595
1595
  );
1596
1596
  return new chunkHX34HOW4_cjs.HavenApiError(
1597
1597
  "No compatible payment option found in x402 requirements. Haven supports standard x402 exact payments on Base USDC." + (erc7710Only ? " The only Haven-compatible option this merchant advertises is tagged extra.assetTransferMethod: 'erc7710' (direct settlement), which this EIP-3009 payment path cannot settle \u2014 the limitation is the settlement scheme, not the asset. Paying this merchant requires a delegation-rail erc7710 flow (settleX402Erc7710, or the hosted MCP purchase tools)." : unsupportedOnly ? " Every option this merchant advertises asks for a transfer method or payment flow Haven cannot construct (for example extra.assetTransferMethod: 'permit2', or an unrecognized extra.paymentFlow). No payment intent was created and no funds moved." : ""),
@@ -1599,15 +1599,15 @@ function noCompatiblePaymentOptionError(accepts) {
1599
1599
  );
1600
1600
  }
1601
1601
  function buildX402Quote(paymentRequired, request, idempotencyKey, mcpTransport) {
1602
- const standard = chunkWJFDXCYP_cjs.selectStandardPaymentOption(paymentRequired.accepts);
1603
- const option = standard ?? chunkWJFDXCYP_cjs.selectErc7710PaymentOption(paymentRequired.accepts);
1602
+ const standard = chunkHFOAYTD4_cjs.selectStandardPaymentOption(paymentRequired.accepts);
1603
+ const option = standard ?? chunkHFOAYTD4_cjs.selectErc7710PaymentOption(paymentRequired.accepts);
1604
1604
  if (!option) {
1605
1605
  throw noCompatiblePaymentOptionError(paymentRequired.accepts);
1606
1606
  }
1607
- const token = chunkWJFDXCYP_cjs.resolveTokenFromAddress(option.asset, option.network);
1607
+ const token = chunkHFOAYTD4_cjs.resolveTokenFromAddress(option.asset, option.network);
1608
1608
  return {
1609
1609
  rail: "x402",
1610
- idempotencyKey: idempotencyKey ?? chunkWJFDXCYP_cjs.buildX402IdempotencyKey(paymentRequired, option),
1610
+ idempotencyKey: idempotencyKey ?? chunkHFOAYTD4_cjs.buildX402IdempotencyKey(paymentRequired, option),
1611
1611
  paymentRequired,
1612
1612
  accepted: option,
1613
1613
  acceptedScheme: standard ? "standard" : "erc7710",
@@ -1621,8 +1621,8 @@ function buildX402Quote(paymentRequired, request, idempotencyKey, mcpTransport)
1621
1621
  resourceUrlDiffersFromRequest: paymentRequired.resource.url !== request.url,
1622
1622
  description: paymentRequired.resource.description ?? option.description ?? null,
1623
1623
  mimeType: paymentRequired.resource.mimeType ?? option.mimeType ?? null,
1624
- amountAtomic: chunkWJFDXCYP_cjs.x402AuthorizationAmount(option),
1625
- amount: decimalFromUsdcAtomic(chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)),
1624
+ amountAtomic: chunkHFOAYTD4_cjs.x402AuthorizationAmount(option),
1625
+ amount: decimalFromUsdcAtomic(chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)),
1626
1626
  token: token?.symbol ?? "USDC",
1627
1627
  // #1351: null when the asset is unrecognised on this network — the
1628
1628
  // `token` fallback above is a LABEL, not evidence of 6 decimals, and a
@@ -1661,7 +1661,7 @@ function buildX402Receipt(input) {
1661
1661
  payTo: input.merchantTo ?? input.accepted.payTo
1662
1662
  },
1663
1663
  x402: {
1664
- amount: chunkWJFDXCYP_cjs.x402AuthorizationAmount(input.accepted),
1664
+ amount: chunkHFOAYTD4_cjs.x402AuthorizationAmount(input.accepted),
1665
1665
  token: input.token,
1666
1666
  network: input.accepted.network,
1667
1667
  asset: input.accepted.asset,
@@ -1670,7 +1670,7 @@ function buildX402Receipt(input) {
1670
1670
  };
1671
1671
  }
1672
1672
  function buildX402ResumeState(input) {
1673
- const token = chunkWJFDXCYP_cjs.resolveTokenFromAddress(input.accepted.asset, input.accepted.network);
1673
+ const token = chunkHFOAYTD4_cjs.resolveTokenFromAddress(input.accepted.asset, input.accepted.network);
1674
1674
  return {
1675
1675
  rail: "x402",
1676
1676
  paymentId: input.paymentId,
@@ -1681,8 +1681,8 @@ function buildX402ResumeState(input) {
1681
1681
  request: input.request,
1682
1682
  resourceUrl: input.paymentRequired.resource.url,
1683
1683
  description: input.paymentRequired.resource.description ?? input.accepted.description ?? null,
1684
- amountAtomic: chunkWJFDXCYP_cjs.x402AuthorizationAmount(input.accepted),
1685
- amount: decimalFromUsdcAtomic(chunkWJFDXCYP_cjs.x402AuthorizationAmount(input.accepted)),
1684
+ amountAtomic: chunkHFOAYTD4_cjs.x402AuthorizationAmount(input.accepted),
1685
+ amount: decimalFromUsdcAtomic(chunkHFOAYTD4_cjs.x402AuthorizationAmount(input.accepted)),
1686
1686
  token: token?.symbol ?? "USDC",
1687
1687
  asset: input.accepted.asset,
1688
1688
  network: input.accepted.network,
@@ -1763,7 +1763,7 @@ function assertCanResumeX402(status, paymentRequired, option) {
1763
1763
  );
1764
1764
  }
1765
1765
  const approvedAmount = status.amount ? normalizeDecimal(status.amount) : "";
1766
- const requestedAmount = normalizeDecimal(decimalFromUsdcAtomic(chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)));
1766
+ const requestedAmount = normalizeDecimal(decimalFromUsdcAtomic(chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)));
1767
1767
  if (approvedAmount && approvedAmount !== requestedAmount) {
1768
1768
  throw new chunkHX34HOW4_cjs.HavenApiError(
1769
1769
  "x402 resume request does not match the approved amount.",
@@ -1842,7 +1842,7 @@ var X402FundingLeg = class {
1842
1842
  url: paymentRequired.resource.url,
1843
1843
  payTo: this.delegateAddress,
1844
1844
  merchantPayTo: option.payTo,
1845
- amount: chunkWJFDXCYP_cjs.x402AuthorizationAmount(option),
1845
+ amount: chunkHFOAYTD4_cjs.x402AuthorizationAmount(option),
1846
1846
  asset: option.asset,
1847
1847
  network: option.network,
1848
1848
  description: paymentRequired.resource.description,
@@ -1866,7 +1866,7 @@ var X402FundingLeg = class {
1866
1866
  const canFund = await this.delegateCanFund(
1867
1867
  raw.chain_id ?? state?.chainId ?? chainIdFromNetwork(option.network),
1868
1868
  option.asset,
1869
- chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)
1869
+ chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)
1870
1870
  );
1871
1871
  const refuse = executedReplay === "idempotency-collision" ? canFund !== true : canFund === false;
1872
1872
  if (refuse) {
@@ -1895,7 +1895,7 @@ var X402FundingLeg = class {
1895
1895
  }
1896
1896
  const sig = await this.signForData(raw.sign_data, {
1897
1897
  asset: option.asset,
1898
- amount: chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)
1898
+ amount: chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)
1899
1899
  });
1900
1900
  const execResult = await this.post(
1901
1901
  `/payments/${raw.payment_id}/sign`,
@@ -1918,22 +1918,22 @@ var X402FundingLeg = class {
1918
1918
  throw new chunkHX34HOW4_cjs.HavenSigningError("delegateKey is required to sign x402 payment headers.");
1919
1919
  }
1920
1920
  const account = accounts.privateKeyToAccount(this.delegateKey);
1921
- const requirements = chunkWJFDXCYP_cjs.toStandardPaymentRequirements(paymentRequired, option);
1921
+ const requirements = chunkHFOAYTD4_cjs.toStandardPaymentRequirements(paymentRequired, option);
1922
1922
  const header = await schemes.exact.evm.createPaymentHeader(
1923
1923
  account,
1924
1924
  paymentRequired.x402Version,
1925
1925
  requirements
1926
1926
  );
1927
1927
  if (paymentRequired.x402Version < 2) return header;
1928
- const payment = chunkWJFDXCYP_cjs.decodeBase64Json(header);
1929
- return chunkWJFDXCYP_cjs.encodeBase64Json(chunkWJFDXCYP_cjs.x402V2PaymentEnvelope(paymentRequired, option, payment.payload));
1928
+ const payment = chunkHFOAYTD4_cjs.decodeBase64Json(header);
1929
+ return chunkHFOAYTD4_cjs.encodeBase64Json(chunkHFOAYTD4_cjs.x402V2PaymentEnvelope(paymentRequired, option, payment.payload));
1930
1930
  }
1931
1931
  // ── Receipt mapping ──────────────────────────────────────────────
1932
1932
  receiptFromAuthorization(paymentRequired, option, paymentHeader, raw, execResult) {
1933
1933
  const txHash = execResult?.tx_hash ?? raw.tx_hash ?? "";
1934
1934
  const chainId = execResult?.chain_id ?? raw.chain_id ?? chainIdFromNetwork(option.network);
1935
1935
  const token = execResult?.token ?? raw.token ?? "USDC";
1936
- const amount = execResult?.amount ?? raw.amount ?? decimalFromUsdcAtomic(chunkWJFDXCYP_cjs.x402AuthorizationAmount(option));
1936
+ const amount = execResult?.amount ?? raw.amount ?? decimalFromUsdcAtomic(chunkHFOAYTD4_cjs.x402AuthorizationAmount(option));
1937
1937
  const to = execResult?.to ?? raw.to ?? this.delegateAddress ?? "";
1938
1938
  const explorerUrl = execResult?.explorer_url ?? raw.explorer_url ?? explorerUrlOrEmpty(chainId, txHash);
1939
1939
  const merchantTo = execResult?.merchant_to ?? raw.merchant_to ?? option.payTo;
@@ -1966,7 +1966,7 @@ var X402FundingLeg = class {
1966
1966
  paymentId: status.paymentId,
1967
1967
  txHash: status.txHash,
1968
1968
  token: status.token || "USDC",
1969
- amount: status.amount || decimalFromUsdcAtomic(chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)),
1969
+ amount: status.amount || decimalFromUsdcAtomic(chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)),
1970
1970
  to: this.delegateAddress ?? "",
1971
1971
  resourceUrl: paymentRequired.resource.url,
1972
1972
  explorerUrl: explorerUrlOrEmpty(status.chainId, status.txHash),
@@ -2043,7 +2043,7 @@ var X402FundingLeg = class {
2043
2043
  };
2044
2044
  function getPaymentHeaderValidBefore(paymentHeader) {
2045
2045
  try {
2046
- const payment = chunkWJFDXCYP_cjs.decodeBase64Json(
2046
+ const payment = chunkHFOAYTD4_cjs.decodeBase64Json(
2047
2047
  paymentHeader
2048
2048
  );
2049
2049
  const payload = payment.payload;
@@ -2128,7 +2128,7 @@ var X402Erc7710 = class {
2128
2128
  400
2129
2129
  );
2130
2130
  }
2131
- const selection = chunkWJFDXCYP_cjs.selectX402SettlementScheme(paymentRequired.accepts, { delegationRail });
2131
+ const selection = chunkHFOAYTD4_cjs.selectX402SettlementScheme(paymentRequired.accepts, { delegationRail });
2132
2132
  if (!selection || selection.scheme !== "erc7710") {
2133
2133
  throw new chunkHX34HOW4_cjs.HavenApiError(
2134
2134
  "This merchant does not advertise an erc7710 settlement option (no accepts[] entry carries extra.assetTransferMethod: 'erc7710'). Use authorizeX402() for the standard EIP-3009 path.",
@@ -2137,7 +2137,7 @@ var X402Erc7710 = class {
2137
2137
  }
2138
2138
  const option = selection.option;
2139
2139
  const merchantPayTo = option.payTo;
2140
- const amountAtomic = chunkWJFDXCYP_cjs.x402AuthorizationAmount(option);
2140
+ const amountAtomic = chunkHFOAYTD4_cjs.x402AuthorizationAmount(option);
2141
2141
  const raw = await this.post("/x402", {
2142
2142
  url: options.resourceUrl ?? paymentRequired.resource?.url,
2143
2143
  // #2373: the full 402 challenge, persisted verbatim by the backend
@@ -2396,7 +2396,7 @@ var MerchantCompletion = class {
2396
2396
  }
2397
2397
  let retryInit = initialInit;
2398
2398
  if (this.getTaxDeclarationHeader && this.delegateKey) {
2399
- const scheme = chunkWJFDXCYP_cjs.x402PaymentHeaderNamesFor(receipt.paymentHeader);
2399
+ const scheme = chunkHFOAYTD4_cjs.x402PaymentHeaderNamesFor(receipt.paymentHeader);
2400
2400
  const isEip3009 = scheme.length > 1;
2401
2401
  if (isEip3009) {
2402
2402
  const resolved = await this.getTaxDeclarationHeader({
@@ -2461,7 +2461,7 @@ var MerchantCompletion = class {
2461
2461
  merchantStatus: retryResponse.status,
2462
2462
  challengePayload: paymentRequired,
2463
2463
  selectedPayment: receipt.accepted,
2464
- paymentProofHeaderName: chunkWJFDXCYP_cjs.x402PaymentHeaderNamesSent(receipt.paymentHeader),
2464
+ paymentProofHeaderName: chunkHFOAYTD4_cjs.x402PaymentHeaderNamesSent(receipt.paymentHeader),
2465
2465
  paymentProofHeader: receipt.paymentHeader,
2466
2466
  protocolReceiptHeaderName,
2467
2467
  protocolReceiptHeader
@@ -2772,7 +2772,7 @@ function parseMerchantSettlement(header) {
2772
2772
  }
2773
2773
  function parseProtocolReceiptHeader(value) {
2774
2774
  try {
2775
- return chunkWJFDXCYP_cjs.decodeBase64Json(value);
2775
+ return chunkHFOAYTD4_cjs.decodeBase64Json(value);
2776
2776
  } catch {
2777
2777
  try {
2778
2778
  return JSON.parse(value);
@@ -3017,7 +3017,7 @@ var HavenClient = class {
3017
3017
  * on-chain allowance — there is nothing to sign until the user approves.
3018
3018
  */
3019
3019
  async createX402Intent(paymentRequired, options = {}) {
3020
- const option = chunkWJFDXCYP_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3020
+ const option = chunkHFOAYTD4_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3021
3021
  if (!option) {
3022
3022
  throw noCompatiblePaymentOptionError(paymentRequired.accepts);
3023
3023
  }
@@ -3025,7 +3025,7 @@ var HavenClient = class {
3025
3025
  if (!fundingTo) {
3026
3026
  throw new chunkHX34HOW4_cjs.HavenApiError("Authenticated agent has no delegate address registered.", 502);
3027
3027
  }
3028
- const idempotencyKey = options.idempotencyKey ?? chunkWJFDXCYP_cjs.buildX402IdempotencyKey(paymentRequired, option);
3028
+ const idempotencyKey = options.idempotencyKey ?? chunkHFOAYTD4_cjs.buildX402IdempotencyKey(paymentRequired, option);
3029
3029
  const raw = await this.post("/x402", {
3030
3030
  url: paymentRequired.resource.url,
3031
3031
  payTo: fundingTo,
@@ -3036,7 +3036,7 @@ var HavenClient = class {
3036
3036
  // of a silent reroute to the erc7710 settlement branch (the #1358
3037
3037
  // review's open-budget misroute). Legacy-rail backends ignore the field.
3038
3038
  settlementScheme: "eip3009",
3039
- amount: chunkWJFDXCYP_cjs.x402AuthorizationAmount(option),
3039
+ amount: chunkHFOAYTD4_cjs.x402AuthorizationAmount(option),
3040
3040
  asset: option.asset,
3041
3041
  network: option.network,
3042
3042
  description: paymentRequired.resource.description,
@@ -3080,7 +3080,7 @@ var HavenClient = class {
3080
3080
  accepted: option,
3081
3081
  resourceUrl: paymentRequired.resource.url,
3082
3082
  merchantTo: raw.merchant_to ?? option.payTo,
3083
- amountAtomic: chunkWJFDXCYP_cjs.x402AuthorizationAmount(option),
3083
+ amountAtomic: chunkHFOAYTD4_cjs.x402AuthorizationAmount(option),
3084
3084
  asset: option.asset,
3085
3085
  network: option.network,
3086
3086
  expectedAuth: raw.x402_expected_auth,
@@ -3146,12 +3146,12 @@ var HavenClient = class {
3146
3146
  );
3147
3147
  }
3148
3148
  chunkHX34HOW4_cjs.assertUserOpTypedDataBinding(signData.typed_data, signData.hash);
3149
- chunkWJFDXCYP_cjs.assertBoundDirectPaymentUserOp(
3149
+ chunkHFOAYTD4_cjs.assertBoundDirectPaymentUserOp(
3150
3150
  signData.typed_data,
3151
3151
  this.delegateAddress
3152
3152
  );
3153
3153
  if (fundingExpectation) {
3154
- chunkWJFDXCYP_cjs.assertFundingLegPaysDelegate(signData.typed_data, {
3154
+ chunkHFOAYTD4_cjs.assertFundingLegPaysDelegate(signData.typed_data, {
3155
3155
  delegateAddress: this.delegateAddress,
3156
3156
  asset: fundingExpectation.asset,
3157
3157
  amount: fundingExpectation.amount
@@ -3166,11 +3166,11 @@ var HavenClient = class {
3166
3166
  );
3167
3167
  }
3168
3168
  if (!settlementExpectation) {
3169
- throw new chunkWJFDXCYP_cjs.HavenTypedDataRefusedError(
3169
+ throw new chunkHFOAYTD4_cjs.HavenTypedDataRefusedError(
3170
3170
  "Refusing to sign an x402 settlement child without an independent expectation of what it must pay (the merchant's 402). Pay erc7710 merchants through settleX402Erc7710(), which supplies it."
3171
3171
  );
3172
3172
  }
3173
- chunkWJFDXCYP_cjs.assertOwnSettlementChild(signData.typed_data, settlementExpectation, this.delegateAddress);
3173
+ chunkHFOAYTD4_cjs.assertOwnSettlementChild(signData.typed_data, settlementExpectation, this.delegateAddress);
3174
3174
  return signSettlementDelegationTypedData(this.delegateKey, signData.typed_data);
3175
3175
  }
3176
3176
  if (scheme === void 0) {
@@ -3636,11 +3636,11 @@ var HavenClient = class {
3636
3636
  if (!this.delegateAddress) {
3637
3637
  throw new chunkHX34HOW4_cjs.HavenSigningError("delegateAddress could not be derived from delegateKey.");
3638
3638
  }
3639
- const option = chunkWJFDXCYP_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3639
+ const option = chunkHFOAYTD4_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3640
3640
  if (!option) {
3641
3641
  throw noCompatiblePaymentOptionError(paymentRequired.accepts);
3642
3642
  }
3643
- const idempotencyKey = options.idempotencyKey ?? chunkWJFDXCYP_cjs.buildX402IdempotencyKey(paymentRequired, option);
3643
+ const idempotencyKey = options.idempotencyKey ?? chunkHFOAYTD4_cjs.buildX402IdempotencyKey(paymentRequired, option);
3644
3644
  const cached = this.fundingLeg.cachedReceipt(idempotencyKey, options.taskBudgetId, options.subBudgetId);
3645
3645
  if (cached) return cached;
3646
3646
  const inFlight = this.inFlightX402.get(idempotencyKey);
@@ -3709,7 +3709,7 @@ var HavenClient = class {
3709
3709
  if (response.headers.get("MACHINE-PAYMENT-CHALLENGE")) {
3710
3710
  throw new chunkHX34HOW4_cjs.HavenApiError("quoteX402 only supports standard x402 Payment Required responses.", 400);
3711
3711
  }
3712
- const paymentRequired = await chunkWJFDXCYP_cjs.parsePaymentRequiredResponse(response);
3712
+ const paymentRequired = await chunkHFOAYTD4_cjs.parsePaymentRequiredResponse(response);
3713
3713
  const mcpTransport = await this.merchantTransport.detect(url, paymentRequired, response);
3714
3714
  return buildX402Quote(paymentRequired, request, options.idempotencyKey, mcpTransport);
3715
3715
  }
@@ -3808,11 +3808,11 @@ var HavenClient = class {
3808
3808
  if (!this.delegateAddress) {
3809
3809
  throw new chunkHX34HOW4_cjs.HavenSigningError("delegateAddress could not be derived from delegateKey.");
3810
3810
  }
3811
- const option = chunkWJFDXCYP_cjs.selectStandardPaymentOption(input.paymentRequired.accepts);
3811
+ const option = chunkHFOAYTD4_cjs.selectStandardPaymentOption(input.paymentRequired.accepts);
3812
3812
  if (!option) {
3813
3813
  throw noCompatiblePaymentOptionError(input.paymentRequired.accepts);
3814
3814
  }
3815
- const idempotencyKey = input.idempotencyKey ?? chunkWJFDXCYP_cjs.buildX402IdempotencyKey(input.paymentRequired, option);
3815
+ const idempotencyKey = input.idempotencyKey ?? chunkHFOAYTD4_cjs.buildX402IdempotencyKey(input.paymentRequired, option);
3816
3816
  const cached = this.fundingLeg.cachedReceipt(idempotencyKey, input.taskBudgetId);
3817
3817
  if (cached) return cached;
3818
3818
  const status = await this.getPaymentStatus(input.paymentId);
@@ -3820,7 +3820,7 @@ var HavenClient = class {
3820
3820
  const canFund = await this.fundingLeg.delegateCanFund(
3821
3821
  status.chainId ?? chainIdFromNetwork(option.network),
3822
3822
  option.asset,
3823
- chunkWJFDXCYP_cjs.x402AuthorizationAmount(option)
3823
+ chunkHFOAYTD4_cjs.x402AuthorizationAmount(option)
3824
3824
  );
3825
3825
  if (canFund === false) {
3826
3826
  throw new chunkHX34HOW4_cjs.X402AlreadySettledError(
@@ -3850,7 +3850,7 @@ var HavenClient = class {
3850
3850
  if (response.status !== 402) {
3851
3851
  throw new chunkHX34HOW4_cjs.HavenApiError("Expected the original x402 request to return HTTP 402 before resuming.", 400);
3852
3852
  }
3853
- paymentRequired = await chunkWJFDXCYP_cjs.parsePaymentRequiredResponse(response);
3853
+ paymentRequired = await chunkHFOAYTD4_cjs.parsePaymentRequiredResponse(response);
3854
3854
  }
3855
3855
  const receipt = await this.resumeAuthorizedX402({
3856
3856
  paymentId: input.paymentId,
@@ -3903,7 +3903,7 @@ var HavenClient = class {
3903
3903
  nativeChallenge = true;
3904
3904
  } else {
3905
3905
  try {
3906
- paymentRequired = await chunkWJFDXCYP_cjs.parsePaymentRequiredResponse(response);
3906
+ paymentRequired = await chunkHFOAYTD4_cjs.parsePaymentRequiredResponse(response);
3907
3907
  } catch {
3908
3908
  return response;
3909
3909
  }
@@ -3913,8 +3913,8 @@ var HavenClient = class {
3913
3913
  if (mcpSessionId) requestInit = this.merchantTransport.withSessionHeaders(requestInit, mcpSessionId);
3914
3914
  }
3915
3915
  const request = snapshotX402Request(url, requestInit);
3916
- const option = chunkWJFDXCYP_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3917
- const idempotencyKey = options.idempotencyKey ?? (option ? chunkWJFDXCYP_cjs.buildX402IdempotencyKey(paymentRequired, option) : void 0);
3916
+ const option = chunkHFOAYTD4_cjs.selectStandardPaymentOption(paymentRequired.accepts);
3917
+ const idempotencyKey = options.idempotencyKey ?? (option ? chunkHFOAYTD4_cjs.buildX402IdempotencyKey(paymentRequired, option) : void 0);
3918
3918
  let receipt;
3919
3919
  try {
3920
3920
  receipt = await this.authorizeX402(paymentRequired, options);
@@ -4041,7 +4041,7 @@ var HavenClient = class {
4041
4041
  txHash: evidenceTxHash,
4042
4042
  resourceUrl: evidenceContext.resourceUrl,
4043
4043
  merchantStatus: surfaced.status,
4044
- paymentProofHeaderName: chunkWJFDXCYP_cjs.x402PaymentHeaderNamesSent(input.paymentHeader),
4044
+ paymentProofHeaderName: chunkHFOAYTD4_cjs.x402PaymentHeaderNamesSent(input.paymentHeader),
4045
4045
  paymentProofHeader: input.paymentHeader,
4046
4046
  protocolReceiptHeaderName,
4047
4047
  protocolReceiptHeader
@@ -4560,12 +4560,12 @@ var havenTools = {
4560
4560
  var AGENT_SECRET_HYGIENE_SENTENCE = "Do not print private keys, API keys, credential file contents, or config secrets in chat or logs.";
4561
4561
  var AGENT_CLIENT_UPDATE_SENTENCE = "If a Haven result carries `client_update`, that client is out of date: run its `upgrade_command` as given, then any repair line it prints, then retry. `required: true` means payments are refused until you do.";
4562
4562
  var AGENT_LOCAL_KEY_SENTENCE = "The Haven connector generates the signing key locally and sends Haven only the public signing address plus proof.";
4563
- var AGENT_NETWORK_ACCESS_SENTENCE = "Network access is expected: this command downloads the npm package and contacts the Haven API, so if your environment is sandboxed, run it with network access enabled or request network access escalation; that changes the execution environment, not the command, and is not a third command modification.";
4563
+ var AGENT_NETWORK_ACCESS_SENTENCE = "Network access is expected: this command downloads the npm package and contacts the Haven API, so if your environment is sandboxed, run it with network access enabled or request network access escalation; that changes the execution environment, not the command, and is not a command modification.";
4564
4564
  var AGENT_JSON_MODE_SENTENCE = "If you are an AI agent running this command yourself rather than a human pasting it, you should append --json: the connector then emits one machine-readable, secret-free result object on stdout with progress on stderr, and returns promptly instead of blocking while it waits for the budget approval.";
4565
4565
  var AGENT_APPROVAL_RELAY_JSON_SENTENCE = "When a --json outcome reports approval.required: true, your first action must be to relay the approval instruction to me in your own reply \u2014 if the outcome carries approval.url, give me that link; otherwise tell me to return to Haven and approve this agent's budget \u2014 before verifying the connection, restarting anything, or any other step. Never build that link yourself: relay the one the outcome gave you or none at all. Any restart the outcome asks for is a separate instruction to give me afterwards, once the approval is done.";
4566
4566
  var AGENT_APPROVAL_RELAY_PROSE_SENTENCE = "If you ran the command without --json, the connector waits for the approval itself and prints its next steps when it finishes: relay the budget-approval instruction to me \u2014 the approval link if those steps printed one, otherwise that you need to return to Haven and approve this agent's budget \u2014 only if those printed next steps still ask for it. If they report the budget as already approved, there is nothing for me to approve.";
4567
4567
  var AGENT_WIRING_COLLISION_RELAY_SENTENCE = "If the connector refuses with wiring_collision, this machine is already wired to a different agent: relay that refusal to me with the superseded_agent_ids and suggested_name it carries, and let me choose whether to replace the existing wiring or add this agent alongside it. Never pick for me by adding --replace or --name yourself.";
4568
- var AGENT_COMMAND_MODIFICATION_SENTENCE = "Only two changes to the command above are permitted, and no others: appending --json, and \u2014 only if the connector refuses because it could not determine the agent runtime \u2014 re-running it once with --runtime <name> added, naming the harness you are running in, using one of the values that refusal lists. Never invent a runtime name and never change anything else.";
4568
+ var AGENT_COMMAND_MODIFICATION_SENTENCE = "Only three changes to the command above are permitted, and no others: appending --json; re-running it once with --runtime <name> added, only if the connector refuses because it could not determine the agent runtime, naming the harness you are running in and using one of the values that refusal lists; and re-running it once with the one flag I chose added, only after I have answered a wiring_collision relay \u2014 --name <the suggested_name or a name I gave> to add alongside, or --replace to replace \u2014 keeping any change already made. If that re-run is refused too, relay the refusal to me and stop. Never invent a runtime name and never change anything else.";
4569
4569
  var AGENT_README_SECTION_MD = `## Are you an AI agent whose user has no Haven account yet?
4570
4570
 
4571
4571
  Read **\`/for-agents.md\`** on the Haven host your user gave you \u2014 or
@@ -4660,7 +4660,7 @@ Call \`haven_get_agent\`, one of the Haven MCP tools the connector wires into yo
4660
4660
  - \`needs_approval\` \u2014 the connector finished, nobody approved yet. Ask your user again, in their Haven tab; there is no queue to wait in.
4661
4661
  - \`revoked\` \u2014 the credential is not active; ask your user to create a new agent.
4662
4662
 
4663
- \`ready\` covers hosted identity and the budget only, not your local signer. Check that with \`npx -y @haven_ai/connect@<channel> --doctor\`, the same tag your prompt named \u2014 a separate command, so the two-changes rule does not bind it.
4663
+ \`ready\` covers hosted identity and the budget only, not your local signer. Check that with \`npx -y @haven_ai/connect@<channel> --doctor\`, the same tag your prompt named \u2014 a separate command, so the command-modification rule does not bind it.
4664
4664
 
4665
4665
  ## If you cannot open a browser
4666
4666
 
@@ -4670,6 +4670,8 @@ Nothing here needs you to. Steps 1-3 \u2014 account, funding, budget \u2014 are
4670
4670
 
4671
4671
  ${AGENT_CLIENT_UPDATE_SENTENCE} What changed: [/releases](/releases).
4672
4672
 
4673
+ Something else wrong? \`haven feedback submit "<text>"\` sends it to Haven \u2014 it needs \`haven login\` first. Never put a credential in that text: no API key, no delegate key, no session token, no recovery phrase.
4674
+
4673
4675
  ## Vocabulary
4674
4676
 
4675
4677
  | Term | What it is |
@@ -5080,263 +5082,263 @@ function sameUrl(a, b) {
5080
5082
 
5081
5083
  Object.defineProperty(exports, "DEFAULT_NEXT_TOOL_BY_ACTION", {
5082
5084
  enumerable: true,
5083
- get: function () { return chunkWJFDXCYP_cjs.DEFAULT_NEXT_TOOL_BY_ACTION; }
5085
+ get: function () { return chunkHFOAYTD4_cjs.DEFAULT_NEXT_TOOL_BY_ACTION; }
5084
5086
  });
5085
5087
  Object.defineProperty(exports, "ERC7710_ASSET_TRANSFER_METHOD", {
5086
5088
  enumerable: true,
5087
- get: function () { return chunkWJFDXCYP_cjs.ERC7710_ASSET_TRANSFER_METHOD; }
5089
+ get: function () { return chunkHFOAYTD4_cjs.ERC7710_ASSET_TRANSFER_METHOD; }
5088
5090
  });
5089
5091
  Object.defineProperty(exports, "HAVEN_CLIENT_HEADER", {
5090
5092
  enumerable: true,
5091
- get: function () { return chunkWJFDXCYP_cjs.HAVEN_CLIENT_HEADER; }
5093
+ get: function () { return chunkHFOAYTD4_cjs.HAVEN_CLIENT_HEADER; }
5092
5094
  });
5093
5095
  Object.defineProperty(exports, "HAVEN_MINIMUM_NODE_VERSION", {
5094
5096
  enumerable: true,
5095
- get: function () { return chunkWJFDXCYP_cjs.HAVEN_MINIMUM_NODE_VERSION; }
5097
+ get: function () { return chunkHFOAYTD4_cjs.HAVEN_MINIMUM_NODE_VERSION; }
5096
5098
  });
5097
5099
  Object.defineProperty(exports, "HavenTypedDataRefusedError", {
5098
5100
  enumerable: true,
5099
- get: function () { return chunkWJFDXCYP_cjs.HavenTypedDataRefusedError; }
5101
+ get: function () { return chunkHFOAYTD4_cjs.HavenTypedDataRefusedError; }
5100
5102
  });
5101
5103
  Object.defineProperty(exports, "MAX_TASK_BUDGET_TTL_SECONDS", {
5102
5104
  enumerable: true,
5103
- get: function () { return chunkWJFDXCYP_cjs.MAX_TASK_BUDGET_TTL_SECONDS; }
5105
+ get: function () { return chunkHFOAYTD4_cjs.MAX_TASK_BUDGET_TTL_SECONDS; }
5104
5106
  });
5105
5107
  Object.defineProperty(exports, "NEXT_TOOL_SERVER_NAMES", {
5106
5108
  enumerable: true,
5107
- get: function () { return chunkWJFDXCYP_cjs.NEXT_TOOL_SERVER_NAMES; }
5109
+ get: function () { return chunkHFOAYTD4_cjs.NEXT_TOOL_SERVER_NAMES; }
5108
5110
  });
5109
5111
  Object.defineProperty(exports, "NEXT_TOOL_SERVER_ROLES", {
5110
5112
  enumerable: true,
5111
- get: function () { return chunkWJFDXCYP_cjs.NEXT_TOOL_SERVER_ROLES; }
5113
+ get: function () { return chunkHFOAYTD4_cjs.NEXT_TOOL_SERVER_ROLES; }
5112
5114
  });
5113
5115
  Object.defineProperty(exports, "SDK_CLIENT_IDENTITY", {
5114
5116
  enumerable: true,
5115
- get: function () { return chunkWJFDXCYP_cjs.SDK_CLIENT_IDENTITY; }
5117
+ get: function () { return chunkHFOAYTD4_cjs.SDK_CLIENT_IDENTITY; }
5116
5118
  });
5117
5119
  Object.defineProperty(exports, "SDK_VERSION", {
5118
5120
  enumerable: true,
5119
- get: function () { return chunkWJFDXCYP_cjs.SDK_VERSION; }
5121
+ get: function () { return chunkHFOAYTD4_cjs.SDK_VERSION; }
5120
5122
  });
5121
5123
  Object.defineProperty(exports, "SWEEP_BASE_CHAIN_ID", {
5122
5124
  enumerable: true,
5123
- get: function () { return chunkWJFDXCYP_cjs.SWEEP_BASE_CHAIN_ID; }
5125
+ get: function () { return chunkHFOAYTD4_cjs.SWEEP_BASE_CHAIN_ID; }
5124
5126
  });
5125
5127
  Object.defineProperty(exports, "SWEEP_BASE_SEPOLIA_CHAIN_ID", {
5126
5128
  enumerable: true,
5127
- get: function () { return chunkWJFDXCYP_cjs.SWEEP_BASE_SEPOLIA_CHAIN_ID; }
5129
+ get: function () { return chunkHFOAYTD4_cjs.SWEEP_BASE_SEPOLIA_CHAIN_ID; }
5128
5130
  });
5129
5131
  Object.defineProperty(exports, "SWEEP_BASE_SEPOLIA_USDC_ADDRESS", {
5130
5132
  enumerable: true,
5131
- get: function () { return chunkWJFDXCYP_cjs.SWEEP_BASE_SEPOLIA_USDC_ADDRESS; }
5133
+ get: function () { return chunkHFOAYTD4_cjs.SWEEP_BASE_SEPOLIA_USDC_ADDRESS; }
5132
5134
  });
5133
5135
  Object.defineProperty(exports, "SWEEP_BASE_USDC_ADDRESS", {
5134
5136
  enumerable: true,
5135
- get: function () { return chunkWJFDXCYP_cjs.SWEEP_BASE_USDC_ADDRESS; }
5137
+ get: function () { return chunkHFOAYTD4_cjs.SWEEP_BASE_USDC_ADDRESS; }
5136
5138
  });
5137
5139
  Object.defineProperty(exports, "TRANSFER_WITH_AUTHORIZATION_TYPES", {
5138
5140
  enumerable: true,
5139
- get: function () { return chunkWJFDXCYP_cjs.TRANSFER_WITH_AUTHORIZATION_TYPES; }
5141
+ get: function () { return chunkHFOAYTD4_cjs.TRANSFER_WITH_AUTHORIZATION_TYPES; }
5140
5142
  });
5141
5143
  Object.defineProperty(exports, "TYPED_DATA_NOT_ALLOWED", {
5142
5144
  enumerable: true,
5143
- get: function () { return chunkWJFDXCYP_cjs.TYPED_DATA_NOT_ALLOWED; }
5145
+ get: function () { return chunkHFOAYTD4_cjs.TYPED_DATA_NOT_ALLOWED; }
5144
5146
  });
5145
5147
  Object.defineProperty(exports, "X402PaymentHeaderValidationError", {
5146
5148
  enumerable: true,
5147
- get: function () { return chunkWJFDXCYP_cjs.X402PaymentHeaderValidationError; }
5149
+ get: function () { return chunkHFOAYTD4_cjs.X402PaymentHeaderValidationError; }
5148
5150
  });
5149
5151
  Object.defineProperty(exports, "X402_LEGACY_PAYMENT_HEADER_NAME", {
5150
5152
  enumerable: true,
5151
- get: function () { return chunkWJFDXCYP_cjs.X402_LEGACY_PAYMENT_HEADER_NAME; }
5153
+ get: function () { return chunkHFOAYTD4_cjs.X402_LEGACY_PAYMENT_HEADER_NAME; }
5152
5154
  });
5153
5155
  Object.defineProperty(exports, "X402_MAX_AUTHORIZATION_WINDOW_SECONDS", {
5154
5156
  enumerable: true,
5155
- get: function () { return chunkWJFDXCYP_cjs.X402_MAX_AUTHORIZATION_WINDOW_SECONDS; }
5157
+ get: function () { return chunkHFOAYTD4_cjs.X402_MAX_AUTHORIZATION_WINDOW_SECONDS; }
5156
5158
  });
5157
5159
  Object.defineProperty(exports, "X402_PAYMENT_HEADER_NAME", {
5158
5160
  enumerable: true,
5159
- get: function () { return chunkWJFDXCYP_cjs.X402_PAYMENT_HEADER_NAME; }
5161
+ get: function () { return chunkHFOAYTD4_cjs.X402_PAYMENT_HEADER_NAME; }
5160
5162
  });
5161
5163
  Object.defineProperty(exports, "X402_PAYMENT_HEADER_NAMES_SENT", {
5162
5164
  enumerable: true,
5163
- get: function () { return chunkWJFDXCYP_cjs.X402_PAYMENT_HEADER_NAMES_SENT; }
5165
+ get: function () { return chunkHFOAYTD4_cjs.X402_PAYMENT_HEADER_NAMES_SENT; }
5164
5166
  });
5165
5167
  Object.defineProperty(exports, "X402_PAYMENT_REQUIRED_HEADER_NAME", {
5166
5168
  enumerable: true,
5167
- get: function () { return chunkWJFDXCYP_cjs.X402_PAYMENT_REQUIRED_HEADER_NAME; }
5169
+ get: function () { return chunkHFOAYTD4_cjs.X402_PAYMENT_REQUIRED_HEADER_NAME; }
5168
5170
  });
5169
5171
  Object.defineProperty(exports, "X402_PAYMENT_RESPONSE_HEADER_NAME", {
5170
5172
  enumerable: true,
5171
- get: function () { return chunkWJFDXCYP_cjs.X402_PAYMENT_RESPONSE_HEADER_NAME; }
5173
+ get: function () { return chunkHFOAYTD4_cjs.X402_PAYMENT_RESPONSE_HEADER_NAME; }
5172
5174
  });
5173
5175
  Object.defineProperty(exports, "X402_SETTLEMENT_FORWARD_MARGIN_SECONDS", {
5174
5176
  enumerable: true,
5175
- get: function () { return chunkWJFDXCYP_cjs.X402_SETTLEMENT_FORWARD_MARGIN_SECONDS; }
5177
+ get: function () { return chunkHFOAYTD4_cjs.X402_SETTLEMENT_FORWARD_MARGIN_SECONDS; }
5176
5178
  });
5177
5179
  Object.defineProperty(exports, "assertBoundDirectPaymentUserOp", {
5178
5180
  enumerable: true,
5179
- get: function () { return chunkWJFDXCYP_cjs.assertBoundDirectPaymentUserOp; }
5181
+ get: function () { return chunkHFOAYTD4_cjs.assertBoundDirectPaymentUserOp; }
5180
5182
  });
5181
5183
  Object.defineProperty(exports, "assertOwnTaskBudgetCloseUserOp", {
5182
5184
  enumerable: true,
5183
- get: function () { return chunkWJFDXCYP_cjs.assertOwnTaskBudgetCloseUserOp; }
5185
+ get: function () { return chunkHFOAYTD4_cjs.assertOwnTaskBudgetCloseUserOp; }
5184
5186
  });
5185
5187
  Object.defineProperty(exports, "assertOwnTaskChild", {
5186
5188
  enumerable: true,
5187
- get: function () { return chunkWJFDXCYP_cjs.assertOwnTaskChild; }
5189
+ get: function () { return chunkHFOAYTD4_cjs.assertOwnTaskChild; }
5188
5190
  });
5189
5191
  Object.defineProperty(exports, "buildSweepAuthorizationMessage", {
5190
5192
  enumerable: true,
5191
- get: function () { return chunkWJFDXCYP_cjs.buildSweepAuthorizationMessage; }
5193
+ get: function () { return chunkHFOAYTD4_cjs.buildSweepAuthorizationMessage; }
5192
5194
  });
5193
5195
  Object.defineProperty(exports, "buildSweepTypedData", {
5194
5196
  enumerable: true,
5195
- get: function () { return chunkWJFDXCYP_cjs.buildSweepTypedData; }
5197
+ get: function () { return chunkHFOAYTD4_cjs.buildSweepTypedData; }
5196
5198
  });
5197
5199
  Object.defineProperty(exports, "buildX402ExpectedMessage", {
5198
5200
  enumerable: true,
5199
- get: function () { return chunkWJFDXCYP_cjs.buildX402ExpectedMessage; }
5201
+ get: function () { return chunkHFOAYTD4_cjs.buildX402ExpectedMessage; }
5200
5202
  });
5201
5203
  Object.defineProperty(exports, "compareNodeVersions", {
5202
5204
  enumerable: true,
5203
- get: function () { return chunkWJFDXCYP_cjs.compareNodeVersions; }
5205
+ get: function () { return chunkHFOAYTD4_cjs.compareNodeVersions; }
5204
5206
  });
5205
5207
  Object.defineProperty(exports, "createNextStepBuilder", {
5206
5208
  enumerable: true,
5207
- get: function () { return chunkWJFDXCYP_cjs.createNextStepBuilder; }
5209
+ get: function () { return chunkHFOAYTD4_cjs.createNextStepBuilder; }
5208
5210
  });
5209
5211
  Object.defineProperty(exports, "decodeBase64Json", {
5210
5212
  enumerable: true,
5211
- get: function () { return chunkWJFDXCYP_cjs.decodeBase64Json; }
5213
+ get: function () { return chunkHFOAYTD4_cjs.decodeBase64Json; }
5212
5214
  });
5213
5215
  Object.defineProperty(exports, "decodeBase64Utf8", {
5214
5216
  enumerable: true,
5215
- get: function () { return chunkWJFDXCYP_cjs.decodeBase64Utf8; }
5217
+ get: function () { return chunkHFOAYTD4_cjs.decodeBase64Utf8; }
5216
5218
  });
5217
5219
  Object.defineProperty(exports, "defaultNextToolFor", {
5218
5220
  enumerable: true,
5219
- get: function () { return chunkWJFDXCYP_cjs.defaultNextToolFor; }
5221
+ get: function () { return chunkHFOAYTD4_cjs.defaultNextToolFor; }
5220
5222
  });
5221
5223
  Object.defineProperty(exports, "encodeBase64Json", {
5222
5224
  enumerable: true,
5223
- get: function () { return chunkWJFDXCYP_cjs.encodeBase64Json; }
5225
+ get: function () { return chunkHFOAYTD4_cjs.encodeBase64Json; }
5224
5226
  });
5225
5227
  Object.defineProperty(exports, "encodeBase64Utf8", {
5226
5228
  enumerable: true,
5227
- get: function () { return chunkWJFDXCYP_cjs.encodeBase64Utf8; }
5229
+ get: function () { return chunkHFOAYTD4_cjs.encodeBase64Utf8; }
5228
5230
  });
5229
5231
  Object.defineProperty(exports, "encodePaymentProof", {
5230
5232
  enumerable: true,
5231
- get: function () { return chunkWJFDXCYP_cjs.encodePaymentProof; }
5233
+ get: function () { return chunkHFOAYTD4_cjs.encodePaymentProof; }
5232
5234
  });
5233
5235
  Object.defineProperty(exports, "hashDelegation", {
5234
5236
  enumerable: true,
5235
- get: function () { return chunkWJFDXCYP_cjs.hashDelegation; }
5237
+ get: function () { return chunkHFOAYTD4_cjs.hashDelegation; }
5236
5238
  });
5237
5239
  Object.defineProperty(exports, "havenClientIdentity", {
5238
5240
  enumerable: true,
5239
- get: function () { return chunkWJFDXCYP_cjs.havenClientIdentity; }
5241
+ get: function () { return chunkHFOAYTD4_cjs.havenClientIdentity; }
5240
5242
  });
5241
5243
  Object.defineProperty(exports, "isErc7710Option", {
5242
5244
  enumerable: true,
5243
- get: function () { return chunkWJFDXCYP_cjs.isErc7710Option; }
5245
+ get: function () { return chunkHFOAYTD4_cjs.isErc7710Option; }
5244
5246
  });
5245
5247
  Object.defineProperty(exports, "isSupportedNodeVersion", {
5246
5248
  enumerable: true,
5247
- get: function () { return chunkWJFDXCYP_cjs.isSupportedNodeVersion; }
5249
+ get: function () { return chunkHFOAYTD4_cjs.isSupportedNodeVersion; }
5248
5250
  });
5249
5251
  Object.defineProperty(exports, "isSweepableChain", {
5250
5252
  enumerable: true,
5251
- get: function () { return chunkWJFDXCYP_cjs.isSweepableChain; }
5253
+ get: function () { return chunkHFOAYTD4_cjs.isSweepableChain; }
5252
5254
  });
5253
5255
  Object.defineProperty(exports, "isTaskChildTypedData", {
5254
5256
  enumerable: true,
5255
- get: function () { return chunkWJFDXCYP_cjs.isTaskChildTypedData; }
5257
+ get: function () { return chunkHFOAYTD4_cjs.isTaskChildTypedData; }
5256
5258
  });
5257
5259
  Object.defineProperty(exports, "normalizePaymentRequired", {
5258
5260
  enumerable: true,
5259
- get: function () { return chunkWJFDXCYP_cjs.normalizePaymentRequired; }
5261
+ get: function () { return chunkHFOAYTD4_cjs.normalizePaymentRequired; }
5260
5262
  });
5261
5263
  Object.defineProperty(exports, "parseNextTool", {
5262
5264
  enumerable: true,
5263
- get: function () { return chunkWJFDXCYP_cjs.parseNextTool; }
5265
+ get: function () { return chunkHFOAYTD4_cjs.parseNextTool; }
5264
5266
  });
5265
5267
  Object.defineProperty(exports, "parsePaymentRequired", {
5266
5268
  enumerable: true,
5267
- get: function () { return chunkWJFDXCYP_cjs.parsePaymentRequired; }
5269
+ get: function () { return chunkHFOAYTD4_cjs.parsePaymentRequired; }
5268
5270
  });
5269
5271
  Object.defineProperty(exports, "parsePaymentRequiredResponse", {
5270
5272
  enumerable: true,
5271
- get: function () { return chunkWJFDXCYP_cjs.parsePaymentRequiredResponse; }
5273
+ get: function () { return chunkHFOAYTD4_cjs.parsePaymentRequiredResponse; }
5272
5274
  });
5273
5275
  Object.defineProperty(exports, "readClientUpdate", {
5274
5276
  enumerable: true,
5275
- get: function () { return chunkWJFDXCYP_cjs.readClientUpdate; }
5277
+ get: function () { return chunkHFOAYTD4_cjs.readClientUpdate; }
5276
5278
  });
5277
5279
  Object.defineProperty(exports, "renderNextTool", {
5278
5280
  enumerable: true,
5279
- get: function () { return chunkWJFDXCYP_cjs.renderNextTool; }
5281
+ get: function () { return chunkHFOAYTD4_cjs.renderNextTool; }
5280
5282
  });
5281
5283
  Object.defineProperty(exports, "resolveTokenBySymbol", {
5282
5284
  enumerable: true,
5283
- get: function () { return chunkWJFDXCYP_cjs.resolveTokenBySymbol; }
5285
+ get: function () { return chunkHFOAYTD4_cjs.resolveTokenBySymbol; }
5284
5286
  });
5285
5287
  Object.defineProperty(exports, "resolveTokenFromAddress", {
5286
5288
  enumerable: true,
5287
- get: function () { return chunkWJFDXCYP_cjs.resolveTokenFromAddress; }
5289
+ get: function () { return chunkHFOAYTD4_cjs.resolveTokenFromAddress; }
5288
5290
  });
5289
5291
  Object.defineProperty(exports, "selectErc7710PaymentOption", {
5290
5292
  enumerable: true,
5291
- get: function () { return chunkWJFDXCYP_cjs.selectErc7710PaymentOption; }
5293
+ get: function () { return chunkHFOAYTD4_cjs.selectErc7710PaymentOption; }
5292
5294
  });
5293
5295
  Object.defineProperty(exports, "selectPaymentOption", {
5294
5296
  enumerable: true,
5295
- get: function () { return chunkWJFDXCYP_cjs.selectPaymentOption; }
5297
+ get: function () { return chunkHFOAYTD4_cjs.selectPaymentOption; }
5296
5298
  });
5297
5299
  Object.defineProperty(exports, "selectStandardPaymentOption", {
5298
5300
  enumerable: true,
5299
- get: function () { return chunkWJFDXCYP_cjs.selectStandardPaymentOption; }
5301
+ get: function () { return chunkHFOAYTD4_cjs.selectStandardPaymentOption; }
5300
5302
  });
5301
5303
  Object.defineProperty(exports, "selectX402SettlementScheme", {
5302
5304
  enumerable: true,
5303
- get: function () { return chunkWJFDXCYP_cjs.selectX402SettlementScheme; }
5305
+ get: function () { return chunkHFOAYTD4_cjs.selectX402SettlementScheme; }
5304
5306
  });
5305
5307
  Object.defineProperty(exports, "sweepUsdcAddress", {
5306
5308
  enumerable: true,
5307
- get: function () { return chunkWJFDXCYP_cjs.sweepUsdcAddress; }
5309
+ get: function () { return chunkHFOAYTD4_cjs.sweepUsdcAddress; }
5308
5310
  });
5309
5311
  Object.defineProperty(exports, "sweepUsdcDomain", {
5310
5312
  enumerable: true,
5311
- get: function () { return chunkWJFDXCYP_cjs.sweepUsdcDomain; }
5313
+ get: function () { return chunkHFOAYTD4_cjs.sweepUsdcDomain; }
5312
5314
  });
5313
5315
  Object.defineProperty(exports, "toStandardPaymentRequirements", {
5314
5316
  enumerable: true,
5315
- get: function () { return chunkWJFDXCYP_cjs.toStandardPaymentRequirements; }
5317
+ get: function () { return chunkHFOAYTD4_cjs.toStandardPaymentRequirements; }
5316
5318
  });
5317
5319
  Object.defineProperty(exports, "unsupportedNodeVersionMessage", {
5318
5320
  enumerable: true,
5319
- get: function () { return chunkWJFDXCYP_cjs.unsupportedNodeVersionMessage; }
5321
+ get: function () { return chunkHFOAYTD4_cjs.unsupportedNodeVersionMessage; }
5320
5322
  });
5321
5323
  Object.defineProperty(exports, "validateStandardX402PaymentHeader", {
5322
5324
  enumerable: true,
5323
- get: function () { return chunkWJFDXCYP_cjs.validateStandardX402PaymentHeader; }
5325
+ get: function () { return chunkHFOAYTD4_cjs.validateStandardX402PaymentHeader; }
5324
5326
  });
5325
5327
  Object.defineProperty(exports, "x402AssetTransferMethod", {
5326
5328
  enumerable: true,
5327
- get: function () { return chunkWJFDXCYP_cjs.x402AssetTransferMethod; }
5329
+ get: function () { return chunkHFOAYTD4_cjs.x402AssetTransferMethod; }
5328
5330
  });
5329
5331
  Object.defineProperty(exports, "x402AuthorizationAmount", {
5330
5332
  enumerable: true,
5331
- get: function () { return chunkWJFDXCYP_cjs.x402AuthorizationAmount; }
5333
+ get: function () { return chunkHFOAYTD4_cjs.x402AuthorizationAmount; }
5332
5334
  });
5333
5335
  Object.defineProperty(exports, "x402FacilitatorAddresses", {
5334
5336
  enumerable: true,
5335
- get: function () { return chunkWJFDXCYP_cjs.x402FacilitatorAddresses; }
5337
+ get: function () { return chunkHFOAYTD4_cjs.x402FacilitatorAddresses; }
5336
5338
  });
5337
5339
  Object.defineProperty(exports, "x402V2PaymentEnvelope", {
5338
5340
  enumerable: true,
5339
- get: function () { return chunkWJFDXCYP_cjs.x402V2PaymentEnvelope; }
5341
+ get: function () { return chunkHFOAYTD4_cjs.x402V2PaymentEnvelope; }
5340
5342
  });
5341
5343
  Object.defineProperty(exports, "AGENT_PAYMENT_FAILURE_CODE_VALUES", {
5342
5344
  enumerable: true,