agent-inspect 1.5.0 → 1.7.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.
- package/CHANGELOG.md +41 -0
- package/README.md +14 -4
- package/docs/ADAPTER-CONFORMANCE.md +35 -0
- package/docs/ADAPTERS.md +79 -1
- package/docs/API.md +184 -10
- package/docs/ARCHITECTURE.md +4 -0
- package/docs/CLI.md +41 -12
- package/docs/KNOWN-ISSUES.md +11 -1
- package/docs/LIMITATIONS.md +19 -2
- package/docs/SCHEMA.md +17 -7
- package/package.json +23 -2
- package/packages/cli/dist/index.cjs +2449 -157
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +2450 -158
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/core/dist/advanced.cjs +839 -18
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +98 -3
- package/packages/core/dist/advanced.d.ts +98 -3
- package/packages/core/dist/advanced.mjs +7 -4
- package/packages/core/dist/chunk-57S5D6HR.mjs +655 -0
- package/packages/core/dist/chunk-57S5D6HR.mjs.map +1 -0
- package/packages/core/dist/chunk-6QSLZCBJ.mjs +743 -0
- package/packages/core/dist/chunk-6QSLZCBJ.mjs.map +1 -0
- package/packages/core/dist/chunk-6SZPTECC.mjs +342 -0
- package/packages/core/dist/chunk-6SZPTECC.mjs.map +1 -0
- package/packages/core/dist/{chunk-QX3ZMPUF.mjs → chunk-74XZ6N7Q.mjs} +13 -55
- package/packages/core/dist/chunk-74XZ6N7Q.mjs.map +1 -0
- package/packages/core/dist/{chunk-QPAU2TPA.mjs → chunk-HR7G62IE.mjs} +4 -4
- package/packages/core/dist/{chunk-QPAU2TPA.mjs.map → chunk-HR7G62IE.mjs.map} +1 -1
- package/packages/core/dist/chunk-S4YWKV4G.mjs +48 -0
- package/packages/core/dist/chunk-S4YWKV4G.mjs.map +1 -0
- package/packages/core/dist/chunk-TFLPUZ56.mjs +1571 -0
- package/packages/core/dist/chunk-TFLPUZ56.mjs.map +1 -0
- package/packages/core/dist/{chunk-Q6EPNB3V.mjs → chunk-TZISEVLQ.mjs} +34 -183
- package/packages/core/dist/chunk-TZISEVLQ.mjs.map +1 -0
- package/packages/core/dist/chunk-U2BGPESY.mjs +150 -0
- package/packages/core/dist/chunk-U2BGPESY.mjs.map +1 -0
- package/packages/core/dist/chunk-VTIB5MDK.mjs +304 -0
- package/packages/core/dist/chunk-VTIB5MDK.mjs.map +1 -0
- package/packages/core/dist/{chunk-5EMIZZXD.mjs → chunk-Y56BPA3B.mjs} +87 -4
- package/packages/core/dist/chunk-Y56BPA3B.mjs.map +1 -0
- package/packages/core/dist/diff.d.cts +3 -2
- package/packages/core/dist/diff.d.ts +3 -2
- package/packages/core/dist/exporters.cjs.map +1 -1
- package/packages/core/dist/exporters.d.cts +3 -2
- package/packages/core/dist/exporters.d.ts +3 -2
- package/packages/core/dist/exporters.mjs +2 -2
- package/packages/core/dist/index.cjs +2975 -229
- package/packages/core/dist/index.cjs.map +1 -1
- package/packages/core/dist/index.d.cts +27 -6
- package/packages/core/dist/index.d.ts +27 -6
- package/packages/core/dist/index.mjs +113 -60
- package/packages/core/dist/index.mjs.map +1 -1
- package/packages/core/dist/{log-config-BzGmDYum.d.cts → inspect-event-Des4JDHo.d.cts} +1 -31
- package/packages/core/dist/{log-config-BzGmDYum.d.ts → inspect-event-Des4JDHo.d.ts} +1 -31
- package/packages/core/dist/log-config-BnH8Ykcb.d.cts +33 -0
- package/packages/core/dist/log-config-C1GcJPIM.d.ts +33 -0
- package/packages/core/dist/logs.d.cts +3 -2
- package/packages/core/dist/logs.d.ts +3 -2
- package/packages/core/dist/logs.mjs +3 -3
- package/packages/core/dist/persisted-inspect-event-0kaRADsp.d.cts +56 -0
- package/packages/core/dist/persisted-inspect-event-DiFto0K2.d.ts +56 -0
- package/packages/core/dist/persisted.cjs +38 -40
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.d.cts +6 -55
- package/packages/core/dist/persisted.d.ts +6 -55
- package/packages/core/dist/persisted.mjs +4 -2
- package/packages/core/dist/readers.cjs +2590 -0
- package/packages/core/dist/readers.cjs.map +1 -0
- package/packages/core/dist/readers.d.cts +80 -0
- package/packages/core/dist/readers.d.ts +80 -0
- package/packages/core/dist/readers.mjs +9 -0
- package/packages/core/dist/readers.mjs.map +1 -0
- package/packages/core/dist/{types-CNbheSdk.d.cts → types-DB8jB6Jg.d.cts} +7 -1
- package/packages/core/dist/{types-Bkt7LS01.d.ts → types-tSix7tfv.d.ts} +7 -1
- package/packages/core/dist/writers.cjs +997 -0
- package/packages/core/dist/writers.cjs.map +1 -0
- package/packages/core/dist/writers.d.cts +62 -0
- package/packages/core/dist/writers.d.ts +62 -0
- package/packages/core/dist/writers.mjs +9 -0
- package/packages/core/dist/writers.mjs.map +1 -0
- package/packages/core/dist/chunk-5EMIZZXD.mjs.map +0 -1
- package/packages/core/dist/chunk-Q6EPNB3V.mjs.map +0 -1
- package/packages/core/dist/chunk-QX3ZMPUF.mjs.map +0 -1
- package/packages/core/dist/chunk-XDBND27A.mjs +0 -975
- package/packages/core/dist/chunk-XDBND27A.mjs.map +0 -1
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { T as TraceEvent, R as RunSummary, a as TraceMetadata, b as TraceMetadataStatus, S as StepType, c as StepStatus, d as TraceCorrelationMetadata, e as RedactionProfile, I as InspectRunOptions, f as StepOptions, O as ObserveOptions } from './types-
|
|
2
|
-
export { A as ActiveStepContext, E as ErrorInfo, g as ExecutionContext, h as Run, i as RunCompletedEvent, j as RunStartedEvent, k as RunStatus, l as Step, m as StepCompletedEvent, n as StepMetadata, o as StepStartedEvent, p as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-
|
|
3
|
-
export { A as AttributionConfidence, E as EventSource,
|
|
4
|
-
import { PersistedInspectEvent } from './persisted.cjs';
|
|
5
|
-
export {
|
|
1
|
+
import { T as TraceEvent, R as RunSummary, a as TraceMetadata, b as TraceMetadataStatus, S as StepType, c as StepStatus, d as TraceCorrelationMetadata, e as RedactionProfile, I as InspectRunOptions, f as StepOptions, O as ObserveOptions } from './types-DB8jB6Jg.cjs';
|
|
2
|
+
export { A as ActiveStepContext, E as ErrorInfo, g as ExecutionContext, h as Run, i as RunCompletedEvent, j as RunStartedEvent, k as RunStatus, l as Step, m as StepCompletedEvent, n as StepMetadata, o as StepStartedEvent, p as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-DB8jB6Jg.cjs';
|
|
3
|
+
export { A as AttributionConfidence, E as EventSource, a as InspectEvent, I as InspectKind, b as InspectNode, c as InspectRunTree } from './inspect-event-Des4JDHo.cjs';
|
|
4
|
+
import { P as PersistedInspectEvent } from './persisted-inspect-event-0kaRADsp.cjs';
|
|
5
|
+
export { a as PersistedEventSource, b as PersistedEventSourceType, c as PersistedEventStatus, d as PersistedInspectError, e as PersistedSchemaVersion, f as PersistedTokenUsage, g as PersistedTraceContext, i as isPersistedInspectEvent } from './persisted-inspect-event-0kaRADsp.cjs';
|
|
6
|
+
export { InspectEventToPersistedOptions, PersistedToInspectEventOptions, PersistedToTraceEventOptions, PersistedTreeBridgeOptions, TraceEventToPersistedOptions, inspectEventToPersistedInspectEvent, inspectEventsToPersistedInspectEvents, persistedInspectEventToInspectEvent, persistedInspectEventToTraceEvents, persistedInspectEventsToInspectEvents, persistedInspectEventsToRunTrees, persistedInspectEventsToTraceEvents, traceEventToPersistedInspectEvent, traceEventsToPersistedInspectEvents, traceEventsToPersistedRunTrees } from './persisted.cjs';
|
|
7
|
+
export { L as LogEventMapping, a as LogIngestConfig, R as RedactionRule, b as RedactionStrategy } from './log-config-BnH8Ykcb.cjs';
|
|
6
8
|
export { DEFAULT_LOG_INGEST_CONFIG, DEFAULT_REDACT_KEYS, EventNormalizer, JsonLogParser, LiveLogAccumulator, LiveLogAccumulatorOptions, LiveLogUpdate, Log4jsParser, LogSourceFormat, LogToTreeResult, NormalizeOptions, ParseLogLineOptions, ParseLogsOptions, ParseResult, ParserWarning, ParserWarningCode, RawLogRecord, Redactor, RedactorOptions, RenderTreeOptions, TreeBuilder, TreeBuilderOptions, loadLogIngestConfig, matchMapping, mergeLogIngestConfig, parseLogLine, parseLogsToTrees, renderRunTree, renderRunTrees, wildcardMatch } from './logs.cjs';
|
|
7
|
-
export { DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, ResolvedRedactionProfile, TERMINAL_INDENT, TraceSafetyOptions, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getTraceDirFromContext, getTraceFilePath, getTraceSafetyFromContext, hasActiveContext, isSilentContext, prepareMetadataForDisk, prepareTraceEventForDisk, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveRedactionProfile, resolveTraceSafetyOptions, runWithContext, runWithStepContext, truncateName, warn } from './advanced.cjs';
|
|
9
|
+
export { CreateInspectorOptions, DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, Inspector, InspectorCaptureOptions, InspectorObserveOptions, InspectorRunOptions, InspectorRuntime, InspectorRuntimeContext, InspectorRuntimeDiagnostics, InspectorRuntimeOptions, InspectorStepOptions, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, ResolvedRedactionProfile, TERMINAL_INDENT, TraceSafetyOptions, createInspector, createInspectorRuntime, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getTraceDirFromContext, getTraceFilePath, getTraceSafetyFromContext, hasActiveContext, isSilentContext, prepareMetadataForDisk, prepareTraceEventForDisk, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveRedactionProfile, resolveTraceSafetyOptions, runWithContext, runWithStepContext, truncateName, warn } from './advanced.cjs';
|
|
8
10
|
import { Stats } from 'node:fs';
|
|
11
|
+
export { BufferedFileWriterOptions, BufferedFileWriterOverflowMode, CompositeTraceWriterOptions, FileTraceWriterOptions, MemoryTraceWriter, TraceWriter, TraceWriterStats, bufferedFileWriter, compositeWriter, fileWriter, memoryWriter, nullWriter } from './writers.cjs';
|
|
12
|
+
export { DEFAULT_TRACE_READERS, TraceFormatCandidate, TraceFormatDetectionResult, TraceFormatDetectionStatus, TraceInput, TraceReadError, TraceReadErrorCode, TraceReadOptions, TraceReadResult, TraceReadWarning, TraceReadWarningSeverity, TraceReader, TraceReaderDetectOptions, TraceReaderReadOptions, agentInspectJsonlReader, detectTraceFormat, openTrace, readTrace } from './readers.cjs';
|
|
9
13
|
export { DiffKind, DiffOptions, DiffPath, DiffPathSegment, DiffSeverity, RenderDiffOptions, RunComparable, RunDiffItem, RunDiffResult, RunDiffSummary, StepComparable, diffRuns, diffTraceEvents, manualTraceEventsToComparableRun, renderRunDiff } from './diff.cjs';
|
|
10
14
|
export { EXPORT_PAYLOAD_VERSION, ExportFormat, ExportOptions, ExportResult, ExportValidationResult, OpenInferenceExport, OpenInferenceSpan, TraceExporter, compactAttributes, escapeHtml, escapeMarkdown, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, flattenTree, manualTraceEventsToRunTree, mergeExportDefaults, redactRunTreeForExport, safeString, stableJson, summarizeTree, validateExport, validateExportContent } from './exporters.cjs';
|
|
11
15
|
|
|
@@ -38,13 +42,28 @@ declare function listTraceFiles(traceDir: string): Promise<string[]>;
|
|
|
38
42
|
declare function getRunIdFromTraceFileName(fileName: string): string | undefined;
|
|
39
43
|
|
|
40
44
|
type TraceJsonlFormat = "0.1" | "0.2" | "mixed" | "empty";
|
|
45
|
+
type ParsedTraceJsonlRow = {
|
|
46
|
+
format: "0.1";
|
|
47
|
+
event: TraceEvent;
|
|
48
|
+
sourceLine: number;
|
|
49
|
+
} | {
|
|
50
|
+
format: "0.2";
|
|
51
|
+
event: PersistedInspectEvent;
|
|
52
|
+
sourceLine: number;
|
|
53
|
+
};
|
|
41
54
|
interface ParseTraceJsonlResult {
|
|
42
55
|
format: TraceJsonlFormat;
|
|
56
|
+
/** Count of valid source JSONL rows before any one-to-many normalization. */
|
|
57
|
+
sourceEventCount: number;
|
|
43
58
|
events: TraceEvent[];
|
|
44
59
|
persisted: PersistedInspectEvent[];
|
|
60
|
+
/** Valid source rows in JSONL order, before cross-version normalization. */
|
|
61
|
+
rows: ParsedTraceJsonlRow[];
|
|
45
62
|
}
|
|
46
63
|
interface ParseTraceJsonlOptions {
|
|
47
64
|
validate?: (value: unknown) => value is TraceEvent;
|
|
65
|
+
/** Emit parse warnings through the standard AgentInspect warning channel (default true). */
|
|
66
|
+
warnings?: boolean;
|
|
48
67
|
}
|
|
49
68
|
/**
|
|
50
69
|
* Parses JSONL content into normalized v0.1 {@link TraceEvent} rows.
|
|
@@ -141,6 +160,8 @@ interface RunWhatSummary {
|
|
|
141
160
|
totalTokens?: {
|
|
142
161
|
input: number;
|
|
143
162
|
output: number;
|
|
163
|
+
total?: number;
|
|
164
|
+
cached?: number;
|
|
144
165
|
};
|
|
145
166
|
correlation?: TraceCorrelationMetadata;
|
|
146
167
|
failedStepNames: string[];
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { T as TraceEvent, R as RunSummary, a as TraceMetadata, b as TraceMetadataStatus, S as StepType, c as StepStatus, d as TraceCorrelationMetadata, e as RedactionProfile, I as InspectRunOptions, f as StepOptions, O as ObserveOptions } from './types-
|
|
2
|
-
export { A as ActiveStepContext, E as ErrorInfo, g as ExecutionContext, h as Run, i as RunCompletedEvent, j as RunStartedEvent, k as RunStatus, l as Step, m as StepCompletedEvent, n as StepMetadata, o as StepStartedEvent, p as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-
|
|
3
|
-
export { A as AttributionConfidence, E as EventSource,
|
|
4
|
-
import { PersistedInspectEvent } from './persisted.js';
|
|
5
|
-
export {
|
|
1
|
+
import { T as TraceEvent, R as RunSummary, a as TraceMetadata, b as TraceMetadataStatus, S as StepType, c as StepStatus, d as TraceCorrelationMetadata, e as RedactionProfile, I as InspectRunOptions, f as StepOptions, O as ObserveOptions } from './types-tSix7tfv.js';
|
|
2
|
+
export { A as ActiveStepContext, E as ErrorInfo, g as ExecutionContext, h as Run, i as RunCompletedEvent, j as RunStartedEvent, k as RunStatus, l as Step, m as StepCompletedEvent, n as StepMetadata, o as StepStartedEvent, p as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-tSix7tfv.js';
|
|
3
|
+
export { A as AttributionConfidence, E as EventSource, a as InspectEvent, I as InspectKind, b as InspectNode, c as InspectRunTree } from './inspect-event-Des4JDHo.js';
|
|
4
|
+
import { P as PersistedInspectEvent } from './persisted-inspect-event-DiFto0K2.js';
|
|
5
|
+
export { a as PersistedEventSource, b as PersistedEventSourceType, c as PersistedEventStatus, d as PersistedInspectError, e as PersistedSchemaVersion, f as PersistedTokenUsage, g as PersistedTraceContext, i as isPersistedInspectEvent } from './persisted-inspect-event-DiFto0K2.js';
|
|
6
|
+
export { InspectEventToPersistedOptions, PersistedToInspectEventOptions, PersistedToTraceEventOptions, PersistedTreeBridgeOptions, TraceEventToPersistedOptions, inspectEventToPersistedInspectEvent, inspectEventsToPersistedInspectEvents, persistedInspectEventToInspectEvent, persistedInspectEventToTraceEvents, persistedInspectEventsToInspectEvents, persistedInspectEventsToRunTrees, persistedInspectEventsToTraceEvents, traceEventToPersistedInspectEvent, traceEventsToPersistedInspectEvents, traceEventsToPersistedRunTrees } from './persisted.js';
|
|
7
|
+
export { L as LogEventMapping, a as LogIngestConfig, R as RedactionRule, b as RedactionStrategy } from './log-config-C1GcJPIM.js';
|
|
6
8
|
export { DEFAULT_LOG_INGEST_CONFIG, DEFAULT_REDACT_KEYS, EventNormalizer, JsonLogParser, LiveLogAccumulator, LiveLogAccumulatorOptions, LiveLogUpdate, Log4jsParser, LogSourceFormat, LogToTreeResult, NormalizeOptions, ParseLogLineOptions, ParseLogsOptions, ParseResult, ParserWarning, ParserWarningCode, RawLogRecord, Redactor, RedactorOptions, RenderTreeOptions, TreeBuilder, TreeBuilderOptions, loadLogIngestConfig, matchMapping, mergeLogIngestConfig, parseLogLine, parseLogsToTrees, renderRunTree, renderRunTrees, wildcardMatch } from './logs.js';
|
|
7
|
-
export { DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, ResolvedRedactionProfile, TERMINAL_INDENT, TraceSafetyOptions, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getTraceDirFromContext, getTraceFilePath, getTraceSafetyFromContext, hasActiveContext, isSilentContext, prepareMetadataForDisk, prepareTraceEventForDisk, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveRedactionProfile, resolveTraceSafetyOptions, runWithContext, runWithStepContext, truncateName, warn } from './advanced.js';
|
|
9
|
+
export { CreateInspectorOptions, DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, Inspector, InspectorCaptureOptions, InspectorObserveOptions, InspectorRunOptions, InspectorRuntime, InspectorRuntimeContext, InspectorRuntimeDiagnostics, InspectorRuntimeOptions, InspectorStepOptions, MAX_NAME_LENGTH, MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, RUNS_DIR_NAME, ResolvedRedactionProfile, TERMINAL_INDENT, TraceSafetyOptions, createInspector, createInspectorRuntime, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTerminalName, formatTimestamp, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getDefaultTraceDir, getIndent, getParentStepId, getTraceDirFromContext, getTraceFilePath, getTraceSafetyFromContext, hasActiveContext, isSilentContext, prepareMetadataForDisk, prepareTraceEventForDisk, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveRedactionProfile, resolveTraceSafetyOptions, runWithContext, runWithStepContext, truncateName, warn } from './advanced.js';
|
|
8
10
|
import { Stats } from 'node:fs';
|
|
11
|
+
export { BufferedFileWriterOptions, BufferedFileWriterOverflowMode, CompositeTraceWriterOptions, FileTraceWriterOptions, MemoryTraceWriter, TraceWriter, TraceWriterStats, bufferedFileWriter, compositeWriter, fileWriter, memoryWriter, nullWriter } from './writers.js';
|
|
12
|
+
export { DEFAULT_TRACE_READERS, TraceFormatCandidate, TraceFormatDetectionResult, TraceFormatDetectionStatus, TraceInput, TraceReadError, TraceReadErrorCode, TraceReadOptions, TraceReadResult, TraceReadWarning, TraceReadWarningSeverity, TraceReader, TraceReaderDetectOptions, TraceReaderReadOptions, agentInspectJsonlReader, detectTraceFormat, openTrace, readTrace } from './readers.js';
|
|
9
13
|
export { DiffKind, DiffOptions, DiffPath, DiffPathSegment, DiffSeverity, RenderDiffOptions, RunComparable, RunDiffItem, RunDiffResult, RunDiffSummary, StepComparable, diffRuns, diffTraceEvents, manualTraceEventsToComparableRun, renderRunDiff } from './diff.js';
|
|
10
14
|
export { EXPORT_PAYLOAD_VERSION, ExportFormat, ExportOptions, ExportResult, ExportValidationResult, OpenInferenceExport, OpenInferenceSpan, TraceExporter, compactAttributes, escapeHtml, escapeMarkdown, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, flattenTree, manualTraceEventsToRunTree, mergeExportDefaults, redactRunTreeForExport, safeString, stableJson, summarizeTree, validateExport, validateExportContent } from './exporters.js';
|
|
11
15
|
|
|
@@ -38,13 +42,28 @@ declare function listTraceFiles(traceDir: string): Promise<string[]>;
|
|
|
38
42
|
declare function getRunIdFromTraceFileName(fileName: string): string | undefined;
|
|
39
43
|
|
|
40
44
|
type TraceJsonlFormat = "0.1" | "0.2" | "mixed" | "empty";
|
|
45
|
+
type ParsedTraceJsonlRow = {
|
|
46
|
+
format: "0.1";
|
|
47
|
+
event: TraceEvent;
|
|
48
|
+
sourceLine: number;
|
|
49
|
+
} | {
|
|
50
|
+
format: "0.2";
|
|
51
|
+
event: PersistedInspectEvent;
|
|
52
|
+
sourceLine: number;
|
|
53
|
+
};
|
|
41
54
|
interface ParseTraceJsonlResult {
|
|
42
55
|
format: TraceJsonlFormat;
|
|
56
|
+
/** Count of valid source JSONL rows before any one-to-many normalization. */
|
|
57
|
+
sourceEventCount: number;
|
|
43
58
|
events: TraceEvent[];
|
|
44
59
|
persisted: PersistedInspectEvent[];
|
|
60
|
+
/** Valid source rows in JSONL order, before cross-version normalization. */
|
|
61
|
+
rows: ParsedTraceJsonlRow[];
|
|
45
62
|
}
|
|
46
63
|
interface ParseTraceJsonlOptions {
|
|
47
64
|
validate?: (value: unknown) => value is TraceEvent;
|
|
65
|
+
/** Emit parse warnings through the standard AgentInspect warning channel (default true). */
|
|
66
|
+
warnings?: boolean;
|
|
48
67
|
}
|
|
49
68
|
/**
|
|
50
69
|
* Parses JSONL content into normalized v0.1 {@link TraceEvent} rows.
|
|
@@ -141,6 +160,8 @@ interface RunWhatSummary {
|
|
|
141
160
|
totalTokens?: {
|
|
142
161
|
input: number;
|
|
143
162
|
output: number;
|
|
163
|
+
total?: number;
|
|
164
|
+
cached?: number;
|
|
144
165
|
};
|
|
145
166
|
correlation?: TraceCorrelationMetadata;
|
|
146
167
|
failedStepNames: string[];
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import { getCurrentContext,
|
|
2
|
-
export {
|
|
3
|
-
export { inspectEventToPersistedInspectEvent, inspectEventsToPersistedInspectEvents
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export {
|
|
7
|
-
import './chunk-7TGZLWEE.mjs';
|
|
8
|
-
export { TreeBuilder } from './chunk-E5F2LQCX.mjs';
|
|
9
|
-
import { exportMarkdown, exportHtml, manualTraceEventsToRunTree, redactRunTreeForExport } from './chunk-5EMIZZXD.mjs';
|
|
10
|
-
export { EXPORT_PAYLOAD_VERSION, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, manualTraceEventsToRunTree, mergeExportDefaults, redactRunTreeForExport, validateExport, validateExportContent } from './chunk-5EMIZZXD.mjs';
|
|
11
|
-
export { resolveRedactionProfile } from './chunk-EDTQHZPM.mjs';
|
|
12
|
-
export { DEFAULT_REDACT_KEYS, Redactor } from './chunk-VU6O5QAH.mjs';
|
|
1
|
+
import { getCurrentContext, getCurrentDepth, getParentStepId, getTraceSafetyFromContext, runWithStepContext, runWithContext, printStepStart, printStepComplete, printError, printFailedAt, printRunStart, printRunComplete } from './chunk-6QSLZCBJ.mjs';
|
|
2
|
+
export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, isSilentContext, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, runWithContext, runWithStepContext } from './chunk-6QSLZCBJ.mjs';
|
|
3
|
+
export { inspectEventToPersistedInspectEvent, inspectEventsToPersistedInspectEvents } from './chunk-U2BGPESY.mjs';
|
|
4
|
+
export { DEFAULT_LOG_INGEST_CONFIG, EventNormalizer, JsonLogParser, LiveLogAccumulator, Log4jsParser, loadLogIngestConfig, matchMapping, mergeLogIngestConfig, parseLogLine, parseLogsToTrees, renderRunTree, renderRunTrees, wildcardMatch } from './chunk-HR7G62IE.mjs';
|
|
5
|
+
import { redactTraceEventsForReport, exportMarkdown, exportHtml, manualTraceEventsToRunTree, redactRunTreeForExport } from './chunk-Y56BPA3B.mjs';
|
|
6
|
+
export { EXPORT_PAYLOAD_VERSION, exportHtml, exportMarkdown, exportOpenInference, exportOtlpJson, exportRunTree, manualTraceEventsToRunTree, mergeExportDefaults, redactRunTreeForExport, validateExport, validateExportContent } from './chunk-Y56BPA3B.mjs';
|
|
13
7
|
export { diffRuns, diffTraceEvents, manualTraceEventsToComparableRun, renderRunDiff } from './chunk-YWAOOXLR.mjs';
|
|
14
8
|
import './chunk-BT7CATSD.mjs';
|
|
15
9
|
import { escapeMarkdown, escapeHtml } from './chunk-HY7H3CQM.mjs';
|
|
16
10
|
export { compactAttributes, escapeHtml, escapeMarkdown, flattenTree, safeString, stableJson, summarizeTree } from './chunk-HY7H3CQM.mjs';
|
|
11
|
+
export { bufferedFileWriter, compositeWriter, fileWriter, memoryWriter, nullWriter } from './chunk-6SZPTECC.mjs';
|
|
12
|
+
import { readTraceEventsFromFile, resolveTraceSafetyOptions, prepareTraceEventForDisk, writeTraceEvent, initializeTraceFile } from './chunk-57S5D6HR.mjs';
|
|
13
|
+
export { DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, getRunIdFromTraceFileName, initializeTraceFile, listTraceFiles, prepareMetadataForDisk, prepareTraceEventForDisk, readTraceEvents, readTraceFile, resolveTraceSafetyOptions, serializeEvent, validateEvent, writeTraceEvent } from './chunk-57S5D6HR.mjs';
|
|
14
|
+
export { resolveRedactionProfile } from './chunk-EDTQHZPM.mjs';
|
|
15
|
+
export { DEFAULT_REDACT_KEYS, Redactor } from './chunk-VU6O5QAH.mjs';
|
|
16
|
+
export { DEFAULT_TRACE_READERS, TraceReadError, agentInspectJsonlReader, detectTraceFormat, openTrace, readTrace } from './chunk-TFLPUZ56.mjs';
|
|
17
|
+
export { persistedInspectEventToInspectEvent, persistedInspectEventsToInspectEvents, persistedInspectEventsToRunTrees, traceEventToPersistedInspectEvent, traceEventsToPersistedInspectEvents, traceEventsToPersistedRunTrees } from './chunk-TZISEVLQ.mjs';
|
|
18
|
+
import { buildRunStartedMetadata } from './chunk-S4YWKV4G.mjs';
|
|
19
|
+
export { TreeBuilder } from './chunk-E5F2LQCX.mjs';
|
|
20
|
+
import { warn, createStepId, formatError, truncateName, getDefaultTraceDir, parseTraceJsonl, parseDuration, formatTimestamp, formatDuration, isTraceEvent, createRunId, getTraceFilePath } from './chunk-VTIB5MDK.mjs';
|
|
21
|
+
export { DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, MAX_NAME_LENGTH, RUNS_DIR_NAME, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTimestamp, getDefaultTraceDir, getTraceFilePath, isStepStatus, isStepType, isTraceEvent, parseDuration, parseTraceJsonl, truncateName, unknownTraceFormatMessage, warn } from './chunk-VTIB5MDK.mjs';
|
|
22
|
+
export { isPersistedInspectEvent, persistedInspectEventToTraceEvents, persistedInspectEventsToTraceEvents } from './chunk-74XZ6N7Q.mjs';
|
|
23
|
+
import './chunk-7TGZLWEE.mjs';
|
|
17
24
|
import { readdir, stat, readFile } from 'fs/promises';
|
|
18
25
|
import path from 'path';
|
|
19
26
|
import { createReadStream } from 'fs';
|
|
@@ -55,12 +62,10 @@ var TraceDirectory = class {
|
|
|
55
62
|
function isFiniteNumber(v) {
|
|
56
63
|
return typeof v === "number" && Number.isFinite(v);
|
|
57
64
|
}
|
|
58
|
-
function
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return void 0;
|
|
63
|
-
}
|
|
65
|
+
function parseIsoToMs(value) {
|
|
66
|
+
if (value === void 0) return void 0;
|
|
67
|
+
const parsed = Date.parse(value);
|
|
68
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
64
69
|
}
|
|
65
70
|
async function extractMetadata(filePath, _quickScan) {
|
|
66
71
|
const stats = await stat(filePath);
|
|
@@ -69,8 +74,7 @@ async function extractMetadata(filePath, _quickScan) {
|
|
|
69
74
|
runIdFromFile = runIdFromFile.slice(0, -".jsonl".length);
|
|
70
75
|
}
|
|
71
76
|
const raw = await readFile(filePath, "utf-8");
|
|
72
|
-
const
|
|
73
|
-
let eventCount = 0;
|
|
77
|
+
const parsedTrace = parseTraceJsonl(raw, { warnings: false });
|
|
74
78
|
let runId;
|
|
75
79
|
let name;
|
|
76
80
|
let startedAt;
|
|
@@ -80,16 +84,32 @@ async function extractMetadata(filePath, _quickScan) {
|
|
|
80
84
|
let hasRunCompleted = false;
|
|
81
85
|
let runCompletedStatus;
|
|
82
86
|
let anyStepError = false;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
const anyKnownEvent = parsedTrace.sourceEventCount > 0;
|
|
88
|
+
let persistedStatus;
|
|
89
|
+
const persistedRun = parsedTrace.persisted.find(
|
|
90
|
+
(event) => event.kind === "RUN"
|
|
91
|
+
);
|
|
92
|
+
if (persistedRun) {
|
|
93
|
+
runId = persistedRun.runId;
|
|
94
|
+
if (persistedRun.name.trim() !== "") {
|
|
95
|
+
name = persistedRun.name;
|
|
96
|
+
}
|
|
97
|
+
startedAt = parseIsoToMs(persistedRun.startedAt) ?? parseIsoToMs(persistedRun.timestamp);
|
|
98
|
+
endedAt = parseIsoToMs(persistedRun.endedAt);
|
|
99
|
+
if (isFiniteNumber(persistedRun.durationMs)) {
|
|
100
|
+
explicitDurationMs = persistedRun.durationMs;
|
|
101
|
+
if (endedAt === void 0 && startedAt !== void 0) {
|
|
102
|
+
endedAt = startedAt + persistedRun.durationMs;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (persistedRun.status === "ok") persistedStatus = "success";
|
|
106
|
+
else if (persistedRun.status === "error") persistedStatus = "error";
|
|
107
|
+
else if (persistedRun.status === "running") persistedStatus = "running";
|
|
108
|
+
else if (persistedRun.status === "unknown") persistedStatus = "unknown";
|
|
109
|
+
} else {
|
|
110
|
+
runId = parsedTrace.persisted[0]?.runId;
|
|
111
|
+
}
|
|
112
|
+
for (const e of parsedTrace.events) {
|
|
93
113
|
if (runId === void 0 && typeof e.runId === "string") {
|
|
94
114
|
runId = e.runId;
|
|
95
115
|
}
|
|
@@ -126,6 +146,8 @@ async function extractMetadata(filePath, _quickScan) {
|
|
|
126
146
|
status = runCompletedStatus;
|
|
127
147
|
} else if (anyStepError) {
|
|
128
148
|
status = "error";
|
|
149
|
+
} else if (persistedStatus !== void 0) {
|
|
150
|
+
status = persistedStatus;
|
|
129
151
|
} else if (hasRunStarted && !hasRunCompleted) {
|
|
130
152
|
status = "running";
|
|
131
153
|
} else if (anyKnownEvent) {
|
|
@@ -141,12 +163,15 @@ async function extractMetadata(filePath, _quickScan) {
|
|
|
141
163
|
startedAt,
|
|
142
164
|
endedAt,
|
|
143
165
|
durationMs,
|
|
144
|
-
eventCount,
|
|
166
|
+
eventCount: parsedTrace.sourceEventCount,
|
|
145
167
|
filePath,
|
|
146
168
|
fileSize: stats.size,
|
|
147
169
|
createdAt: stats.birthtime
|
|
148
170
|
};
|
|
149
171
|
}
|
|
172
|
+
function isNonNegativeFiniteNumber(value) {
|
|
173
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
174
|
+
}
|
|
150
175
|
function buildRunSummary(events) {
|
|
151
176
|
const started = events.find(
|
|
152
177
|
(e) => e.event === "run_started"
|
|
@@ -169,8 +194,10 @@ function buildRunSummary(events) {
|
|
|
169
194
|
name: s.name,
|
|
170
195
|
status: "running",
|
|
171
196
|
parentId: s.parentId,
|
|
172
|
-
tokensInput:
|
|
173
|
-
tokensOutput:
|
|
197
|
+
tokensInput: isNonNegativeFiniteNumber(s.metadata?.tokens?.input) ? s.metadata.tokens.input : void 0,
|
|
198
|
+
tokensOutput: isNonNegativeFiniteNumber(s.metadata?.tokens?.output) ? s.metadata.tokens.output : void 0,
|
|
199
|
+
tokensTotal: isNonNegativeFiniteNumber(s.metadata?.tokens?.total) ? s.metadata.tokens.total : void 0,
|
|
200
|
+
tokensCached: isNonNegativeFiniteNumber(s.metadata?.tokens?.cached) ? s.metadata.tokens.cached : void 0
|
|
174
201
|
});
|
|
175
202
|
}
|
|
176
203
|
}
|
|
@@ -192,7 +219,11 @@ function buildRunSummary(events) {
|
|
|
192
219
|
let longestStep;
|
|
193
220
|
let totalTokensInput = 0;
|
|
194
221
|
let totalTokensOutput = 0;
|
|
195
|
-
let
|
|
222
|
+
let totalTokensTotal = 0;
|
|
223
|
+
let totalTokensCached = 0;
|
|
224
|
+
let tokenBearingSteps = 0;
|
|
225
|
+
let stepsWithKnownTotal = 0;
|
|
226
|
+
let hasCachedTokens = false;
|
|
196
227
|
const depthCache = /* @__PURE__ */ new Map();
|
|
197
228
|
const computeDepth = (stepId) => {
|
|
198
229
|
const cached = depthCache.get(stepId);
|
|
@@ -221,10 +252,21 @@ function buildRunSummary(events) {
|
|
|
221
252
|
longestStep = { name: s.name, durationMs: s.durationMs, type: s.type };
|
|
222
253
|
}
|
|
223
254
|
}
|
|
224
|
-
if (
|
|
225
|
-
|
|
226
|
-
if (
|
|
227
|
-
if (
|
|
255
|
+
if (s.tokensInput !== void 0 || s.tokensOutput !== void 0 || s.tokensTotal !== void 0 || s.tokensCached !== void 0) {
|
|
256
|
+
tokenBearingSteps += 1;
|
|
257
|
+
if (s.tokensInput !== void 0) totalTokensInput += s.tokensInput;
|
|
258
|
+
if (s.tokensOutput !== void 0) totalTokensOutput += s.tokensOutput;
|
|
259
|
+
if (s.tokensTotal !== void 0) {
|
|
260
|
+
totalTokensTotal += s.tokensTotal;
|
|
261
|
+
stepsWithKnownTotal += 1;
|
|
262
|
+
} else if (s.tokensInput !== void 0 && s.tokensOutput !== void 0) {
|
|
263
|
+
totalTokensTotal += s.tokensInput + s.tokensOutput;
|
|
264
|
+
stepsWithKnownTotal += 1;
|
|
265
|
+
}
|
|
266
|
+
if (s.tokensCached !== void 0) {
|
|
267
|
+
totalTokensCached += s.tokensCached;
|
|
268
|
+
hasCachedTokens = true;
|
|
269
|
+
}
|
|
228
270
|
}
|
|
229
271
|
}
|
|
230
272
|
const summary = {
|
|
@@ -239,7 +281,14 @@ function buildRunSummary(events) {
|
|
|
239
281
|
errorSteps,
|
|
240
282
|
maxDepth,
|
|
241
283
|
...longestStep ? { longestStep } : {},
|
|
242
|
-
...
|
|
284
|
+
...tokenBearingSteps > 0 ? {
|
|
285
|
+
totalTokens: {
|
|
286
|
+
input: totalTokensInput,
|
|
287
|
+
output: totalTokensOutput,
|
|
288
|
+
...stepsWithKnownTotal === tokenBearingSteps ? { total: totalTokensTotal } : {},
|
|
289
|
+
...hasCachedTokens ? { cached: totalTokensCached } : {}
|
|
290
|
+
}
|
|
291
|
+
} : {}
|
|
243
292
|
};
|
|
244
293
|
return summary;
|
|
245
294
|
}
|
|
@@ -544,9 +593,17 @@ function renderRunWhat(summary, options = {}) {
|
|
|
544
593
|
`Status: ${summary.status} \xB7 Duration: ${duration} \xB7 Steps: ${summary.totalSteps} (${stepMixLine(summary)})`
|
|
545
594
|
);
|
|
546
595
|
if (summary.totalTokens) {
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
596
|
+
const tokenParts = [
|
|
597
|
+
`${summary.totalTokens.input} in`,
|
|
598
|
+
`${summary.totalTokens.output} out`
|
|
599
|
+
];
|
|
600
|
+
if (summary.totalTokens.total !== void 0) {
|
|
601
|
+
tokenParts.push(`${summary.totalTokens.total} total`);
|
|
602
|
+
}
|
|
603
|
+
if (summary.totalTokens.cached !== void 0) {
|
|
604
|
+
tokenParts.push(`${summary.totalTokens.cached} cached`);
|
|
605
|
+
}
|
|
606
|
+
lines.push(`Tokens: ${tokenParts.join(" / ")}`);
|
|
550
607
|
}
|
|
551
608
|
if (showCorrelation && summary.correlation) {
|
|
552
609
|
const parts = [];
|
|
@@ -609,12 +666,15 @@ footer{margin-top:2rem;font-size:0.85rem;color:#555}
|
|
|
609
666
|
`.trim();
|
|
610
667
|
function buildRunReport(events, options) {
|
|
611
668
|
const profile = options.redactionProfile ?? "local";
|
|
612
|
-
const
|
|
669
|
+
const safeEvents = redactTraceEventsForReport(events, {
|
|
670
|
+
redactionProfile: profile
|
|
671
|
+
});
|
|
672
|
+
const whatSummary = buildRunWhatSummary(safeEvents);
|
|
613
673
|
const whatText = renderRunWhat(whatSummary, {
|
|
614
674
|
correlation: options.correlation !== false
|
|
615
675
|
});
|
|
616
|
-
const timelineText = renderTimeline(buildRunTimeline(
|
|
617
|
-
const tree = resolveTree(
|
|
676
|
+
const timelineText = renderTimeline(buildRunTimeline(safeEvents));
|
|
677
|
+
const tree = resolveTree(safeEvents, profile);
|
|
618
678
|
const exportOpts = {
|
|
619
679
|
includeMetadata: false,
|
|
620
680
|
includeAttributes: options.includeAttributes === true,
|
|
@@ -696,6 +756,8 @@ ${attrsSection}
|
|
|
696
756
|
fileExtension: ".html"
|
|
697
757
|
};
|
|
698
758
|
}
|
|
759
|
+
|
|
760
|
+
// packages/core/src/stats.ts
|
|
699
761
|
function percentile(sorted, p) {
|
|
700
762
|
if (sorted.length === 0) return void 0;
|
|
701
763
|
const idx = Math.min(
|
|
@@ -706,19 +768,10 @@ function percentile(sorted, p) {
|
|
|
706
768
|
}
|
|
707
769
|
async function readRunStartedMetadata(filePath) {
|
|
708
770
|
try {
|
|
709
|
-
const
|
|
710
|
-
for (const
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
let parsed;
|
|
714
|
-
try {
|
|
715
|
-
parsed = JSON.parse(trimmed);
|
|
716
|
-
} catch {
|
|
717
|
-
continue;
|
|
718
|
-
}
|
|
719
|
-
if (!isTraceEvent(parsed)) continue;
|
|
720
|
-
if (parsed.event !== "run_started") continue;
|
|
721
|
-
const rs = parsed;
|
|
771
|
+
const events = await readTraceEventsFromFile(filePath);
|
|
772
|
+
for (const event of events) {
|
|
773
|
+
if (event.event !== "run_started") continue;
|
|
774
|
+
const rs = event;
|
|
722
775
|
if (rs.metadata && typeof rs.metadata === "object") {
|
|
723
776
|
return rs.metadata;
|
|
724
777
|
}
|
|
@@ -777,7 +830,7 @@ async function buildTraceStats(metas, options) {
|
|
|
777
830
|
});
|
|
778
831
|
}
|
|
779
832
|
try {
|
|
780
|
-
const events = await
|
|
833
|
+
const events = await readTraceEventsFromFile(m.filePath);
|
|
781
834
|
if (events.length === 0) continue;
|
|
782
835
|
const summary = buildRunSummary(events);
|
|
783
836
|
totalSteps += summary.totalSteps;
|
|
@@ -965,7 +1018,7 @@ async function searchTraces(metas, options) {
|
|
|
965
1018
|
if (options.status && m.status !== options.status) continue;
|
|
966
1019
|
let events = [];
|
|
967
1020
|
try {
|
|
968
|
-
events = await
|
|
1021
|
+
events = await readTraceEventsFromFile(m.filePath);
|
|
969
1022
|
} catch {
|
|
970
1023
|
continue;
|
|
971
1024
|
}
|