agent-inspect 6.31.5 → 6.31.6

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 (40) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/docs/SAFE-TRACE-SHARING.md +1 -1
  4. package/package.json +1 -1
  5. package/packages/cli/dist/{chunk-LKEPABND.mjs → chunk-YXDNWHNJ.mjs} +5 -8
  6. package/packages/cli/dist/chunk-YXDNWHNJ.mjs.map +1 -0
  7. package/packages/cli/dist/index.cjs +61 -12
  8. package/packages/cli/dist/index.cjs.map +1 -1
  9. package/packages/cli/dist/index.mjs +61 -9
  10. package/packages/cli/dist/index.mjs.map +1 -1
  11. package/packages/cli/dist/{src-4WYF5RFI.mjs → src-H22KNWAZ.mjs} +3 -3
  12. package/packages/cli/dist/{src-4WYF5RFI.mjs.map → src-H22KNWAZ.mjs.map} +1 -1
  13. package/packages/core/dist/advanced.cjs +1 -1
  14. package/packages/core/dist/advanced.cjs.map +1 -1
  15. package/packages/core/dist/advanced.mjs +9 -9
  16. package/packages/core/dist/checks.cjs +2 -5
  17. package/packages/core/dist/checks.cjs.map +1 -1
  18. package/packages/core/dist/checks.mjs +3 -3
  19. package/packages/core/dist/{chunk-2KJR6X4V.mjs → chunk-DK3OW6UI.mjs} +3 -3
  20. package/packages/core/dist/chunk-DK3OW6UI.mjs.map +1 -0
  21. package/packages/core/dist/{chunk-NY4ILMXK.mjs → chunk-EXGQLMVB.mjs} +3 -3
  22. package/packages/core/dist/{chunk-NY4ILMXK.mjs.map → chunk-EXGQLMVB.mjs.map} +1 -1
  23. package/packages/core/dist/{chunk-PKDBFBJ7.mjs → chunk-LXYPM2ZO.mjs} +5 -8
  24. package/packages/core/dist/{chunk-PKDBFBJ7.mjs.map → chunk-LXYPM2ZO.mjs.map} +1 -1
  25. package/packages/core/dist/{chunk-INE5IWLN.mjs → chunk-N5PZAI6Q.mjs} +3 -3
  26. package/packages/core/dist/{chunk-INE5IWLN.mjs.map → chunk-N5PZAI6Q.mjs.map} +1 -1
  27. package/packages/core/dist/{chunk-MTMTXTJL.mjs → chunk-VQUB3WRI.mjs} +4 -4
  28. package/packages/core/dist/{chunk-MTMTXTJL.mjs.map → chunk-VQUB3WRI.mjs.map} +1 -1
  29. package/packages/core/dist/exporters.cjs +29 -3
  30. package/packages/core/dist/exporters.cjs.map +1 -1
  31. package/packages/core/dist/exporters.mjs +31 -5
  32. package/packages/core/dist/exporters.mjs.map +1 -1
  33. package/packages/core/dist/index.cjs +1 -1
  34. package/packages/core/dist/index.cjs.map +1 -1
  35. package/packages/core/dist/index.mjs +4 -4
  36. package/packages/core/dist/writers.cjs +1 -1
  37. package/packages/core/dist/writers.cjs.map +1 -1
  38. package/packages/core/dist/writers.mjs +1 -1
  39. package/packages/cli/dist/chunk-LKEPABND.mjs.map +0 -1
  40. package/packages/core/dist/chunk-2KJR6X4V.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, DEFAULT_REDACT_KEYS, truncateStringForProfile, stringContainsHighConfidenceCredential, isCredentialSensitiveKey, 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-LKEPABND.mjs';
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, DEFAULT_REDACT_KEYS, truncateStringForProfile, stringContainsHighConfidenceCredential, isCredentialSensitiveKey, 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-YXDNWHNJ.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';
@@ -14,7 +14,7 @@ import { createServer } from 'http';
14
14
  import { createRequire } from 'module';
15
15
 
16
16
  // package.json
17
- var version = "6.31.5";
17
+ var version = "6.31.6";
18
18
 
19
19
  // packages/cli/src/trace-dir-scale.ts
20
20
  var TRACE_COUNT_WARN = 1e3;
@@ -1775,6 +1775,8 @@ var CONNECTION_PROTOCOLS = /* @__PURE__ */ new Set([
1775
1775
  "amqps:"
1776
1776
  ]);
1777
1777
  var CONNECTION_URI = /^(?:postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/[^\s]+$/i;
1778
+ var CONNECTION_USERINFO = /^(postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/([^@/?#]+)@(.+)$/i;
1779
+ var CONNECTION_HAS_USERINFO = /^(?:postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/[^@/?#]+@/i;
1778
1780
  var UUID_SEGMENT = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1779
1781
  var HEX_SEGMENT = /^[0-9a-f]{12,}$/i;
1780
1782
  var NUMERIC_SEGMENT = /^\d{5,}$/;
@@ -1798,6 +1800,28 @@ function parseRedactableUrl(value) {
1798
1800
  return void 0;
1799
1801
  }
1800
1802
  }
1803
+ function redactConnectionUserinfoFallback(value, replacement) {
1804
+ const trimmed = value.trim();
1805
+ const match = CONNECTION_USERINFO.exec(trimmed);
1806
+ if (match) {
1807
+ const [, scheme, , rest] = match;
1808
+ if (scheme && rest && rest.length > 0) {
1809
+ return {
1810
+ value: `${scheme}://${rest}`,
1811
+ credentialRedacted: true,
1812
+ identifiersMasked: false
1813
+ };
1814
+ }
1815
+ }
1816
+ if (looksLikeConnectionUri(trimmed) && CONNECTION_HAS_USERINFO.test(trimmed)) {
1817
+ return {
1818
+ value: replacement,
1819
+ credentialRedacted: true,
1820
+ identifiersMasked: false
1821
+ };
1822
+ }
1823
+ return void 0;
1824
+ }
1801
1825
  function isHttpProtocol(protocol) {
1802
1826
  return protocol === "http:" || protocol === "https:";
1803
1827
  }
@@ -1839,9 +1863,11 @@ function redactUrlString(value, options) {
1839
1863
  identifiersMasked: false
1840
1864
  };
1841
1865
  if (!looksLikeUrlForRedaction(value)) return unchanged;
1842
- const url = parseRedactableUrl(value);
1843
- if (!url) return unchanged;
1844
1866
  const replacement = options.replacement ?? "[REDACTED]";
1867
+ const url = parseRedactableUrl(value);
1868
+ if (!url) {
1869
+ return redactConnectionUserinfoFallback(value, replacement) ?? unchanged;
1870
+ }
1845
1871
  const idPlaceholder = options.idPlaceholder ?? "[id]";
1846
1872
  const http = isHttpProtocol(url.protocol);
1847
1873
  let credentialRedacted = url.username.length > 0 || url.password.length > 0;
@@ -3539,7 +3565,7 @@ async function newestTraceMtimeMs(traceDir) {
3539
3565
  }
3540
3566
  async function loadSessionRuns(traceDir) {
3541
3567
  try {
3542
- const mod = await import('./src-4WYF5RFI.mjs');
3568
+ const mod = await import('./src-H22KNWAZ.mjs');
3543
3569
  const dbPath = mod.resolveIndexDbPath(traceDir);
3544
3570
  const status = mod.indexStatus(dbPath);
3545
3571
  if (!status.healthy) {
@@ -4062,7 +4088,7 @@ function isCredentialSensitiveKey2(key, sensitiveKeys) {
4062
4088
  }
4063
4089
 
4064
4090
  // packages/redact/src/key-value-secret.ts
4065
- var KEY_VALUE_SECRET_PATTERN_SOURCE = String.raw`\b(?:api[_-]?key|internal[_-]?token|access[_-]?token|auth[_-]?token|password|secret|token)=(?!\[(?:REDACTED(?::[^\]]*)?|HASH:[0-9a-f]{8})\](?![^\s"'\\&#?;/]))([^\s"'\\]{8,})`;
4091
+ var KEY_VALUE_SECRET_PATTERN_SOURCE = String.raw`\b(?:api[_-]?key|internal[_-]?token|access[_-]?token|auth[_-]?token|password|secret|token)=(?!\[(?:REDACTED(?::[^\]]*)?|HASH:[0-9a-f]{8})\](?![^\s"'\\&#?]))([^\s"'\\]{8,})`;
4066
4092
  var KEY_VALUE_SECRET_PATTERN = new RegExp(
4067
4093
  KEY_VALUE_SECRET_PATTERN_SOURCE,
4068
4094
  "i"
@@ -4087,6 +4113,8 @@ var CONNECTION_PROTOCOLS2 = /* @__PURE__ */ new Set([
4087
4113
  "amqps:"
4088
4114
  ]);
4089
4115
  var CONNECTION_URI2 = /^(?:postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/[^\s]+$/i;
4116
+ var CONNECTION_USERINFO2 = /^(postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/([^@/?#]+)@(.+)$/i;
4117
+ var CONNECTION_HAS_USERINFO2 = /^(?:postgres|postgresql|mysql|mariadb|mongodb(?:\+srv)?|rediss?|amqps?):\/\/[^@/?#]+@/i;
4090
4118
  var UUID_SEGMENT2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
4091
4119
  var HEX_SEGMENT2 = /^[0-9a-f]{12,}$/i;
4092
4120
  var NUMERIC_SEGMENT2 = /^\d{5,}$/;
@@ -4110,6 +4138,28 @@ function parseRedactableUrl2(value) {
4110
4138
  return void 0;
4111
4139
  }
4112
4140
  }
4141
+ function redactConnectionUserinfoFallback2(value, replacement) {
4142
+ const trimmed = value.trim();
4143
+ const match = CONNECTION_USERINFO2.exec(trimmed);
4144
+ if (match) {
4145
+ const [, scheme, , rest] = match;
4146
+ if (scheme && rest && rest.length > 0) {
4147
+ return {
4148
+ value: `${scheme}://${rest}`,
4149
+ credentialRedacted: true,
4150
+ identifiersMasked: false
4151
+ };
4152
+ }
4153
+ }
4154
+ if (looksLikeConnectionUri2(trimmed) && CONNECTION_HAS_USERINFO2.test(trimmed)) {
4155
+ return {
4156
+ value: replacement,
4157
+ credentialRedacted: true,
4158
+ identifiersMasked: false
4159
+ };
4160
+ }
4161
+ return void 0;
4162
+ }
4113
4163
  function isHttpProtocol2(protocol) {
4114
4164
  return protocol === "http:" || protocol === "https:";
4115
4165
  }
@@ -4151,9 +4201,11 @@ function redactUrlString2(value, options) {
4151
4201
  identifiersMasked: false
4152
4202
  };
4153
4203
  if (!looksLikeUrlForRedaction2(value)) return unchanged;
4154
- const url = parseRedactableUrl2(value);
4155
- if (!url) return unchanged;
4156
4204
  const replacement = options.replacement ?? "[REDACTED]";
4205
+ const url = parseRedactableUrl2(value);
4206
+ if (!url) {
4207
+ return redactConnectionUserinfoFallback2(value, replacement) ?? unchanged;
4208
+ }
4157
4209
  const idPlaceholder = options.idPlaceholder ?? "[id]";
4158
4210
  const http = isHttpProtocol2(url.protocol);
4159
4211
  let credentialRedacted = url.username.length > 0 || url.password.length > 0;
@@ -13339,7 +13391,7 @@ function isModuleNotFound4(e) {
13339
13391
  }
13340
13392
  async function loadIndexSqlite() {
13341
13393
  try {
13342
- return await import('./src-4WYF5RFI.mjs');
13394
+ return await import('./src-H22KNWAZ.mjs');
13343
13395
  } catch (e) {
13344
13396
  if (isModuleNotFound4(e)) {
13345
13397
  console.error(