@absol-labs/agent 0.12.0-rc.1 → 0.12.0-rc.2

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 (113) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/commands/claim.d.ts +32 -0
  3. package/dist/cli/commands/claim.d.ts.map +1 -1
  4. package/dist/cli/commands/claim.js +115 -27
  5. package/dist/cli/commands/claim.js.map +1 -1
  6. package/dist/cli/commands/pay.d.ts +15 -0
  7. package/dist/cli/commands/pay.d.ts.map +1 -1
  8. package/dist/cli/commands/pay.js +131 -7
  9. package/dist/cli/commands/pay.js.map +1 -1
  10. package/dist/cli/commands/reclaim.d.ts.map +1 -1
  11. package/dist/cli/commands/reclaim.js +20 -4
  12. package/dist/cli/commands/reclaim.js.map +1 -1
  13. package/dist/cli/commands/refund.d.ts +19 -1
  14. package/dist/cli/commands/refund.d.ts.map +1 -1
  15. package/dist/cli/commands/refund.js +200 -27
  16. package/dist/cli/commands/refund.js.map +1 -1
  17. package/dist/cli/commands/status.d.ts.map +1 -1
  18. package/dist/cli/commands/status.js +11 -1
  19. package/dist/cli/commands/status.js.map +1 -1
  20. package/dist/cli/commands/watch.d.ts.map +1 -1
  21. package/dist/cli/commands/watch.js +2 -0
  22. package/dist/cli/commands/watch.js.map +1 -1
  23. package/dist/cli/context.d.ts +19 -0
  24. package/dist/cli/context.d.ts.map +1 -1
  25. package/dist/cli/deps.d.ts +20 -0
  26. package/dist/cli/deps.d.ts.map +1 -1
  27. package/dist/cli/deps.js +14 -0
  28. package/dist/cli/deps.js.map +1 -1
  29. package/dist/cli/progress.d.ts +13 -1
  30. package/dist/cli/progress.d.ts.map +1 -1
  31. package/dist/cli/progress.js +7 -1
  32. package/dist/cli/progress.js.map +1 -1
  33. package/dist/cli/run.d.ts.map +1 -1
  34. package/dist/cli/run.js +26 -14
  35. package/dist/cli/run.js.map +1 -1
  36. package/dist/cli/status.d.ts +103 -0
  37. package/dist/cli/status.d.ts.map +1 -1
  38. package/dist/cli/status.js +310 -41
  39. package/dist/cli/status.js.map +1 -1
  40. package/dist/cli/wallet.d.ts +1 -1
  41. package/dist/cli/wallet.d.ts.map +1 -1
  42. package/dist/cli/wallet.js +28 -4
  43. package/dist/cli/wallet.js.map +1 -1
  44. package/dist/gateway/http-server.d.ts +17 -0
  45. package/dist/gateway/http-server.d.ts.map +1 -1
  46. package/dist/gateway/http-server.js +76 -9
  47. package/dist/gateway/http-server.js.map +1 -1
  48. package/dist/gateway/x402-opener-mode.d.ts +39 -2
  49. package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
  50. package/dist/gateway/x402-opener-mode.js +169 -36
  51. package/dist/gateway/x402-opener-mode.js.map +1 -1
  52. package/dist/mcp/server.d.ts +12 -0
  53. package/dist/mcp/server.d.ts.map +1 -1
  54. package/dist/mcp/server.js +28 -9
  55. package/dist/mcp/server.js.map +1 -1
  56. package/dist/mcp/x402-tools.d.ts +8 -3
  57. package/dist/mcp/x402-tools.d.ts.map +1 -1
  58. package/dist/mcp/x402-tools.js +126 -6
  59. package/dist/mcp/x402-tools.js.map +1 -1
  60. package/dist/sdk/client.d.ts +13 -0
  61. package/dist/sdk/client.d.ts.map +1 -1
  62. package/dist/sdk/client.js +15 -0
  63. package/dist/sdk/client.js.map +1 -1
  64. package/dist/x402-buyer/pay.d.ts +22 -0
  65. package/dist/x402-buyer/pay.d.ts.map +1 -1
  66. package/dist/x402-buyer/pay.js +33 -3
  67. package/dist/x402-buyer/pay.js.map +1 -1
  68. package/dist/x402-opener/facilitator-entry.js +4 -1
  69. package/dist/x402-opener/facilitator-entry.js.map +1 -1
  70. package/dist/x402-opener/facilitator-server.d.ts +29 -0
  71. package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
  72. package/dist/x402-opener/facilitator-server.js +67 -1
  73. package/dist/x402-opener/facilitator-server.js.map +1 -1
  74. package/dist/x402-opener/refund-relay.d.ts +30 -4
  75. package/dist/x402-opener/refund-relay.d.ts.map +1 -1
  76. package/dist/x402-opener/refund-relay.js +123 -22
  77. package/dist/x402-opener/refund-relay.js.map +1 -1
  78. package/dist/x402-opener/scheme.d.ts +79 -0
  79. package/dist/x402-opener/scheme.d.ts.map +1 -1
  80. package/dist/x402-opener/scheme.js +326 -40
  81. package/dist/x402-opener/scheme.js.map +1 -1
  82. package/dist/x402-opener/terms.d.ts +61 -1
  83. package/dist/x402-opener/terms.d.ts.map +1 -1
  84. package/dist/x402-opener/terms.js +94 -2
  85. package/dist/x402-opener/terms.js.map +1 -1
  86. package/docs/cli.md +87 -9
  87. package/docs/mcp-reference.md +18 -2
  88. package/docs/quickstart.md +3 -3
  89. package/docs/x402.md +150 -10
  90. package/package.json +3 -3
  91. package/src/cli/commands/claim.ts +167 -32
  92. package/src/cli/commands/pay.ts +150 -8
  93. package/src/cli/commands/reclaim.ts +25 -5
  94. package/src/cli/commands/refund.ts +231 -33
  95. package/src/cli/commands/status.ts +11 -1
  96. package/src/cli/commands/watch.ts +4 -0
  97. package/src/cli/context.ts +16 -0
  98. package/src/cli/deps.ts +37 -0
  99. package/src/cli/progress.ts +21 -2
  100. package/src/cli/run.ts +26 -13
  101. package/src/cli/status.ts +440 -43
  102. package/src/cli/wallet.ts +44 -7
  103. package/src/gateway/http-server.ts +96 -8
  104. package/src/gateway/x402-opener-mode.ts +234 -37
  105. package/src/mcp/server.ts +43 -11
  106. package/src/mcp/x402-tools.ts +171 -7
  107. package/src/sdk/client.ts +25 -0
  108. package/src/x402-buyer/pay.ts +41 -3
  109. package/src/x402-opener/facilitator-entry.ts +4 -1
  110. package/src/x402-opener/facilitator-server.ts +101 -1
  111. package/src/x402-opener/refund-relay.ts +150 -20
  112. package/src/x402-opener/scheme.ts +459 -41
  113. package/src/x402-opener/terms.ts +155 -2
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { isAddress, isHex } from "viem";
3
3
  import { CallerAuthGateway, DEFAULT_MAX_STATE_STALENESS_SECONDS, MAX_CORROBORATING_STREAM_READERS, } from "./caller-auth-gateway.js";
4
4
  import { DEFAULT_MAX_PROBES_PER_MINUTE, DEFAULT_ORACLE_SIGNER_CACHE_SECONDS, } from "./probe-auth.js";
5
5
  import { PROBE_MARKER_HEADER_NAME } from "../capability/probe-capability.js";
6
- import { networkForCaip2 } from "@absol-labs/sdk";
7
- import { chainIdFromNetwork, assertSchemaDeclaration, assertValidPrice, assertValidTerms, isHttpLink, } from "../x402-opener/terms.js";
6
+ import { networkForCaip2, networkOpenerFactories } from "@absol-labs/sdk";
7
+ import { chainIdFromNetwork, assertSchemaDeclaration, assertValidPrice, assertValidTerms, assertValidUpfrontTerms, isHttpLink, } from "../x402-opener/terms.js";
8
8
  import { loadSignedRateBoundsFile } from "./signed-rate-bounds.js";
9
9
  import { defaultNetwork, requireNetworkForChainId } from "../network.js";
10
10
  /**
@@ -404,6 +404,16 @@ export function parseCallerAuthGatewayEnvConfig(env = process.env) {
404
404
  * - `METRIK_GATEWAY_X402V2_MAX_DURATION_SECONDS` (required).
405
405
  * - `METRIK_GATEWAY_X402V2_PRICE` (required) — base units per paid request (= deposit),
406
406
  * `0 < price <= rate * maxDuration`.
407
+ * - `METRIK_GATEWAY_X402V2_UPFRONT_AMOUNT` — base units; when SET the listing
408
+ * quotes the UPFRONT ("minimum charge") opener instead: `amount = price`,
409
+ * `payTo = upfrontFactory.predict(6 terms)`; `upfrontAmount` is paid to the
410
+ * seller at settlement and is NOT refundable, only `price - upfrontAmount`
411
+ * (`<= rate * maxDuration`) is metered and refundable. `= PRICE` is
412
+ * upfront-only (no stream). Validated with the factory's rules at startup.
413
+ * - `METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS` — the
414
+ * `X402UpfrontStreamOpenerFactory`; default the network registry's (only
415
+ * with `_UPFRONT_AMOUNT`). `_FACTORY_ADDRESS` names the STREAM factory and is
416
+ * refused together with `_UPFRONT_AMOUNT`.
407
417
  * - `METRIK_GATEWAY_X402V2_NETWORK` — default `eip155:<METRIK_GATEWAY_CHAIN_ID>`.
408
418
  * - `METRIK_GATEWAY_X402V2_ASSET` — default the network's registered USDC.
409
419
  * - `METRIK_GATEWAY_X402V2_ASSET_NAME` / `_ASSET_VERSION` — EIP-712 domain, default the
@@ -445,8 +455,41 @@ export function parseGatewayX402OpenerEnvConfig(env, context) {
445
455
  // Defaults come from the registry entry for THIS network only.
446
456
  const registered = networkForCaip2(network);
447
457
  const factoryRaw = env.METRIK_GATEWAY_X402V2_FACTORY_ADDRESS?.trim();
458
+ const upfrontRaw = env.METRIK_GATEWAY_X402V2_UPFRONT_AMOUNT?.trim();
459
+ const upfrontFactoryRaw = env.METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS?.trim();
460
+ const upfrontMode = upfrontRaw !== undefined && upfrontRaw.length > 0;
461
+ if (!upfrontMode &&
462
+ upfrontFactoryRaw !== undefined &&
463
+ upfrontFactoryRaw.length > 0) {
464
+ throw new Error("METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS needs METRIK_GATEWAY_X402V2_UPFRONT_AMOUNT (it selects the upfront opener)");
465
+ }
448
466
  let factoryAddress;
449
- if (factoryRaw === undefined || factoryRaw.length === 0) {
467
+ let upfrontImplementation;
468
+ if (upfrontMode) {
469
+ if (factoryRaw !== undefined && factoryRaw.length > 0) {
470
+ throw new Error("METRIK_GATEWAY_X402V2_FACTORY_ADDRESS names the STREAM opener factory; with METRIK_GATEWAY_X402V2_UPFRONT_AMOUNT set the listing quotes the upfront factory — set METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS (or nothing, for the registry's) instead");
471
+ }
472
+ const registeredUpfront = registered === undefined
473
+ ? []
474
+ : networkOpenerFactories(registered).filter((entry) => entry.kind === "upfront");
475
+ if (upfrontFactoryRaw === undefined || upfrontFactoryRaw.length === 0) {
476
+ const current = registeredUpfront.find((entry) => !entry.legacy);
477
+ if (current === undefined) {
478
+ throw new Error(`METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS is required on ${network}: the network registry has no upfront opener factory for it`);
479
+ }
480
+ factoryAddress = current.address;
481
+ upfrontImplementation = current.implementation ?? undefined;
482
+ }
483
+ else if (isAddress(upfrontFactoryRaw)) {
484
+ factoryAddress = upfrontFactoryRaw;
485
+ upfrontImplementation =
486
+ registeredUpfront.find((entry) => entry.address.toLowerCase() === upfrontFactoryRaw.toLowerCase())?.implementation ?? undefined;
487
+ }
488
+ else {
489
+ throw new Error("METRIK_GATEWAY_X402V2_UPFRONT_FACTORY_ADDRESS must be an EVM address");
490
+ }
491
+ }
492
+ else if (factoryRaw === undefined || factoryRaw.length === 0) {
450
493
  if (registered?.openerFactory == null) {
451
494
  throw new Error(`METRIK_GATEWAY_X402V2_FACTORY_ADDRESS is required on ${network}: the network registry has no opener factory for it`);
452
495
  }
@@ -483,9 +526,19 @@ export function parseGatewayX402OpenerEnvConfig(env, context) {
483
526
  maxDuration: requireUintEnv(env, "METRIK_GATEWAY_X402V2_MAX_DURATION_SECONDS"),
484
527
  };
485
528
  const price = requireUintEnv(env, "METRIK_GATEWAY_X402V2_PRICE");
486
- // Startup validation: rate/duration > 0 and 0 < price <= rate * maxDuration.
487
- assertValidTerms(terms);
488
- assertValidPrice(price, terms);
529
+ let upfrontAmount;
530
+ if (upfrontMode) {
531
+ upfrontAmount = requireUintEnv(env, "METRIK_GATEWAY_X402V2_UPFRONT_AMOUNT");
532
+ // Startup validation, fail closed: the upfront factory's own validateTerms
533
+ // rules, 0 < price, upfrontAmount <= price, and the metered part
534
+ // (price - upfrontAmount) <= rate * maxDuration.
535
+ assertValidUpfrontTerms({ ...terms, price, upfrontAmount });
536
+ }
537
+ else {
538
+ // Startup validation: rate/duration > 0 and 0 < price <= rate * maxDuration.
539
+ assertValidTerms(terms);
540
+ assertValidPrice(price, terms);
541
+ }
489
542
  const maxTimeoutSeconds = requirePositiveIntEnv(env, "METRIK_GATEWAY_X402V2_MAX_TIMEOUT_SECONDS", 300);
490
543
  const facilitatorTimeoutSeconds = requirePositiveIntEnv(env, "METRIK_GATEWAY_X402V2_FACILITATOR_TIMEOUT_SECONDS", 120);
491
544
  const resourceBaseUrl = env.METRIK_GATEWAY_X402V2_RESOURCE_BASE_URL?.trim();
@@ -545,6 +598,8 @@ export function parseGatewayX402OpenerEnvConfig(env, context) {
545
598
  assetVersion: requireAssetDomainField(env.METRIK_GATEWAY_X402V2_ASSET_VERSION, registered?.usdc.eip712.version, "METRIK_GATEWAY_X402V2_ASSET_VERSION", network),
546
599
  terms,
547
600
  price,
601
+ ...(upfrontAmount === undefined ? {} : { upfrontAmount }),
602
+ ...(upfrontImplementation === undefined ? {} : { upfrontImplementation }),
548
603
  maxTimeoutSeconds,
549
604
  facilitatorTimeoutMs: facilitatorTimeoutSeconds * 1000,
550
605
  ...(resourceBaseUrl === undefined || resourceBaseUrl.length === 0
@@ -704,6 +759,12 @@ export async function startCallerAuthGatewayServerFromEnv(env = process.env) {
704
759
  assetVersion: config.x402Opener.assetVersion,
705
760
  terms: config.x402Opener.terms,
706
761
  price: config.x402Opener.price,
762
+ ...(config.x402Opener.upfrontAmount === undefined
763
+ ? {}
764
+ : { upfrontAmount: config.x402Opener.upfrontAmount }),
765
+ ...(config.x402Opener.upfrontImplementation === undefined
766
+ ? {}
767
+ : { upfrontImplementation: config.x402Opener.upfrontImplementation }),
707
768
  maxTimeoutSeconds: config.x402Opener.maxTimeoutSeconds,
708
769
  facilitatorTimeoutMs: config.x402Opener.facilitatorTimeoutMs,
709
770
  ...(config.x402Opener.resourceBaseUrl === undefined
@@ -728,11 +789,17 @@ export async function startCallerAuthGatewayServerFromEnv(env = process.env) {
728
789
  ? {}
729
790
  : { schemaDeclaration: config.x402Opener.schemaDeclaration }),
730
791
  }, { rpcUrl: config.rpcUrl });
792
+ const upfront = x402Opener.upfrontAmount;
731
793
  console.error("[metrik-caller-auth-gateway] x402 v2 opener mode ENABLED: a request with neither a " +
732
794
  "capability nor PAYMENT-SIGNATURE gets a 402 quoting payTo " +
733
- `${x402Opener.payTo} (the escrow opener for serviceRef ${config.serviceRef}), price ` +
734
- `${config.x402Opener.price} base units. Payments settle into StreamEscrowV2 via the Metrik ` +
735
- `opener facilitator at ${config.x402Opener.facilitatorUrl}, and only after the upstream answers < 400. ` +
795
+ `${x402Opener.payTo} (the ${x402Opener.openerKind} opener for serviceRef ${config.serviceRef}), price ` +
796
+ `${config.x402Opener.price} base units` +
797
+ (upfront === null
798
+ ? " (all of it escrowed and metered)"
799
+ : upfront === config.x402Opener.price
800
+ ? " (UPFRONT-ONLY: all of it a non-refundable per-call charge; no stream, nothing to refund)"
801
+ : ` (${upfront} a non-refundable per-call charge, ${config.x402Opener.price - upfront} escrowed, metered and refundable)`) +
802
+ `. Payments settle via the Metrik opener facilitator at ${config.x402Opener.facilitatorUrl}, and only after the upstream answers < 400. ` +
736
803
  `Refunds (no ETH needed, never automatic): ${x402Opener.refundBaseUrl}/streams/:streamId.`);
737
804
  const refundHost = new URL(x402Opener.refundBaseUrl).hostname;
738
805
  if (refundHost === "localhost" ||
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/gateway/http-server.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { x402HTTPResourceServer, type FacilitatorClient } from "@x402/core/serve
2
2
  import type { Network } from "@x402/core/types";
3
3
  import { type Address, type PublicClient } from "viem";
4
4
  import { type OperatorSignedListingResolver } from "../x402-opener/listing-resolver.js";
5
- import { type OpenerTerms, type X402SchemaDeclaration } from "../x402-opener/terms.js";
5
+ import { type OpenerKind, type OpenerTerms, type X402SchemaDeclaration } from "../x402-opener/terms.js";
6
6
  /**
7
7
  * The gateway's x402 v2 mode (metrik-agent#116): answer an uncapabilitied
8
8
  * request with a standard x402 v2 `402` whose `payTo` is the listing's
@@ -46,6 +46,18 @@ import { type OpenerTerms, type X402SchemaDeclaration } from "../x402-opener/ter
46
46
  * - refuses to start if its price is below the facilitator's advertised
47
47
  * minimum, or if its facilitator timeout would not outlast the facilitator's
48
48
  * receipt wait.
49
+ *
50
+ * ## Two opener kinds
51
+ *
52
+ * Without `upfrontAmount` the listing quotes the `X402StreamOpenerFactory`
53
+ * (`"stream"`): the whole price funds a metered stream. With `upfrontAmount`
54
+ * it quotes the `X402UpfrontStreamOpenerFactory` (`"upfront"`, the "minimum
55
+ * charge"): `amount == price`, `payTo = predict(6 terms)`, the
56
+ * `upfrontAmount` is paid to the seller at settlement and is NOT refundable,
57
+ * and only `price - upfrontAmount` funds a metered, refundable stream. The 402
58
+ * description states that split. `upfrontAmount == price` is an upfront-only
59
+ * listing: no stream opens (the settlement reports `streamId: null`), the
60
+ * response is served, and no metered session or refund exists for it.
49
61
  */
50
62
  /** How long a successful `/supported` marker check is trusted, seconds. */
51
63
  export declare const DEFAULT_FACILITATOR_MARKER_TTL_SECONDS = 300;
@@ -68,8 +80,24 @@ export interface GatewayX402OpenerModeConfig {
68
80
  readonly assetVersion: string;
69
81
  /** Opener terms. `operator` + `serviceRef` must resolve to one operator-signed listing. */
70
82
  readonly terms: OpenerTerms;
71
- /** Price per paid request in token base units. Becomes the stream deposit. */
83
+ /**
84
+ * Price per paid request in token base units. For a stream opener it is the
85
+ * whole stream deposit; for an upfront opener the exact x402 amount, split
86
+ * into `upfrontAmount` (non-refundable) and `price - upfrontAmount` (deposit).
87
+ */
72
88
  readonly price: bigint;
89
+ /**
90
+ * Selects the UPFRONT opener kind (`factoryAddress` must then be an
91
+ * `X402UpfrontStreamOpenerFactory`): the non-refundable per-call part, base
92
+ * units, `0 <= upfrontAmount <= price`. Unset = the stream opener kind.
93
+ */
94
+ readonly upfrontAmount?: bigint;
95
+ /**
96
+ * The implementation the upfront factory must report (e.g. the registry's);
97
+ * checked at startup when given. `payTo` is always recomputed offline from
98
+ * the factory's own `implementation()` and must equal its on-chain `predict`.
99
+ */
100
+ readonly upfrontImplementation?: Address;
73
101
  /** Authorization validity the client signs for. Default 300s. */
74
102
  readonly maxTimeoutSeconds?: number;
75
103
  /** Public origin clients reach this gateway at, for the 402 `resource.url`. */
@@ -117,6 +145,11 @@ export interface GatewayX402OpenerModeConfig {
117
145
  export declare function describeOpenerPurchase(input: {
118
146
  readonly terms: OpenerTerms;
119
147
  readonly price: bigint;
148
+ /**
149
+ * Upfront openers only: the non-refundable per-call part. The description
150
+ * then states the split (non-refundable vs metered and refundable).
151
+ */
152
+ readonly upfrontAmount?: bigint;
120
153
  readonly assetDecimals: number;
121
154
  readonly assetSymbol: string;
122
155
  /** Refund URL template containing `{streamId}`. */
@@ -141,6 +174,10 @@ export interface GatewayX402OpenerMode {
141
174
  readonly network: Network;
142
175
  readonly terms: OpenerTerms;
143
176
  readonly price: bigint;
177
+ /** `"stream"` or `"upfront"` (selected by `upfrontAmount`). */
178
+ readonly openerKind: OpenerKind;
179
+ /** The upfront kind's non-refundable part; `null` for the stream kind. */
180
+ readonly upfrontAmount: bigint | null;
144
181
  readonly resourceBaseUrl: string | undefined;
145
182
  /** The 402 `description` (what the payment buys). */
146
183
  readonly description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"x402-opener-mode.d.ts","sourceRoot":"","sources":["../../src/gateway/x402-opener-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402-opener-mode.d.ts","sourceRoot":"","sources":["../../src/gateway/x402-opener-mode.ts"],"names":[],"mappings":"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"}