agent-inspect 6.14.0 → 6.14.2
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 +22 -6
- package/README.md +47 -45
- package/docs/DEMO-SCRIPT.md +2 -2
- package/docs/GOLDEN-PATH.md +18 -18
- package/docs/KNOWN-ISSUES.md +2 -1
- package/docs/SUPPORT-LEVELS.md +2 -2
- package/docs/TRACE-CONTRACTS.md +13 -3
- package/package.json +15 -6
- package/packages/cli/dist/{chunk-MEO2Z3KE.mjs → chunk-AACUXCHT.mjs} +205 -35
- package/packages/cli/dist/chunk-AACUXCHT.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +265 -35
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +59 -6
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-6VZNGIF6.mjs → src-ABTS4GO4.mjs} +3 -3
- package/packages/cli/dist/{src-6VZNGIF6.mjs.map → src-ABTS4GO4.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +156 -19
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +17 -9
- package/packages/core/dist/advanced.d.ts +17 -9
- package/packages/core/dist/advanced.mjs +6 -6
- package/packages/core/dist/checks.cjs +108 -18
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +4 -4
- package/packages/core/dist/checks.d.ts +4 -4
- package/packages/core/dist/checks.mjs +1 -1
- package/packages/core/dist/{chunk-CTA6XNDP.mjs → chunk-5N2OBM7S.mjs} +3 -3
- package/packages/core/dist/{chunk-CTA6XNDP.mjs.map → chunk-5N2OBM7S.mjs.map} +1 -1
- package/packages/core/dist/chunk-AK5EN4U2.mjs +174 -0
- package/packages/core/dist/chunk-AK5EN4U2.mjs.map +1 -0
- package/packages/core/dist/{chunk-BS2QCAJX.mjs → chunk-BHMXLDLK.mjs} +110 -20
- package/packages/core/dist/chunk-BHMXLDLK.mjs.map +1 -0
- package/packages/core/dist/{chunk-UOPVGCOB.mjs → chunk-NXQF73EC.mjs} +3 -3
- package/packages/core/dist/{chunk-UOPVGCOB.mjs.map → chunk-NXQF73EC.mjs.map} +1 -1
- package/packages/core/dist/{chunk-LFWZEO2L.mjs → chunk-SGL4JGCD.mjs} +3 -3
- package/packages/core/dist/{chunk-LFWZEO2L.mjs.map → chunk-SGL4JGCD.mjs.map} +1 -1
- package/packages/core/dist/{context-BHAgRjOe.d.cts → context-Ca5yK8Cs.d.cts} +3 -3
- package/packages/core/dist/{context-Blyjb5my.d.ts → context-D6cS4XIL.d.ts} +3 -3
- package/packages/core/dist/diff.d.cts +3 -3
- package/packages/core/dist/diff.d.ts +3 -3
- package/packages/core/dist/exporters.d.cts +3 -3
- package/packages/core/dist/exporters.d.ts +3 -3
- package/packages/core/dist/exporters.mjs +1 -1
- package/packages/core/dist/{index-CmXMS-MF.d.cts → index-BY6XZ5aG.d.cts} +3 -3
- package/packages/core/dist/{index-Bu_vOjql.d.ts → index-D9HBequ_.d.ts} +3 -3
- package/packages/core/dist/index.d.cts +6 -6
- package/packages/core/dist/index.d.ts +6 -6
- package/packages/core/dist/{inspect-event-DVg84S4v.d.cts → inspect-event-DRthdZlf.d.cts} +9 -0
- package/packages/core/dist/{inspect-event-DVg84S4v.d.ts → inspect-event-DRthdZlf.d.ts} +9 -0
- package/packages/core/dist/{log-config-BG1WmWf2.d.cts → log-config-CFlIJHTf.d.cts} +1 -1
- package/packages/core/dist/{log-config-Ck0aT_Ou.d.ts → log-config-OZRfpHED.d.ts} +1 -1
- package/packages/core/dist/logs.cjs +95 -15
- package/packages/core/dist/logs.cjs.map +1 -1
- package/packages/core/dist/logs.d.cts +3 -3
- package/packages/core/dist/logs.d.ts +3 -3
- package/packages/core/dist/logs.mjs +2 -2
- package/packages/core/dist/{persisted-inspect-event-ChE7pGb7.d.ts → persisted-inspect-event-BVucFVrP.d.ts} +1 -1
- package/packages/core/dist/{persisted-inspect-event-d-mSP8kd.d.cts → persisted-inspect-event-CVZWZldL.d.cts} +1 -1
- package/packages/core/dist/persisted.cjs +95 -15
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.d.cts +5 -5
- package/packages/core/dist/persisted.d.ts +5 -5
- package/packages/core/dist/persisted.mjs +3 -3
- package/packages/core/dist/readers.cjs +95 -15
- package/packages/core/dist/readers.cjs.map +1 -1
- package/packages/core/dist/readers.d.cts +2 -2
- package/packages/core/dist/readers.d.ts +2 -2
- package/packages/core/dist/readers.mjs +3 -3
- package/packages/core/dist/{types-MuwXSJ4b.d.ts → types--ainI31J.d.ts} +1 -1
- package/packages/core/dist/{types-BLX3tiOW.d.cts → types-UnrNaTo2.d.cts} +1 -1
- package/packages/core/dist/writers.d.cts +2 -2
- package/packages/core/dist/writers.d.ts +2 -2
- package/packages/cli/dist/chunk-MEO2Z3KE.mjs.map +0 -1
- package/packages/core/dist/chunk-BS2QCAJX.mjs.map +0 -1
- package/packages/core/dist/chunk-T5MASTIW.mjs +0 -94
- package/packages/core/dist/chunk-T5MASTIW.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createSafetyOversizedAttributeRule, resolveTraceDir, parseDuration, buildSessionIndex, resolveBundleRunIds, getTraceFilePath, openTrace, sha256Hex, collectTraceSchemaVersions, aggregateBundleSafeStatus, bundleFailsOnSafety, bundleRunAssetRelativePath, buildPlaceholderArtifact, EVIDENCE_HTML_FILENAME, EVIDENCE_MANIFEST_FILENAME, buildBundleMetadata, buildBundleSummaryMarkdown, buildEvidenceHtmlShell, buildEvidenceProvenanceViewHtml, EVIDENCE_FORMAT_VERSION, inferEvidenceFileRole, buildEvidenceSafetyViewHtml, buildEvidenceDiffViewHtml, buildEvidenceCircuitViewHtml, buildEvidenceOutcomesViewHtml, buildEvidenceContractsViewHtml, buildEvidenceToolsLlmViewHtml, buildEvidenceCausalFailureViewHtml, buildEvidenceTimelineViewHtml, buildEvidenceTreeViewHtml, buildEvidenceManifest, serializeEvidenceManifest, buildZipArchive, assertBundlePathContained, enrichSessionRunRecord, normalizeBundleOutputPath, sanitizeBundleRunId, defaultBundleOutputPath, runTraceChecks, assertEvidenceRelativePath, TraceDirectory, loadTraceMetadataList, loadSessionRunRecords, TraceReadError, resolveRedactionProfile, applyProfileMetadataCaps, Redactor, flattenTree, escapeHtml, safeString, compactAttributes, stableJson, escapeMarkdown, truncateStringForProfile, extractMetadata, filterTraces, truncateName, buildRunSummary, formatDuration, formatTimestamp, isAgentInspectTrace, filterMetasBySessionScope, aggregateSessionCheckResults, createBaselineRegressionRule, summarizeSemanticParity, buildEvidenceCiPackage, verifyEvidenceDirectory, diffTraceEvents, renderRunDiff, 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, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, diffRuns, manualTraceEventsToComparableRun } from './chunk-
|
|
2
|
+
import { createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createSafetyOversizedAttributeRule, resolveTraceDir, parseDuration, buildSessionIndex, resolveBundleRunIds, getTraceFilePath, openTrace, sha256Hex, collectTraceSchemaVersions, aggregateBundleSafeStatus, bundleFailsOnSafety, bundleRunAssetRelativePath, buildPlaceholderArtifact, EVIDENCE_HTML_FILENAME, EVIDENCE_MANIFEST_FILENAME, buildBundleMetadata, buildBundleSummaryMarkdown, buildEvidenceHtmlShell, buildEvidenceProvenanceViewHtml, EVIDENCE_FORMAT_VERSION, inferEvidenceFileRole, buildEvidenceSafetyViewHtml, buildEvidenceDiffViewHtml, buildEvidenceCircuitViewHtml, buildEvidenceOutcomesViewHtml, buildEvidenceContractsViewHtml, buildEvidenceToolsLlmViewHtml, buildEvidenceCausalFailureViewHtml, buildEvidenceTimelineViewHtml, buildEvidenceTreeViewHtml, buildEvidenceManifest, serializeEvidenceManifest, buildZipArchive, assertBundlePathContained, enrichSessionRunRecord, normalizeBundleOutputPath, sanitizeBundleRunId, defaultBundleOutputPath, runTraceChecks, assertEvidenceRelativePath, TraceDirectory, loadTraceMetadataList, loadSessionRunRecords, TraceReadError, resolveRedactionProfile, applyProfileMetadataCaps, Redactor, flattenTree, escapeHtml, safeString, compactAttributes, stableJson, escapeMarkdown, truncateStringForProfile, extractMetadata, filterTraces, truncateName, buildRunSummary, formatDuration, formatTimestamp, isAgentInspectTrace, filterMetasBySessionScope, aggregateSessionCheckResults, createBaselineRegressionRule, summarizeSemanticParity, buildEvidenceCiPackage, verifyEvidenceDirectory, diffTraceEvents, renderRunDiff, buildRunTimeline, renderTimeline, buildTraceStats, renderTraceStats, parseDurationFilter, searchTraces, formatStepLabel, buildActivitySummary, renderActivitySummaryHuman, buildRunWhatSummary, renderRunWhat, buildLocalExplanation, resolveSuiteTemplate, defaultSuiteConfigTemplate, loadSuiteConfig, validateSuiteConfig, runSuite, renderSuiteReport, analyzeCohort, renderCohortReport, gateHasThresholds, runGate, renderGateReport, persistedInspectEventsToTraceEvents, renderStepLine, renderErrorLine, getIndent, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, diffRuns, manualTraceEventsToComparableRun } from './chunk-AACUXCHT.mjs';
|
|
3
3
|
import { realpathSync, constants as constants$1, existsSync, readFileSync } from 'fs';
|
|
4
4
|
import path16 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.14.
|
|
14
|
+
var version = "6.14.2";
|
|
15
15
|
|
|
16
16
|
// packages/cli/src/trace-dir-scale.ts
|
|
17
17
|
var TRACE_COUNT_WARN = 1e3;
|
|
@@ -3287,7 +3287,7 @@ async function searchCommand(options = {}) {
|
|
|
3287
3287
|
}
|
|
3288
3288
|
console.log(`Search results (${results.length})`);
|
|
3289
3289
|
for (const r of results) {
|
|
3290
|
-
const step = r.stepName !== void 0 ? ` | ${r.stepType ?? "step"
|
|
3290
|
+
const step = r.stepName !== void 0 ? ` | ${formatStepLabel(r.stepType ?? "step", r.stepName)}` : "";
|
|
3291
3291
|
const dur = r.durationMs !== void 0 ? ` | ${r.durationMs}ms` : "";
|
|
3292
3292
|
console.log(
|
|
3293
3293
|
`${r.runId}${step} | ${r.runStatus}${dur} | ${r.matchReason}`
|
|
@@ -3346,7 +3346,7 @@ async function newestTraceMtimeMs(traceDir) {
|
|
|
3346
3346
|
}
|
|
3347
3347
|
async function loadSessionRuns(traceDir) {
|
|
3348
3348
|
try {
|
|
3349
|
-
const mod = await import('./src-
|
|
3349
|
+
const mod = await import('./src-ABTS4GO4.mjs');
|
|
3350
3350
|
const dbPath = mod.resolveIndexDbPath(traceDir);
|
|
3351
3351
|
const status = mod.indexStatus(dbPath);
|
|
3352
3352
|
if (!status.healthy) {
|
|
@@ -3817,6 +3817,53 @@ async function reportCommand(runId, options = {}) {
|
|
|
3817
3817
|
console.log(result.content);
|
|
3818
3818
|
}
|
|
3819
3819
|
}
|
|
3820
|
+
|
|
3821
|
+
// packages/redact/src/sensitive-key.ts
|
|
3822
|
+
function normalizeSensitiveKey(value) {
|
|
3823
|
+
return value.toLowerCase().replace(/[^a-z0-9_]/g, "");
|
|
3824
|
+
}
|
|
3825
|
+
var NON_CREDENTIAL_TOKEN_CONFIG_KEYS = new Set(
|
|
3826
|
+
[
|
|
3827
|
+
"tokens",
|
|
3828
|
+
"max_tokens",
|
|
3829
|
+
"min_tokens",
|
|
3830
|
+
"ls_max_tokens",
|
|
3831
|
+
"token_count",
|
|
3832
|
+
"token_limit",
|
|
3833
|
+
"token_budget",
|
|
3834
|
+
"input_tokens",
|
|
3835
|
+
"output_tokens",
|
|
3836
|
+
"total_tokens",
|
|
3837
|
+
"cached_tokens",
|
|
3838
|
+
"prompt_tokens",
|
|
3839
|
+
"completion_tokens"
|
|
3840
|
+
].map(normalizeSensitiveKey)
|
|
3841
|
+
);
|
|
3842
|
+
function isTokenCredentialKey(normalized) {
|
|
3843
|
+
if (NON_CREDENTIAL_TOKEN_CONFIG_KEYS.has(normalized)) return false;
|
|
3844
|
+
if (normalized === "token") return true;
|
|
3845
|
+
if (normalized.endsWith("tokens")) return false;
|
|
3846
|
+
return normalized.endsWith("token");
|
|
3847
|
+
}
|
|
3848
|
+
function isCredentialSensitiveKey(key, sensitiveKeys) {
|
|
3849
|
+
if (!key) return false;
|
|
3850
|
+
const normalized = normalizeSensitiveKey(key);
|
|
3851
|
+
if (!normalized) return false;
|
|
3852
|
+
if (NON_CREDENTIAL_TOKEN_CONFIG_KEYS.has(normalized)) return false;
|
|
3853
|
+
for (const sensitive of sensitiveKeys) {
|
|
3854
|
+
const s = normalizeSensitiveKey(sensitive);
|
|
3855
|
+
if (!s) continue;
|
|
3856
|
+
if (s === "token") {
|
|
3857
|
+
if (isTokenCredentialKey(normalized)) return true;
|
|
3858
|
+
continue;
|
|
3859
|
+
}
|
|
3860
|
+
if (normalized === s) return true;
|
|
3861
|
+
if (normalized.endsWith(`_${s}`) || normalized.startsWith(`${s}_`)) return true;
|
|
3862
|
+
}
|
|
3863
|
+
return false;
|
|
3864
|
+
}
|
|
3865
|
+
|
|
3866
|
+
// packages/redact/src/index.ts
|
|
3820
3867
|
var DEFAULT_REDACT_KEYS2 = [
|
|
3821
3868
|
"authorization",
|
|
3822
3869
|
"cookie",
|
|
@@ -3878,6 +3925,12 @@ function isRecord5(value) {
|
|
|
3878
3925
|
function toKey(key) {
|
|
3879
3926
|
return key.toLowerCase();
|
|
3880
3927
|
}
|
|
3928
|
+
function findCompiledKeyRule(key, rules) {
|
|
3929
|
+
const exact = toKey(key);
|
|
3930
|
+
const direct = rules.find((candidate) => candidate.key === exact);
|
|
3931
|
+
if (direct) return direct;
|
|
3932
|
+
return rules.find((candidate) => isCredentialSensitiveKey(key, [candidate.key]));
|
|
3933
|
+
}
|
|
3881
3934
|
function stableHash(value) {
|
|
3882
3935
|
const hash = crypto.createHash("sha256").update(value, "utf8").digest("hex");
|
|
3883
3936
|
return hash.slice(0, 8);
|
|
@@ -4199,7 +4252,7 @@ var Redactor2 = class {
|
|
|
4199
4252
|
return "[Truncated]";
|
|
4200
4253
|
}
|
|
4201
4254
|
if (key !== void 0) {
|
|
4202
|
-
const rule = this.#rules
|
|
4255
|
+
const rule = findCompiledKeyRule(key, this.#rules);
|
|
4203
4256
|
if (rule) {
|
|
4204
4257
|
this.#recordFinding(
|
|
4205
4258
|
state,
|
|
@@ -10659,7 +10712,7 @@ function isModuleNotFound4(e) {
|
|
|
10659
10712
|
}
|
|
10660
10713
|
async function loadIndexSqlite() {
|
|
10661
10714
|
try {
|
|
10662
|
-
return await import('./src-
|
|
10715
|
+
return await import('./src-ABTS4GO4.mjs');
|
|
10663
10716
|
} catch (e) {
|
|
10664
10717
|
if (isModuleNotFound4(e)) {
|
|
10665
10718
|
console.error(
|