agent-inspect 6.30.0 → 6.31.1
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 +12 -0
- package/README.md +1 -1
- package/docs/COMPARE.md +1 -1
- package/docs/FIRST-TRACE-IN-5-MINUTES.md +21 -17
- package/docs/GETTING-STARTED.md +1 -1
- package/docs/TRACE-CONTRACTS.md +25 -0
- package/package.json +4 -2
- package/packages/cli/dist/{chunk-BDRJENLM.mjs → chunk-SJ6FRNOE.mjs} +201 -49
- package/packages/cli/dist/chunk-SJ6FRNOE.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +288 -50
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +91 -5
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-ZUGAUXY6.mjs → src-YNEJOPRA.mjs} +3 -3
- package/packages/cli/dist/{src-ZUGAUXY6.mjs.map → src-YNEJOPRA.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +39 -1
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +2 -2
- package/packages/core/dist/advanced.d.ts +2 -2
- package/packages/core/dist/advanced.mjs +2 -2
- package/packages/core/dist/checks.cjs +207 -47
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +2 -2
- package/packages/core/dist/checks.d.ts +2 -2
- package/packages/core/dist/checks.mjs +1 -1
- package/packages/core/dist/{chunk-OOX25GTH.mjs → chunk-CBPWLHNQ.mjs} +209 -50
- package/packages/core/dist/{chunk-OOX25GTH.mjs.map → chunk-CBPWLHNQ.mjs.map} +1 -1
- package/packages/core/dist/{index-7hG_qggp.d.ts → index-CgOAGuM5.d.ts} +111 -1
- package/packages/core/dist/{index-CQJUNPPe.d.cts → index-EQihlEei.d.cts} +111 -1
- package/packages/cli/dist/chunk-BDRJENLM.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { ATTRIBUTION_CONFIDENCES, 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, renderErrorLine, isAgentInspectTrace, defineTraceContract, filterMetasBySessionScope, evaluateTraceContract, 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, getIndent, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, projectLogicalEvents, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, isAttributionConfidence, diffRuns, manualTraceEventsToComparableRun } from './chunk-
|
|
2
|
+
import { ATTRIBUTION_CONFIDENCES, 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, renderErrorLine, isAgentInspectTrace, defineTraceContract, filterMetasBySessionScope, evaluateTraceContract, 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, getIndent, TreeBuilder, zeroKinds, validateEvent, traceEventToPersistedInspectEvent, isPersistedInspectEvent, createRunStatusRule, createStructureOrphanRule, createStructureCycleRule, createRunDurationRule, createMaxStepDurationRule, createRequireCompletedRule, createStallDetectionRule, createObservedOutcomeRule, createRunDepthRule, createToolUsageRule, createLlmUsageRule, createStructureRelationshipRule, createStructureParallelWidthRule, projectLogicalEvents, summarizeObservedOutcomes, extractOutcomesFromTraceEvents, renderObservedOutcomesMarkdown, renderObservedOutcomesHtml, DEFAULT_SUITE_ARTIFACTS_DIR, parseCohortMetricList, COHORT_METRIC_IDS, parseGateList, nanoid, isAttributionConfidence, diffRuns, manualTraceEventsToComparableRun } from './chunk-SJ6FRNOE.mjs';
|
|
3
3
|
import { realpathSync, constants as constants$1, existsSync, readFileSync } from 'fs';
|
|
4
4
|
import path19 from 'path';
|
|
5
5
|
import { fileURLToPath, pathToFileURL } from 'url';
|
|
@@ -13,7 +13,7 @@ import { createServer } from 'http';
|
|
|
13
13
|
import { createRequire } from 'module';
|
|
14
14
|
|
|
15
15
|
// package.json
|
|
16
|
-
var version = "6.
|
|
16
|
+
var version = "6.31.1";
|
|
17
17
|
|
|
18
18
|
// packages/cli/src/trace-dir-scale.ts
|
|
19
19
|
var TRACE_COUNT_WARN = 1e3;
|
|
@@ -3397,7 +3397,7 @@ async function newestTraceMtimeMs(traceDir) {
|
|
|
3397
3397
|
}
|
|
3398
3398
|
async function loadSessionRuns(traceDir) {
|
|
3399
3399
|
try {
|
|
3400
|
-
const mod = await import('./src-
|
|
3400
|
+
const mod = await import('./src-YNEJOPRA.mjs');
|
|
3401
3401
|
const dbPath = mod.resolveIndexDbPath(traceDir);
|
|
3402
3402
|
const status = mod.indexStatus(dbPath);
|
|
3403
3403
|
if (!status.healthy) {
|
|
@@ -6834,6 +6834,7 @@ var CONTRACT_KEYS = /* @__PURE__ */ new Set([
|
|
|
6834
6834
|
"run",
|
|
6835
6835
|
"tools",
|
|
6836
6836
|
"llm",
|
|
6837
|
+
"steps",
|
|
6837
6838
|
"observations",
|
|
6838
6839
|
"scope",
|
|
6839
6840
|
"alternatives",
|
|
@@ -6844,6 +6845,7 @@ var CONTRACT_BODY_KEYS = /* @__PURE__ */ new Set([
|
|
|
6844
6845
|
"run",
|
|
6845
6846
|
"tools",
|
|
6846
6847
|
"llm",
|
|
6848
|
+
"steps",
|
|
6847
6849
|
"observations",
|
|
6848
6850
|
"controls",
|
|
6849
6851
|
"retry"
|
|
@@ -6921,6 +6923,15 @@ var CONTRACT_ORDER_RULE_KEYS = /* @__PURE__ */ new Set([
|
|
|
6921
6923
|
"occurrenceMode",
|
|
6922
6924
|
"requireEndpoints"
|
|
6923
6925
|
]);
|
|
6926
|
+
var CONTRACT_STEPS_KEYS = /* @__PURE__ */ new Set(["orderRelations"]);
|
|
6927
|
+
var CONTRACT_STEP_ORDER_RELATION_KEYS = /* @__PURE__ */ new Set([
|
|
6928
|
+
"before",
|
|
6929
|
+
"after",
|
|
6930
|
+
"mode",
|
|
6931
|
+
"requireEndpoints"
|
|
6932
|
+
]);
|
|
6933
|
+
var CONTRACT_STEP_REF_KEYS = /* @__PURE__ */ new Set(["kind", "name"]);
|
|
6934
|
+
var CONTRACT_STEP_KINDS = /* @__PURE__ */ new Set(["TOOL", "LLM"]);
|
|
6924
6935
|
var CONTRACT_ARGUMENT_KEYS = /* @__PURE__ */ new Set([
|
|
6925
6936
|
"tool",
|
|
6926
6937
|
"path",
|
|
@@ -7251,6 +7262,7 @@ function contractConfigHasEffect(contract) {
|
|
|
7251
7262
|
if (sectionHasEffect(contract.run)) return true;
|
|
7252
7263
|
if (sectionHasEffect(contract.tools)) return true;
|
|
7253
7264
|
if (sectionHasEffect(contract.llm)) return true;
|
|
7265
|
+
if (sectionHasEffect(contract.steps)) return true;
|
|
7254
7266
|
if (sectionHasEffect(contract.observations)) {
|
|
7255
7267
|
return true;
|
|
7256
7268
|
}
|
|
@@ -7270,10 +7282,21 @@ function parseContractRunSection(value, pathPrefix = "contract.run") {
|
|
|
7270
7282
|
);
|
|
7271
7283
|
}
|
|
7272
7284
|
if (record.allowedStatuses !== void 0) {
|
|
7273
|
-
|
|
7285
|
+
const statuses = requireBoundedStringArray(
|
|
7274
7286
|
record.allowedStatuses,
|
|
7275
7287
|
`${pathPrefix}.allowedStatuses`
|
|
7276
7288
|
);
|
|
7289
|
+
const allowed = /* @__PURE__ */ new Set(["ok", "error", "running", "success", "failed"]);
|
|
7290
|
+
for (let i = 0; i < statuses.length; i++) {
|
|
7291
|
+
const status = statuses[i];
|
|
7292
|
+
if (!allowed.has(status)) {
|
|
7293
|
+
throw new CheckConfigError(
|
|
7294
|
+
"AI_CHECK_CONFIG_INVALID_VALUE",
|
|
7295
|
+
`${pathPrefix}.allowedStatuses[${i}] must be one of: ok, error, running (aliases: success, failed); got ${JSON.stringify(status)}.`
|
|
7296
|
+
);
|
|
7297
|
+
}
|
|
7298
|
+
}
|
|
7299
|
+
out.allowedStatuses = statuses;
|
|
7277
7300
|
}
|
|
7278
7301
|
if (record.maxDurationMs !== void 0) {
|
|
7279
7302
|
out.maxDurationMs = requireNonNegativeNumber(
|
|
@@ -7435,6 +7458,66 @@ function parseContractLlmSection(value, pathPrefix = "contract.llm") {
|
|
|
7435
7458
|
}
|
|
7436
7459
|
return out;
|
|
7437
7460
|
}
|
|
7461
|
+
function parseStepRef(value, pathPrefix) {
|
|
7462
|
+
const record = requireObject(value, pathPrefix);
|
|
7463
|
+
rejectUnknownKeys(record, CONTRACT_STEP_REF_KEYS, pathPrefix);
|
|
7464
|
+
if (typeof record.kind !== "string" || !CONTRACT_STEP_KINDS.has(record.kind)) {
|
|
7465
|
+
throw new CheckConfigError(
|
|
7466
|
+
"AI_CHECK_CONFIG_INVALID_VALUE",
|
|
7467
|
+
`${pathPrefix}.kind must be "TOOL" or "LLM".`
|
|
7468
|
+
);
|
|
7469
|
+
}
|
|
7470
|
+
return {
|
|
7471
|
+
kind: record.kind,
|
|
7472
|
+
name: requireNonEmptyString(record.name, `${pathPrefix}.name`)
|
|
7473
|
+
};
|
|
7474
|
+
}
|
|
7475
|
+
function parseStepOrderRelation(value, pathPrefix) {
|
|
7476
|
+
const record = requireObject(value, pathPrefix);
|
|
7477
|
+
rejectUnknownKeys(record, CONTRACT_STEP_ORDER_RELATION_KEYS, pathPrefix);
|
|
7478
|
+
if (record.before === void 0) {
|
|
7479
|
+
throw new CheckConfigError(
|
|
7480
|
+
"AI_CHECK_CONFIG_INVALID_VALUE",
|
|
7481
|
+
`${pathPrefix}.before is required.`
|
|
7482
|
+
);
|
|
7483
|
+
}
|
|
7484
|
+
if (record.after === void 0) {
|
|
7485
|
+
throw new CheckConfigError(
|
|
7486
|
+
"AI_CHECK_CONFIG_INVALID_VALUE",
|
|
7487
|
+
`${pathPrefix}.after is required.`
|
|
7488
|
+
);
|
|
7489
|
+
}
|
|
7490
|
+
const out = {
|
|
7491
|
+
before: parseStepRef(record.before, `${pathPrefix}.before`),
|
|
7492
|
+
after: parseStepRef(record.after, `${pathPrefix}.after`)
|
|
7493
|
+
};
|
|
7494
|
+
if (record.mode !== void 0) {
|
|
7495
|
+
out.mode = requireOrderMode(record.mode, `${pathPrefix}.mode`);
|
|
7496
|
+
}
|
|
7497
|
+
if (record.requireEndpoints !== void 0) {
|
|
7498
|
+
out.requireEndpoints = requireBoolean(
|
|
7499
|
+
record.requireEndpoints,
|
|
7500
|
+
`${pathPrefix}.requireEndpoints`
|
|
7501
|
+
);
|
|
7502
|
+
}
|
|
7503
|
+
return out;
|
|
7504
|
+
}
|
|
7505
|
+
function parseContractStepsSection(value, pathPrefix = "contract.steps") {
|
|
7506
|
+
const record = requireObject(value, pathPrefix);
|
|
7507
|
+
rejectUnknownKeys(record, CONTRACT_STEPS_KEYS, pathPrefix);
|
|
7508
|
+
const out = {};
|
|
7509
|
+
if (record.orderRelations !== void 0) {
|
|
7510
|
+
const items = requireBoundedArray(
|
|
7511
|
+
record.orderRelations,
|
|
7512
|
+
`${pathPrefix}.orderRelations`,
|
|
7513
|
+
CONTRACT_MAX_ORDER_RULES
|
|
7514
|
+
);
|
|
7515
|
+
out.orderRelations = items.map(
|
|
7516
|
+
(item, index) => parseStepOrderRelation(item, `${pathPrefix}.orderRelations[${index}]`)
|
|
7517
|
+
);
|
|
7518
|
+
}
|
|
7519
|
+
return out;
|
|
7520
|
+
}
|
|
7438
7521
|
function parseRequireProvenance(value, pathPrefix) {
|
|
7439
7522
|
const record = requireObject(value, pathPrefix);
|
|
7440
7523
|
rejectUnknownKeys(record, CONTRACT_PROVENANCE_KEYS, pathPrefix);
|
|
@@ -7720,6 +7803,9 @@ function parseContractBodySection(value, pathPrefix) {
|
|
|
7720
7803
|
out.tools = parseContractToolsSection(record.tools, `${pathPrefix}.tools`);
|
|
7721
7804
|
}
|
|
7722
7805
|
if (record.llm !== void 0) out.llm = parseContractLlmSection(record.llm, `${pathPrefix}.llm`);
|
|
7806
|
+
if (record.steps !== void 0) {
|
|
7807
|
+
out.steps = parseContractStepsSection(record.steps, `${pathPrefix}.steps`);
|
|
7808
|
+
}
|
|
7723
7809
|
if (record.observations !== void 0) {
|
|
7724
7810
|
out.observations = parseContractObservationsSection(
|
|
7725
7811
|
record.observations,
|
|
@@ -12905,7 +12991,7 @@ function isModuleNotFound4(e) {
|
|
|
12905
12991
|
}
|
|
12906
12992
|
async function loadIndexSqlite() {
|
|
12907
12993
|
try {
|
|
12908
|
-
return await import('./src-
|
|
12994
|
+
return await import('./src-YNEJOPRA.mjs');
|
|
12909
12995
|
} catch (e) {
|
|
12910
12996
|
if (isModuleNotFound4(e)) {
|
|
12911
12997
|
console.error(
|