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.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/docs/EXPORTS.md +9 -0
- package/docs/PERFORMANCE.md +18 -0
- package/docs/STANDARDS.md +4 -0
- package/package.json +2 -2
- package/packages/cli/dist/{chunk-M6PC5KUT.mjs → chunk-EMYDJREA.mjs} +26 -10
- package/packages/cli/dist/chunk-EMYDJREA.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +46 -21
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +23 -14
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-27LC2BB3.mjs → src-IPJNFV37.mjs} +3 -3
- package/packages/cli/dist/{src-27LC2BB3.mjs.map → src-IPJNFV37.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +24 -8
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.mjs +25 -9
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/core/dist/checks.cjs +56 -4
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.mjs +1 -1
- package/packages/core/dist/{chunk-EWHN6NA4.mjs → chunk-EQVXDGGU.mjs} +58 -6
- package/packages/core/dist/chunk-EQVXDGGU.mjs.map +1 -0
- package/packages/core/dist/diff.cjs +4 -0
- package/packages/core/dist/diff.cjs.map +1 -1
- package/packages/core/dist/diff.mjs +4 -0
- package/packages/core/dist/diff.mjs.map +1 -1
- package/packages/core/dist/exporters.cjs +9 -4
- 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 +9 -4
- package/packages/core/dist/exporters.mjs.map +1 -1
- package/packages/core/dist/logs.cjs +3 -2
- package/packages/core/dist/logs.cjs.map +1 -1
- package/packages/core/dist/logs.mjs +3 -2
- package/packages/core/dist/logs.mjs.map +1 -1
- package/packages/cli/dist/chunk-M6PC5KUT.mjs.map +0 -1
- 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-
|
|
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.
|
|
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 (
|
|
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 (
|
|
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 =
|
|
2271
|
+
const startNs = unixNano(ev.timestamp);
|
|
2266
2272
|
let endNs;
|
|
2267
2273
|
if (ev.durationMs !== void 0 && Number.isFinite(ev.durationMs)) {
|
|
2268
|
-
endNs = startNs +
|
|
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-
|
|
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
|
|
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" ?
|
|
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-
|
|
10372
|
+
return await import('./src-IPJNFV37.mjs');
|
|
10364
10373
|
} catch (e) {
|
|
10365
10374
|
if (isModuleNotFound4(e)) {
|
|
10366
10375
|
console.error(
|