agent-inspect 6.31.33 → 6.31.34

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/package.json +1 -1
  4. package/packages/cli/dist/{chunk-AILSHDEF.mjs → chunk-6TXW53UR.mjs} +32 -17
  5. package/packages/cli/dist/chunk-6TXW53UR.mjs.map +1 -0
  6. package/packages/cli/dist/index.cjs +91 -31
  7. package/packages/cli/dist/index.cjs.map +1 -1
  8. package/packages/cli/dist/index.mjs +64 -19
  9. package/packages/cli/dist/index.mjs.map +1 -1
  10. package/packages/cli/dist/{src-SP36M4VB.mjs → src-GCLC4DIC.mjs} +3 -3
  11. package/packages/cli/dist/{src-SP36M4VB.mjs.map → src-GCLC4DIC.mjs.map} +1 -1
  12. package/packages/core/dist/advanced.cjs +3 -2
  13. package/packages/core/dist/advanced.cjs.map +1 -1
  14. package/packages/core/dist/advanced.mjs +9 -9
  15. package/packages/core/dist/checks.cjs +27 -13
  16. package/packages/core/dist/checks.cjs.map +1 -1
  17. package/packages/core/dist/checks.mjs +3 -3
  18. package/packages/core/dist/{chunk-6S666BF4.mjs → chunk-2SKAI5ZN.mjs} +3 -3
  19. package/packages/core/dist/{chunk-6S666BF4.mjs.map → chunk-2SKAI5ZN.mjs.map} +1 -1
  20. package/packages/core/dist/{chunk-FBPDF7HO.mjs → chunk-6F6KLGCR.mjs} +3 -3
  21. package/packages/core/dist/{chunk-FBPDF7HO.mjs.map → chunk-6F6KLGCR.mjs.map} +1 -1
  22. package/packages/core/dist/{chunk-EMDJLFRK.mjs → chunk-CXC7L4PY.mjs} +30 -16
  23. package/packages/core/dist/chunk-CXC7L4PY.mjs.map +1 -0
  24. package/packages/core/dist/{chunk-RB6WANSW.mjs → chunk-PU3FF5AP.mjs} +5 -4
  25. package/packages/core/dist/chunk-PU3FF5AP.mjs.map +1 -0
  26. package/packages/core/dist/{chunk-VIEJJ5JB.mjs → chunk-X5RP2E2H.mjs} +4 -4
  27. package/packages/core/dist/{chunk-VIEJJ5JB.mjs.map → chunk-X5RP2E2H.mjs.map} +1 -1
  28. package/packages/core/dist/exporters.cjs +33 -9
  29. package/packages/core/dist/exporters.cjs.map +1 -1
  30. package/packages/core/dist/exporters.mjs +33 -10
  31. package/packages/core/dist/exporters.mjs.map +1 -1
  32. package/packages/core/dist/index.cjs +3 -2
  33. package/packages/core/dist/index.cjs.map +1 -1
  34. package/packages/core/dist/index.mjs +4 -4
  35. package/packages/core/dist/writers.cjs +3 -2
  36. package/packages/core/dist/writers.cjs.map +1 -1
  37. package/packages/core/dist/writers.mjs +1 -1
  38. package/packages/cli/dist/chunk-AILSHDEF.mjs.map +0 -1
  39. package/packages/core/dist/chunk-EMDJLFRK.mjs.map +0 -1
  40. package/packages/core/dist/chunk-RB6WANSW.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
- import { extractSessionWorkflowMetadata, sessionKeyForRun, defineTraceContract, runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createRunDepthRule, createToolFailureRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-EMDJLFRK.mjs';
2
- export { extractSessionWorkflowMetadata, sessionKeyForRun } from './chunk-EMDJLFRK.mjs';
3
- export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, TraceDirectory, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, isAgentInspectEnabled, isSilentContext, maybeInspectRun, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveTraceDir, runWithContext, runWithStepContext } from './chunk-VIEJJ5JB.mjs';
4
- import { buildRunTimeline, filterTraces, extractMetadata, buildRunSummary } from './chunk-6S666BF4.mjs';
5
- export { buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildTraceStats, extractMetadata, filterTraces, formatStepLabel, renderRunWhat, renderTimeline, renderTraceStats } from './chunk-6S666BF4.mjs';
6
- import { extractOutcomesFromTraceEvents, parseObservationFilter, summarizeObservedOutcomes, extractOutcomesFromPersistedEvents, renderObservedOutcomesHtml } from './chunk-FBPDF7HO.mjs';
7
- export { extractOutcomesFromPersistedEvents, extractOutcomesFromTraceEvents } from './chunk-FBPDF7HO.mjs';
1
+ import { extractSessionWorkflowMetadata, sessionKeyForRun, defineTraceContract, runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createRunDepthRule, createToolFailureRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-CXC7L4PY.mjs';
2
+ export { extractSessionWorkflowMetadata, sessionKeyForRun } from './chunk-CXC7L4PY.mjs';
3
+ export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, TraceDirectory, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, isAgentInspectEnabled, isSilentContext, maybeInspectRun, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveTraceDir, runWithContext, runWithStepContext } from './chunk-X5RP2E2H.mjs';
4
+ import { buildRunTimeline, filterTraces, extractMetadata, buildRunSummary } from './chunk-2SKAI5ZN.mjs';
5
+ export { buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildTraceStats, extractMetadata, filterTraces, formatStepLabel, renderRunWhat, renderTimeline, renderTraceStats } from './chunk-2SKAI5ZN.mjs';
6
+ import { extractOutcomesFromTraceEvents, parseObservationFilter, summarizeObservedOutcomes, extractOutcomesFromPersistedEvents, renderObservedOutcomesHtml } from './chunk-6F6KLGCR.mjs';
7
+ export { extractOutcomesFromPersistedEvents, extractOutcomesFromTraceEvents } from './chunk-6F6KLGCR.mjs';
8
8
  import { diffTraceEvents, renderRunDiff } from './chunk-F7STQ5JF.mjs';
9
9
  import './chunk-BT7CATSD.mjs';
10
10
  import { escapeHtml, flattenTree } from './chunk-CAWPF22J.mjs';
11
- import { resolveRedactionProfile, readTraceEventsFromFile, stringContainsHighConfidenceCredential } from './chunk-RB6WANSW.mjs';
12
- export { DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, getRunIdFromTraceFileName, initializeTraceFile, listTraceFiles, prepareMetadataForDisk, prepareTraceEventForDisk, readTraceEvents, readTraceFile, resolveRedactionProfile, resolveTraceSafetyOptions, serializeEvent, validateEvent, writeTraceEvent } from './chunk-RB6WANSW.mjs';
11
+ import { resolveRedactionProfile, readTraceEventsFromFile, stringContainsHighConfidenceCredential } from './chunk-PU3FF5AP.mjs';
12
+ export { DEFAULT_MAX_EVENT_BYTES, DEFAULT_MAX_METADATA_VALUE_LENGTH, DEFAULT_MAX_PREVIEW_LENGTH, getRunIdFromTraceFileName, initializeTraceFile, listTraceFiles, prepareMetadataForDisk, prepareTraceEventForDisk, readTraceEvents, readTraceFile, resolveRedactionProfile, resolveTraceSafetyOptions, serializeEvent, validateEvent, writeTraceEvent } from './chunk-PU3FF5AP.mjs';
13
13
  import { Redactor } from './chunk-VLVCLAPB.mjs';
14
14
  import { openTrace } from './chunk-JJSL346L.mjs';
15
15
  import './chunk-77PUPLPG.mjs';
@@ -3982,10 +3982,11 @@ var SAFE_USAGE_LEAF_KEYS = /* @__PURE__ */ new Set([
3982
3982
  var DEFAULT_SECRET_PATTERNS = [
3983
3983
  { id: "bearer-token", pattern: /Bearer\s+[A-Za-z0-9._~+/-]{12,}=*/ },
3984
3984
  { id: "openai-key", pattern: /sk-[A-Za-z0-9_-]{16,}/ },
3985
- // Stripe + Slack: keep in sync with packages/redact + credential-value-patterns (#520).
3985
+ // Stripe + Slack: keep in sync with packages/redact + credential-value-patterns (#520/#528).
3986
+ // Non-alnum lookarounds so underscore-adjacent forms (acct_sk_live_…, …_eu) match.
3986
3987
  {
3987
3988
  id: "stripe-key",
3988
- pattern: /\b(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}\b/
3989
+ pattern: /(?<![A-Za-z0-9])(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}(?![A-Za-z0-9])/
3989
3990
  },
3990
3991
  { id: "slack-token", pattern: /\bxox[abposr]-[A-Za-z0-9-]{10,}\b/ },
3991
3992
  { id: "aws-access-key", pattern: /AKIA[0-9A-Z]{16}/ },
@@ -4975,7 +4976,12 @@ function createStepOrderingRule(options) {
4975
4976
  const beforeRunning = semanticEvents(context).filter(
4976
4977
  (event) => event.kind === options.before.kind && event.status === "running" && stepEndpointName(event, options.before.kind) === options.before.name
4977
4978
  );
4978
- if (beforeEvents.length === 0 && afterEvents.length > 0 && beforeRunning.length > 0) {
4979
+ const afterRunning = semanticEvents(context).filter(
4980
+ (event) => event.kind === options.after.kind && event.status === "running" && stepEndpointName(event, options.after.kind) === options.after.name
4981
+ );
4982
+ const afterStarted = afterEvents.length > 0 || afterRunning.length > 0;
4983
+ const afterEvidenceEvent = afterEvents[0] ?? afterRunning[0];
4984
+ if (beforeRunning.length > 0 && afterStarted && afterEvidenceEvent !== void 0) {
4979
4985
  const endpointExpected2 = bothTools ? { before: options.before.name, after: options.after.name } : { before: options.before, after: options.after };
4980
4986
  return [
4981
4987
  failFinding(
@@ -4983,18 +4989,20 @@ function createStepOrderingRule(options) {
4983
4989
  `${subject} ${beforeLabel} started but never finished before ${afterLabel} ran.`,
4984
4990
  [
4985
4991
  ...beforeRunning.map((event) => eventEvidence3(event)),
4986
- eventEvidence3(afterEvents[0])
4992
+ eventEvidence3(afterEvidenceEvent)
4987
4993
  ],
4988
4994
  { ...endpointExpected2, mode },
4989
4995
  {
4990
4996
  code: bothTools ? "tool.order.interval-unresolved" : "step.order.interval-unresolved",
4991
4997
  unfinishedBefore: true,
4992
- beforeStatus: "running"
4998
+ beforeStatus: "running",
4999
+ ...beforeEvents.length > 0 ? { finishedBeforeMasked: true } : {},
5000
+ ...afterEvents.length === 0 ? { afterStatus: "running" } : {}
4993
5001
  }
4994
5002
  )
4995
5003
  ];
4996
5004
  }
4997
- if (beforeEvents.length === 0 || afterEvents.length === 0) {
5005
+ if (beforeEvents.length === 0 || !afterStarted) {
4998
5006
  if (!requireEndpoints) return [];
4999
5007
  const findings = [];
5000
5008
  if (beforeEvents.length === 0) {
@@ -5018,7 +5026,7 @@ function createStepOrderingRule(options) {
5018
5026
  )
5019
5027
  );
5020
5028
  }
5021
- if (afterEvents.length === 0) {
5029
+ if (!afterStarted) {
5022
5030
  const otherKinds = otherKindsForStepName(
5023
5031
  context,
5024
5032
  options.after.kind,
@@ -5041,9 +5049,15 @@ function createStepOrderingRule(options) {
5041
5049
  }
5042
5050
  return findings;
5043
5051
  }
5044
- const encounter = finishedEvents(context).filter(
5045
- (event) => event.kind === options.before.kind && stepEndpointName(event, options.before.kind) === options.before.name || event.kind === options.after.kind && stepEndpointName(event, options.after.kind) === options.after.name
5046
- );
5052
+ const afterForOrder = afterEvents.length > 0 ? afterEvents : afterRunning;
5053
+ const encounter = [
5054
+ ...finishedEvents(context).filter(
5055
+ (event) => event.kind === options.before.kind && stepEndpointName(event, options.before.kind) === options.before.name || event.kind === options.after.kind && stepEndpointName(event, options.after.kind) === options.after.name
5056
+ ),
5057
+ ...afterEvents.length === 0 ? afterRunning.filter(
5058
+ (event) => !finishedEvents(context).some((finished) => finished.eventId === event.eventId)
5059
+ ) : []
5060
+ ];
5047
5061
  let beforeIndex;
5048
5062
  let afterIndex;
5049
5063
  for (const [position, event] of encounter.entries()) {
@@ -5074,7 +5088,7 @@ function createStepOrderingRule(options) {
5074
5088
  ];
5075
5089
  }
5076
5090
  const beforeEvent = beforeEvents[0];
5077
- const afterEvent = afterEvents[0];
5091
+ const afterEvent = afterForOrder[0];
5078
5092
  const beforeEnd = eventEndMs(beforeEvent);
5079
5093
  const afterStart = eventStartMs(afterEvent);
5080
5094
  const endpointExpected = bothTools ? { before: options.before.name, after: options.after.name } : { before: options.before, after: options.after };
@@ -5160,7 +5174,7 @@ function createStepOrderingRule(options) {
5160
5174
  latestBefore = { event, end };
5161
5175
  }
5162
5176
  }
5163
- for (const event of afterEvents) {
5177
+ for (const event of afterForOrder) {
5164
5178
  const start = eventStartMs(event);
5165
5179
  if (start === void 0) {
5166
5180
  missingAfterStarts += 1;
@@ -5189,7 +5203,7 @@ function createStepOrderingRule(options) {
5189
5203
  const tie = tiedEnd === tiedStart ? recordedTieOrder(
5190
5204
  context,
5191
5205
  beforeEvents.filter((event) => eventEndMs(event) === tiedEnd),
5192
- afterEvents.filter((event) => eventStartMs(event) === tiedStart)
5206
+ afterForOrder.filter((event) => eventStartMs(event) === tiedStart)
5193
5207
  ) : void 0;
5194
5208
  if (latestBefore.end > earliestAfter.start || tie !== void 0 && tie.inOrder !== true) {
5195
5209
  return [