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,4 +1,4 @@
1
- import { OBSERVED_OUTCOME_METHODS, extractOutcomesFromPersistedEvents, outcomesMatchingStatus } from './chunk-FBPDF7HO.mjs';
1
+ import { OBSERVED_OUTCOME_METHODS, extractOutcomesFromPersistedEvents, outcomesMatchingStatus } from './chunk-6F6KLGCR.mjs';
2
2
  import { DEFAULT_CREDENTIAL_SENSITIVE_KEYS, isCredentialSensitiveKey } from './chunk-VLVCLAPB.mjs';
3
3
  import { projectLogicalEvents, resolveCanonicalToolName } from './chunk-AHUZNHFI.mjs';
4
4
  import { formatProgrammaticDiagnostic } from './chunk-S6LQBLX5.mjs';
@@ -3317,10 +3317,11 @@ var SAFE_USAGE_LEAF_KEYS = /* @__PURE__ */ new Set([
3317
3317
  var DEFAULT_SECRET_PATTERNS = [
3318
3318
  { id: "bearer-token", pattern: /Bearer\s+[A-Za-z0-9._~+/-]{12,}=*/ },
3319
3319
  { id: "openai-key", pattern: /sk-[A-Za-z0-9_-]{16,}/ },
3320
- // Stripe + Slack: keep in sync with packages/redact + credential-value-patterns (#520).
3320
+ // Stripe + Slack: keep in sync with packages/redact + credential-value-patterns (#520/#528).
3321
+ // Non-alnum lookarounds so underscore-adjacent forms (acct_sk_live_…, …_eu) match.
3321
3322
  {
3322
3323
  id: "stripe-key",
3323
- pattern: /\b(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}\b/
3324
+ pattern: /(?<![A-Za-z0-9])(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}(?![A-Za-z0-9])/
3324
3325
  },
3325
3326
  { id: "slack-token", pattern: /\bxox[abposr]-[A-Za-z0-9-]{10,}\b/ },
3326
3327
  { id: "aws-access-key", pattern: /AKIA[0-9A-Z]{16}/ },
@@ -4310,7 +4311,12 @@ function createStepOrderingRule(options) {
4310
4311
  const beforeRunning = semanticEvents(context).filter(
4311
4312
  (event) => event.kind === options.before.kind && event.status === "running" && stepEndpointName(event, options.before.kind) === options.before.name
4312
4313
  );
4313
- if (beforeEvents.length === 0 && afterEvents.length > 0 && beforeRunning.length > 0) {
4314
+ const afterRunning = semanticEvents(context).filter(
4315
+ (event) => event.kind === options.after.kind && event.status === "running" && stepEndpointName(event, options.after.kind) === options.after.name
4316
+ );
4317
+ const afterStarted = afterEvents.length > 0 || afterRunning.length > 0;
4318
+ const afterEvidenceEvent = afterEvents[0] ?? afterRunning[0];
4319
+ if (beforeRunning.length > 0 && afterStarted && afterEvidenceEvent !== void 0) {
4314
4320
  const endpointExpected2 = bothTools ? { before: options.before.name, after: options.after.name } : { before: options.before, after: options.after };
4315
4321
  return [
4316
4322
  failFinding(
@@ -4318,18 +4324,20 @@ function createStepOrderingRule(options) {
4318
4324
  `${subject} ${beforeLabel} started but never finished before ${afterLabel} ran.`,
4319
4325
  [
4320
4326
  ...beforeRunning.map((event) => eventEvidence3(event)),
4321
- eventEvidence3(afterEvents[0])
4327
+ eventEvidence3(afterEvidenceEvent)
4322
4328
  ],
4323
4329
  { ...endpointExpected2, mode },
4324
4330
  {
4325
4331
  code: bothTools ? "tool.order.interval-unresolved" : "step.order.interval-unresolved",
4326
4332
  unfinishedBefore: true,
4327
- beforeStatus: "running"
4333
+ beforeStatus: "running",
4334
+ ...beforeEvents.length > 0 ? { finishedBeforeMasked: true } : {},
4335
+ ...afterEvents.length === 0 ? { afterStatus: "running" } : {}
4328
4336
  }
4329
4337
  )
4330
4338
  ];
4331
4339
  }
4332
- if (beforeEvents.length === 0 || afterEvents.length === 0) {
4340
+ if (beforeEvents.length === 0 || !afterStarted) {
4333
4341
  if (!requireEndpoints) return [];
4334
4342
  const findings = [];
4335
4343
  if (beforeEvents.length === 0) {
@@ -4353,7 +4361,7 @@ function createStepOrderingRule(options) {
4353
4361
  )
4354
4362
  );
4355
4363
  }
4356
- if (afterEvents.length === 0) {
4364
+ if (!afterStarted) {
4357
4365
  const otherKinds = otherKindsForStepName(
4358
4366
  context,
4359
4367
  options.after.kind,
@@ -4376,9 +4384,15 @@ function createStepOrderingRule(options) {
4376
4384
  }
4377
4385
  return findings;
4378
4386
  }
4379
- const encounter = finishedEvents(context).filter(
4380
- (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
4381
- );
4387
+ const afterForOrder = afterEvents.length > 0 ? afterEvents : afterRunning;
4388
+ const encounter = [
4389
+ ...finishedEvents(context).filter(
4390
+ (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
4391
+ ),
4392
+ ...afterEvents.length === 0 ? afterRunning.filter(
4393
+ (event) => !finishedEvents(context).some((finished) => finished.eventId === event.eventId)
4394
+ ) : []
4395
+ ];
4382
4396
  let beforeIndex;
4383
4397
  let afterIndex;
4384
4398
  for (const [position, event] of encounter.entries()) {
@@ -4409,7 +4423,7 @@ function createStepOrderingRule(options) {
4409
4423
  ];
4410
4424
  }
4411
4425
  const beforeEvent = beforeEvents[0];
4412
- const afterEvent = afterEvents[0];
4426
+ const afterEvent = afterForOrder[0];
4413
4427
  const beforeEnd = eventEndMs(beforeEvent);
4414
4428
  const afterStart = eventStartMs(afterEvent);
4415
4429
  const endpointExpected = bothTools ? { before: options.before.name, after: options.after.name } : { before: options.before, after: options.after };
@@ -4495,7 +4509,7 @@ function createStepOrderingRule(options) {
4495
4509
  latestBefore = { event, end };
4496
4510
  }
4497
4511
  }
4498
- for (const event of afterEvents) {
4512
+ for (const event of afterForOrder) {
4499
4513
  const start = eventStartMs(event);
4500
4514
  if (start === void 0) {
4501
4515
  missingAfterStarts += 1;
@@ -4524,7 +4538,7 @@ function createStepOrderingRule(options) {
4524
4538
  const tie = tiedEnd === tiedStart ? recordedTieOrder(
4525
4539
  context,
4526
4540
  beforeEvents.filter((event) => eventEndMs(event) === tiedEnd),
4527
- afterEvents.filter((event) => eventStartMs(event) === tiedStart)
4541
+ afterForOrder.filter((event) => eventStartMs(event) === tiedStart)
4528
4542
  ) : void 0;
4529
4543
  if (latestBefore.end > earliestAfter.start || tie !== void 0 && tie.inOrder !== true) {
4530
4544
  return [
@@ -5505,5 +5519,5 @@ function runTraceChecks(input, options = {}) {
5505
5519
  }
5506
5520
 
5507
5521
  export { buildTraceFacts, createBaselineRegressionRule, createDecisionRule, createGuardrailRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRetrievalRule, createRunDepthRule, createRunDurationRule, createRunEventCountRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStepOrderingRule, createStructureCycleRule, createStructureIncompleteRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolFailureRule, createToolOrderingRule, createToolUsageRule, defineTraceContract, deriveFailureFacts, deriveRelationshipFacts, evaluateToolArgumentValue, evaluateTraceContract, evaluateTraceContractRead, explainTraceContract, extractSessionWorkflowMetadata, extractToolArgumentPayload, lintTraceContract, resolveJsonPointer, resolveTraceContractScope, runTraceChecks, sessionKeyForRun, summarizeSemanticParity, workflowMetadataForRun };
5508
- //# sourceMappingURL=chunk-EMDJLFRK.mjs.map
5509
- //# sourceMappingURL=chunk-EMDJLFRK.mjs.map
5522
+ //# sourceMappingURL=chunk-CXC7L4PY.mjs.map
5523
+ //# sourceMappingURL=chunk-CXC7L4PY.mjs.map