@bitfab/sdk 0.36.13 → 0.38.1

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/node.cjs CHANGED
@@ -84,11 +84,12 @@ var init_asyncStorage = __esm({
84
84
  });
85
85
 
86
86
  // src/version.generated.ts
87
- var __version__;
87
+ var __version__, __packageName__;
88
88
  var init_version_generated = __esm({
89
89
  "src/version.generated.ts"() {
90
90
  "use strict";
91
- __version__ = "0.36.13";
91
+ __version__ = "0.38.1";
92
+ __packageName__ = "@bitfab/sdk";
92
93
  }
93
94
  });
94
95
 
@@ -1760,7 +1761,12 @@ var init_http = __esm({
1760
1761
  * the OTLP carrier has no path to carry it.
1761
1762
  */
1762
1763
  sendInternalTrace(functionId, payload) {
1763
- const body = { ...payload, functionId, sdkVersion: __version__ };
1764
+ const body = {
1765
+ ...payload,
1766
+ functionId,
1767
+ sdkPackage: __packageName__,
1768
+ sdkVersion: __version__
1769
+ };
1764
1770
  this.getTraceTransport()?.submit(
1765
1771
  "internal_trace",
1766
1772
  body,
@@ -1789,7 +1795,11 @@ var init_http = __esm({
1789
1795
  sendExternalTrace(payload) {
1790
1796
  this.getTraceTransport()?.submit(
1791
1797
  "external_trace",
1792
- { ...payload, sdkVersion: __version__ },
1798
+ {
1799
+ ...payload,
1800
+ sdkPackage: __packageName__,
1801
+ sdkVersion: __version__
1802
+ },
1793
1803
  this.recordedMeta(
1794
1804
  "external_trace",
1795
1805
  payload,
@@ -2532,12 +2542,15 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2532
2542
  let lease = includeDbBranchLease ? serverItem.dbBranchLease : void 0;
2533
2543
  let leaseError = includeDbBranchLease ? serverItem.dbBranchLeaseError : void 0;
2534
2544
  let dbSnapshotRef = serverItem.dbSnapshotRef;
2545
+ let dbBranchTimings = includeDbBranchLease ? serverItem.dbBranchTimings : void 0;
2535
2546
  let inputs = [];
2536
2547
  let originalOutput;
2537
2548
  let result;
2538
2549
  let error = null;
2539
2550
  let traceError = null;
2540
2551
  let replayError = null;
2552
+ let replayDurationMs = null;
2553
+ let replayStarted = null;
2541
2554
  const originalTraceId = serverItem.originalTraceId ?? serverItem.sourceTraceId;
2542
2555
  const originalSpanId = serverItem.originalSpanId ?? serverItem.sourceSpanId;
2543
2556
  try {
@@ -2560,6 +2573,7 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2560
2573
  lease = resolved.lease ?? void 0;
2561
2574
  leaseError = resolved.leaseError ?? void 0;
2562
2575
  dbSnapshotRef = resolved.dbSnapshotRef ?? dbSnapshotRef;
2576
+ dbBranchTimings = resolved.timings ?? dbBranchTimings;
2563
2577
  }
2564
2578
  if (leaseError) {
2565
2579
  throw new DbBranchReplayError(
@@ -2620,6 +2634,7 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2620
2634
  return pending;
2621
2635
  } : void 0;
2622
2636
  try {
2637
+ replayStarted = performance.now();
2623
2638
  const maybePromise = runWithReplayContext(
2624
2639
  {
2625
2640
  testRunId,
@@ -2632,16 +2647,24 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2632
2647
  mockStrategy,
2633
2648
  mockOverrides: hasOverrides ? resolvedOverrides : void 0,
2634
2649
  fetchSpanOutput,
2635
- dbBranchLease: lease
2650
+ dbBranchLease: lease,
2651
+ dbBranchTimings
2636
2652
  },
2637
2653
  () => fn(...inputs)
2638
2654
  );
2639
2655
  result = maybePromise instanceof Promise ? await maybePromise : maybePromise;
2656
+ replayDurationMs = Math.round(performance.now() - replayStarted);
2640
2657
  } catch (e) {
2658
+ if (replayStarted !== null) {
2659
+ replayDurationMs = Math.round(performance.now() - replayStarted);
2660
+ }
2641
2661
  traceError = e;
2642
2662
  error = errorMessage(e);
2643
2663
  }
2644
2664
  } catch (e) {
2665
+ if (replayStarted !== null) {
2666
+ replayDurationMs = Math.round(performance.now() - replayStarted);
2667
+ }
2645
2668
  replayError = e;
2646
2669
  error = replayItemErrorMessage(e);
2647
2670
  } finally {
@@ -2658,6 +2681,8 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2658
2681
  }
2659
2682
  }
2660
2683
  }
2684
+ const originalDurationMs = serverItem.originalDurationMs ?? serverItem.durationMs ?? null;
2685
+ const originalModel = serverItem.originalModel ?? serverItem.model ?? null;
2661
2686
  return {
2662
2687
  // Written in by replay() from the complete-replay response once the server
2663
2688
  // has minted this replay trace's row. Null until then: the client-side
@@ -2674,13 +2699,17 @@ async function processItem(httpClient, serverItem, fn, testRunId, mockStrategy,
2674
2699
  error,
2675
2700
  traceError,
2676
2701
  replayError,
2677
- durationMs: serverItem.durationMs ?? null,
2702
+ durationMs: replayDurationMs,
2703
+ originalDurationMs,
2704
+ originalTokens: serverItem.originalTokens ?? serverItem.tokens ?? null,
2705
+ originalModel,
2678
2706
  // Filled in by replay() from the complete-replay response once the
2679
2707
  // replay traces are persisted and their spans aggregated server-side.
2680
2708
  // Null here (and on older servers) means "replay tokens not known".
2681
2709
  tokens: null,
2682
- model: serverItem.model ?? null,
2683
- dbSnapshotRef: dbSnapshotRef ?? null
2710
+ model: originalModel,
2711
+ dbSnapshotRef: dbSnapshotRef ?? null,
2712
+ dbBranchTimings: dbBranchTimings ?? null
2684
2713
  };
2685
2714
  }
2686
2715
  async function waitForReplayPersistence(httpClient, testRunId, replayedTraceIds) {
@@ -2907,9 +2936,13 @@ async function replay(httpClient, serviceUrl, traceFunctionKey, fn, options, reg
2907
2936
  traceError: item.traceError,
2908
2937
  replayError: item.replayError,
2909
2938
  durationMs: item.durationMs,
2939
+ originalDurationMs: item.originalDurationMs,
2940
+ originalTokens: item.originalTokens,
2941
+ originalModel: item.originalModel,
2910
2942
  tokens: item.tokens,
2911
2943
  model: item.model,
2912
- dbSnapshotRef: item.dbSnapshotRef
2944
+ dbSnapshotRef: item.dbSnapshotRef,
2945
+ dbBranchTimings: item.dbBranchTimings
2913
2946
  }
2914
2947
  });
2915
2948
  } catch {
@@ -6095,7 +6128,8 @@ var Bitfab = class {
6095
6128
  snapshotTimestamp: replayCtx.dbBranchLease.snapshotTimestamp,
6096
6129
  region: replayCtx.dbBranchLease.region,
6097
6130
  originalTraceId: replayCtx.sourceBitfabTraceId,
6098
- accessed: replayCtx.dbSnapshotAccessed === true
6131
+ accessed: replayCtx.dbSnapshotAccessed === true,
6132
+ timings: replayCtx.dbBranchTimings
6099
6133
  }
6100
6134
  }
6101
6135
  });
@@ -6427,7 +6461,13 @@ var Bitfab = class {
6427
6461
  // against servers that predate the rename.
6428
6462
  source_trace_id: params.dbSnapshotUsage.originalTraceId
6429
6463
  },
6430
- accessed: params.dbSnapshotUsage.accessed
6464
+ accessed: params.dbSnapshotUsage.accessed,
6465
+ // Echoed verbatim (camelCase inside) rather than re-cased into this
6466
+ // record's snake_case: it is the server's own object coming back, and
6467
+ // a translation layer here is one more thing to drift.
6468
+ ...params.dbSnapshotUsage.timings && {
6469
+ timings: params.dbSnapshotUsage.timings
6470
+ }
6431
6471
  };
6432
6472
  }
6433
6473
  this.httpClient.sendExternalTrace({