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.
@@ -1173,136 +1173,6 @@ function warn(message, error) {
1173
1173
  }
1174
1174
  console.warn(`${base}: ${formatError(error).message}`);
1175
1175
  }
1176
- var storage = new AsyncLocalStorage();
1177
- function toPublicContext(ctx) {
1178
- return {
1179
- runId: ctx.runId,
1180
- runName: ctx.runName,
1181
- traceDir: ctx.traceDir,
1182
- silent: ctx.silent,
1183
- metadata: ctx.metadata
1184
- };
1185
- }
1186
- function invoke(fn) {
1187
- return new Promise((resolve, reject) => {
1188
- try {
1189
- Promise.resolve(fn()).then(resolve, reject);
1190
- } catch (e) {
1191
- reject(e);
1192
- }
1193
- });
1194
- }
1195
- function getCurrentContext() {
1196
- try {
1197
- const s = storage.getStore();
1198
- if (!s) return void 0;
1199
- return toPublicContext(s);
1200
- } catch {
1201
- return void 0;
1202
- }
1203
- }
1204
- function getCurrentRunId() {
1205
- try {
1206
- return storage.getStore()?.runId;
1207
- } catch {
1208
- return void 0;
1209
- }
1210
- }
1211
- function getCurrentRunName() {
1212
- try {
1213
- return storage.getStore()?.runName;
1214
- } catch {
1215
- return void 0;
1216
- }
1217
- }
1218
- function getCurrentStepId() {
1219
- try {
1220
- return storage.getStore()?.currentStepId;
1221
- } catch {
1222
- return void 0;
1223
- }
1224
- }
1225
- function getParentStepId() {
1226
- return getCurrentStepId();
1227
- }
1228
- function getCurrentDepth() {
1229
- try {
1230
- const d = storage.getStore()?.currentDepth;
1231
- return typeof d === "number" && Number.isFinite(d) ? d : 0;
1232
- } catch {
1233
- return 0;
1234
- }
1235
- }
1236
- function hasActiveContext() {
1237
- try {
1238
- return storage.getStore() !== void 0;
1239
- } catch {
1240
- return false;
1241
- }
1242
- }
1243
- function getTraceDirFromContext() {
1244
- try {
1245
- return storage.getStore()?.traceDir;
1246
- } catch {
1247
- return void 0;
1248
- }
1249
- }
1250
- function isSilentContext() {
1251
- try {
1252
- const s = storage.getStore();
1253
- return s ? s.silent : false;
1254
- } catch {
1255
- return false;
1256
- }
1257
- }
1258
- function runWithContext(context, fn) {
1259
- const runtime = {
1260
- runId: context.runId,
1261
- runName: context.runName,
1262
- traceDir: context.traceDir,
1263
- silent: context.silent,
1264
- metadata: context.metadata,
1265
- currentDepth: 0
1266
- };
1267
- return new Promise((resolve, reject) => {
1268
- storage.run(runtime, () => {
1269
- try {
1270
- Promise.resolve(fn()).then(resolve, reject);
1271
- } catch (e) {
1272
- reject(e);
1273
- }
1274
- });
1275
- });
1276
- }
1277
- function runWithStepContext(stepId, fn) {
1278
- let parent;
1279
- try {
1280
- parent = storage.getStore();
1281
- } catch {
1282
- parent = void 0;
1283
- }
1284
- if (!parent) {
1285
- return invoke(fn);
1286
- }
1287
- const derived = {
1288
- runId: parent.runId,
1289
- runName: parent.runName,
1290
- traceDir: parent.traceDir,
1291
- silent: parent.silent,
1292
- metadata: parent.metadata,
1293
- currentStepId: stepId,
1294
- currentDepth: parent.currentDepth + 1
1295
- };
1296
- return new Promise((resolve, reject) => {
1297
- storage.run(derived, () => {
1298
- try {
1299
- Promise.resolve(fn()).then(resolve, reject);
1300
- } catch (e) {
1301
- reject(e);
1302
- }
1303
- });
1304
- });
1305
- }
1306
1176
  function isRecord6(value) {
1307
1177
  return typeof value === "object" && value !== null && !Array.isArray(value);
1308
1178
  }
@@ -1384,12 +1254,20 @@ async function initializeTraceFile(runId, traceDir) {
1384
1254
  return void 0;
1385
1255
  }
1386
1256
  }
1257
+ function ensureEventWithinBounds(event) {
1258
+ const line = serializeEvent(event);
1259
+ if (line === "") return event;
1260
+ const bytes = Buffer.byteLength(line, "utf8");
1261
+ if (bytes <= DEFAULT_MAX_EVENT_BYTES) return event;
1262
+ return prepareTraceEventForDisk(event, resolveTraceSafetyOptions());
1263
+ }
1387
1264
  async function writeTraceEvent(event, traceDir) {
1388
- if (!validateEvent(event)) {
1265
+ const bounded = ensureEventWithinBounds(event);
1266
+ if (!validateEvent(bounded)) {
1389
1267
  warn("Skipped invalid trace event (validation failed)");
1390
1268
  return;
1391
1269
  }
1392
- const line = serializeEvent(event);
1270
+ const line = serializeEvent(bounded);
1393
1271
  if (line === "") {
1394
1272
  warn("Skipped trace event (serialization failed)");
1395
1273
  return;
@@ -1490,6 +1368,351 @@ function getRunIdFromTraceFileName(fileName) {
1490
1368
  return void 0;
1491
1369
  }
1492
1370
  }
1371
+
1372
+ // packages/core/src/trace-event-safety.ts
1373
+ var DEFAULT_MAX_METADATA_VALUE_LENGTH = 2e3;
1374
+ var DEFAULT_MAX_PREVIEW_LENGTH = 500;
1375
+ var DEFAULT_MAX_EVENT_BYTES = 65536;
1376
+ function isRecord7(value) {
1377
+ return typeof value === "object" && value !== null && !Array.isArray(value);
1378
+ }
1379
+ function isPreviewKey(key) {
1380
+ return key.toLowerCase().includes("preview");
1381
+ }
1382
+ function truncateString(value, maxLen) {
1383
+ if (maxLen <= 0) return "\u2026";
1384
+ if (value.length <= maxLen) return value;
1385
+ return `${value.slice(0, maxLen)}\u2026`;
1386
+ }
1387
+ function byteLength(text) {
1388
+ return Buffer.byteLength(text, "utf8");
1389
+ }
1390
+ function resolveTraceSafetyOptions(options) {
1391
+ const redact = options?.redact;
1392
+ let redactEnabled = true;
1393
+ let redactionRules;
1394
+ if (redact === false) {
1395
+ redactEnabled = false;
1396
+ } else if (redact === true || redact === void 0) {
1397
+ redactEnabled = true;
1398
+ } else if (isRecord7(redact)) {
1399
+ redactEnabled = true;
1400
+ redactionRules = redact.rules;
1401
+ }
1402
+ return {
1403
+ redactEnabled,
1404
+ redactionRules,
1405
+ maxMetadataValueLength: typeof options?.maxMetadataValueLength === "number" && Number.isFinite(options.maxMetadataValueLength) && options.maxMetadataValueLength >= 0 ? Math.floor(options.maxMetadataValueLength) : DEFAULT_MAX_METADATA_VALUE_LENGTH,
1406
+ maxPreviewLength: typeof options?.maxPreviewLength === "number" && Number.isFinite(options.maxPreviewLength) && options.maxPreviewLength >= 0 ? Math.floor(options.maxPreviewLength) : DEFAULT_MAX_PREVIEW_LENGTH,
1407
+ maxEventBytes: typeof options?.maxEventBytes === "number" && Number.isFinite(options.maxEventBytes) && options.maxEventBytes > 0 ? Math.floor(options.maxEventBytes) : DEFAULT_MAX_EVENT_BYTES
1408
+ };
1409
+ }
1410
+ function boundMetadataValue(key, value, opts, seen, depth) {
1411
+ if (depth > 32) return "[MaxDepth]";
1412
+ if (value === null || typeof value !== "object") {
1413
+ if (typeof value === "string") {
1414
+ const max = isPreviewKey(key) ? opts.maxPreviewLength : opts.maxMetadataValueLength;
1415
+ return truncateString(value, max);
1416
+ }
1417
+ return value;
1418
+ }
1419
+ if (seen.has(value)) return "[Circular]";
1420
+ seen.add(value);
1421
+ if (Array.isArray(value)) {
1422
+ const maxItems = 50;
1423
+ const out2 = value.slice(0, maxItems).map(
1424
+ (item, index) => boundMetadataValue(String(index), item, opts, seen, depth + 1)
1425
+ );
1426
+ if (value.length > maxItems) {
1427
+ out2.push(`\u2026(+${value.length - maxItems} more)`);
1428
+ }
1429
+ return out2;
1430
+ }
1431
+ const record = value;
1432
+ const out = {};
1433
+ for (const [k, v] of Object.entries(record)) {
1434
+ out[k] = boundMetadataValue(k, v, opts, seen, depth + 1);
1435
+ }
1436
+ return out;
1437
+ }
1438
+ function redactMetadata(metadata, opts) {
1439
+ if (!opts.redactEnabled) return { ...metadata };
1440
+ const redactor = new Redactor({ rules: opts.redactionRules });
1441
+ return redactor.redactRecord(metadata);
1442
+ }
1443
+ function prepareMetadataForDisk(metadata, opts) {
1444
+ try {
1445
+ const redacted = redactMetadata(metadata, opts);
1446
+ const seen = /* @__PURE__ */ new WeakSet();
1447
+ const bounded = boundMetadataValue(
1448
+ "metadata",
1449
+ redacted,
1450
+ opts,
1451
+ seen,
1452
+ 0
1453
+ );
1454
+ return isRecord7(bounded) ? bounded : {};
1455
+ } catch {
1456
+ return { truncated: true, reason: "metadataPreparationFailed" };
1457
+ }
1458
+ }
1459
+ function truncateErrorStack(event, maxLen) {
1460
+ if (event.event !== "run_completed" && event.event !== "step_completed") {
1461
+ return event;
1462
+ }
1463
+ if (!event.error?.stack || typeof event.error.stack !== "string") {
1464
+ return event;
1465
+ }
1466
+ return {
1467
+ ...event,
1468
+ error: {
1469
+ ...event.error,
1470
+ stack: truncateString(event.error.stack, maxLen)
1471
+ }
1472
+ };
1473
+ }
1474
+ function replaceMetadataWithTruncationMarker(event, originalApproxBytes) {
1475
+ const marker = {
1476
+ truncated: true,
1477
+ reason: "maxEventBytes",
1478
+ originalApproxBytes
1479
+ };
1480
+ if (event.event === "run_started") {
1481
+ return { ...event, metadata: marker };
1482
+ }
1483
+ if (event.event === "step_started") {
1484
+ return { ...event, metadata: marker };
1485
+ }
1486
+ return event;
1487
+ }
1488
+ function shrinkMetadataLimits(opts, factor) {
1489
+ return {
1490
+ ...opts,
1491
+ maxMetadataValueLength: Math.max(32, Math.floor(opts.maxMetadataValueLength * factor)),
1492
+ maxPreviewLength: Math.max(16, Math.floor(opts.maxPreviewLength * factor))
1493
+ };
1494
+ }
1495
+ function applyMetadataToEvent(event, metadata) {
1496
+ if (event.event === "run_started") {
1497
+ return { ...event, metadata };
1498
+ }
1499
+ if (event.event === "step_started") {
1500
+ return { ...event, metadata };
1501
+ }
1502
+ return event;
1503
+ }
1504
+ function eventHasMetadata(event) {
1505
+ return (event.event === "run_started" || event.event === "step_started") && event.metadata !== void 0;
1506
+ }
1507
+ function getEventMetadata(event) {
1508
+ if (event.event === "run_started" || event.event === "step_started") {
1509
+ return event.metadata;
1510
+ }
1511
+ return void 0;
1512
+ }
1513
+ function prepareTraceEventForDisk(event, opts) {
1514
+ try {
1515
+ let working = { ...event };
1516
+ const rawMetadata = getEventMetadata(working);
1517
+ if (rawMetadata !== void 0) {
1518
+ const safe = prepareMetadataForDisk(rawMetadata, opts);
1519
+ working = applyMetadataToEvent(working, safe);
1520
+ }
1521
+ let serialized = serializeEvent(working);
1522
+ if (serialized === "") {
1523
+ return working;
1524
+ }
1525
+ let bytes = byteLength(serialized);
1526
+ if (bytes <= opts.maxEventBytes) {
1527
+ return working;
1528
+ }
1529
+ if (rawMetadata !== void 0) {
1530
+ for (const factor of [0.5, 0.25, 0.1]) {
1531
+ const tighter = shrinkMetadataLimits(opts, factor);
1532
+ const shrunk = prepareMetadataForDisk(rawMetadata, tighter);
1533
+ working = applyMetadataToEvent(working, shrunk);
1534
+ serialized = serializeEvent(working);
1535
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1536
+ return working;
1537
+ }
1538
+ }
1539
+ working = replaceMetadataWithTruncationMarker(working, bytes);
1540
+ serialized = serializeEvent(working);
1541
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1542
+ return working;
1543
+ }
1544
+ }
1545
+ working = truncateErrorStack(working, Math.min(opts.maxMetadataValueLength, 500));
1546
+ serialized = serializeEvent(working);
1547
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1548
+ return working;
1549
+ }
1550
+ if (eventHasMetadata(working)) {
1551
+ working = replaceMetadataWithTruncationMarker(working, bytes);
1552
+ serialized = serializeEvent(working);
1553
+ if (serialized !== "" && byteLength(serialized) <= opts.maxEventBytes) {
1554
+ return working;
1555
+ }
1556
+ if (working.event === "run_started") {
1557
+ const { metadata: _meta, ...rest } = working;
1558
+ working = rest;
1559
+ } else if (working.event === "step_started") {
1560
+ const { metadata: _meta, ...rest } = working;
1561
+ working = rest;
1562
+ }
1563
+ }
1564
+ return working;
1565
+ } catch {
1566
+ if (event.event === "run_started" || event.event === "step_started") {
1567
+ return applyMetadataToEvent(event, {
1568
+ truncated: true,
1569
+ reason: "prepareTraceEventFailed"
1570
+ });
1571
+ }
1572
+ return event;
1573
+ }
1574
+ }
1575
+
1576
+ // packages/core/src/context.ts
1577
+ var storage = new AsyncLocalStorage();
1578
+ function toPublicContext(ctx) {
1579
+ return {
1580
+ runId: ctx.runId,
1581
+ runName: ctx.runName,
1582
+ traceDir: ctx.traceDir,
1583
+ silent: ctx.silent,
1584
+ metadata: ctx.metadata
1585
+ };
1586
+ }
1587
+ function invoke(fn) {
1588
+ return new Promise((resolve, reject) => {
1589
+ try {
1590
+ Promise.resolve(fn()).then(resolve, reject);
1591
+ } catch (e) {
1592
+ reject(e);
1593
+ }
1594
+ });
1595
+ }
1596
+ function getCurrentContext() {
1597
+ try {
1598
+ const s = storage.getStore();
1599
+ if (!s) return void 0;
1600
+ return toPublicContext(s);
1601
+ } catch {
1602
+ return void 0;
1603
+ }
1604
+ }
1605
+ function getCurrentRunId() {
1606
+ try {
1607
+ return storage.getStore()?.runId;
1608
+ } catch {
1609
+ return void 0;
1610
+ }
1611
+ }
1612
+ function getCurrentRunName() {
1613
+ try {
1614
+ return storage.getStore()?.runName;
1615
+ } catch {
1616
+ return void 0;
1617
+ }
1618
+ }
1619
+ function getCurrentStepId() {
1620
+ try {
1621
+ return storage.getStore()?.currentStepId;
1622
+ } catch {
1623
+ return void 0;
1624
+ }
1625
+ }
1626
+ function getParentStepId() {
1627
+ return getCurrentStepId();
1628
+ }
1629
+ function getCurrentDepth() {
1630
+ try {
1631
+ const d = storage.getStore()?.currentDepth;
1632
+ return typeof d === "number" && Number.isFinite(d) ? d : 0;
1633
+ } catch {
1634
+ return 0;
1635
+ }
1636
+ }
1637
+ function hasActiveContext() {
1638
+ try {
1639
+ return storage.getStore() !== void 0;
1640
+ } catch {
1641
+ return false;
1642
+ }
1643
+ }
1644
+ function getTraceDirFromContext() {
1645
+ try {
1646
+ return storage.getStore()?.traceDir;
1647
+ } catch {
1648
+ return void 0;
1649
+ }
1650
+ }
1651
+ function isSilentContext() {
1652
+ try {
1653
+ const s = storage.getStore();
1654
+ return s ? s.silent : false;
1655
+ } catch {
1656
+ return false;
1657
+ }
1658
+ }
1659
+ function getTraceSafetyFromContext() {
1660
+ try {
1661
+ return storage.getStore()?.traceSafety;
1662
+ } catch {
1663
+ return void 0;
1664
+ }
1665
+ }
1666
+ function runWithContext(context, fn, traceSafety = resolveTraceSafetyOptions()) {
1667
+ const runtime = {
1668
+ runId: context.runId,
1669
+ runName: context.runName,
1670
+ traceDir: context.traceDir,
1671
+ silent: context.silent,
1672
+ metadata: context.metadata,
1673
+ traceSafety,
1674
+ currentDepth: 0
1675
+ };
1676
+ return new Promise((resolve, reject) => {
1677
+ storage.run(runtime, () => {
1678
+ try {
1679
+ Promise.resolve(fn()).then(resolve, reject);
1680
+ } catch (e) {
1681
+ reject(e);
1682
+ }
1683
+ });
1684
+ });
1685
+ }
1686
+ function runWithStepContext(stepId, fn) {
1687
+ let parent;
1688
+ try {
1689
+ parent = storage.getStore();
1690
+ } catch {
1691
+ parent = void 0;
1692
+ }
1693
+ if (!parent) {
1694
+ return invoke(fn);
1695
+ }
1696
+ const derived = {
1697
+ runId: parent.runId,
1698
+ runName: parent.runName,
1699
+ traceDir: parent.traceDir,
1700
+ silent: parent.silent,
1701
+ metadata: parent.metadata,
1702
+ traceSafety: parent.traceSafety,
1703
+ currentStepId: stepId,
1704
+ currentDepth: parent.currentDepth + 1
1705
+ };
1706
+ return new Promise((resolve, reject) => {
1707
+ storage.run(derived, () => {
1708
+ try {
1709
+ Promise.resolve(fn()).then(resolve, reject);
1710
+ } catch (e) {
1711
+ reject(e);
1712
+ }
1713
+ });
1714
+ });
1715
+ }
1493
1716
  function resolveTraceDir(options = {}) {
1494
1717
  if (typeof options.dir === "string" && options.dir.trim() !== "") {
1495
1718
  return options.dir.trim();
@@ -1754,7 +1977,7 @@ var KNOWN_EVENTS = /* @__PURE__ */ new Set([
1754
1977
  "step_started",
1755
1978
  "step_completed"
1756
1979
  ]);
1757
- function isRecord7(value) {
1980
+ function isRecord8(value) {
1758
1981
  return typeof value === "object" && value !== null && !Array.isArray(value);
1759
1982
  }
1760
1983
  function safeParse(line) {
@@ -1776,7 +1999,7 @@ async function isAgentInspectTrace(filePath) {
1776
1999
  if (trimmed === "") continue;
1777
2000
  const parsed = safeParse(trimmed);
1778
2001
  if (!parsed) continue;
1779
- if (!isRecord7(parsed)) continue;
2002
+ if (!isRecord8(parsed)) continue;
1780
2003
  checked += 1;
1781
2004
  if (isTraceEvent(parsed)) return true;
1782
2005
  const ev = parsed.event;
@@ -2534,6 +2757,7 @@ async function inspectRun(name, fn, options) {
2534
2757
  const runName = normalizeRunName(name);
2535
2758
  const runId = createRunId();
2536
2759
  const traceDir = resolveTraceDir({ dir: options?.traceDir });
2760
+ const traceSafety = resolveTraceSafetyOptions(options);
2537
2761
  const context = {
2538
2762
  runId,
2539
2763
  runName,
@@ -2557,7 +2781,10 @@ async function inspectRun(name, fn, options) {
2557
2781
  startTime,
2558
2782
  ...options?.metadata !== void 0 ? { metadata: options.metadata } : {}
2559
2783
  };
2560
- await writeTraceEvent(started, traceDir);
2784
+ await writeTraceEvent(
2785
+ prepareTraceEventForDisk(started, traceSafety),
2786
+ traceDir
2787
+ );
2561
2788
  });
2562
2789
  await safeInstrumentation("printRunStart", () => {
2563
2790
  printRunStart(runId, runName);
@@ -2581,7 +2808,10 @@ async function inspectRun(name, fn, options) {
2581
2808
  durationMs: durationMs2,
2582
2809
  error: formatted
2583
2810
  };
2584
- await writeTraceEvent(completed, traceDir);
2811
+ await writeTraceEvent(
2812
+ prepareTraceEventForDisk(completed, traceSafety),
2813
+ traceDir
2814
+ );
2585
2815
  });
2586
2816
  await safeInstrumentation("printRunComplete(error)", () => {
2587
2817
  printRunComplete(runName, runId, durationMs2, "error", printPath2);
@@ -2601,13 +2831,16 @@ async function inspectRun(name, fn, options) {
2601
2831
  endTime,
2602
2832
  durationMs
2603
2833
  };
2604
- await writeTraceEvent(completed, traceDir);
2834
+ await writeTraceEvent(
2835
+ prepareTraceEventForDisk(completed, traceSafety),
2836
+ traceDir
2837
+ );
2605
2838
  });
2606
2839
  await safeInstrumentation("printRunComplete(success)", () => {
2607
2840
  printRunComplete(runName, runId, durationMs, "success", printPath);
2608
2841
  });
2609
2842
  return result;
2610
- });
2843
+ }, traceSafety);
2611
2844
  }
2612
2845
 
2613
2846
  // packages/core/src/maybe-inspect-run.ts
@@ -2658,6 +2891,7 @@ async function stepImpl(name, fn, options) {
2658
2891
  const parentId = getParentStepId();
2659
2892
  const stepType = options?.type ?? "logic";
2660
2893
  const metadata = options?.metadata;
2894
+ const traceSafety = getTraceSafetyFromContext();
2661
2895
  const startTime = Date.now();
2662
2896
  await safeInstrumentation2("writeTraceEvent(step_started)", async () => {
2663
2897
  const started = {
@@ -2672,7 +2906,8 @@ async function stepImpl(name, fn, options) {
2672
2906
  startTime,
2673
2907
  ...metadata !== void 0 ? { metadata } : {}
2674
2908
  };
2675
- await writeTraceEvent(started, context.traceDir);
2909
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(started, traceSafety) : started;
2910
+ await writeTraceEvent(safe, context.traceDir);
2676
2911
  });
2677
2912
  await safeInstrumentation2("printStepStart", () => {
2678
2913
  printStepStart(stepName, renderDepth);
@@ -2698,7 +2933,8 @@ async function stepImpl(name, fn, options) {
2698
2933
  durationMs: durationMs2,
2699
2934
  error: formatted
2700
2935
  };
2701
- await writeTraceEvent(completed, context.traceDir);
2936
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(completed, traceSafety) : completed;
2937
+ await writeTraceEvent(safe, context.traceDir);
2702
2938
  });
2703
2939
  await safeInstrumentation2("printStepComplete(error)", () => {
2704
2940
  printStepComplete(stepName, durationMs2, "error", renderDepth);
@@ -2724,7 +2960,8 @@ async function stepImpl(name, fn, options) {
2724
2960
  endTime,
2725
2961
  durationMs
2726
2962
  };
2727
- await writeTraceEvent(completed, context.traceDir);
2963
+ const safe = traceSafety !== void 0 ? prepareTraceEventForDisk(completed, traceSafety) : completed;
2964
+ await writeTraceEvent(safe, context.traceDir);
2728
2965
  });
2729
2966
  await safeInstrumentation2("printStepComplete(success)", () => {
2730
2967
  printStepComplete(stepName, durationMs, "success", renderDepth);
@@ -3593,6 +3830,6 @@ function validateExport(result) {
3593
3830
  };
3594
3831
  }
3595
3832
 
3596
- export { DEFAULT_LOG_INGEST_CONFIG, DEFAULT_REDACT_KEYS, DEFAULT_TRACE_DIR_NAME, EXPORT_PAYLOAD_VERSION, EventNormalizer, FALLBACK_TRACE_DIR, JsonLogParser, LiveLogAccumulator, Log4jsParser, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, Redactor, TERMINAL_INDENT, TraceDirectory, TreeBuilder, buildRunSummary, compactAttributes, createRunId, createStepId, diffRuns, diffTraceEvents, ensureTraceDir, escapeHtml, escapeMarkdown, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, extractMetadata, filterTraces, flattenTree, formatDuration2 as formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getRunIdFromTraceFileName, getTraceDirFromContext, getTraceFilePath, hasActiveContext, initializeTraceFile, inspectRun, isAgentInspectEnabled, isAgentInspectTrace, isSilentContext, isStepStatus, isStepType, isTraceEvent, listTraceFiles, loadLogIngestConfig, manualTraceEventsToComparableRun, manualTraceEventsToRunTree, matchMapping, maybeInspectRun, mergeExportDefaults, mergeLogIngestConfig, observe, parseDuration, parseLogLine, parseLogsToTrees, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, readTraceEvents, readTraceFile, renderErrorLine, renderRunDiff, renderRunSummary, renderRunTree, renderRunTrees, renderStepLine, resolveTraceDir, runWithContext, runWithStepContext, safeString2 as safeString, serializeEvent, stableJson, step, summarizeTree, truncateName, validateEvent, validateExport, validateExportContent, warn, wildcardMatch, writeTraceEvent };
3833
+ export { DEFAULT_LOG_INGEST_CONFIG, DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, DEFAULT_REDACT_KEYS, DEFAULT_TRACE_DIR_NAME, EXPORT_PAYLOAD_VERSION, EventNormalizer, FALLBACK_TRACE_DIR, JsonLogParser, LiveLogAccumulator, Log4jsParser, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, Redactor, TERMINAL_INDENT, TraceDirectory, TreeBuilder, buildRunSummary, compactAttributes, createRunId, createStepId, diffRuns, diffTraceEvents, ensureTraceDir, escapeHtml, escapeMarkdown, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, extractMetadata, filterTraces, flattenTree, formatDuration2 as formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getRunIdFromTraceFileName, getTraceDirFromContext, getTraceFilePath, getTraceSafetyFromContext, hasActiveContext, initializeTraceFile, inspectRun, isAgentInspectEnabled, isAgentInspectTrace, isSilentContext, isStepStatus, isStepType, isTraceEvent, listTraceFiles, loadLogIngestConfig, manualTraceEventsToComparableRun, manualTraceEventsToRunTree, matchMapping, maybeInspectRun, mergeExportDefaults, mergeLogIngestConfig, observe, parseDuration, parseLogLine, parseLogsToTrees, prepareMetadataForDisk, prepareTraceEventForDisk, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, readTraceEvents, readTraceFile, renderErrorLine, renderRunDiff, renderRunSummary, renderRunTree, renderRunTrees, renderStepLine, resolveTraceDir, resolveTraceSafetyOptions, runWithContext, runWithStepContext, safeString2 as safeString, serializeEvent, stableJson, step, summarizeTree, truncateName, validateEvent, validateExport, validateExportContent, warn, wildcardMatch, writeTraceEvent };
3597
3834
  //# sourceMappingURL=index.mjs.map
3598
3835
  //# sourceMappingURL=index.mjs.map