@dvmkit/sdk 0.3.1-rc.10 → 0.3.3-rc.10

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 (47) hide show
  1. package/dist/{chunk-2D75MNNG.js → chunk-2SD2W2BG.js} +8 -5
  2. package/dist/{chunk-XZ7LW4S5.js → chunk-4J32DTLT.js} +20 -16
  3. package/dist/{chunk-XMDQOXHO.js → chunk-4UZN2GP5.js} +4 -1
  4. package/dist/{chunk-YO56VCTQ.js → chunk-6DOGTAHA.js} +190 -75
  5. package/dist/{chunk-VA7GT6C6.js → chunk-7X6UDVCQ.js} +56 -53
  6. package/dist/{chunk-4A2RAKCW.js → chunk-BYCEKO65.js} +7 -3
  7. package/dist/{chunk-MMCE7XSR.js → chunk-C2AGARLM.js} +1 -13
  8. package/dist/{chunk-H2MEFVH6.js → chunk-CE7XEHYC.js} +7 -4
  9. package/dist/{chunk-D7YQYLLM.js → chunk-EAMZZ2B4.js} +1 -1
  10. package/dist/chunk-ETXDTUJO.js +1438 -0
  11. package/dist/{chunk-FDKRXOZO.js → chunk-FI4CST2D.js} +57 -49
  12. package/dist/{chunk-HHTL3ZFT.js → chunk-JDFLRNAZ.js} +16 -13
  13. package/dist/{chunk-U5VNEALI.js → chunk-M4QDXD2A.js} +1 -1
  14. package/dist/{chunk-GAIPXGM3.js → chunk-O3QDFPKM.js} +1 -1
  15. package/dist/{chunk-MD3H3BF7.js → chunk-O5AT6S5T.js} +1 -1
  16. package/dist/{chunk-C3MTFLC6.js → chunk-P6QON7ER.js} +14 -12
  17. package/dist/{chunk-CC3UY6OS.js → chunk-UZC4A4DM.js} +379 -374
  18. package/dist/{chunk-QX52F6IB.js → chunk-VAMSJRJT.js} +7 -4
  19. package/dist/{chunk-AJNFXR7J.js → chunk-VHNPVGSA.js} +4 -1
  20. package/dist/{chunk-N5B66UOS.js → chunk-YHN3WMMF.js} +4 -1
  21. package/dist/{chunk-O6D72KYA.js → chunk-YRDA7EWN.js} +1 -1
  22. package/dist/{chunk-VIVXB4CD.js → chunk-YYQG4R7T.js} +1 -1
  23. package/dist/{chunk-FPOLJRBF.js → chunk-Z3EHBW2G.js} +2 -2
  24. package/dist/{credit-ledger-MHA652TV.js → credit-ledger-A35WH2TI.js} +3 -2
  25. package/dist/index.js +4 -3
  26. package/dist/internal/caller.d.ts +32 -3
  27. package/dist/internal/caller.js +22 -12
  28. package/dist/internal/index.js +1 -1
  29. package/dist/internal/server.js +16 -15
  30. package/dist/memory-credit-ledger-2LBZVMKJ.js +10 -0
  31. package/dist/{mpp-setup-MPP3ST5X.js → mpp-setup-7CGBKNUP.js} +2 -1
  32. package/dist/{payout-reporter-KEMUXEUO.js → payout-reporter-ZMOA37GN.js} +2 -1
  33. package/dist/{postgres-consumed-credential-store-6N2V5MJN.js → postgres-consumed-credential-store-CUQJKRSL.js} +4 -1
  34. package/dist/{postgres-job-store-VE2JRUEC.js → postgres-job-store-MSD2HZOI.js} +2 -1
  35. package/dist/{postgres-replay-store-ZF4JNZOW.js → postgres-replay-store-ARZSQ45X.js} +2 -1
  36. package/dist/{pricing-MU5GNUJZ.js → pricing-XT2IAPNE.js} +2 -1
  37. package/dist/{revenue-reporter-O75BGYFK.js → revenue-reporter-EKJOGQYR.js} +2 -1
  38. package/dist/server/index.d.ts +1 -1
  39. package/dist/server/index.js +112 -112
  40. package/dist/{tempo-charge-store-SDTUNTKA.js → tempo-charge-store-4WX7FPOV.js} +2 -1
  41. package/dist/{tempo-lifecycle-G5SB4HFC.js → tempo-lifecycle-TJ62A7UX.js} +3 -3
  42. package/dist/{tempo-session-store-WF3VZXNF.js → tempo-session-store-LCSDHB7G.js} +3 -2
  43. package/dist/{tempo-wallet-ZFNUDFVO.js → tempo-wallet-RCGBBAJH.js} +1 -1
  44. package/dist/testing/index.js +4 -3
  45. package/dist/{x402-CI6PSHNO.js → x402-S47Q77UE.js} +2 -2
  46. package/package.json +1 -1
  47. package/dist/memory-credit-ledger-BYBATRN3.js +0 -9
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  withSdkInitLock
3
3
  } from "./chunk-COYKJRMM.js";
4
+ import {
5
+ diagnosticConsole
6
+ } from "./chunk-ETXDTUJO.js";
4
7
 
5
8
  // src/sdk/server/revenue-reporter.ts
6
9
  import { randomUUID } from "crypto";
@@ -214,21 +217,21 @@ var RevenueReporter = class _RevenueReporter {
214
217
  signal: AbortSignal.timeout(1e4)
215
218
  });
216
219
  if (!res.ok) {
217
- console.warn(
218
- JSON.stringify({
220
+ diagnosticConsole.warn(
221
+ {
219
222
  level: "payout_pending_report_failed",
220
223
  rail: payload.rail,
221
224
  status: res.status
222
- })
225
+ }
223
226
  );
224
227
  }
225
- } catch (err) {
226
- console.warn(
227
- JSON.stringify({
228
+ } catch (_err) {
229
+ diagnosticConsole.warn(
230
+ {
228
231
  level: "payout_pending_report_failed",
229
232
  rail: payload.rail,
230
- error: err instanceof Error ? err.message : String(err)
231
- })
233
+ error: void 0
234
+ }
232
235
  );
233
236
  }
234
237
  }
@@ -261,21 +264,21 @@ var RevenueReporter = class _RevenueReporter {
261
264
  signal: AbortSignal.timeout(1e4)
262
265
  });
263
266
  if (!res.ok) {
264
- console.warn(
265
- JSON.stringify({
267
+ diagnosticConsole.warn(
268
+ {
266
269
  level: "paid_job_death_report_failed",
267
270
  jobId: payload.jobId,
268
271
  status: res.status
269
- })
272
+ }
270
273
  );
271
274
  }
272
- } catch (err) {
273
- console.warn(
274
- JSON.stringify({
275
+ } catch (_err) {
276
+ diagnosticConsole.warn(
277
+ {
275
278
  level: "paid_job_death_report_failed",
276
279
  jobId: payload.jobId,
277
- error: err instanceof Error ? err.message : String(err)
278
- })
280
+ error: void 0
281
+ }
279
282
  );
280
283
  }
281
284
  }
@@ -298,25 +301,25 @@ var RevenueReporter = class _RevenueReporter {
298
301
  signal: AbortSignal.timeout(1e4)
299
302
  });
300
303
  if (!res.ok) {
301
- console.warn(
302
- JSON.stringify({
304
+ diagnosticConsole.warn(
305
+ {
303
306
  level: "revenue_skipped_no_rail_report_failed",
304
307
  jobId: payload.jobId,
305
308
  drawId: payload.drawId,
306
309
  reason: payload.reason,
307
310
  status: res.status
308
- })
311
+ }
309
312
  );
310
313
  }
311
- } catch (err) {
312
- console.warn(
313
- JSON.stringify({
314
+ } catch (_err) {
315
+ diagnosticConsole.warn(
316
+ {
314
317
  level: "revenue_skipped_no_rail_report_failed",
315
318
  jobId: payload.jobId,
316
319
  drawId: payload.drawId,
317
320
  reason: payload.reason,
318
- error: err instanceof Error ? err.message : String(err)
319
- })
321
+ error: void 0
322
+ }
320
323
  );
321
324
  }
322
325
  }
@@ -333,21 +336,21 @@ var RevenueReporter = class _RevenueReporter {
333
336
  signal: AbortSignal.timeout(1e4)
334
337
  });
335
338
  if (!res.ok) {
336
- console.warn(
337
- JSON.stringify({
339
+ diagnosticConsole.warn(
340
+ {
338
341
  level: "x402_self_relay_gas_balance_report_failed",
339
342
  address: payload.address,
340
343
  status: res.status
341
- })
344
+ }
342
345
  );
343
346
  }
344
- } catch (err) {
345
- console.warn(
346
- JSON.stringify({
347
+ } catch (_err) {
348
+ diagnosticConsole.warn(
349
+ {
347
350
  level: "x402_self_relay_gas_balance_report_failed",
348
351
  address: payload.address,
349
- error: err instanceof Error ? err.message : String(err)
350
- })
352
+ error: void 0
353
+ }
351
354
  );
352
355
  }
353
356
  }
@@ -364,21 +367,21 @@ var RevenueReporter = class _RevenueReporter {
364
367
  signal: AbortSignal.timeout(1e4)
365
368
  });
366
369
  if (!res.ok) {
367
- console.warn(
368
- JSON.stringify({
370
+ diagnosticConsole.warn(
371
+ {
369
372
  level: "x402_self_relay_rpc_health_report_failed",
370
373
  address: payload.address,
371
374
  status: res.status
372
- })
375
+ }
373
376
  );
374
377
  }
375
378
  } catch {
376
- console.warn(
377
- JSON.stringify({
379
+ diagnosticConsole.warn(
380
+ {
378
381
  level: "x402_self_relay_rpc_health_report_failed",
379
382
  address: payload.address,
380
383
  reason: "transport"
381
- })
384
+ }
382
385
  );
383
386
  }
384
387
  }
@@ -401,23 +404,23 @@ var RevenueReporter = class _RevenueReporter {
401
404
  signal: AbortSignal.timeout(1e4)
402
405
  });
403
406
  if (!res.ok) {
404
- console.warn(
405
- JSON.stringify({
407
+ diagnosticConsole.warn(
408
+ {
406
409
  level: "tempo_settlement_readiness_report_failed",
407
410
  kind,
408
411
  address: payload.address,
409
412
  status: res.status
410
- })
413
+ }
411
414
  );
412
415
  }
413
416
  } catch {
414
- console.warn(
415
- JSON.stringify({
417
+ diagnosticConsole.warn(
418
+ {
416
419
  level: "tempo_settlement_readiness_report_failed",
417
420
  kind,
418
421
  address: payload.address,
419
422
  reason: "transport"
420
- })
423
+ }
421
424
  );
422
425
  }
423
426
  }
@@ -482,8 +485,8 @@ var RevenueReporter = class _RevenueReporter {
482
485
  const retryCount = row.retry_count + 1;
483
486
  if (Date.now() - Number(row.created_at) >= _RevenueReporter.ABANDON_AFTER_MS) {
484
487
  await this.markStale(row.id, "abandoned");
485
- console.warn(
486
- JSON.stringify({
488
+ diagnosticConsole.warn(
489
+ {
487
490
  level: "revenue_reporter_abandoned",
488
491
  id: row.id,
489
492
  kind: row.kind,
@@ -494,7 +497,7 @@ var RevenueReporter = class _RevenueReporter {
494
497
  // carries `rail`. An abandoned row is the one place an
495
498
  // operator sees this payload at all, so don't log it blank.
496
499
  rail: row.payload.rail ?? row.payload.method
497
- })
500
+ }
498
501
  );
499
502
  continue;
500
503
  }
@@ -511,7 +514,7 @@ var RevenueReporter = class _RevenueReporter {
511
514
  }
512
515
  }
513
516
  } catch (err) {
514
- console.error("[revenue-reporter] Retry loop error:", err);
517
+ diagnosticConsole.error("[revenue-reporter] Retry loop error:", err);
515
518
  }
516
519
  }
517
520
  async enqueue(kind, payload, label) {
@@ -543,31 +546,31 @@ var RevenueReporter = class _RevenueReporter {
543
546
  });
544
547
  } catch (err) {
545
548
  const reason = err instanceof Error ? err.message : String(err);
546
- console.warn(
549
+ diagnosticConsole.warn(
547
550
  `[revenue-reporter] delivery failed for ${id}: transport error (${reason}) \u2014 will retry`
548
551
  );
549
552
  throw err;
550
553
  }
551
554
  if (res.ok) {
552
555
  await this.db.query(`DELETE FROM ${PENDING_DVM_REPORTS_TABLE} WHERE id = $1`, [id]);
553
- console.log(`[revenue-reporter] reported ${kind} ${label}`);
556
+ diagnosticConsole.log(`[revenue-reporter] reported ${kind} ${label}`);
554
557
  return;
555
558
  }
556
559
  if (res.status === 401) {
557
560
  await this.markStale(id, "token_rotated");
558
- console.warn(
561
+ diagnosticConsole.warn(
559
562
  `[revenue-reporter] Report ${id} got 401 \u2014 marking stale (token likely rotated)`
560
563
  );
561
564
  return;
562
565
  }
563
566
  if (res.status >= 400 && res.status < 500) {
564
567
  await this.markStale(id, `client_error:${res.status}`);
565
- console.warn(
568
+ diagnosticConsole.warn(
566
569
  `[revenue-reporter] Report ${id} got HTTP ${res.status} \u2014 marking stale (permanent client error, will not retry)`
567
570
  );
568
571
  return;
569
572
  }
570
- console.warn(`[revenue-reporter] delivery failed for ${id}: HTTP ${res.status} \u2014 will retry`);
573
+ diagnosticConsole.warn(`[revenue-reporter] delivery failed for ${id}: HTTP ${res.status} \u2014 will retry`);
571
574
  throw new Error(`Platform returned ${res.status}`);
572
575
  }
573
576
  async markStale(id, reason) {
@@ -1,3 +1,7 @@
1
+ import {
2
+ diagnosticConsole
3
+ } from "./chunk-ETXDTUJO.js";
4
+
1
5
  // src/sdk/pricing/currency.ts
2
6
  var InvalidCurrencyError = class extends Error {
3
7
  code = "invalid_currency";
@@ -212,14 +216,14 @@ function warnPartialRates(source, snapshot, episode) {
212
216
  if (carried.length === 0 && unavailable.length === 0) return null;
213
217
  const key = `${carried.join(",")}|${unavailable.join(",")}`;
214
218
  if (key === episode) return episode;
215
- console.warn(
216
- JSON.stringify({
219
+ diagnosticConsole.warn(
220
+ {
217
221
  level: "warn",
218
222
  event: "fx_rates_partial",
219
223
  source,
220
224
  ...carried.length > 0 && { carried_forward: carried },
221
225
  ...unavailable.length > 0 && { unavailable }
222
- })
226
+ }
223
227
  );
224
228
  return key;
225
229
  }
@@ -765,7 +765,7 @@ function recordPendingDrain(endpoint, callerPubkey, drain, identity) {
765
765
  );
766
766
  if (index === -1) drains.push(drain);
767
767
  else drains[index] = drain;
768
- record.pendingDrains = capPendingDrains(drains, record.creditId);
768
+ record.pendingDrains = drains;
769
769
  return void 0;
770
770
  });
771
771
  }
@@ -879,7 +879,6 @@ function adoptCreditId(record, creditId) {
879
879
  delete record.discrepancy;
880
880
  delete record.lastReceiptJobId;
881
881
  }
882
- var MAX_PENDING_DRAINS = 8;
883
882
  var MAX_SETTLED_DRAIN_EVIDENCE = 8;
884
883
  var MAX_LOST_IMPLICIT_CREDITS = 8;
885
884
  var MAX_DATE_MS = 864e13;
@@ -1285,17 +1284,6 @@ function isEvidenceish(value) {
1285
1284
  function isDrainish(value) {
1286
1285
  return typeof value === "object" && value !== null && typeof value.drainId === "string";
1287
1286
  }
1288
- function capPendingDrains(drains, creditId) {
1289
- if (drains.length <= MAX_PENDING_DRAINS) return drains;
1290
- const evictable = drains.filter((d) => d.creditId !== creditId).sort((a, b) => a.requestedAt - b.requestedAt);
1291
- const dropped = new Set(evictable.slice(0, drains.length - MAX_PENDING_DRAINS));
1292
- for (const d of dropped) {
1293
- info(
1294
- `Dropping the oldest unclaimed drain record (${d.drainId}${d.creditId ? ` on credit ${d.creditId}` : ""}) \u2014 ${String(MAX_PENDING_DRAINS)} is the most this DVM's record keeps.`
1295
- );
1296
- }
1297
- return drains.filter((d) => !dropped.has(d));
1298
- }
1299
1287
  function capDrainEvidence(evidence, endpoint) {
1300
1288
  const settled = evidence.filter((e) => e.settledAt !== void 0).sort((a, b) => (a.settledAt ?? 0) - (b.settledAt ?? 0));
1301
1289
  if (settled.length <= MAX_SETTLED_DRAIN_EVIDENCE) return evidence;
@@ -5,6 +5,9 @@ import {
5
5
  signedRequestStatementHeader,
6
6
  testOnlySignedRequestDomain
7
7
  } from "./chunk-KXZUCCEY.js";
8
+ import {
9
+ diagnosticConsole
10
+ } from "./chunk-ETXDTUJO.js";
8
11
 
9
12
  // src/sdk/server/zod-error.ts
10
13
  function humanizeZodError(err, opts) {
@@ -292,14 +295,14 @@ function createDefaultReplayStore() {
292
295
  if (entries.size >= DEFAULT_REPLAY_CAP) {
293
296
  if (t - lastSaturationWarnAt >= SATURATION_WARN_INTERVAL_SECONDS) {
294
297
  lastSaturationWarnAt = t;
295
- console.warn(
296
- JSON.stringify({
298
+ diagnosticConsole.warn(
299
+ {
297
300
  level: "warn",
298
301
  event: "signed_request_replay_store_saturated",
299
- message: "in-memory signed-request replay store at cap \u2014 rejecting fresh inserts to avoid widening the replay window; move to PostgresReplayStore",
302
+ message: void 0,
300
303
  cap: DEFAULT_REPLAY_CAP,
301
304
  window_seconds: DEFAULT_REPLAY_WINDOW_SECONDS
302
- })
305
+ }
303
306
  );
304
307
  }
305
308
  return Promise.resolve(true);
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-COYKJRMM.js";
8
8
  import {
9
9
  withPostgresTransactionRecovery
10
- } from "./chunk-C3MTFLC6.js";
10
+ } from "./chunk-P6QON7ER.js";
11
11
 
12
12
  // src/sdk/server/tempo-session-store.ts
13
13
  import { AsyncLocalStorage } from "async_hooks";