@dvmkit/sdk 0.8.1 → 0.9.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 (52) hide show
  1. package/dist/{chunk-ILBSZMJL.js → chunk-4VV7WACY.js} +1 -1
  2. package/dist/{chunk-JIZ4ZIXX.js → chunk-73C4JN2E.js} +421 -233
  3. package/dist/{chunk-ALWVJ2RB.js → chunk-BAQRUYRL.js} +3 -3
  4. package/dist/{chunk-AVV5SYGO.js → chunk-GAZBBMAA.js} +1 -1
  5. package/dist/{chunk-G3MPHW5I.js → chunk-GODOH2AF.js} +3 -3
  6. package/dist/{chunk-2U6LAASN.js → chunk-HC4I7LAV.js} +1 -1
  7. package/dist/{chunk-7PM4R4GD.js → chunk-IBX2ORBV.js} +1 -1
  8. package/dist/{chunk-NA2KOR6G.js → chunk-IYQQXEHV.js} +3 -3
  9. package/dist/{chunk-J5J63WDC.js → chunk-K2MSIKMM.js} +3 -3
  10. package/dist/{chunk-RSNC5T6C.js → chunk-KGL3YMZA.js} +1 -1
  11. package/dist/{chunk-UVS7MRJX.js → chunk-LCCG5HQM.js} +2 -2
  12. package/dist/{chunk-QKE5NDPF.js → chunk-LFVIZH2G.js} +167 -25
  13. package/dist/{chunk-ZEPJF4JC.js → chunk-LW7KZQHG.js} +4 -4
  14. package/dist/{chunk-BFGQG4WY.js → chunk-OIP44KBB.js} +5 -0
  15. package/dist/{chunk-UWGBI5WK.js → chunk-Q3VYRU5R.js} +3 -3
  16. package/dist/{chunk-IOQIXRGM.js → chunk-QSZW2I5Y.js} +1 -1
  17. package/dist/{chunk-IHQUBATH.js → chunk-TFDR2YP2.js} +3 -3
  18. package/dist/{chunk-OP7VCGQR.js → chunk-TRY7BJA4.js} +1 -1
  19. package/dist/{chunk-NU5RWJ5B.js → chunk-WB3E7KE7.js} +3 -3
  20. package/dist/{chunk-UDJNZ3UG.js → chunk-WLPLHXNP.js} +1 -1
  21. package/dist/{chunk-FM6QAGJC.js → chunk-YYRY32NR.js} +24 -8
  22. package/dist/{chunk-AGE5XZKE.js → chunk-ZBQKXAYK.js} +17 -4
  23. package/dist/{content-retention-B7ddtJ2y.d.ts → content-retention-CVBYehRS.d.ts} +1 -1
  24. package/dist/{credit-ledger-KIQIE6I6.js → credit-ledger-CZQ56DYI.js} +4 -4
  25. package/dist/{credit-menu-BH3g9GQa.d.ts → credit-menu-QntEhZJS.d.ts} +4 -4
  26. package/dist/{fx-DN26_J7o.d.ts → fx-CMyNFenZ.d.ts} +1 -1
  27. package/dist/index.d.ts +5 -5
  28. package/dist/index.js +4 -4
  29. package/dist/internal/caller.d.ts +6 -6
  30. package/dist/internal/caller.js +16 -16
  31. package/dist/internal/server.d.ts +7 -7
  32. package/dist/internal/server.js +26 -26
  33. package/dist/{job-store-Cq21JT37.d.ts → job-store-qOD-FrQF.d.ts} +1 -1
  34. package/dist/{lightning-backend-S8F8nf8q.d.ts → lightning-backend-DtdG6UT5.d.ts} +1 -1
  35. package/dist/{memory-credit-ledger-ATYFAYBG.js → memory-credit-ledger-EMN7G3MO.js} +5 -5
  36. package/dist/{mpp-setup-ZTORW3VF.js → mpp-setup-VW53KFPO.js} +5 -3
  37. package/dist/{payout-reporter-NN6K2IVQ.js → payout-reporter-TZX2S7KG.js} +2 -2
  38. package/dist/{postgres-consumed-credential-store-XJTE5PCA.js → postgres-consumed-credential-store-V464OAJB.js} +3 -3
  39. package/dist/{postgres-job-store-AR6ZJUQV.js → postgres-job-store-27VOCSPO.js} +2 -2
  40. package/dist/{postgres-replay-store-33K33QV7.js → postgres-replay-store-7GJFAQXY.js} +2 -2
  41. package/dist/{pricing-G5IN5YJE.js → pricing-NNMBNP7N.js} +3 -3
  42. package/dist/{revenue-reporter-KDUZLD5F.js → revenue-reporter-4EAVPWXS.js} +2 -2
  43. package/dist/server/index.d.ts +14 -10
  44. package/dist/server/index.js +49 -45
  45. package/dist/{step-cache-CR12EZ1Q.d.ts → step-cache-B7svmPz3.d.ts} +54 -9
  46. package/dist/{tempo-charge-store-XEGJYM3G.js → tempo-charge-store-2RPOJBM2.js} +2 -2
  47. package/dist/{tempo-session-store-3WTDOO7H.js → tempo-session-store-LI3Q3A3U.js} +3 -3
  48. package/dist/testing/index.d.ts +3 -3
  49. package/dist/testing/index.js +7 -7
  50. package/dist/{usd-s_VZ_eS7.d.ts → usd-D3izFz71.d.ts} +1 -1
  51. package/dist/{x402-HQ5GRQZU.js → x402-SL36LSOD.js} +4 -4
  52. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PostgresReplayStore
3
- } from "../chunk-ALWVJ2RB.js";
3
+ } from "../chunk-BAQRUYRL.js";
4
4
  import {
5
5
  PostgresKVStore
6
6
  } from "../chunk-V5ZRATJH.js";
@@ -18,7 +18,7 @@ import {
18
18
  parseNwcUri,
19
19
  validateX402Env,
20
20
  withNwcPool
21
- } from "../chunk-RSNC5T6C.js";
21
+ } from "../chunk-KGL3YMZA.js";
22
22
  import {
23
23
  MemoryKVStore
24
24
  } from "../chunk-SDK6KDJN.js";
@@ -71,6 +71,7 @@ import {
71
71
  protocolEnvelopeIgnoreFields,
72
72
  requestIdFromEnvelope,
73
73
  requireClientCompatibility,
74
+ retryHostedTempoCloseReport,
74
75
  revenueReporterBannerState,
75
76
  seedLockPubkeyState,
76
77
  selectPrimaryCredit,
@@ -79,33 +80,32 @@ import {
79
80
  stripCreditEnvelope,
80
81
  stripProtocolEnvelope,
81
82
  toCreditView,
82
- unknownRouteNotFound
83
- } from "../chunk-JIZ4ZIXX.js";
83
+ unknownRouteNotFound,
84
+ writeOffHostedTempoCloseReport
85
+ } from "../chunk-73C4JN2E.js";
84
86
  import {
85
- TEMPO_MODERATO_CHAIN_ID,
86
- TEMPO_MODERATO_RPC,
87
- TEMPO_SETTLEMENT_DEFAULT_LOW_BALANCE_MICRO,
88
- TempoSettlementReadiness,
89
- resolveTempoNetwork
90
- } from "../chunk-QKE5NDPF.js";
91
- import "../chunk-J5J63WDC.js";
92
- import "../chunk-AVV5SYGO.js";
87
+ MemoryProcessedPaymentStore,
88
+ PostgresProcessedPaymentStore,
89
+ ProcessedPaymentReplayError
90
+ } from "../chunk-XRLKGCAW.js";
91
+ import "../chunk-K2MSIKMM.js";
92
+ import "../chunk-GAZBBMAA.js";
93
93
  import {
94
94
  MemoryCreditLedger
95
- } from "../chunk-AGE5XZKE.js";
95
+ } from "../chunk-ZBQKXAYK.js";
96
96
  import {
97
97
  PostgresJobStore
98
- } from "../chunk-G3MPHW5I.js";
98
+ } from "../chunk-GODOH2AF.js";
99
99
  import "../chunk-YG7G4DPZ.js";
100
100
  import {
101
101
  SignedRequestError,
102
102
  createDefaultReplayStore,
103
103
  createSignedRequestVerifier,
104
104
  signedRequestInput
105
- } from "../chunk-ILBSZMJL.js";
105
+ } from "../chunk-4VV7WACY.js";
106
106
  import {
107
107
  isStreamableJobStore
108
- } from "../chunk-IHQUBATH.js";
108
+ } from "../chunk-TFDR2YP2.js";
109
109
  import {
110
110
  ContentHoldError,
111
111
  baselineContentExpiry,
@@ -116,7 +116,7 @@ import {
116
116
  IMPLICIT_CREDIT_TTL_MS,
117
117
  generateEphemeralReceiptKey,
118
118
  receiptPubkeyFromSecret
119
- } from "../chunk-ZEPJF4JC.js";
119
+ } from "../chunk-LW7KZQHG.js";
120
120
  import {
121
121
  X402_DEFAULT_FACILITATOR,
122
122
  X402_DEFAULT_NETWORK,
@@ -128,15 +128,11 @@ import {
128
128
  SIGNED_REQUEST_STATEMENT_VERSION,
129
129
  signedRequestStatementHeader
130
130
  } from "../chunk-UKD3R2KU.js";
131
- import "../chunk-OP7VCGQR.js";
132
- import {
133
- initLoggers
134
- } from "../chunk-IOQIXRGM.js";
131
+ import "../chunk-TRY7BJA4.js";
135
132
  import "../chunk-FUJ36YDV.js";
136
- import "../chunk-66HGCPBU.js";
137
133
  import "../chunk-BQJIFRAZ.js";
138
- import "../chunk-UDJNZ3UG.js";
139
- import "../chunk-2U6LAASN.js";
134
+ import "../chunk-WLPLHXNP.js";
135
+ import "../chunk-HC4I7LAV.js";
140
136
  import {
141
137
  CreditLedger,
142
138
  CreditLedgerError,
@@ -144,25 +140,31 @@ import {
144
140
  PostgresX402ChannelStorage,
145
141
  X402RelaySubmissionLockError,
146
142
  allocateDrawValue
147
- } from "../chunk-FM6QAGJC.js";
143
+ } from "../chunk-YYRY32NR.js";
144
+ import {
145
+ SDK_INIT_ADVISORY_LOCK,
146
+ withSdkInitLock
147
+ } from "../chunk-COYKJRMM.js";
148
148
  import {
149
149
  applyRetryToPool
150
- } from "../chunk-7PM4R4GD.js";
150
+ } from "../chunk-IBX2ORBV.js";
151
151
  import {
152
152
  assertSupportedX402Network
153
153
  } from "../chunk-BPYMEMQX.js";
154
154
  import {
155
- diagnosticConsole
156
- } from "../chunk-BFGQG4WY.js";
155
+ TEMPO_MODERATO_CHAIN_ID,
156
+ TEMPO_MODERATO_RPC,
157
+ TEMPO_SETTLEMENT_DEFAULT_LOW_BALANCE_MICRO,
158
+ TempoSettlementReadiness,
159
+ resolveTempoNetwork
160
+ } from "../chunk-LFVIZH2G.js";
157
161
  import {
158
- MemoryProcessedPaymentStore,
159
- PostgresProcessedPaymentStore,
160
- ProcessedPaymentReplayError
161
- } from "../chunk-XRLKGCAW.js";
162
+ initLoggers
163
+ } from "../chunk-QSZW2I5Y.js";
164
+ import "../chunk-66HGCPBU.js";
162
165
  import {
163
- SDK_INIT_ADVISORY_LOCK,
164
- withSdkInitLock
165
- } from "../chunk-COYKJRMM.js";
166
+ diagnosticConsole
167
+ } from "../chunk-OIP44KBB.js";
166
168
 
167
169
  // src/sdk/server/cashu-env.ts
168
170
  async function resolveCashuOptsFromEnv(env, pool, cashuModeHint) {
@@ -1149,7 +1151,7 @@ function createDVMHost(opts = {}) {
1149
1151
  });
1150
1152
  applyRetryToPool(pool, "dvm-host");
1151
1153
  pgPool = pool;
1152
- const { PostgresJobStore: PostgresJobStore2 } = await import("../postgres-job-store-AR6ZJUQV.js");
1154
+ const { PostgresJobStore: PostgresJobStore2 } = await import("../postgres-job-store-27VOCSPO.js");
1153
1155
  const pgJobStore = new PostgresJobStore2(pool);
1154
1156
  pendingInits.push(pgJobStore.init(), pgJobStore.initStreaming());
1155
1157
  jobStore = pgJobStore;
@@ -1242,11 +1244,11 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1242
1244
  let tempoChargeBackend = "user-supplied";
1243
1245
  const mppTempoRecipient = envMaybe.DVMKIT_TEMPO_RECIPIENT;
1244
1246
  if (!mpp && mppTempoRecipient) {
1245
- const { createMppFromOpts, createDualKeyMppxFromOpts, parseMppMethodsAllowlist } = await import("../mpp-setup-ZTORW3VF.js");
1247
+ const { createMppFromOpts, createDualKeyMppxFromOpts, parseMppMethodsAllowlist } = await import("../mpp-setup-VW53KFPO.js");
1246
1248
  tempoChargeBackend = pgPool ? "postgres" : "memory";
1247
1249
  let tempoCharge;
1248
1250
  if (pgPool) {
1249
- const { PostgresTempoChargeStore } = await import("../tempo-charge-store-XEGJYM3G.js");
1251
+ const { PostgresTempoChargeStore } = await import("../tempo-charge-store-2RPOJBM2.js");
1250
1252
  const chargeStore = new PostgresTempoChargeStore(pgPool);
1251
1253
  tempoChargeStore = chargeStore;
1252
1254
  pendingInits.push(chargeStore.init());
@@ -1266,7 +1268,7 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1266
1268
  { createPublicClient, createWalletClient, erc20Abi, http },
1267
1269
  { tempo: tempoMainnet, tempoModerato }
1268
1270
  ] = await Promise.all([
1269
- import("../tempo-session-store-3WTDOO7H.js"),
1271
+ import("../tempo-session-store-LI3Q3A3U.js"),
1270
1272
  import("viem/accounts"),
1271
1273
  import("viem"),
1272
1274
  import("viem/chains")
@@ -1419,7 +1421,7 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1419
1421
  }
1420
1422
  }
1421
1423
  const fxSource = envMaybe.DVMKIT_FX_SOURCE;
1422
- const { createFxFetcher, resolveFxSourceFromEnv, warmFxSnapshot } = await import("../pricing-G5IN5YJE.js");
1424
+ const { createFxFetcher, resolveFxSourceFromEnv, warmFxSnapshot } = await import("../pricing-NNMBNP7N.js");
1423
1425
  const fxFetcher = opts.fx ?? createFxFetcher({ source: resolveFxSourceFromEnv(envMaybe) });
1424
1426
  const hostRailConfigured = (opts.paymentMethods?.length ?? 0) > 0 || (effectiveMints?.length ?? 0) > 0 || !!x402WithDualServe || !!mpp;
1425
1427
  if (mounts.some((entry) => mountNeedsFx(entry, hostRailConfigured))) warmFxSnapshot(fxFetcher);
@@ -1429,7 +1431,7 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1429
1431
  assertReceiptIdentity(envMaybe, opts.builder, receiptKey, cashuOpts.dvmId, opts.devMode);
1430
1432
  let sharedPgReplayStore;
1431
1433
  if (pgPool) {
1432
- const { PostgresReplayStore: PostgresReplayStore2 } = await import("../postgres-replay-store-33K33QV7.js");
1434
+ const { PostgresReplayStore: PostgresReplayStore2 } = await import("../postgres-replay-store-7GJFAQXY.js");
1433
1435
  const store2 = new PostgresReplayStore2(pgPool);
1434
1436
  pendingInits.push(store2.init());
1435
1437
  sharedPgReplayStore = store2;
@@ -1457,13 +1459,13 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1457
1459
  }
1458
1460
  let sharedPgConsumedStore;
1459
1461
  if (pgPool) {
1460
- const { PostgresConsumedCredentialStore } = await import("../postgres-consumed-credential-store-XJTE5PCA.js");
1462
+ const { PostgresConsumedCredentialStore } = await import("../postgres-consumed-credential-store-V464OAJB.js");
1461
1463
  const consumedStore = new PostgresConsumedCredentialStore(pgPool);
1462
1464
  pendingInits.push(consumedStore.init());
1463
1465
  sharedPgConsumedStore = consumedStore;
1464
1466
  }
1465
1467
  if (pgPool) {
1466
- const { CreditLedger: CreditLedger2 } = await import("../credit-ledger-KIQIE6I6.js");
1468
+ const { CreditLedger: CreditLedger2 } = await import("../credit-ledger-CZQ56DYI.js");
1467
1469
  const pgLedger = new CreditLedger2(pgPool, tempoSessionStore);
1468
1470
  pendingInits.push(pgLedger.init());
1469
1471
  creditLedger = pgLedger;
@@ -1472,7 +1474,7 @@ ${config.facilitatorAuth?.keyId ?? ""}`;
1472
1474
  pendingInits.push(pgProcessed.init());
1473
1475
  processedPayments = pgProcessed;
1474
1476
  } else {
1475
- const { MemoryCreditLedger: MemoryCreditLedger2 } = await import("../memory-credit-ledger-ATYFAYBG.js");
1477
+ const { MemoryCreditLedger: MemoryCreditLedger2 } = await import("../memory-credit-ledger-EMN7G3MO.js");
1476
1478
  creditLedger = disposableCashu?.ledger ?? new MemoryCreditLedger2();
1477
1479
  const { MemoryProcessedPaymentStore: MemoryProcessedPaymentStore2 } = await import("../processed-payment-store-GKMAWOM3.js");
1478
1480
  processedPayments = new MemoryProcessedPaymentStore2();
@@ -2167,6 +2169,7 @@ export {
2167
2169
  requestIdFromEnvelope,
2168
2170
  requireClientCompatibility,
2169
2171
  resolveCashuOptsFromEnv,
2172
+ retryHostedTempoCloseReport,
2170
2173
  secp256k1Auth,
2171
2174
  selectPrimaryCredit,
2172
2175
  serve,
@@ -2177,5 +2180,6 @@ export {
2177
2180
  stripCreditEnvelope,
2178
2181
  stripProtocolEnvelope,
2179
2182
  toCreditView,
2180
- withSdkInitLock
2183
+ withSdkInitLock,
2184
+ writeOffHostedTempoCloseReport
2181
2185
  };
@@ -1138,7 +1138,7 @@ declare class PostgresX402ChannelStorage implements ChannelStorage {
1138
1138
  type Query = Pick<Pool | PoolClient, "query">;
1139
1139
  type Rail = "x402" | "tempo";
1140
1140
  type Operation = "claim" | "refund" | "settle" | "close";
1141
- type State = "reserved" | "observed" | "report_queued" | "delivered" | "no_report";
1141
+ type State = "reserved" | "observed" | "report_queued" | "delivered" | "no_report" | "exhausted" | "unmatched";
1142
1142
  interface ObligationRow {
1143
1143
  id: string;
1144
1144
  source_key: string;
@@ -1229,9 +1229,9 @@ declare class HostedSettlementReportObligations {
1229
1229
  reserveTempo(channelId: string, operation: "settle" | "close", drainId?: string): Promise<HostedEffectReservation>;
1230
1230
  /**
1231
1231
  * Retire a close reservation that never recorded a transaction and reserve
1232
- * the drain's next attempt, in one transaction, so the drain always keeps one
1233
- * outstanding close obligation. A close from the retired attempt that lands
1234
- * late is a close of the same channel: `recordSubmitted` on the retired row
1232
+ * the drain's next attempt in one transaction. At the retry cap the final
1233
+ * row becomes terminal `exhausted` and remains claimable by a late landing.
1234
+ * A close from the retired attempt that lands late is the same channel's close: `recordSubmitted` on the retired row
1235
1235
  * writes it onto the successor, and recovery attaches it there if that
1236
1236
  * attempt never got to write, so it is reported once.
1237
1237
  *
@@ -1242,6 +1242,7 @@ declare class HostedSettlementReportObligations {
1242
1242
  releaseStaleTempoClose(id: string, channelId: string, drainId: string, limits: {
1243
1243
  staleAfterMs: number;
1244
1244
  maxReleases: number;
1245
+ onExhausted?: (tx: PoolClient) => Promise<void>;
1245
1246
  }): Promise<{
1246
1247
  outcome: "reserved";
1247
1248
  id: string;
@@ -1257,11 +1258,20 @@ declare class HostedSettlementReportObligations {
1257
1258
  * on its own: no cooperative close of ours can land on a finalized channel.
1258
1259
  */
1259
1260
  resolveTempoCloseExit(id: string): Promise<boolean>;
1261
+ tempoCloseAmountAtStake(id: string): Promise<string>;
1262
+ /** Stop automatic searches without declaring a possibly missing payout discharged. */
1263
+ markTempoCloseUnmatched(id: string): Promise<boolean>;
1264
+ writeOffTempoClose(id: string, note: string): Promise<{
1265
+ channelId: string;
1266
+ amount: string;
1267
+ } | undefined>;
1268
+ reopenTempoClose(id: string): Promise<boolean>;
1260
1269
  private reserveTempoIn;
1261
1270
  findPendingTempo(channelId: string, operation: "settle" | "close"): Promise<ObligationRow | undefined>;
1262
1271
  /** The original close obligation reserved for this drain, while its report is outstanding. */
1263
1272
  pendingTempoClose(channelId: string, drainId: string): Promise<{
1264
1273
  id: string;
1274
+ state: State;
1265
1275
  txHash: string | null;
1266
1276
  reservedAtMs: number;
1267
1277
  searchBefore: bigint | null;
@@ -1282,8 +1292,8 @@ declare class HostedSettlementReportObligations {
1282
1292
  recordSubmitted(id: string, txHash: string): Promise<void>;
1283
1293
  /**
1284
1294
  * Close reservations that never recorded a transaction, oldest first. Each
1285
- * one owes a payout report only if its close lands, so it stays unresolved
1286
- * until a reconcile reads how its channel finalized.
1295
+ * one owes a payout report if its close lands. Exhausted attempts remain
1296
+ * observable for late landings; unmatched searches require an explicit retry.
1287
1297
  */
1288
1298
  unsubmittedTempoCloses(limit?: number): Promise<Array<{
1289
1299
  id: string;
@@ -1320,6 +1330,21 @@ declare class HostedSettlementReportObligations {
1320
1330
  private lockIdentity;
1321
1331
  private insert;
1322
1332
  }
1333
+ /** Restart a terminal close-report search after the operator repairs incomplete RPC history. */
1334
+ declare function retryHostedTempoCloseReport(args: {
1335
+ db: Pool;
1336
+ dvmId: string;
1337
+ scope: string;
1338
+ obligationId: string;
1339
+ }): Promise<boolean>;
1340
+ /** Forgo an unmatched builder payout report after the operator declares its history irrecoverable. */
1341
+ declare function writeOffHostedTempoCloseReport(args: {
1342
+ db: Pool;
1343
+ dvmId: string;
1344
+ scope: string;
1345
+ obligationId: string;
1346
+ note: string;
1347
+ }): Promise<boolean>;
1323
1348
 
1324
1349
  type JsonValue = string | number | boolean | null | JsonValue[] | {
1325
1350
  [key: string]: JsonValue;
@@ -3268,6 +3293,12 @@ declare class CreditLedger {
3268
3293
  drainId: string;
3269
3294
  tx?: CreditLedgerQuerier;
3270
3295
  }): Promise<void>;
3296
+ /** Keep the debit and close intent while the caller uses its timed channel exit. */
3297
+ requireTempoDrainExit(args: {
3298
+ creditId: string;
3299
+ drainId: string;
3300
+ tx?: CreditLedgerQuerier;
3301
+ }): Promise<DrainTransitionResult>;
3271
3302
  /**
3272
3303
  * Cancel an unfulfilled Tempo cooperative drain and restore the exact
3273
3304
  * balance plus rail basis it removed (`pending -> released`). This is only
@@ -3656,6 +3687,11 @@ interface CreditLedgerLike {
3656
3687
  drainId: string;
3657
3688
  tx?: CreditLedgerQuerier;
3658
3689
  }): Promise<void>;
3690
+ requireTempoDrainExit?(args: {
3691
+ creditId: string;
3692
+ drainId: string;
3693
+ tx?: CreditLedgerQuerier;
3694
+ }): Promise<DrainTransitionResult>;
3659
3695
  releaseDrain(args: {
3660
3696
  creditId: string;
3661
3697
  drainId: string;
@@ -3759,8 +3795,10 @@ type DrainMethod = "cashu" | "x402" | "tempo";
3759
3795
  * `pending → sent` (builder batch job shipped the send-back). MPP either
3760
3796
  * reaches `sent` through cooperative close or `released` with its exact basis
3761
3797
  * restored when chain reconciliation proves that close cannot complete.
3798
+ * `exit_required` ends cooperative attempts without restoring the debit;
3799
+ * a late confirmed close can still fulfill it as `sent`.
3762
3800
  */
3763
- type DrainStatus = "pending" | "parked" | "picked_up" | "sent" | "released";
3801
+ type DrainStatus = "pending" | "parked" | "picked_up" | "sent" | "released" | "exit_required";
3764
3802
  /**
3765
3803
  * The sats a DVM owes back on undrawn non-channel Bitcoin credit —
3766
3804
  * the deposit pot inside the hub's balance, which the operator's sweep may
@@ -4500,6 +4538,13 @@ declare class PostgresTempoSessionStore implements Store.AtomicStore {
4500
4538
  private updateInTransaction;
4501
4539
  }
4502
4540
 
4541
+ interface TempoDrainFinalization {
4542
+ reference: string;
4543
+ refundedNative: bigint;
4544
+ outcome: "payer_exit" | "cooperative_close";
4545
+ creditUnbacked: boolean;
4546
+ }
4547
+ type TempoDrainFinalizer = (drain: CreditDrainRecord, evidence: TempoDrainFinalization) => Promise<boolean>;
4503
4548
  /**
4504
4549
  * Options for assembling an Mppx server handle from explicit recipient strings
4505
4550
  * and the surrounding environment. The SDK boundary owns env reads so DVM
@@ -4741,7 +4786,7 @@ interface MppxServer {
4741
4786
  /** Reconcile one channel to chain state before deciding how its drain proceeds. */
4742
4787
  getTempoSessionDrainState?: (channelId: string) => Promise<TempoSessionDrainState>;
4743
4788
  /** Bind the credit ledger that must be terminalized when Tempo backing is lost. */
4744
- useTempoCreditLedger?: (ledger: CreditLedgerLike) => void;
4789
+ useTempoCreditLedger?: (ledger: CreditLedgerLike, finalizeDrain?: TempoDrainFinalizer) => void;
4745
4790
  }
4746
4791
  /** What a `ChannelClosed` event split the escrow into. Atomic token units. */
4747
4792
  interface TempoChannelCloseAmounts {
@@ -5942,4 +5987,4 @@ declare class StepCache {
5942
5987
  static deserialize(records: StepRecord[]): StepCache;
5943
5988
  }
5944
5989
 
5945
- export { type FundingReceipt as $, type ApprovalContent as A, type SignedRequestDomain as B, type Currency as C, type DVMConfig as D, SignedRequestError as E, type SignedRequestFailure as F, type SignedRequestReplayStore as G, type SignedRequestSignOpts as H, type IncomingMessage as I, type JobCost as J, type KVStore as K, type Logger as L, type SignedRequestStatementHeader as M, type SignedRequestVerifier as N, createSignedRequestVerifier as O, type PaymentContent as P, type QuoteConfig as Q, type ResolvedCreditConfig as R, type SDKJobContext as S, isZodSchema as T, UnsupportedCurrencyError as U, signedRequestStatementHeader as V, validateCurrency as W, type JsonValue as X, X402_BATCH_SETTLEMENT_SCHEME as Y, type ZodLike as Z, X402_EXACT_SCHEME as _, type DVMDescriptor as a, isCompleteMessage as a$, type JobReceipt as a0, type MessageType as a1, type X402Version as a2, type MppxCredential as a3, type PaymentRequired as a4, type Message as a5, type MppxChallenge as a6, type ReceiptCredit as a7, type DrainReceipt as a8, type X402Wallet as a9, type UnsignedDrainReceipt as aA, type UnsignedFundingReceipt as aB, type UnsignedJobReceipt as aC, type VerifyResponse as aD, type WorkingContent as aE, type X402Config$1 as aF, type X402ResponseBody as aG, type X402SelfRelayRpcFailureReason as aH, X402_DEFAULT_NETWORK as aI, X402_V1_VERSION as aJ, X402_VERSION as aK, buildPaymentRequiredV2 as aL, buildPaymentRequirements as aM, caip2ToX402Network as aN, canonicalRequestPath as aO, canonicaliseForSigning as aP, canonicalize as aQ, chainIdFromCaip2 as aR, computeResultHash as aS, decodePayment as aT, decodePaymentRequiredHeader as aU, encodePayment as aV, encodePaymentRequiredHeader as aW, encodeSettleResponseHeader as aX, exactEvmAuthorization as aY, isArtifactMessage as aZ, isCancelMessage as a_, type PaymentRequirementsV1 as aa, type PaymentRequirementsV2 as ab, type BuildPaymentRequirementsOpts as ac, type CapabilityDescriptor as ad, type CashuMode as ae, type CompleteContent as af, type DrainReceiptEvent as ag, type ExactEvmPayload as ah, type ExactEvmPayloadAuthorization as ai, type FundingMethod as aj, type MessageFrom as ak, type PaymentPayload as al, type PaymentPayloadV1 as am, type PaymentPayloadV2 as an, type PaymentRequestContent as ao, type PaymentRequiredV2 as ap, type PaymentRequirements as aq, type PromptContent as ar, RAIL_REFUNDABLE as as, type ReceiptOutcome as at, type ReceiptPayment as au, type ResourceInfo as av, type SettleResponse as aw, StepCache as ax, type StepRecord as ay, type TextContent as az, type ArtifactContent as b, type InvoiceWriteOff as b$, isDrainReceipt as b0, isFundingReceipt as b1, isPaymentRequestMessage as b2, isPromptMessage as b3, isSignedJobReceipt as b4, isTextMessage as b5, isWorkingMessage as b6, paymentRequiredV2FromV1 as b7, signDrainReceipt as b8, signFundingReceipt as b9, type X402TrackedChannel as bA, _testing as bB, createDefaultReplayStore as bC, depleteLots as bD, fifoOrder as bE, inKindDrawMsats as bF, isInKindDepletion as bG, isNonChannelBitcoinRail as bH, lotOwedSats as bI, netOwedSats as bJ, wrapMppx as bK, type CreditDrainEnqueue as bL, HostedSettlementReportObligations as bM, type DVMAuthScheme as bN, type CreditLedgerLike as bO, type X402RefundSettlementGate as bP, type CreditSnapshot as bQ, type DrawResult as bR, type X402SettlementStatus as bS, type X402UnresolvedRefund as bT, type GrownDrawResult as bU, type DrawResolution as bV, type FundingRecord as bW, type CreditInvoiceRecord as bX, type InvoiceSettlement as bY, type BlockedInvoiceCursor as bZ, type InvoiceReconciliation as b_, signReceipt as ba, usdcContractByCaip2 as bb, usdcContractFor as bc, usdcDomainNameFor as bd, usdcDomainVersionFor as be, verifyDrainReceipt as bf, verifyFundingReceipt as bg, verifyReceipt as bh, x402NetworkToCaip2 as bi, type X402ExactVersionSupport as bj, type X402Receipt as bk, type TransactionalPayoutHook as bl, type CashuMeltCompleted as bm, type CreditDepositPayload as bn, type CreditDrainPayload as bo, type FundingLot as bp, type LotDebit as bq, type LotDepletion as br, type MppxServer as bs, NON_CHANNEL_BITCOIN_RAILS as bt, type NonChannelBitcoinRail as bu, PayoutReporter as bv, PostgresTempoSessionStore as bw, RevenueReporter as bx, SIGNED_ENVELOPE_FIELDS as by, SIGNED_ENVELOPE_TYPES as bz, type CancelContent as c, type X402FacilitatorAuth as c$, type DrawRecord as c0, type StalePendingDrawCursor as c1, type TempoCreditLossEvidence as c2, type CreditLedgerQuerier as c3, type TempoCreditLoss as c4, type X402CreditLossEvidence as c5, type X402CreditLoss as c6, type DrainMethod as c7, type DrainRequestResult as c8, type BitcoinDepositLiability as c9, type JobCostReportPayload as cA, type JobTerminalReportPayload as cB, PostgresX402ChannelStorage as cC, type ReplayStoreBackend as cD, type RevenueSkippedNoRailPayload as cE, type RevenueSkippedNoRailReason as cF, type Secp256k1AuthOpts as cG, type X402ChannelStorageOpts as cH, type X402RelayLockHolder as cI, type X402RelaySubmissionLock as cJ, X402RelaySubmissionLockError as cK, allocateDrawValue as cL, clientCompatibilityAttributes as cM, clientCompatibilityMiddleware as cN, clientUpgradeRequired as cO, parseClientCapabilities as cP, parseClientCompatibility as cQ, parseDvmClient as cR, parseProtocolVersion as cS, requireClientCompatibility as cT, secp256k1Auth as cU, signedRequestInput as cV, type HostedIntent as cW, type X402SettlementIntent as cX, type HostedFundingReservation as cY, type X402SettlementCursor as cZ, type X402SettlementWriteOff as c_, type CreditDrainRecord as ca, type ChannelDrainCursor as cb, type DrainWriteOff as cc, type DrainReleaseResult as cd, type DrainFulfilment as ce, type DrainTransitionResult as cf, HostingCleanupFence as cg, CLIENT_COMPATIBILITY_HEADERS as ch, type ClientCompatibility as ci, type ClientCompatibilityEnv as cj, type ClientCompatibilityGate as ck, type ClientCompatibilityRequirement as cl, type ClientSemVer as cm, type CreditFundingBasis as cn, type CreditInvoiceStatus as co, CreditLedger as cp, CreditLedgerError as cq, type CreditLedgerErrorCode as cr, type CreditLedgerErrorDetails as cs, type CreditLedgerPool as ct, type CreditStatus as cu, DRAIN_DELIVERY_RESERVE_SATS as cv, DVM_PROTOCOL_VERSION as cw, type DrainConflictReason as cx, type DrawRailValue as cy, type DrawStatus as cz, type CanonicalEnvelope as d, type X402BatchSettlementConfig as d0, type X402PayoutObserver as d1, type CreditDepositEnqueue as d2, type X402SettlementReconciliationReason as d3, type CreditDrawReleaseEnqueue as d4, type CapabilityRate as e, type CreateSignedRequestVerifierOpts as f, type CreditConfig as g, type CreditView as h, DEFAULT_CREDIT_MAX as i, DEFAULT_CREDIT_MIN as j, DEFAULT_CREDIT_TTL_SECONDS as k, DEFAULT_JOB_RETENTION_DAYS as l, type DVMRouteContext as m, type InputType as n, InvalidCurrencyError as o, type PaymentMethod as p, type PriceValue as q, type ProgressContent as r, type PromptOpts as s, type QuoteContext as t, type QuoteResult as u, type ResponseContent as v, type SDKPaymentRequestOpts as w, SIGNED_REQUEST_AUTH_ID as x, SIGNED_REQUEST_STATEMENT_VERSION as y, type SignedRequestAudience as z };
5990
+ export { type FundingReceipt as $, type ApprovalContent as A, type SignedRequestDomain as B, type Currency as C, type DVMConfig as D, SignedRequestError as E, type SignedRequestFailure as F, type SignedRequestReplayStore as G, type SignedRequestSignOpts as H, type IncomingMessage as I, type JobCost as J, type KVStore as K, type Logger as L, type SignedRequestStatementHeader as M, type SignedRequestVerifier as N, createSignedRequestVerifier as O, type PaymentContent as P, type QuoteConfig as Q, type ResolvedCreditConfig as R, type SDKJobContext as S, isZodSchema as T, UnsupportedCurrencyError as U, signedRequestStatementHeader as V, validateCurrency as W, type JsonValue as X, X402_BATCH_SETTLEMENT_SCHEME as Y, type ZodLike as Z, X402_EXACT_SCHEME as _, type DVMDescriptor as a, isCompleteMessage as a$, type JobReceipt as a0, type MessageType as a1, type X402Version as a2, type MppxCredential as a3, type PaymentRequired as a4, type Message as a5, type MppxChallenge as a6, type ReceiptCredit as a7, type DrainReceipt as a8, type X402Wallet as a9, type UnsignedDrainReceipt as aA, type UnsignedFundingReceipt as aB, type UnsignedJobReceipt as aC, type VerifyResponse as aD, type WorkingContent as aE, type X402Config$1 as aF, type X402ResponseBody as aG, type X402SelfRelayRpcFailureReason as aH, X402_DEFAULT_NETWORK as aI, X402_V1_VERSION as aJ, X402_VERSION as aK, buildPaymentRequiredV2 as aL, buildPaymentRequirements as aM, caip2ToX402Network as aN, canonicalRequestPath as aO, canonicaliseForSigning as aP, canonicalize as aQ, chainIdFromCaip2 as aR, computeResultHash as aS, decodePayment as aT, decodePaymentRequiredHeader as aU, encodePayment as aV, encodePaymentRequiredHeader as aW, encodeSettleResponseHeader as aX, exactEvmAuthorization as aY, isArtifactMessage as aZ, isCancelMessage as a_, type PaymentRequirementsV1 as aa, type PaymentRequirementsV2 as ab, type BuildPaymentRequirementsOpts as ac, type CapabilityDescriptor as ad, type CashuMode as ae, type CompleteContent as af, type DrainReceiptEvent as ag, type ExactEvmPayload as ah, type ExactEvmPayloadAuthorization as ai, type FundingMethod as aj, type MessageFrom as ak, type PaymentPayload as al, type PaymentPayloadV1 as am, type PaymentPayloadV2 as an, type PaymentRequestContent as ao, type PaymentRequiredV2 as ap, type PaymentRequirements as aq, type PromptContent as ar, RAIL_REFUNDABLE as as, type ReceiptOutcome as at, type ReceiptPayment as au, type ResourceInfo as av, type SettleResponse as aw, StepCache as ax, type StepRecord as ay, type TextContent as az, type ArtifactContent as b, type InvoiceWriteOff as b$, isDrainReceipt as b0, isFundingReceipt as b1, isPaymentRequestMessage as b2, isPromptMessage as b3, isSignedJobReceipt as b4, isTextMessage as b5, isWorkingMessage as b6, paymentRequiredV2FromV1 as b7, signDrainReceipt as b8, signFundingReceipt as b9, type X402TrackedChannel as bA, _testing as bB, createDefaultReplayStore as bC, depleteLots as bD, fifoOrder as bE, inKindDrawMsats as bF, isInKindDepletion as bG, isNonChannelBitcoinRail as bH, lotOwedSats as bI, netOwedSats as bJ, wrapMppx as bK, type CreditDrainEnqueue as bL, HostedSettlementReportObligations as bM, type DVMAuthScheme as bN, type CreditLedgerLike as bO, type X402RefundSettlementGate as bP, type CreditSnapshot as bQ, type DrawResult as bR, type X402SettlementStatus as bS, type X402UnresolvedRefund as bT, type GrownDrawResult as bU, type DrawResolution as bV, type FundingRecord as bW, type CreditInvoiceRecord as bX, type InvoiceSettlement as bY, type BlockedInvoiceCursor as bZ, type InvoiceReconciliation as b_, signReceipt as ba, usdcContractByCaip2 as bb, usdcContractFor as bc, usdcDomainNameFor as bd, usdcDomainVersionFor as be, verifyDrainReceipt as bf, verifyFundingReceipt as bg, verifyReceipt as bh, x402NetworkToCaip2 as bi, type X402ExactVersionSupport as bj, type X402Receipt as bk, type TransactionalPayoutHook as bl, type CashuMeltCompleted as bm, type CreditDepositPayload as bn, type CreditDrainPayload as bo, type FundingLot as bp, type LotDebit as bq, type LotDepletion as br, type MppxServer as bs, NON_CHANNEL_BITCOIN_RAILS as bt, type NonChannelBitcoinRail as bu, PayoutReporter as bv, PostgresTempoSessionStore as bw, RevenueReporter as bx, SIGNED_ENVELOPE_FIELDS as by, SIGNED_ENVELOPE_TYPES as bz, type CancelContent as c, type X402SettlementCursor as c$, type DrawRecord as c0, type StalePendingDrawCursor as c1, type TempoCreditLossEvidence as c2, type CreditLedgerQuerier as c3, type TempoCreditLoss as c4, type X402CreditLossEvidence as c5, type X402CreditLoss as c6, type DrainMethod as c7, type DrainRequestResult as c8, type BitcoinDepositLiability as c9, type JobCostReportPayload as cA, type JobTerminalReportPayload as cB, PostgresX402ChannelStorage as cC, type ReplayStoreBackend as cD, type RevenueSkippedNoRailPayload as cE, type RevenueSkippedNoRailReason as cF, type Secp256k1AuthOpts as cG, type X402ChannelStorageOpts as cH, type X402RelayLockHolder as cI, type X402RelaySubmissionLock as cJ, X402RelaySubmissionLockError as cK, allocateDrawValue as cL, clientCompatibilityAttributes as cM, clientCompatibilityMiddleware as cN, clientUpgradeRequired as cO, parseClientCapabilities as cP, parseClientCompatibility as cQ, parseDvmClient as cR, parseProtocolVersion as cS, requireClientCompatibility as cT, retryHostedTempoCloseReport as cU, secp256k1Auth as cV, signedRequestInput as cW, writeOffHostedTempoCloseReport as cX, type HostedIntent as cY, type X402SettlementIntent as cZ, type HostedFundingReservation as c_, type CreditDrainRecord as ca, type ChannelDrainCursor as cb, type DrainWriteOff as cc, type DrainTransitionResult as cd, type DrainReleaseResult as ce, type DrainFulfilment as cf, HostingCleanupFence as cg, CLIENT_COMPATIBILITY_HEADERS as ch, type ClientCompatibility as ci, type ClientCompatibilityEnv as cj, type ClientCompatibilityGate as ck, type ClientCompatibilityRequirement as cl, type ClientSemVer as cm, type CreditFundingBasis as cn, type CreditInvoiceStatus as co, CreditLedger as cp, CreditLedgerError as cq, type CreditLedgerErrorCode as cr, type CreditLedgerErrorDetails as cs, type CreditLedgerPool as ct, type CreditStatus as cu, DRAIN_DELIVERY_RESERVE_SATS as cv, DVM_PROTOCOL_VERSION as cw, type DrainConflictReason as cx, type DrawRailValue as cy, type DrawStatus as cz, type CanonicalEnvelope as d, type X402SettlementWriteOff as d0, type X402FacilitatorAuth as d1, type X402BatchSettlementConfig as d2, type X402PayoutObserver as d3, type CreditDepositEnqueue as d4, type X402SettlementReconciliationReason as d5, type CreditDrawReleaseEnqueue as d6, type CapabilityRate as e, type CreateSignedRequestVerifierOpts as f, type CreditConfig as g, type CreditView as h, DEFAULT_CREDIT_MAX as i, DEFAULT_CREDIT_MIN as j, DEFAULT_CREDIT_TTL_SECONDS as k, DEFAULT_JOB_RETENTION_DAYS as l, type DVMRouteContext as m, type InputType as n, InvalidCurrencyError as o, type PaymentMethod as p, type PriceValue as q, type ProgressContent as r, type PromptOpts as s, type QuoteContext as t, type QuoteResult as u, type ResponseContent as v, type SDKPaymentRequestOpts as w, SIGNED_REQUEST_AUTH_ID as x, SIGNED_REQUEST_STATEMENT_VERSION as y, type SignedRequestAudience as z };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  PostgresTempoChargeStore
3
- } from "./chunk-NA2KOR6G.js";
3
+ } from "./chunk-IYQQXEHV.js";
4
4
  import "./chunk-YG7G4DPZ.js";
5
- import "./chunk-BFGQG4WY.js";
6
5
  import "./chunk-COYKJRMM.js";
6
+ import "./chunk-OIP44KBB.js";
7
7
  export {
8
8
  PostgresTempoChargeStore
9
9
  };
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  PostgresTempoSessionStore,
3
3
  assertMonotonicTransition
4
- } from "./chunk-UWGBI5WK.js";
4
+ } from "./chunk-Q3VYRU5R.js";
5
5
  import "./chunk-YG7G4DPZ.js";
6
- import "./chunk-7PM4R4GD.js";
7
- import "./chunk-BFGQG4WY.js";
8
6
  import "./chunk-COYKJRMM.js";
7
+ import "./chunk-IBX2ORBV.js";
8
+ import "./chunk-OIP44KBB.js";
9
9
  export {
10
10
  PostgresTempoSessionStore,
11
11
  assertMonotonicTransition
@@ -1,6 +1,6 @@
1
- import { C as ContentHoldHistory, a as ContentHoldMutation } from '../content-retention-B7ddtJ2y.js';
2
- import { a0 as JobReceipt, a5 as Message, a1 as MessageType, K as KVStore, L as Logger, v as ResponseContent, P as PaymentContent, S as SDKJobContext } from '../step-cache-CR12EZ1Q.js';
3
- import { c as StreamableJobStore, R as ReceiptIssuingStore, J as JobRecord, d as RequestIdClaim, e as RequestIdClaimResult, f as JobRetentionCursor, O as OutgoingMessage, A as AppendOutgoingOptions, P as PaymentCreditDelta, V as VerifyAndCreditResult, g as JobCounters } from '../job-store-Cq21JT37.js';
1
+ import { C as ContentHoldHistory, a as ContentHoldMutation } from '../content-retention-CVBYehRS.js';
2
+ import { a0 as JobReceipt, a5 as Message, a1 as MessageType, K as KVStore, L as Logger, v as ResponseContent, P as PaymentContent, S as SDKJobContext } from '../step-cache-B7svmPz3.js';
3
+ import { c as StreamableJobStore, R as ReceiptIssuingStore, J as JobRecord, d as RequestIdClaim, e as RequestIdClaimResult, f as JobRetentionCursor, O as OutgoingMessage, A as AppendOutgoingOptions, P as PaymentCreditDelta, V as VerifyAndCreditResult, g as JobCounters } from '../job-store-qOD-FrQF.js';
4
4
  import 'hono';
5
5
  import 'mppx';
6
6
  import '@x402/core/server';
@@ -4,22 +4,22 @@ import {
4
4
  import {
5
5
  MemoryJobStore,
6
6
  createInstrumentedFetch
7
- } from "../chunk-IHQUBATH.js";
7
+ } from "../chunk-TFDR2YP2.js";
8
8
  import {
9
9
  JobCancelledError
10
10
  } from "../chunk-AFV77S4C.js";
11
11
  import {
12
12
  createNoopLogger
13
- } from "../chunk-OP7VCGQR.js";
14
- import "../chunk-IOQIXRGM.js";
13
+ } from "../chunk-TRY7BJA4.js";
15
14
  import "../chunk-FUJ36YDV.js";
16
- import "../chunk-66HGCPBU.js";
17
15
  import "../chunk-BQJIFRAZ.js";
18
- import "../chunk-UDJNZ3UG.js";
16
+ import "../chunk-WLPLHXNP.js";
19
17
  import {
20
18
  validateCurrency
21
- } from "../chunk-2U6LAASN.js";
22
- import "../chunk-BFGQG4WY.js";
19
+ } from "../chunk-HC4I7LAV.js";
20
+ import "../chunk-QSZW2I5Y.js";
21
+ import "../chunk-66HGCPBU.js";
22
+ import "../chunk-OIP44KBB.js";
23
23
 
24
24
  // src/sdk/testing/test-context.ts
25
25
  function createTestContext(opts) {
@@ -1,4 +1,4 @@
1
- import { C as Currency } from './step-cache-CR12EZ1Q.js';
1
+ import { C as Currency } from './step-cache-B7svmPz3.js';
2
2
 
3
3
  /**
4
4
  * Thrown by `fiatToSatsCeil` / `satsToFiat` when the supplied `ratePerBtc` is
@@ -6,8 +6,8 @@ import {
6
6
  } from "./chunk-WMGXJQI3.js";
7
7
  import {
8
8
  verifyX402Payment
9
- } from "./chunk-UVS7MRJX.js";
10
- import "./chunk-AVV5SYGO.js";
9
+ } from "./chunk-LCCG5HQM.js";
10
+ import "./chunk-GAZBBMAA.js";
11
11
  import {
12
12
  X402_DEFAULT_FACILITATOR,
13
13
  X402_DEFAULT_NETWORK,
@@ -28,7 +28,6 @@ import {
28
28
  x402NetworkToCaip2
29
29
  } from "./chunk-62FI3NJF.js";
30
30
  import "./chunk-FUJ36YDV.js";
31
- import "./chunk-66HGCPBU.js";
32
31
  import {
33
32
  X402_NETWORKS,
34
33
  assertSupportedX402Network,
@@ -37,7 +36,8 @@ import {
37
36
  x402NetworkListForCopy,
38
37
  x402SupportedNetworksHint
39
38
  } from "./chunk-BPYMEMQX.js";
40
- import "./chunk-BFGQG4WY.js";
39
+ import "./chunk-66HGCPBU.js";
40
+ import "./chunk-OIP44KBB.js";
41
41
  export {
42
42
  X402_DEFAULT_FACILITATOR,
43
43
  X402_DEFAULT_NETWORK,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dvmkit/sdk",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "SDK for building Digital Vending Machines: pay-per-use HTTPS services AI agents can find, pay, and call with no account or API key",
5
5
  "author": "DVM Technologies Ltd",
6
6
  "keywords": [