agent-inspect 1.0.3 → 1.1.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.
@@ -1182,136 +1182,6 @@ function warn(message, error) {
1182
1182
  }
1183
1183
  console.warn(`${base}: ${formatError(error).message}`);
1184
1184
  }
1185
- var storage = new async_hooks.AsyncLocalStorage();
1186
- function toPublicContext(ctx) {
1187
- return {
1188
- runId: ctx.runId,
1189
- runName: ctx.runName,
1190
- traceDir: ctx.traceDir,
1191
- silent: ctx.silent,
1192
- metadata: ctx.metadata
1193
- };
1194
- }
1195
- function invoke(fn) {
1196
- return new Promise((resolve, reject) => {
1197
- try {
1198
- Promise.resolve(fn()).then(resolve, reject);
1199
- } catch (e) {
1200
- reject(e);
1201
- }
1202
- });
1203
- }
1204
- function getCurrentContext() {
1205
- try {
1206
- const s = storage.getStore();
1207
- if (!s) return void 0;
1208
- return toPublicContext(s);
1209
- } catch {
1210
- return void 0;
1211
- }
1212
- }
1213
- function getCurrentRunId() {
1214
- try {
1215
- return storage.getStore()?.runId;
1216
- } catch {
1217
- return void 0;
1218
- }
1219
- }
1220
- function getCurrentRunName() {
1221
- try {
1222
- return storage.getStore()?.runName;
1223
- } catch {
1224
- return void 0;
1225
- }
1226
- }
1227
- function getCurrentStepId() {
1228
- try {
1229
- return storage.getStore()?.currentStepId;
1230
- } catch {
1231
- return void 0;
1232
- }
1233
- }
1234
- function getParentStepId() {
1235
- return getCurrentStepId();
1236
- }
1237
- function getCurrentDepth() {
1238
- try {
1239
- const d = storage.getStore()?.currentDepth;
1240
- return typeof d === "number" && Number.isFinite(d) ? d : 0;
1241
- } catch {
1242
- return 0;
1243
- }
1244
- }
1245
- function hasActiveContext() {
1246
- try {
1247
- return storage.getStore() !== void 0;
1248
- } catch {
1249
- return false;
1250
- }
1251
- }
1252
- function getTraceDirFromContext() {
1253
- try {
1254
- return storage.getStore()?.traceDir;
1255
- } catch {
1256
- return void 0;
1257
- }
1258
- }
1259
- function isSilentContext() {
1260
- try {
1261
- const s = storage.getStore();
1262
- return s ? s.silent : false;
1263
- } catch {
1264
- return false;
1265
- }
1266
- }
1267
- function runWithContext(context, fn) {
1268
- const runtime = {
1269
- runId: context.runId,
1270
- runName: context.runName,
1271
- traceDir: context.traceDir,
1272
- silent: context.silent,
1273
- metadata: context.metadata,
1274
- currentDepth: 0
1275
- };
1276
- return new Promise((resolve, reject) => {
1277
- storage.run(runtime, () => {
1278
- try {
1279
- Promise.resolve(fn()).then(resolve, reject);
1280
- } catch (e) {
1281
- reject(e);
1282
- }
1283
- });
1284
- });
1285
- }
1286
- function runWithStepContext(stepId, fn) {
1287
- let parent;
1288
- try {
1289
- parent = storage.getStore();
1290
- } catch {
1291
- parent = void 0;
1292
- }
1293
- if (!parent) {
1294
- return invoke(fn);
1295
- }
1296
- const derived = {
1297
- runId: parent.runId,
1298
- runName: parent.runName,
1299
- traceDir: parent.traceDir,
1300
- silent: parent.silent,
1301
- metadata: parent.metadata,
1302
- currentStepId: stepId,
1303
- currentDepth: parent.currentDepth + 1
1304
- };
1305
- return new Promise((resolve, reject) => {
1306
- storage.run(derived, () => {
1307
- try {
1308
- Promise.resolve(fn()).then(resolve, reject);
1309
- } catch (e) {
1310
- reject(e);
1311
- }
1312
- });
1313
- });
1314
- }
1315
1185
  function isRecord6(value) {
1316
1186
  return typeof value === "object" && value !== null && !Array.isArray(value);
1317
1187
  }
@@ -1393,12 +1263,20 @@ async function initializeTraceFile(runId, traceDir) {
1393
1263
  return void 0;
1394
1264
  }
1395
1265
  }
1266
+ function ensureEventWithinBounds(event) {
1267
+ const line = serializeEvent(event);
1268
+ if (line === "") return event;
1269
+ const bytes = Buffer.byteLength(line, "utf8");
1270
+ if (bytes <= DEFAULT_MAX_EVENT_BYTES) return event;
1271
+ return prepareTraceEventForDisk(event, resolveTraceSafetyOptions());
1272
+ }
1396
1273
  async function writeTraceEvent(event, traceDir) {
1397
- if (!validateEvent(event)) {
1274
+ const bounded = ensureEventWithinBounds(event);
1275
+ if (!validateEvent(bounded)) {
1398
1276
  warn("Skipped invalid trace event (validation failed)");
1399
1277
  return;
1400
1278
  }
1401
- const line = serializeEvent(event);
1279
+ const line = serializeEvent(bounded);
1402
1280
  if (line === "") {
1403
1281
  warn("Skipped trace event (serialization failed)");
1404
1282
  return;
@@ -1499,6 +1377,351 @@ function getRunIdFromTraceFileName(fileName) {
1499
1377
  return void 0;
1500
1378
  }
1501
1379
  }
1380
+
1381
+ // packages/core/src/trace-event-safety.ts
1382
+ var DEFAULT_MAX_METADATA_VALUE_LENGTH = 2e3;
1383
+ var DEFAULT_MAX_PREVIEW_LENGTH = 500;
1384
+ var DEFAULT_MAX_EVENT_BYTES = 65536;
1385
+ function isRecord7(value) {
1386
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1387
+ }
1388
+ function isPreviewKey(key) {
1389
+ return key.toLowerCase().includes("preview");
1390
+ }
1391
+ function truncateString(value, maxLen) {
1392
+ if (maxLen <= 0) return "\u2026";
1393
+ if (value.length <= maxLen) return value;
1394
+ return `${value.slice(0, maxLen)}\u2026`;
1395
+ }
1396
+ function byteLength(text) {
1397
+ return Buffer.byteLength(text, "utf8");
1398
+ }
1399
+ function resolveTraceSafetyOptions(options) {
1400
+ const redact = options?.redact;
1401
+ let redactEnabled = true;
1402
+ let redactionRules;
1403
+ if (redact === false) {
1404
+ redactEnabled = false;
1405
+ } else if (redact === true || redact === void 0) {
1406
+ redactEnabled = true;
1407
+ } else if (isRecord7(redact)) {
1408
+ redactEnabled = true;
1409
+ redactionRules = redact.rules;
1410
+ }
1411
+ return {
1412
+ redactEnabled,
1413
+ redactionRules,
1414
+ maxMetadataValueLength: typeof options?.maxMetadataValueLength === "number" && Number.isFinite(options.maxMetadataValueLength) && options.maxMetadataValueLength >= 0 ? Math.floor(options.maxMetadataValueLength) : DEFAULT_MAX_METADATA_VALUE_LENGTH,
1415
+ maxPreviewLength: typeof options?.maxPreviewLength === "number" && Number.isFinite(options.maxPreviewLength) && options.maxPreviewLength >= 0 ? Math.floor(options.maxPreviewLength) : DEFAULT_MAX_PREVIEW_LENGTH,
1416
+ maxEventBytes: typeof options?.maxEventBytes === "number" && Number.isFinite(options.maxEventBytes) && options.maxEventBytes > 0 ? Math.floor(options.maxEventBytes) : DEFAULT_MAX_EVENT_BYTES
1417
+ };
1418
+ }
1419
+ function boundMetadataValue(key, value, opts, seen, depth) {
1420
+ if (depth > 32) return "[MaxDepth]";
1421
+ if (value === null || typeof value !== "object") {
1422
+ if (typeof value === "string") {
1423
+ const max = isPreviewKey(key) ? opts.maxPreviewLength : opts.maxMetadataValueLength;
1424
+ return truncateString(value, max);
1425
+ }
1426
+ return value;
1427
+ }
1428
+ if (seen.has(value)) return "[Circular]";
1429
+ seen.add(value);
1430
+ if (Array.isArray(value)) {
1431
+ const maxItems = 50;
1432
+ const out2 = value.slice(0, maxItems).map(
1433
+ (item, index) => boundMetadataValue(String(index), item, opts, seen, depth + 1)
1434
+ );
1435
+ if (value.length > maxItems) {
1436
+ out2.push(`\u2026(+${value.length - maxItems} more)`);
1437
+ }
1438
+ return out2;
1439
+ }
1440
+ const record = value;
1441
+ const out = {};
1442
+ for (const [k, v] of Object.entries(record)) {
1443
+ out[k] = boundMetadataValue(k, v, opts, seen, depth + 1);
1444
+ }
1445
+ return out;
1446
+ }
1447
+ function redactMetadata(metadata, opts) {
1448
+ if (!opts.redactEnabled) return { ...metadata };
1449
+ const redactor = new Redactor({ rules: opts.redactionRules });
1450
+ return redactor.redactRecord(metadata);
1451
+ }
1452
+ function prepareMetadataForDisk(metadata, opts) {
1453
+ try {
1454
+ const redacted = redactMetadata(metadata, opts);
1455
+ const seen = /* @__PURE__ */ new WeakSet();
1456
+ const bounded = boundMetadataValue(
1457
+ "metadata",
1458
+ redacted,
1459
+ opts,
1460
+ seen,
1461
+ 0
1462
+ );
1463
+ return isRecord7(bounded) ? bounded : {};
1464
+ } catch {
1465
+ return { truncated: true, reason: "metadataPreparationFailed" };
1466
+ }
1467
+ }
1468
+ function truncateErrorStack(event, maxLen) {
1469
+ if (event.event !== "run_completed" && event.event !== "step_completed") {
1470
+ return event;
1471
+ }
1472
+ if (!event.error?.stack || typeof event.error.stack !== "string") {
1473
+ return event;
1474
+ }
1475
+ return {
1476
+ ...event,
1477
+ error: {
1478
+ ...event.error,
1479
+ stack: truncateString(event.error.stack, maxLen)
1480
+ }
1481
+ };
1482
+ }
1483
+ function replaceMetadataWithTruncationMarker(event, originalApproxBytes) {
1484
+ const marker = {
1485
+ truncated: true,
1486
+ reason: "maxEventBytes",
1487
+ originalApproxBytes
1488
+ };
1489
+ if (event.event === "run_started") {
1490
+ return { ...event, metadata: marker };
1491
+ }
1492
+ if (event.event === "step_started") {
1493
+ return { ...event, metadata: marker };
1494
+ }
1495
+ return event;
1496
+ }
1497
+ function shrinkMetadataLimits(opts, factor) {
1498
+ return {
1499
+ ...opts,
1500
+ maxMetadataValueLength: Math.max(32, Math.floor(opts.maxMetadataValueLength * factor)),
1501
+ maxPreviewLength: Math.max(16, Math.floor(opts.maxPreviewLength * factor))
1502
+ };
1503
+ }
1504
+ function applyMetadataToEvent(event, metadata) {
1505
+ if (event.event === "run_started") {
1506
+ return { ...event, metadata };
1507
+ }
1508
+ if (event.event === "step_started") {
1509
+ return { ...event, metadata };
1510
+ }
1511
+ return event;
1512
+ }
1513
+ function eventHasMetadata(event) {
1514
+ return (event.event === "run_started" || event.event === "step_started") && event.metadata !== void 0;
1515
+ }
1516
+ function getEventMetadata(event) {
1517
+ if (event.event === "run_started" || event.event === "step_started") {
1518
+ return event.metadata;
1519
+ }
1520
+ return void 0;
1521
+ }
1522
+ function prepareTraceEventForDisk(event, opts) {
1523
+ try {
1524
+ let working = { ...event };
1525
+ const rawMetadata = getEventMetadata(working);
1526
+ if (rawMetadata !== void 0) {
1527
+ const safe = prepareMetadataForDisk(rawMetadata, opts);
1528
+ working = applyMetadataToEvent(working, safe);
1529
+ }
1530
+ let serialized = serializeEvent(working);
1531
+ if (serialized === "") {
1532
+ return working;
1533
+ }
1534
+ let bytes = byteLength(serialized);
1535
+ if (bytes <= opts.maxEventBytes) {
1536
+ return working;
1537
+ }
1538
+ if (rawMetadata !== void 0) {
1539
+ for (const factor of [0.5, 0.25, 0.1]) {
1540
+ const tighter = shrinkMetadataLimits(opts, factor);
1541
+ const shrunk = prepareMetadataForDisk(rawMetadata, tighter);
1542
+ working = applyMetadataToEvent(working, shrunk);
1543
+ serialized = serializeEvent(working);
1544
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1545
+ return working;
1546
+ }
1547
+ }
1548
+ working = replaceMetadataWithTruncationMarker(working, bytes);
1549
+ serialized = serializeEvent(working);
1550
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1551
+ return working;
1552
+ }
1553
+ }
1554
+ working = truncateErrorStack(working, Math.min(opts.maxMetadataValueLength, 500));
1555
+ serialized = serializeEvent(working);
1556
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1557
+ return working;
1558
+ }
1559
+ if (eventHasMetadata(working)) {
1560
+ working = replaceMetadataWithTruncationMarker(working, bytes);
1561
+ serialized = serializeEvent(working);
1562
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1563
+ return working;
1564
+ }
1565
+ if (working.event === "run_started") {
1566
+ const { metadata: _meta, ...rest } = working;
1567
+ working = rest;
1568
+ } else if (working.event === "step_started") {
1569
+ const { metadata: _meta, ...rest } = working;
1570
+ working = rest;
1571
+ }
1572
+ }
1573
+ return working;
1574
+ } catch {
1575
+ if (event.event === "run_started" || event.event === "step_started") {
1576
+ return applyMetadataToEvent(event, {
1577
+ truncated: true,
1578
+ reason: "prepareTraceEventFailed"
1579
+ });
1580
+ }
1581
+ return event;
1582
+ }
1583
+ }
1584
+
1585
+ // packages/core/src/context.ts
1586
+ var storage = new async_hooks.AsyncLocalStorage();
1587
+ function toPublicContext(ctx) {
1588
+ return {
1589
+ runId: ctx.runId,
1590
+ runName: ctx.runName,
1591
+ traceDir: ctx.traceDir,
1592
+ silent: ctx.silent,
1593
+ metadata: ctx.metadata
1594
+ };
1595
+ }
1596
+ function invoke(fn) {
1597
+ return new Promise((resolve, reject) => {
1598
+ try {
1599
+ Promise.resolve(fn()).then(resolve, reject);
1600
+ } catch (e) {
1601
+ reject(e);
1602
+ }
1603
+ });
1604
+ }
1605
+ function getCurrentContext() {
1606
+ try {
1607
+ const s = storage.getStore();
1608
+ if (!s) return void 0;
1609
+ return toPublicContext(s);
1610
+ } catch {
1611
+ return void 0;
1612
+ }
1613
+ }
1614
+ function getCurrentRunId() {
1615
+ try {
1616
+ return storage.getStore()?.runId;
1617
+ } catch {
1618
+ return void 0;
1619
+ }
1620
+ }
1621
+ function getCurrentRunName() {
1622
+ try {
1623
+ return storage.getStore()?.runName;
1624
+ } catch {
1625
+ return void 0;
1626
+ }
1627
+ }
1628
+ function getCurrentStepId() {
1629
+ try {
1630
+ return storage.getStore()?.currentStepId;
1631
+ } catch {
1632
+ return void 0;
1633
+ }
1634
+ }
1635
+ function getParentStepId() {
1636
+ return getCurrentStepId();
1637
+ }
1638
+ function getCurrentDepth() {
1639
+ try {
1640
+ const d = storage.getStore()?.currentDepth;
1641
+ return typeof d === "number" && Number.isFinite(d) ? d : 0;
1642
+ } catch {
1643
+ return 0;
1644
+ }
1645
+ }
1646
+ function hasActiveContext() {
1647
+ try {
1648
+ return storage.getStore() !== void 0;
1649
+ } catch {
1650
+ return false;
1651
+ }
1652
+ }
1653
+ function getTraceDirFromContext() {
1654
+ try {
1655
+ return storage.getStore()?.traceDir;
1656
+ } catch {
1657
+ return void 0;
1658
+ }
1659
+ }
1660
+ function isSilentContext() {
1661
+ try {
1662
+ const s = storage.getStore();
1663
+ return s ? s.silent : false;
1664
+ } catch {
1665
+ return false;
1666
+ }
1667
+ }
1668
+ function getTraceSafetyFromContext() {
1669
+ try {
1670
+ return storage.getStore()?.traceSafety;
1671
+ } catch {
1672
+ return void 0;
1673
+ }
1674
+ }
1675
+ function runWithContext(context, fn, traceSafety = resolveTraceSafetyOptions()) {
1676
+ const runtime = {
1677
+ runId: context.runId,
1678
+ runName: context.runName,
1679
+ traceDir: context.traceDir,
1680
+ silent: context.silent,
1681
+ metadata: context.metadata,
1682
+ traceSafety,
1683
+ currentDepth: 0
1684
+ };
1685
+ return new Promise((resolve, reject) => {
1686
+ storage.run(runtime, () => {
1687
+ try {
1688
+ Promise.resolve(fn()).then(resolve, reject);
1689
+ } catch (e) {
1690
+ reject(e);
1691
+ }
1692
+ });
1693
+ });
1694
+ }
1695
+ function runWithStepContext(stepId, fn) {
1696
+ let parent;
1697
+ try {
1698
+ parent = storage.getStore();
1699
+ } catch {
1700
+ parent = void 0;
1701
+ }
1702
+ if (!parent) {
1703
+ return invoke(fn);
1704
+ }
1705
+ const derived = {
1706
+ runId: parent.runId,
1707
+ runName: parent.runName,
1708
+ traceDir: parent.traceDir,
1709
+ silent: parent.silent,
1710
+ metadata: parent.metadata,
1711
+ traceSafety: parent.traceSafety,
1712
+ currentStepId: stepId,
1713
+ currentDepth: parent.currentDepth + 1
1714
+ };
1715
+ return new Promise((resolve, reject) => {
1716
+ storage.run(derived, () => {
1717
+ try {
1718
+ Promise.resolve(fn()).then(resolve, reject);
1719
+ } catch (e) {
1720
+ reject(e);
1721
+ }
1722
+ });
1723
+ });
1724
+ }
1502
1725
  function resolveTraceDir(options = {}) {
1503
1726
  if (typeof options.dir === "string" && options.dir.trim() !== "") {
1504
1727
  return options.dir.trim();
@@ -1763,7 +1986,7 @@ var KNOWN_EVENTS = /* @__PURE__ */ new Set([
1763
1986
  "step_started",
1764
1987
  "step_completed"
1765
1988
  ]);
1766
- function isRecord7(value) {
1989
+ function isRecord8(value) {
1767
1990
  return typeof value === "object" && value !== null && !Array.isArray(value);
1768
1991
  }
1769
1992
  function safeParse(line) {
@@ -1785,7 +2008,7 @@ async function isAgentInspectTrace(filePath) {
1785
2008
  if (trimmed === "") continue;
1786
2009
  const parsed = safeParse(trimmed);
1787
2010
  if (!parsed) continue;
1788
- if (!isRecord7(parsed)) continue;
2011
+ if (!isRecord8(parsed)) continue;
1789
2012
  checked += 1;
1790
2013
  if (isTraceEvent(parsed)) return true;
1791
2014
  const ev = parsed.event;
@@ -2543,6 +2766,7 @@ async function inspectRun(name, fn, options) {
2543
2766
  const runName = normalizeRunName(name);
2544
2767
  const runId = createRunId();
2545
2768
  const traceDir = resolveTraceDir({ dir: options?.traceDir });
2769
+ const traceSafety = resolveTraceSafetyOptions(options);
2546
2770
  const context = {
2547
2771
  runId,
2548
2772
  runName,
@@ -2566,7 +2790,10 @@ async function inspectRun(name, fn, options) {
2566
2790
  startTime,
2567
2791
  ...options?.metadata !== void 0 ? { metadata: options.metadata } : {}
2568
2792
  };
2569
- await writeTraceEvent(started, traceDir);
2793
+ await writeTraceEvent(
2794
+ prepareTraceEventForDisk(started, traceSafety),
2795
+ traceDir
2796
+ );
2570
2797
  });
2571
2798
  await safeInstrumentation("printRunStart", () => {
2572
2799
  printRunStart(runId, runName);
@@ -2590,7 +2817,10 @@ async function inspectRun(name, fn, options) {
2590
2817
  durationMs: durationMs2,
2591
2818
  error: formatted
2592
2819
  };
2593
- await writeTraceEvent(completed, traceDir);
2820
+ await writeTraceEvent(
2821
+ prepareTraceEventForDisk(completed, traceSafety),
2822
+ traceDir
2823
+ );
2594
2824
  });
2595
2825
  await safeInstrumentation("printRunComplete(error)", () => {
2596
2826
  printRunComplete(runName, runId, durationMs2, "error", printPath2);
@@ -2610,13 +2840,16 @@ async function inspectRun(name, fn, options) {
2610
2840
  endTime,
2611
2841
  durationMs
2612
2842
  };
2613
- await writeTraceEvent(completed, traceDir);
2843
+ await writeTraceEvent(
2844
+ prepareTraceEventForDisk(completed, traceSafety),
2845
+ traceDir
2846
+ );
2614
2847
  });
2615
2848
  await safeInstrumentation("printRunComplete(success)", () => {
2616
2849
  printRunComplete(runName, runId, durationMs, "success", printPath);
2617
2850
  });
2618
2851
  return result;
2619
- });
2852
+ }, traceSafety);
2620
2853
  }
2621
2854
 
2622
2855
  // packages/core/src/maybe-inspect-run.ts
@@ -2667,6 +2900,7 @@ async function stepImpl(name, fn, options) {
2667
2900
  const parentId = getParentStepId();
2668
2901
  const stepType = options?.type ?? "logic";
2669
2902
  const metadata = options?.metadata;
2903
+ const traceSafety = getTraceSafetyFromContext();
2670
2904
  const startTime = Date.now();
2671
2905
  await safeInstrumentation2("writeTraceEvent(step_started)", async () => {
2672
2906
  const started = {
@@ -2681,7 +2915,8 @@ async function stepImpl(name, fn, options) {
2681
2915
  startTime,
2682
2916
  ...metadata !== void 0 ? { metadata } : {}
2683
2917
  };
2684
- await writeTraceEvent(started, context.traceDir);
2918
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(started, traceSafety) : started;
2919
+ await writeTraceEvent(safe, context.traceDir);
2685
2920
  });
2686
2921
  await safeInstrumentation2("printStepStart", () => {
2687
2922
  printStepStart(stepName, renderDepth);
@@ -2707,7 +2942,8 @@ async function stepImpl(name, fn, options) {
2707
2942
  durationMs: durationMs2,
2708
2943
  error: formatted
2709
2944
  };
2710
- await writeTraceEvent(completed, context.traceDir);
2945
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(completed, traceSafety) : completed;
2946
+ await writeTraceEvent(safe, context.traceDir);
2711
2947
  });
2712
2948
  await safeInstrumentation2("printStepComplete(error)", () => {
2713
2949
  printStepComplete(stepName, durationMs2, "error", renderDepth);
@@ -2733,7 +2969,8 @@ async function stepImpl(name, fn, options) {
2733
2969
  endTime,
2734
2970
  durationMs
2735
2971
  };
2736
- await writeTraceEvent(completed, context.traceDir);
2972
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(completed, traceSafety) : completed;
2973
+ await writeTraceEvent(safe, context.traceDir);
2737
2974
  });
2738
2975
  await safeInstrumentation2("printStepComplete(success)", () => {
2739
2976
  printStepComplete(stepName, durationMs, "success", renderDepth);
@@ -3603,6 +3840,9 @@ function validateExport(result) {
3603
3840
  }
3604
3841
 
3605
3842
  exports.DEFAULT_LOG_INGEST_CONFIG = DEFAULT_LOG_INGEST_CONFIG;
3843
+ exports.DEFAULT_MAX_EVENT_BYTES = DEFAULT_MAX_EVENT_BYTES;
3844
+ exports.DEFAULT_MAX_METADATA_VALUE_LENGTH = DEFAULT_MAX_METADATA_VALUE_LENGTH;
3845
+ exports.DEFAULT_MAX_PREVIEW_LENGTH = DEFAULT_MAX_PREVIEW_LENGTH;
3606
3846
  exports.DEFAULT_REDACT_KEYS = DEFAULT_REDACT_KEYS;
3607
3847
  exports.DEFAULT_TRACE_DIR_NAME = DEFAULT_TRACE_DIR_NAME;
3608
3848
  exports.EXPORT_PAYLOAD_VERSION = EXPORT_PAYLOAD_VERSION;
@@ -3651,6 +3891,7 @@ exports.getParentStepId = getParentStepId;
3651
3891
  exports.getRunIdFromTraceFileName = getRunIdFromTraceFileName;
3652
3892
  exports.getTraceDirFromContext = getTraceDirFromContext;
3653
3893
  exports.getTraceFilePath = getTraceFilePath;
3894
+ exports.getTraceSafetyFromContext = getTraceSafetyFromContext;
3654
3895
  exports.hasActiveContext = hasActiveContext;
3655
3896
  exports.initializeTraceFile = initializeTraceFile;
3656
3897
  exports.inspectRun = inspectRun;
@@ -3672,6 +3913,8 @@ exports.observe = observe;
3672
3913
  exports.parseDuration = parseDuration;
3673
3914
  exports.parseLogLine = parseLogLine;
3674
3915
  exports.parseLogsToTrees = parseLogsToTrees;
3916
+ exports.prepareMetadataForDisk = prepareMetadataForDisk;
3917
+ exports.prepareTraceEventForDisk = prepareTraceEventForDisk;
3675
3918
  exports.printError = printError;
3676
3919
  exports.printFailedAt = printFailedAt;
3677
3920
  exports.printRunComplete = printRunComplete;
@@ -3687,6 +3930,7 @@ exports.renderRunTree = renderRunTree;
3687
3930
  exports.renderRunTrees = renderRunTrees;
3688
3931
  exports.renderStepLine = renderStepLine;
3689
3932
  exports.resolveTraceDir = resolveTraceDir;
3933
+ exports.resolveTraceSafetyOptions = resolveTraceSafetyOptions;
3690
3934
  exports.runWithContext = runWithContext;
3691
3935
  exports.runWithStepContext = runWithStepContext;
3692
3936
  exports.safeString = safeString2;