@use-tusk/drift-node-sdk 0.1.25 → 0.1.27

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.js CHANGED
@@ -6203,7 +6203,7 @@ var JsonSchema$Type = class extends import_commonjs$7.MessageType {
6203
6203
  const JsonSchema = new JsonSchema$Type();
6204
6204
 
6205
6205
  //#endregion
6206
- //#region node_modules/@use-tusk/drift-schemas/dist/span-CsBrzhI_.js
6206
+ //#region node_modules/@use-tusk/drift-schemas/dist/span-CXrr1reB.js
6207
6207
  var import_commonjs$6 = /* @__PURE__ */ __toESM(require_commonjs$2(), 1);
6208
6208
  /**
6209
6209
  * Package type classification enum
@@ -6350,6 +6350,62 @@ let StatusCode = /* @__PURE__ */ function(StatusCode$1) {
6350
6350
  StatusCode$1[StatusCode$1["ERROR"] = 2] = "ERROR";
6351
6351
  return StatusCode$1;
6352
6352
  }({});
6353
+ /**
6354
+ * Match scope - where the match was found
6355
+ *
6356
+ * @generated from protobuf enum tusk.drift.core.v1.MatchScope
6357
+ */
6358
+ let MatchScope = /* @__PURE__ */ function(MatchScope$1) {
6359
+ /**
6360
+ * @generated from protobuf enum value: MATCH_SCOPE_UNSPECIFIED = 0;
6361
+ */
6362
+ MatchScope$1[MatchScope$1["UNSPECIFIED"] = 0] = "UNSPECIFIED";
6363
+ /**
6364
+ * @generated from protobuf enum value: MATCH_SCOPE_TRACE = 1;
6365
+ */
6366
+ MatchScope$1[MatchScope$1["TRACE"] = 1] = "TRACE";
6367
+ /**
6368
+ * @generated from protobuf enum value: MATCH_SCOPE_GLOBAL = 2;
6369
+ */
6370
+ MatchScope$1[MatchScope$1["GLOBAL"] = 2] = "GLOBAL";
6371
+ return MatchScope$1;
6372
+ }({});
6373
+ /**
6374
+ * Match type - how the match was found
6375
+ *
6376
+ * @generated from protobuf enum tusk.drift.core.v1.MatchType
6377
+ */
6378
+ let MatchType = /* @__PURE__ */ function(MatchType$1) {
6379
+ /**
6380
+ * @generated from protobuf enum value: MATCH_TYPE_UNSPECIFIED = 0;
6381
+ */
6382
+ MatchType$1[MatchType$1["UNSPECIFIED"] = 0] = "UNSPECIFIED";
6383
+ /**
6384
+ * @generated from protobuf enum value: MATCH_TYPE_INPUT_VALUE_HASH = 1;
6385
+ */
6386
+ MatchType$1[MatchType$1["INPUT_VALUE_HASH"] = 1] = "INPUT_VALUE_HASH";
6387
+ /**
6388
+ * @generated from protobuf enum value: MATCH_TYPE_INPUT_VALUE_HASH_REDUCED_SCHEMA = 2;
6389
+ */
6390
+ MatchType$1[MatchType$1["INPUT_VALUE_HASH_REDUCED_SCHEMA"] = 2] = "INPUT_VALUE_HASH_REDUCED_SCHEMA";
6391
+ /**
6392
+ * @generated from protobuf enum value: MATCH_TYPE_INPUT_SCHEMA_HASH = 3;
6393
+ */
6394
+ MatchType$1[MatchType$1["INPUT_SCHEMA_HASH"] = 3] = "INPUT_SCHEMA_HASH";
6395
+ /**
6396
+ * @generated from protobuf enum value: MATCH_TYPE_INPUT_SCHEMA_HASH_REDUCED_SCHEMA = 4;
6397
+ */
6398
+ MatchType$1[MatchType$1["INPUT_SCHEMA_HASH_REDUCED_SCHEMA"] = 4] = "INPUT_SCHEMA_HASH_REDUCED_SCHEMA";
6399
+ /**
6400
+ * @generated from protobuf enum value: MATCH_TYPE_FUZZY = 5;
6401
+ */
6402
+ MatchType$1[MatchType$1["FUZZY"] = 5] = "FUZZY";
6403
+ /**
6404
+ * @generated from protobuf enum value: MATCH_TYPE_FALLBACK = 6;
6405
+ */
6406
+ MatchType$1[MatchType$1["FALLBACK"] = 6] = "FALLBACK";
6407
+ return MatchType$1;
6408
+ }({});
6353
6409
  var Span$Type = class extends import_commonjs$6.MessageType {
6354
6410
  constructor() {
6355
6411
  super("tusk.drift.core.v1.Span", [
@@ -6996,6 +7052,157 @@ var Trace$Type = class extends import_commonjs$6.MessageType {
6996
7052
  * @generated MessageType for protobuf message tusk.drift.core.v1.Trace
6997
7053
  */
6998
7054
  const Trace = new Trace$Type();
7055
+ var SimilarityCandidate$Type = class extends import_commonjs$6.MessageType {
7056
+ constructor() {
7057
+ super("tusk.drift.core.v1.SimilarityCandidate", [{
7058
+ no: 1,
7059
+ name: "span_id",
7060
+ kind: "scalar",
7061
+ T: 9
7062
+ }, {
7063
+ no: 2,
7064
+ name: "score",
7065
+ kind: "scalar",
7066
+ T: 2
7067
+ }]);
7068
+ }
7069
+ create(value) {
7070
+ const message = globalThis.Object.create(this.messagePrototype);
7071
+ message.spanId = "";
7072
+ message.score = 0;
7073
+ if (value !== void 0) (0, import_commonjs$6.reflectionMergePartial)(this, message, value);
7074
+ return message;
7075
+ }
7076
+ internalBinaryRead(reader, length, options, target) {
7077
+ let message = target ?? this.create(), end = reader.pos + length;
7078
+ while (reader.pos < end) {
7079
+ let [fieldNo, wireType] = reader.tag();
7080
+ switch (fieldNo) {
7081
+ case 1:
7082
+ message.spanId = reader.string();
7083
+ break;
7084
+ case 2:
7085
+ message.score = reader.float();
7086
+ break;
7087
+ default:
7088
+ let u = options.readUnknownField;
7089
+ if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
7090
+ let d = reader.skip(wireType);
7091
+ if (u !== false) (u === true ? import_commonjs$6.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
7092
+ }
7093
+ }
7094
+ return message;
7095
+ }
7096
+ internalBinaryWrite(message, writer, options) {
7097
+ if (message.spanId !== "") writer.tag(1, import_commonjs$6.WireType.LengthDelimited).string(message.spanId);
7098
+ if (message.score !== 0) writer.tag(2, import_commonjs$6.WireType.Bit32).float(message.score);
7099
+ let u = options.writeUnknownFields;
7100
+ if (u !== false) (u == true ? import_commonjs$6.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
7101
+ return writer;
7102
+ }
7103
+ };
7104
+ /**
7105
+ * @generated MessageType for protobuf message tusk.drift.core.v1.SimilarityCandidate
7106
+ */
7107
+ const SimilarityCandidate = new SimilarityCandidate$Type();
7108
+ var MatchLevel$Type = class extends import_commonjs$6.MessageType {
7109
+ constructor() {
7110
+ super("tusk.drift.core.v1.MatchLevel", [
7111
+ {
7112
+ no: 1,
7113
+ name: "match_type",
7114
+ kind: "enum",
7115
+ T: () => [
7116
+ "tusk.drift.core.v1.MatchType",
7117
+ MatchType,
7118
+ "MATCH_TYPE_"
7119
+ ]
7120
+ },
7121
+ {
7122
+ no: 2,
7123
+ name: "match_scope",
7124
+ kind: "enum",
7125
+ T: () => [
7126
+ "tusk.drift.core.v1.MatchScope",
7127
+ MatchScope,
7128
+ "MATCH_SCOPE_"
7129
+ ]
7130
+ },
7131
+ {
7132
+ no: 3,
7133
+ name: "match_description",
7134
+ kind: "scalar",
7135
+ T: 9
7136
+ },
7137
+ {
7138
+ no: 4,
7139
+ name: "similarity_score",
7140
+ kind: "scalar",
7141
+ opt: true,
7142
+ T: 2
7143
+ },
7144
+ {
7145
+ no: 5,
7146
+ name: "top_candidates",
7147
+ kind: "message",
7148
+ repeat: 2,
7149
+ T: () => SimilarityCandidate
7150
+ }
7151
+ ]);
7152
+ }
7153
+ create(value) {
7154
+ const message = globalThis.Object.create(this.messagePrototype);
7155
+ message.matchType = 0;
7156
+ message.matchScope = 0;
7157
+ message.matchDescription = "";
7158
+ message.topCandidates = [];
7159
+ if (value !== void 0) (0, import_commonjs$6.reflectionMergePartial)(this, message, value);
7160
+ return message;
7161
+ }
7162
+ internalBinaryRead(reader, length, options, target) {
7163
+ let message = target ?? this.create(), end = reader.pos + length;
7164
+ while (reader.pos < end) {
7165
+ let [fieldNo, wireType] = reader.tag();
7166
+ switch (fieldNo) {
7167
+ case 1:
7168
+ message.matchType = reader.int32();
7169
+ break;
7170
+ case 2:
7171
+ message.matchScope = reader.int32();
7172
+ break;
7173
+ case 3:
7174
+ message.matchDescription = reader.string();
7175
+ break;
7176
+ case 4:
7177
+ message.similarityScore = reader.float();
7178
+ break;
7179
+ case 5:
7180
+ message.topCandidates.push(SimilarityCandidate.internalBinaryRead(reader, reader.uint32(), options));
7181
+ break;
7182
+ default:
7183
+ let u = options.readUnknownField;
7184
+ if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
7185
+ let d = reader.skip(wireType);
7186
+ if (u !== false) (u === true ? import_commonjs$6.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
7187
+ }
7188
+ }
7189
+ return message;
7190
+ }
7191
+ internalBinaryWrite(message, writer, options) {
7192
+ if (message.matchType !== 0) writer.tag(1, import_commonjs$6.WireType.Varint).int32(message.matchType);
7193
+ if (message.matchScope !== 0) writer.tag(2, import_commonjs$6.WireType.Varint).int32(message.matchScope);
7194
+ if (message.matchDescription !== "") writer.tag(3, import_commonjs$6.WireType.LengthDelimited).string(message.matchDescription);
7195
+ if (message.similarityScore !== void 0) writer.tag(4, import_commonjs$6.WireType.Bit32).float(message.similarityScore);
7196
+ for (let i = 0; i < message.topCandidates.length; i++) SimilarityCandidate.internalBinaryWrite(message.topCandidates[i], writer.tag(5, import_commonjs$6.WireType.LengthDelimited).fork(), options).join();
7197
+ let u = options.writeUnknownFields;
7198
+ if (u !== false) (u == true ? import_commonjs$6.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
7199
+ return writer;
7200
+ }
7201
+ };
7202
+ /**
7203
+ * @generated MessageType for protobuf message tusk.drift.core.v1.MatchLevel
7204
+ */
7205
+ const MatchLevel = new MatchLevel$Type();
6999
7206
 
7000
7207
  //#endregion
7001
7208
  //#region src/core/utils/protobufUtils.ts
@@ -7057,6 +7264,50 @@ function valueToProtobufValue(value) {
7057
7264
  stringValue: String(value)
7058
7265
  } });
7059
7266
  }
7267
+ /**
7268
+ * Human-readable labels for MatchType enum values
7269
+ */
7270
+ const MATCH_TYPE_LABELS = {
7271
+ [MatchType.UNSPECIFIED]: "UNSPECIFIED",
7272
+ [MatchType.INPUT_VALUE_HASH]: "INPUT_VALUE_HASH",
7273
+ [MatchType.INPUT_VALUE_HASH_REDUCED_SCHEMA]: "INPUT_VALUE_HASH_REDUCED_SCHEMA",
7274
+ [MatchType.INPUT_SCHEMA_HASH]: "INPUT_SCHEMA_HASH",
7275
+ [MatchType.INPUT_SCHEMA_HASH_REDUCED_SCHEMA]: "INPUT_SCHEMA_HASH_REDUCED_SCHEMA",
7276
+ [MatchType.FUZZY]: "FUZZY",
7277
+ [MatchType.FALLBACK]: "FALLBACK"
7278
+ };
7279
+ /**
7280
+ * Human-readable labels for MatchScope enum values
7281
+ */
7282
+ const MATCH_SCOPE_LABELS = {
7283
+ [MatchScope.UNSPECIFIED]: "UNSPECIFIED",
7284
+ [MatchScope.TRACE]: "TRACE",
7285
+ [MatchScope.GLOBAL]: "GLOBAL"
7286
+ };
7287
+ /**
7288
+ * Converts a MatchType enum to a human-readable label
7289
+ */
7290
+ function getMatchTypeLabel(matchType) {
7291
+ return MATCH_TYPE_LABELS[matchType] ?? `UNKNOWN(${matchType})`;
7292
+ }
7293
+ /**
7294
+ * Converts a MatchScope enum to a human-readable label
7295
+ */
7296
+ function getMatchScopeLabel(matchScope) {
7297
+ return MATCH_SCOPE_LABELS[matchScope] ?? `UNKNOWN(${matchScope})`;
7298
+ }
7299
+ /**
7300
+ * Formats a matchLevel object as a concise, readable string for logging
7301
+ */
7302
+ function formatMatchLevelForLog(matchLevel) {
7303
+ if (!matchLevel) return "No match level info";
7304
+ const matchType = matchLevel.matchType ?? MatchType.UNSPECIFIED;
7305
+ const matchScope = matchLevel.matchScope ?? MatchScope.UNSPECIFIED;
7306
+ let result = `[${getMatchTypeLabel(matchType)}] scope=${getMatchScopeLabel(matchScope)}`;
7307
+ if (matchLevel.matchDescription) result += ` - "${matchLevel.matchDescription}"`;
7308
+ if (matchLevel.similarityScore !== void 0) result += ` (score: ${matchLevel.similarityScore})`;
7309
+ return result;
7310
+ }
7060
7311
 
7061
7312
  //#endregion
7062
7313
  //#region src/core/utils/OriginalGlobalUtils.ts
@@ -8324,7 +8575,7 @@ async function findMockResponseAsync({ mockRequestData, tuskDrift, inputValueSch
8324
8575
  return null;
8325
8576
  }
8326
8577
  const responseBody = mockResponse.response?.response?.body;
8327
- logger.debug(`Found ${outboundSpan.traceId} mock response:`, responseBody, { timestamp: mockResponse.response?.timestamp });
8578
+ logger.debug(`Found ${outboundSpan.traceId} mock response:`);
8328
8579
  if (mockResponse.response?.timestamp) DateTracker.updateLatestTimestamp(replayTraceId || "", mockResponse.response.timestamp);
8329
8580
  return { result: responseBody };
8330
8581
  } catch (error) {
@@ -8346,7 +8597,7 @@ function findMockResponseSync({ mockRequestData, tuskDrift, inputValueSchemaMerg
8346
8597
  return null;
8347
8598
  }
8348
8599
  const responseBody = mockResponse.response?.response?.body;
8349
- logger.debug(`Found ${outboundSpan.traceId} mock response and timestamp:`, responseBody, { timestamp: mockResponse.response?.timestamp });
8600
+ logger.debug(`Found ${outboundSpan.traceId} mock response:`);
8350
8601
  if (mockResponse.response?.timestamp) DateTracker.updateLatestTimestamp(replayTraceId || "", mockResponse.response.timestamp);
8351
8602
  return { result: responseBody };
8352
8603
  } catch (error) {
@@ -9970,7 +10221,7 @@ var require_commonjs$1 = /* @__PURE__ */ __commonJS({ "node_modules/@protobuf-ts
9970
10221
  }) });
9971
10222
 
9972
10223
  //#endregion
9973
- //#region node_modules/@use-tusk/drift-schemas/dist/span_export_service-CmkFvTqD.js
10224
+ //#region node_modules/@use-tusk/drift-schemas/dist/span_export_service-RmRqNxn1.js
9974
10225
  var import_commonjs$4 = /* @__PURE__ */ __toESM(require_commonjs$1(), 1);
9975
10226
  var import_commonjs$5 = /* @__PURE__ */ __toESM(require_commonjs$2(), 1);
9976
10227
  var ExportSpansRequest$Type = class extends import_commonjs$5.MessageType {
@@ -33466,7 +33717,7 @@ var require_src = /* @__PURE__ */ __commonJS({ "node_modules/@opentelemetry/sdk-
33466
33717
  //#endregion
33467
33718
  //#region package.json
33468
33719
  var import_src$1 = /* @__PURE__ */ __toESM(require_src(), 1);
33469
- var version = "0.1.25";
33720
+ var version = "0.1.27";
33470
33721
 
33471
33722
  //#endregion
33472
33723
  //#region src/version.ts
@@ -33474,10 +33725,30 @@ const SDK_VERSION = version;
33474
33725
  const MIN_CLI_VERSION = "0.1.0";
33475
33726
 
33476
33727
  //#endregion
33477
- //#region node_modules/@use-tusk/drift-schemas/dist/communication-BY2KZhrg.js
33728
+ //#region node_modules/@use-tusk/drift-schemas/dist/communication-GAvDDkJW.js
33478
33729
  var import_commonjs = /* @__PURE__ */ __toESM(require_commonjs$1(), 1);
33479
33730
  var import_commonjs$1 = /* @__PURE__ */ __toESM(require_commonjs$2(), 1);
33480
33731
  /**
33732
+ * SDK runtime environment
33733
+ *
33734
+ * @generated from protobuf enum tusk.drift.core.v1.Runtime
33735
+ */
33736
+ let Runtime = /* @__PURE__ */ function(Runtime$1) {
33737
+ /**
33738
+ * @generated from protobuf enum value: RUNTIME_UNSPECIFIED = 0;
33739
+ */
33740
+ Runtime$1[Runtime$1["UNSPECIFIED"] = 0] = "UNSPECIFIED";
33741
+ /**
33742
+ * @generated from protobuf enum value: RUNTIME_NODE = 1;
33743
+ */
33744
+ Runtime$1[Runtime$1["NODE"] = 1] = "NODE";
33745
+ /**
33746
+ * @generated from protobuf enum value: RUNTIME_PYTHON = 2;
33747
+ */
33748
+ Runtime$1[Runtime$1["PYTHON"] = 2] = "PYTHON";
33749
+ return Runtime$1;
33750
+ }({});
33751
+ /**
33481
33752
  * @generated from protobuf enum tusk.drift.core.v1.MessageType
33482
33753
  */
33483
33754
  let MessageType$1 = /* @__PURE__ */ function(MessageType$2$1) {
@@ -33505,6 +33776,10 @@ let MessageType$1 = /* @__PURE__ */ function(MessageType$2$1) {
33505
33776
  * @generated from protobuf enum value: MESSAGE_TYPE_ENV_VAR_REQUEST = 5;
33506
33777
  */
33507
33778
  MessageType$2$1[MessageType$2$1["ENV_VAR_REQUEST"] = 5] = "ENV_VAR_REQUEST";
33779
+ /**
33780
+ * @generated from protobuf enum value: MESSAGE_TYPE_SET_TIME_TRAVEL = 6;
33781
+ */
33782
+ MessageType$2$1[MessageType$2$1["SET_TIME_TRAVEL"] = 6] = "SET_TIME_TRAVEL";
33508
33783
  return MessageType$2$1;
33509
33784
  }({});
33510
33785
  var ConnectRequest$Type = class extends import_commonjs$1.MessageType {
@@ -33533,6 +33808,16 @@ var ConnectRequest$Type = class extends import_commonjs$1.MessageType {
33533
33808
  name: "metadata",
33534
33809
  kind: "message",
33535
33810
  T: () => Struct
33811
+ },
33812
+ {
33813
+ no: 5,
33814
+ name: "runtime",
33815
+ kind: "enum",
33816
+ T: () => [
33817
+ "tusk.drift.core.v1.Runtime",
33818
+ Runtime,
33819
+ "RUNTIME_"
33820
+ ]
33536
33821
  }
33537
33822
  ]);
33538
33823
  }
@@ -33541,6 +33826,7 @@ var ConnectRequest$Type = class extends import_commonjs$1.MessageType {
33541
33826
  message.serviceId = "";
33542
33827
  message.sdkVersion = "";
33543
33828
  message.minCliVersion = "";
33829
+ message.runtime = 0;
33544
33830
  if (value !== void 0) (0, import_commonjs$1.reflectionMergePartial)(this, message, value);
33545
33831
  return message;
33546
33832
  }
@@ -33561,6 +33847,9 @@ var ConnectRequest$Type = class extends import_commonjs$1.MessageType {
33561
33847
  case 4:
33562
33848
  message.metadata = Struct.internalBinaryRead(reader, reader.uint32(), options, message.metadata);
33563
33849
  break;
33850
+ case 5:
33851
+ message.runtime = reader.int32();
33852
+ break;
33564
33853
  default:
33565
33854
  let u = options.readUnknownField;
33566
33855
  if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
@@ -33575,6 +33864,7 @@ var ConnectRequest$Type = class extends import_commonjs$1.MessageType {
33575
33864
  if (message.sdkVersion !== "") writer.tag(2, import_commonjs$1.WireType.LengthDelimited).string(message.sdkVersion);
33576
33865
  if (message.minCliVersion !== "") writer.tag(3, import_commonjs$1.WireType.LengthDelimited).string(message.minCliVersion);
33577
33866
  if (message.metadata) Struct.internalBinaryWrite(message.metadata, writer.tag(4, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
33867
+ if (message.runtime !== 0) writer.tag(5, import_commonjs$1.WireType.Varint).int32(message.runtime);
33578
33868
  let u = options.writeUnknownFields;
33579
33869
  if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
33580
33870
  return writer;
@@ -33816,6 +34106,12 @@ var GetMockResponse$Type = class extends import_commonjs$1.MessageType {
33816
34106
  name: "matched_at",
33817
34107
  kind: "message",
33818
34108
  T: () => Timestamp
34109
+ },
34110
+ {
34111
+ no: 9,
34112
+ name: "match_level",
34113
+ kind: "message",
34114
+ T: () => MatchLevel
33819
34115
  }
33820
34116
  ]);
33821
34117
  }
@@ -33858,6 +34154,9 @@ var GetMockResponse$Type = class extends import_commonjs$1.MessageType {
33858
34154
  case 8:
33859
34155
  message.matchedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.matchedAt);
33860
34156
  break;
34157
+ case 9:
34158
+ message.matchLevel = MatchLevel.internalBinaryRead(reader, reader.uint32(), options, message.matchLevel);
34159
+ break;
33861
34160
  default:
33862
34161
  let u = options.readUnknownField;
33863
34162
  if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
@@ -33876,6 +34175,7 @@ var GetMockResponse$Type = class extends import_commonjs$1.MessageType {
33876
34175
  if (message.errorCode !== "") writer.tag(6, import_commonjs$1.WireType.LengthDelimited).string(message.errorCode);
33877
34176
  if (message.matchedSpanId !== "") writer.tag(7, import_commonjs$1.WireType.LengthDelimited).string(message.matchedSpanId);
33878
34177
  if (message.matchedAt) Timestamp.internalBinaryWrite(message.matchedAt, writer.tag(8, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34178
+ if (message.matchLevel) MatchLevel.internalBinaryWrite(message.matchLevel, writer.tag(9, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
33879
34179
  let u = options.writeUnknownFields;
33880
34180
  if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
33881
34181
  return writer;
@@ -33938,6 +34238,13 @@ var SDKMessage$Type = class extends import_commonjs$1.MessageType {
33938
34238
  kind: "message",
33939
34239
  oneof: "payload",
33940
34240
  T: () => EnvVarRequest
34241
+ },
34242
+ {
34243
+ no: 8,
34244
+ name: "set_time_travel_response",
34245
+ kind: "message",
34246
+ oneof: "payload",
34247
+ T: () => SetTimeTravelResponse
33941
34248
  }
33942
34249
  ]);
33943
34250
  }
@@ -33990,6 +34297,12 @@ var SDKMessage$Type = class extends import_commonjs$1.MessageType {
33990
34297
  envVarRequest: EnvVarRequest.internalBinaryRead(reader, reader.uint32(), options, message.payload.envVarRequest)
33991
34298
  };
33992
34299
  break;
34300
+ case 8:
34301
+ message.payload = {
34302
+ oneofKind: "setTimeTravelResponse",
34303
+ setTimeTravelResponse: SetTimeTravelResponse.internalBinaryRead(reader, reader.uint32(), options, message.payload.setTimeTravelResponse)
34304
+ };
34305
+ break;
33993
34306
  default:
33994
34307
  let u = options.readUnknownField;
33995
34308
  if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
@@ -34007,6 +34320,7 @@ var SDKMessage$Type = class extends import_commonjs$1.MessageType {
34007
34320
  if (message.payload.oneofKind === "sendInboundSpanForReplayRequest") SendInboundSpanForReplayRequest.internalBinaryWrite(message.payload.sendInboundSpanForReplayRequest, writer.tag(5, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34008
34321
  if (message.payload.oneofKind === "sendAlertRequest") SendAlertRequest.internalBinaryWrite(message.payload.sendAlertRequest, writer.tag(6, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34009
34322
  if (message.payload.oneofKind === "envVarRequest") EnvVarRequest.internalBinaryWrite(message.payload.envVarRequest, writer.tag(7, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34323
+ if (message.payload.oneofKind === "setTimeTravelResponse") SetTimeTravelResponse.internalBinaryWrite(message.payload.setTimeTravelResponse, writer.tag(8, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34010
34324
  let u = options.writeUnknownFields;
34011
34325
  if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
34012
34326
  return writer;
@@ -34062,6 +34376,13 @@ var CLIMessage$Type = class extends import_commonjs$1.MessageType {
34062
34376
  kind: "message",
34063
34377
  oneof: "payload",
34064
34378
  T: () => EnvVarResponse
34379
+ },
34380
+ {
34381
+ no: 7,
34382
+ name: "set_time_travel_request",
34383
+ kind: "message",
34384
+ oneof: "payload",
34385
+ T: () => SetTimeTravelRequest
34065
34386
  }
34066
34387
  ]);
34067
34388
  }
@@ -34108,6 +34429,12 @@ var CLIMessage$Type = class extends import_commonjs$1.MessageType {
34108
34429
  envVarResponse: EnvVarResponse.internalBinaryRead(reader, reader.uint32(), options, message.payload.envVarResponse)
34109
34430
  };
34110
34431
  break;
34432
+ case 7:
34433
+ message.payload = {
34434
+ oneofKind: "setTimeTravelRequest",
34435
+ setTimeTravelRequest: SetTimeTravelRequest.internalBinaryRead(reader, reader.uint32(), options, message.payload.setTimeTravelRequest)
34436
+ };
34437
+ break;
34111
34438
  default:
34112
34439
  let u = options.readUnknownField;
34113
34440
  if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
@@ -34124,6 +34451,7 @@ var CLIMessage$Type = class extends import_commonjs$1.MessageType {
34124
34451
  if (message.payload.oneofKind === "getMockResponse") GetMockResponse.internalBinaryWrite(message.payload.getMockResponse, writer.tag(4, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34125
34452
  if (message.payload.oneofKind === "sendInboundSpanForReplayResponse") SendInboundSpanForReplayResponse.internalBinaryWrite(message.payload.sendInboundSpanForReplayResponse, writer.tag(5, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34126
34453
  if (message.payload.oneofKind === "envVarResponse") EnvVarResponse.internalBinaryWrite(message.payload.envVarResponse, writer.tag(6, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34454
+ if (message.payload.oneofKind === "setTimeTravelRequest") SetTimeTravelRequest.internalBinaryWrite(message.payload.setTimeTravelRequest, writer.tag(7, import_commonjs$1.WireType.LengthDelimited).fork(), options).join();
34127
34455
  let u = options.writeUnknownFields;
34128
34456
  if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
34129
34457
  return writer;
@@ -34530,6 +34858,126 @@ var EnvVarResponse$Type = class extends import_commonjs$1.MessageType {
34530
34858
  * @generated MessageType for protobuf message tusk.drift.core.v1.EnvVarResponse
34531
34859
  */
34532
34860
  const EnvVarResponse = new EnvVarResponse$Type();
34861
+ var SetTimeTravelRequest$Type = class extends import_commonjs$1.MessageType {
34862
+ constructor() {
34863
+ super("tusk.drift.core.v1.SetTimeTravelRequest", [
34864
+ {
34865
+ no: 1,
34866
+ name: "timestamp_seconds",
34867
+ kind: "scalar",
34868
+ T: 1
34869
+ },
34870
+ {
34871
+ no: 2,
34872
+ name: "trace_id",
34873
+ kind: "scalar",
34874
+ T: 9
34875
+ },
34876
+ {
34877
+ no: 3,
34878
+ name: "timestamp_source",
34879
+ kind: "scalar",
34880
+ T: 9
34881
+ }
34882
+ ]);
34883
+ }
34884
+ create(value) {
34885
+ const message = globalThis.Object.create(this.messagePrototype);
34886
+ message.timestampSeconds = 0;
34887
+ message.traceId = "";
34888
+ message.timestampSource = "";
34889
+ if (value !== void 0) (0, import_commonjs$1.reflectionMergePartial)(this, message, value);
34890
+ return message;
34891
+ }
34892
+ internalBinaryRead(reader, length, options, target) {
34893
+ let message = target ?? this.create(), end = reader.pos + length;
34894
+ while (reader.pos < end) {
34895
+ let [fieldNo, wireType] = reader.tag();
34896
+ switch (fieldNo) {
34897
+ case 1:
34898
+ message.timestampSeconds = reader.double();
34899
+ break;
34900
+ case 2:
34901
+ message.traceId = reader.string();
34902
+ break;
34903
+ case 3:
34904
+ message.timestampSource = reader.string();
34905
+ break;
34906
+ default:
34907
+ let u = options.readUnknownField;
34908
+ if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
34909
+ let d = reader.skip(wireType);
34910
+ if (u !== false) (u === true ? import_commonjs$1.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
34911
+ }
34912
+ }
34913
+ return message;
34914
+ }
34915
+ internalBinaryWrite(message, writer, options) {
34916
+ if (message.timestampSeconds !== 0) writer.tag(1, import_commonjs$1.WireType.Bit64).double(message.timestampSeconds);
34917
+ if (message.traceId !== "") writer.tag(2, import_commonjs$1.WireType.LengthDelimited).string(message.traceId);
34918
+ if (message.timestampSource !== "") writer.tag(3, import_commonjs$1.WireType.LengthDelimited).string(message.timestampSource);
34919
+ let u = options.writeUnknownFields;
34920
+ if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
34921
+ return writer;
34922
+ }
34923
+ };
34924
+ /**
34925
+ * @generated MessageType for protobuf message tusk.drift.core.v1.SetTimeTravelRequest
34926
+ */
34927
+ const SetTimeTravelRequest = new SetTimeTravelRequest$Type();
34928
+ var SetTimeTravelResponse$Type = class extends import_commonjs$1.MessageType {
34929
+ constructor() {
34930
+ super("tusk.drift.core.v1.SetTimeTravelResponse", [{
34931
+ no: 1,
34932
+ name: "success",
34933
+ kind: "scalar",
34934
+ T: 8
34935
+ }, {
34936
+ no: 2,
34937
+ name: "error",
34938
+ kind: "scalar",
34939
+ T: 9
34940
+ }]);
34941
+ }
34942
+ create(value) {
34943
+ const message = globalThis.Object.create(this.messagePrototype);
34944
+ message.success = false;
34945
+ message.error = "";
34946
+ if (value !== void 0) (0, import_commonjs$1.reflectionMergePartial)(this, message, value);
34947
+ return message;
34948
+ }
34949
+ internalBinaryRead(reader, length, options, target) {
34950
+ let message = target ?? this.create(), end = reader.pos + length;
34951
+ while (reader.pos < end) {
34952
+ let [fieldNo, wireType] = reader.tag();
34953
+ switch (fieldNo) {
34954
+ case 1:
34955
+ message.success = reader.bool();
34956
+ break;
34957
+ case 2:
34958
+ message.error = reader.string();
34959
+ break;
34960
+ default:
34961
+ let u = options.readUnknownField;
34962
+ if (u === "throw") throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
34963
+ let d = reader.skip(wireType);
34964
+ if (u !== false) (u === true ? import_commonjs$1.UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
34965
+ }
34966
+ }
34967
+ return message;
34968
+ }
34969
+ internalBinaryWrite(message, writer, options) {
34970
+ if (message.success !== false) writer.tag(1, import_commonjs$1.WireType.Varint).bool(message.success);
34971
+ if (message.error !== "") writer.tag(2, import_commonjs$1.WireType.LengthDelimited).string(message.error);
34972
+ let u = options.writeUnknownFields;
34973
+ if (u !== false) (u == true ? import_commonjs$1.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
34974
+ return writer;
34975
+ }
34976
+ };
34977
+ /**
34978
+ * @generated MessageType for protobuf message tusk.drift.core.v1.SetTimeTravelResponse
34979
+ */
34980
+ const SetTimeTravelResponse = new SetTimeTravelResponse$Type();
34533
34981
  /**
34534
34982
  * @generated ServiceType for protobuf service tusk.drift.core.v1.MockService
34535
34983
  */
@@ -34606,7 +35054,8 @@ var ProtobufCommunicator = class ProtobufCommunicator {
34606
35054
  const connectRequest = ConnectRequest.create({
34607
35055
  serviceId,
34608
35056
  sdkVersion: SDK_VERSION,
34609
- minCliVersion: MIN_CLI_VERSION
35057
+ minCliVersion: MIN_CLI_VERSION,
35058
+ runtime: Runtime.NODE
34610
35059
  });
34611
35060
  const sdkMessage = SDKMessage.create({
34612
35061
  type: MessageType$1.SDK_CONNECT,
@@ -34941,7 +35390,7 @@ var ProtobufCommunicator = class ProtobufCommunicator {
34941
35390
  if (struct.fields && struct.fields["response"]) {
34942
35391
  const responseValue = Value.toJson(struct.fields["response"]);
34943
35392
  if (responseValue) {
34944
- logger.debug("[ProtobufCommunicator] Extracted response data:", JSON.stringify(responseValue, null, 2));
35393
+ logger.debug("[ProtobufCommunicator] Extracted response data:", JSON.stringify(responseValue, null, 2), "\nMatch level:", formatMatchLevelForLog(mockResponse.matchLevel));
34945
35394
  return responseValue;
34946
35395
  }
34947
35396
  }
@@ -35412,7 +35861,7 @@ var TuskDriftCore = class TuskDriftCore {
35412
35861
  logger.error("Failed to send inbound replay span:", e);
35413
35862
  }
35414
35863
  }
35415
- createMockRequestCore(mockRequest) {
35864
+ createMockRequestCore() {
35416
35865
  if (!this.communicator || this.mode !== TuskDriftMode.REPLAY) {
35417
35866
  logger.error("Cannot request mock: not in replay mode or no CLI connection", this.mode, this.communicator);
35418
35867
  return {
@@ -35427,7 +35876,7 @@ var TuskDriftCore = class TuskDriftCore {
35427
35876
  logger.debug("Waiting for CLI connection to be established");
35428
35877
  await this.cliConnectionPromise;
35429
35878
  }
35430
- const mockRequestCore = this.createMockRequestCore(mockRequest);
35879
+ const mockRequestCore = this.createMockRequestCore();
35431
35880
  if (mockRequestCore) return mockRequestCore;
35432
35881
  return this.requestMockFromCLIAsync(mockRequest);
35433
35882
  }
@@ -35441,12 +35890,10 @@ var TuskDriftCore = class TuskDriftCore {
35441
35890
  }
35442
35891
  try {
35443
35892
  logger.debug("Sending protobuf request to CLI (async)", JSON.stringify(mockRequest, null, 2));
35444
- const response = await this.communicator.requestMockAsync({
35893
+ return await this.communicator.requestMockAsync({
35445
35894
  testId: mockRequest.testId,
35446
35895
  outboundSpan: mockRequest.outboundSpan
35447
35896
  });
35448
- logger.debug("Received protobuf response from CLI", JSON.stringify(response, null, 2));
35449
- return response;
35450
35897
  } catch (error) {
35451
35898
  logger.error("Error sending protobuf request to CLI:", error);
35452
35899
  return {
@@ -35460,7 +35907,7 @@ var TuskDriftCore = class TuskDriftCore {
35460
35907
  logger.error("Requesting sync mock but CLI is not ready yet");
35461
35908
  throw new Error("Requesting sync mock but CLI is not ready yet");
35462
35909
  }
35463
- const mockRequestCore = this.createMockRequestCore(mockRequest);
35910
+ const mockRequestCore = this.createMockRequestCore();
35464
35911
  if (mockRequestCore) return mockRequestCore;
35465
35912
  return this.requestMockFromCLISync(mockRequest);
35466
35913
  }
@@ -35474,12 +35921,10 @@ var TuskDriftCore = class TuskDriftCore {
35474
35921
  }
35475
35922
  try {
35476
35923
  logger.debug("Sending protobuf request to CLI (sync)", mockRequest);
35477
- const response = this.communicator.requestMockSync({
35924
+ return this.communicator.requestMockSync({
35478
35925
  testId: mockRequest.testId,
35479
35926
  outboundSpan: mockRequest.outboundSpan
35480
35927
  });
35481
- logger.debug("Received protobuf response from CLI", response);
35482
- return response;
35483
35928
  } catch (error) {
35484
35929
  logger.error("Error sending protobuf request to CLI:", error);
35485
35930
  return {