agent-inspect 6.7.2 → 6.7.3

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 (39) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/docs/EXPORTS.md +9 -0
  4. package/docs/PERFORMANCE.md +18 -0
  5. package/docs/STANDARDS.md +4 -0
  6. package/package.json +2 -2
  7. package/packages/cli/dist/{chunk-M6PC5KUT.mjs → chunk-EMYDJREA.mjs} +26 -10
  8. package/packages/cli/dist/chunk-EMYDJREA.mjs.map +1 -0
  9. package/packages/cli/dist/index.cjs +46 -21
  10. package/packages/cli/dist/index.cjs.map +1 -1
  11. package/packages/cli/dist/index.mjs +23 -14
  12. package/packages/cli/dist/index.mjs.map +1 -1
  13. package/packages/cli/dist/{src-27LC2BB3.mjs → src-IPJNFV37.mjs} +3 -3
  14. package/packages/cli/dist/{src-27LC2BB3.mjs.map → src-IPJNFV37.mjs.map} +1 -1
  15. package/packages/core/dist/advanced.cjs +24 -8
  16. package/packages/core/dist/advanced.cjs.map +1 -1
  17. package/packages/core/dist/advanced.mjs +25 -9
  18. package/packages/core/dist/advanced.mjs.map +1 -1
  19. package/packages/core/dist/checks.cjs +56 -4
  20. package/packages/core/dist/checks.cjs.map +1 -1
  21. package/packages/core/dist/checks.mjs +1 -1
  22. package/packages/core/dist/{chunk-EWHN6NA4.mjs → chunk-EQVXDGGU.mjs} +58 -6
  23. package/packages/core/dist/chunk-EQVXDGGU.mjs.map +1 -0
  24. package/packages/core/dist/diff.cjs +4 -0
  25. package/packages/core/dist/diff.cjs.map +1 -1
  26. package/packages/core/dist/diff.mjs +4 -0
  27. package/packages/core/dist/diff.mjs.map +1 -1
  28. package/packages/core/dist/exporters.cjs +9 -4
  29. package/packages/core/dist/exporters.cjs.map +1 -1
  30. package/packages/core/dist/exporters.d.cts +3 -2
  31. package/packages/core/dist/exporters.d.ts +3 -2
  32. package/packages/core/dist/exporters.mjs +9 -4
  33. package/packages/core/dist/exporters.mjs.map +1 -1
  34. package/packages/core/dist/logs.cjs +3 -2
  35. package/packages/core/dist/logs.cjs.map +1 -1
  36. package/packages/core/dist/logs.mjs +3 -2
  37. package/packages/core/dist/logs.mjs.map +1 -1
  38. package/packages/cli/dist/chunk-M6PC5KUT.mjs.map +0 -1
  39. package/packages/core/dist/chunk-EWHN6NA4.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createSafetyOversizedAttributeRule, resolveTraceDir, parseDuration, buildSessionIndex, enrichSessionRunRecord, TraceDirectory, loadTraceMetadataList, loadSessionRunRecords, extractMetadata, filterTraces, truncateName, getTraceFilePath, buildRunSummary, formatDuration, formatTimestamp, isAgentInspectTrace, openTrace, TraceReadError, filterMetasBySessionScope, runTraceChecks, aggregateSessionCheckResults, createBaselineRegressionRule, resolveBundleRunIds, aggregateBundleSafeStatus, bundleFailsOnSafety, bundleRunAssetRelativePath, buildPlaceholderArtifact, buildBundleMetadata, buildBundleSummaryMarkdown, buildRunTimeline, renderTimeline, buildTraceStats, renderTraceStats, parseDurationFilter, searchTraces, buildActivitySummary, renderActivitySummaryHuman, buildRunWhatSummary, renderRunWhat, buildLocalExplanation, resolveSuiteTemplate, defaultSuiteConfigTemplate, loadSuiteConfig, validateSuiteConfig, runSuite, renderSuiteReport, analyzeCohort, renderCohortReport, gateHasThresholds, runGate, renderGateReport, persistedInspectEventsToTraceEvents, renderStepLine, renderErrorLine, getIndent, Redactor, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, normalizeBundleOutputPath, sanitizeBundleRunId, defaultBundleOutputPath, assertBundlePathContained, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, escapeMarkdown, escapeHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, resolveRedactionProfile, applyProfileMetadataCaps, flattenTree, safeString, compactAttributes, stableJson, truncateStringForProfile } from './chunk-M6PC5KUT.mjs';
2
+ import { createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createSafetyOversizedAttributeRule, resolveTraceDir, parseDuration, buildSessionIndex, enrichSessionRunRecord, TraceDirectory, loadTraceMetadataList, loadSessionRunRecords, extractMetadata, filterTraces, truncateName, getTraceFilePath, buildRunSummary, formatDuration, formatTimestamp, isAgentInspectTrace, openTrace, TraceReadError, filterMetasBySessionScope, runTraceChecks, aggregateSessionCheckResults, createBaselineRegressionRule, resolveBundleRunIds, aggregateBundleSafeStatus, bundleFailsOnSafety, bundleRunAssetRelativePath, buildPlaceholderArtifact, buildBundleMetadata, buildBundleSummaryMarkdown, buildRunTimeline, renderTimeline, buildTraceStats, renderTraceStats, parseDurationFilter, searchTraces, buildActivitySummary, renderActivitySummaryHuman, buildRunWhatSummary, renderRunWhat, buildLocalExplanation, resolveSuiteTemplate, defaultSuiteConfigTemplate, loadSuiteConfig, validateSuiteConfig, runSuite, renderSuiteReport, analyzeCohort, renderCohortReport, gateHasThresholds, runGate, renderGateReport, persistedInspectEventsToTraceEvents, renderStepLine, renderErrorLine, getIndent, Redactor, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, normalizeBundleOutputPath, sanitizeBundleRunId, defaultBundleOutputPath, assertBundlePathContained, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, escapeMarkdown, escapeHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, resolveRedactionProfile, applyProfileMetadataCaps, flattenTree, safeString, compactAttributes, stableJson, truncateStringForProfile } from './chunk-EMYDJREA.mjs';
3
3
  import { realpathSync, constants as constants$1 } from 'fs';
4
4
  import path14 from 'path';
5
5
  import { fileURLToPath, pathToFileURL } from 'url';
@@ -11,7 +11,7 @@ import { createServer } from 'http';
11
11
  import { createRequire } from 'module';
12
12
 
13
13
  // package.json
14
- var version = "6.7.2";
14
+ var version = "6.7.3";
15
15
 
16
16
  // packages/cli/src/trace-dir-scale.ts
17
17
  var TRACE_COUNT_WARN = 1e3;
@@ -939,13 +939,14 @@ function parseTimestamp(v) {
939
939
  function hasToken(hay, token) {
940
940
  return hay.includes(token);
941
941
  }
942
+ var ERROR_TOKEN_RE = /\.(error|failed)(\.|$)/;
942
943
  function inferKind(eventName) {
943
944
  if (hasToken(eventName, ".llm.")) return "LLM";
944
945
  if (hasToken(eventName, ".tool.")) return "TOOL";
945
946
  if (hasToken(eventName, ".agent.")) return "AGENT";
946
947
  if (hasToken(eventName, ".retriever.")) return "RETRIEVER";
947
948
  if (hasToken(eventName, ".result.")) return "RESULT";
948
- if (eventName.endsWith(".error") || eventName.endsWith(".failed") || eventName.includes(".error") || eventName.includes(".failed")) {
949
+ if (ERROR_TOKEN_RE.test(eventName)) {
949
950
  return "ERROR";
950
951
  }
951
952
  return "LOG";
@@ -1025,7 +1026,7 @@ var EventNormalizer = class {
1025
1026
  status = mapping.status;
1026
1027
  } else if (mapping?.kind === "ERROR") {
1027
1028
  status = "error";
1028
- } else if (eventName.includes(".failed") || eventName.includes(".error")) {
1029
+ } else if (ERROR_TOKEN_RE.test(eventName)) {
1029
1030
  status = "error";
1030
1031
  } else if (mapping?.startsRun || mapping?.startsStep) {
1031
1032
  status = "running";
@@ -2213,6 +2214,11 @@ function exportMarkdown(tree, options) {
2213
2214
  function hexFrom(seed, byteLen) {
2214
2215
  return crypto.createHash("sha256").update(seed, "utf8").digest("hex").slice(0, byteLen * 2);
2215
2216
  }
2217
+ function unixNano(ms) {
2218
+ const whole = Math.trunc(ms);
2219
+ const fractionNs = Math.round((ms - whole) * 1e6);
2220
+ return BigInt(whole) * 1000000n + BigInt(fractionNs);
2221
+ }
2216
2222
  function mapInspectKindToOI(kind, warnings) {
2217
2223
  switch (kind) {
2218
2224
  case "LLM":
@@ -2262,10 +2268,10 @@ function exportOpenInference(tree, options) {
2262
2268
  const ev = n.event;
2263
2269
  const spanId = hexFrom(`${tree.runId}:${ev.eventId}`, 8);
2264
2270
  const parentSpanHex = ev.parentId ? hexFrom(`${tree.runId}:${ev.parentId}`, 8) : void 0;
2265
- const startNs = Math.round(ev.timestamp * 1e6);
2271
+ const startNs = unixNano(ev.timestamp);
2266
2272
  let endNs;
2267
2273
  if (ev.durationMs !== void 0 && Number.isFinite(ev.durationMs)) {
2268
- endNs = startNs + Math.round(ev.durationMs * 1e6);
2274
+ endNs = startNs + unixNano(ev.durationMs);
2269
2275
  }
2270
2276
  const { openInferenceKind } = mapInspectKindToOI(ev.kind, warnings);
2271
2277
  const attrs = {
@@ -2313,8 +2319,8 @@ function exportOpenInference(tree, options) {
2313
2319
  span_id: spanId,
2314
2320
  parent_span_id: parentSpanHex,
2315
2321
  name: ev.name,
2316
- start_time_unix_nano: startNs,
2317
- end_time_unix_nano: endNs,
2322
+ start_time_unix_nano: startNs.toString(),
2323
+ end_time_unix_nano: endNs?.toString(),
2318
2324
  attributes: attrs,
2319
2325
  status
2320
2326
  });
@@ -3049,6 +3055,10 @@ function manualTraceEventsToComparableRun(events) {
3049
3055
  meta = { ...meta ?? {}, agent_inspect_diff_parent_missing: true };
3050
3056
  }
3051
3057
  const outputPreview = extractOutputPreview(meta);
3058
+ if (meta !== void 0 && ("outputPreview" in meta || "resultPreview" in meta)) {
3059
+ delete meta.outputPreview;
3060
+ delete meta.resultPreview;
3061
+ }
3052
3062
  const sc = {
3053
3063
  id: acc.id,
3054
3064
  name: acc.name,
@@ -3693,6 +3703,7 @@ async function searchCommand(options = {}) {
3693
3703
  console.log(`Session not found: ${sessionId}`);
3694
3704
  console.log(`Trace directory: ${traceDir}`);
3695
3705
  }
3706
+ process.exitCode = 1;
3696
3707
  return;
3697
3708
  }
3698
3709
  metas = scoped.metas;
@@ -3782,7 +3793,7 @@ async function newestTraceMtimeMs(traceDir) {
3782
3793
  }
3783
3794
  async function loadSessionRuns(traceDir) {
3784
3795
  try {
3785
- const mod = await import('./src-27LC2BB3.mjs');
3796
+ const mod = await import('./src-IPJNFV37.mjs');
3786
3797
  const dbPath = mod.resolveIndexDbPath(traceDir);
3787
3798
  const status = mod.indexStatus(dbPath);
3788
3799
  if (!status.healthy) {
@@ -7244,13 +7255,11 @@ async function studioCommand(options = {}) {
7244
7255
  await new Promise(() => {
7245
7256
  });
7246
7257
  }
7247
-
7248
- // packages/eval/src/index.ts
7249
7258
  function isTraceReadResult(value) {
7250
7259
  return value !== null && typeof value === "object" && "runs" in value && "events" in value && "format" in value;
7251
7260
  }
7252
7261
  function traceInputFrom(value) {
7253
- return { type: "file", path: value instanceof URL ? value.pathname : value };
7262
+ return { type: "file", path: value instanceof URL ? fileURLToPath(value) : value };
7254
7263
  }
7255
7264
  async function resolveRead(input3, options) {
7256
7265
  try {
@@ -9571,7 +9580,7 @@ jobs:
9571
9580
  async function planInit(options = {}) {
9572
9581
  const framework = normalizeFramework(options.framework);
9573
9582
  const cwd = path14.resolve(options.cwd ?? process.cwd());
9574
- const demoPath = framework === "custom" ? path14.join("examples", "agent-inspect-demo.mjs") : path14.join("examples", `agent-inspect-${framework}-demo.mjs`);
9583
+ const demoPath = framework === "custom" ? "examples/agent-inspect-demo.mjs" : `examples/agent-inspect-${framework}-demo.mjs`;
9575
9584
  const candidates = [
9576
9585
  { rel: CONFIG_FILE, content: configTemplate(framework) },
9577
9586
  { rel: GITKEEP, content: "" },
@@ -10360,7 +10369,7 @@ function isModuleNotFound4(e) {
10360
10369
  }
10361
10370
  async function loadIndexSqlite() {
10362
10371
  try {
10363
- return await import('./src-27LC2BB3.mjs');
10372
+ return await import('./src-IPJNFV37.mjs');
10364
10373
  } catch (e) {
10365
10374
  if (isModuleNotFound4(e)) {
10366
10375
  console.error(