agent-inspect 6.28.0 → 6.29.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/docs/CLI.md +19 -1
  4. package/docs/LIMITATIONS.md +2 -2
  5. package/docs/SAFE-TRACE-SHARING.md +1 -1
  6. package/docs/SCHEMA.md +1 -1
  7. package/docs/STANDARDS.md +1 -1
  8. package/package.json +2 -1
  9. package/packages/cli/dist/{chunk-JVQ4LTHR.mjs → chunk-UK4HD5M3.mjs} +181 -32
  10. package/packages/cli/dist/chunk-UK4HD5M3.mjs.map +1 -0
  11. package/packages/cli/dist/index.cjs +251 -103
  12. package/packages/cli/dist/index.cjs.map +1 -1
  13. package/packages/cli/dist/index.mjs +63 -72
  14. package/packages/cli/dist/index.mjs.map +1 -1
  15. package/packages/cli/dist/{src-M5J5YC5E.mjs → src-CMPIJGUE.mjs} +3 -3
  16. package/packages/cli/dist/{src-M5J5YC5E.mjs.map → src-CMPIJGUE.mjs.map} +1 -1
  17. package/packages/core/dist/advanced.cjs +153 -30
  18. package/packages/core/dist/advanced.cjs.map +1 -1
  19. package/packages/core/dist/advanced.d.cts +20 -7
  20. package/packages/core/dist/advanced.d.ts +20 -7
  21. package/packages/core/dist/advanced.mjs +114 -38
  22. package/packages/core/dist/advanced.mjs.map +1 -1
  23. package/packages/core/dist/checks.cjs +235 -34
  24. package/packages/core/dist/checks.cjs.map +1 -1
  25. package/packages/core/dist/checks.d.cts +5 -5
  26. package/packages/core/dist/checks.d.ts +5 -5
  27. package/packages/core/dist/checks.mjs +5 -5
  28. package/packages/core/dist/{chunk-NXQF73EC.mjs → chunk-5B4DNGFB.mjs} +9 -5
  29. package/packages/core/dist/chunk-5B4DNGFB.mjs.map +1 -0
  30. package/packages/core/dist/{chunk-JBNRJLIV.mjs → chunk-5RF7FYGL.mjs} +33 -7
  31. package/packages/core/dist/chunk-5RF7FYGL.mjs.map +1 -0
  32. package/packages/core/dist/{chunk-U25RHRSU.mjs → chunk-65LFRW2T.mjs} +13 -6
  33. package/packages/core/dist/chunk-65LFRW2T.mjs.map +1 -0
  34. package/packages/core/dist/{chunk-WGDSM37E.mjs → chunk-AQMJFKI6.mjs} +5 -5
  35. package/packages/core/dist/{chunk-WGDSM37E.mjs.map → chunk-AQMJFKI6.mjs.map} +1 -1
  36. package/packages/core/dist/{chunk-R4SSYU6D.mjs → chunk-COZPMOUF.mjs} +3 -3
  37. package/packages/core/dist/{chunk-R4SSYU6D.mjs.map → chunk-COZPMOUF.mjs.map} +1 -1
  38. package/packages/core/dist/{chunk-NDRMIL7Z.mjs → chunk-FKUTGUFG.mjs} +12 -4
  39. package/packages/core/dist/chunk-FKUTGUFG.mjs.map +1 -0
  40. package/packages/core/dist/{chunk-ME4WXYY3.mjs → chunk-GPGBKN7W.mjs} +238 -37
  41. package/packages/core/dist/chunk-GPGBKN7W.mjs.map +1 -0
  42. package/packages/core/dist/{chunk-P366CCL2.mjs → chunk-QJI52TH3.mjs} +4 -2
  43. package/packages/core/dist/chunk-QJI52TH3.mjs.map +1 -0
  44. package/packages/core/dist/{chunk-WRE4CNPF.mjs → chunk-SJ3C5RIS.mjs} +3 -3
  45. package/packages/core/dist/chunk-SJ3C5RIS.mjs.map +1 -0
  46. package/packages/core/dist/{context-DgcvkJ9t.d.ts → context-B8zzsmjX.d.ts} +2 -2
  47. package/packages/core/dist/{context-DGMqxFpz.d.cts → context-BhaVHtOT.d.cts} +2 -2
  48. package/packages/core/dist/diff.d.cts +1 -1
  49. package/packages/core/dist/diff.d.ts +1 -1
  50. package/packages/core/dist/exporters.cjs +39 -8
  51. package/packages/core/dist/exporters.cjs.map +1 -1
  52. package/packages/core/dist/exporters.d.cts +13 -3
  53. package/packages/core/dist/exporters.d.ts +13 -3
  54. package/packages/core/dist/exporters.mjs +15 -10
  55. package/packages/core/dist/exporters.mjs.map +1 -1
  56. package/packages/core/dist/{index-C6bCIbFO.d.cts → index-BT3KcO6-.d.cts} +1 -1
  57. package/packages/core/dist/{index-DVetZwGG.d.cts → index-C61p7wBR.d.cts} +3 -3
  58. package/packages/core/dist/{index-BOA1AeEU.d.ts → index-DTO2iGeq.d.ts} +3 -3
  59. package/packages/core/dist/{index-BzyNPfLm.d.ts → index-reskZCVW.d.ts} +1 -1
  60. package/packages/core/dist/index.cjs +10 -1
  61. package/packages/core/dist/index.cjs.map +1 -1
  62. package/packages/core/dist/index.d.cts +4 -4
  63. package/packages/core/dist/index.d.ts +4 -4
  64. package/packages/core/dist/index.mjs +6 -6
  65. package/packages/core/dist/{persisted-inspect-event-CbaRYpbw.d.ts → persisted-inspect-event-BMwvGIB8.d.ts} +5 -0
  66. package/packages/core/dist/{persisted-inspect-event-DiJ0I_vi.d.cts → persisted-inspect-event-DPaCiars.d.cts} +5 -0
  67. package/packages/core/dist/persisted.cjs +8 -2
  68. package/packages/core/dist/persisted.cjs.map +1 -1
  69. package/packages/core/dist/persisted.d.cts +3 -3
  70. package/packages/core/dist/persisted.d.ts +3 -3
  71. package/packages/core/dist/persisted.mjs +3 -3
  72. package/packages/core/dist/readers.cjs +16 -2
  73. package/packages/core/dist/readers.cjs.map +1 -1
  74. package/packages/core/dist/readers.d.cts +2 -2
  75. package/packages/core/dist/readers.d.ts +2 -2
  76. package/packages/core/dist/readers.mjs +4 -4
  77. package/packages/core/dist/{types-wXuxMUop.d.cts → types-BSzhK7Z1.d.cts} +9 -0
  78. package/packages/core/dist/{types-xv9bSgOK.d.ts → types-C5Y8Idle.d.ts} +9 -0
  79. package/packages/core/dist/writers.cjs +10 -1
  80. package/packages/core/dist/writers.cjs.map +1 -1
  81. package/packages/core/dist/writers.d.cts +1 -1
  82. package/packages/core/dist/writers.d.ts +1 -1
  83. package/packages/core/dist/writers.mjs +3 -3
  84. package/packages/cli/dist/chunk-JVQ4LTHR.mjs.map +0 -1
  85. package/packages/core/dist/chunk-JBNRJLIV.mjs.map +0 -1
  86. package/packages/core/dist/chunk-ME4WXYY3.mjs.map +0 -1
  87. package/packages/core/dist/chunk-NDRMIL7Z.mjs.map +0 -1
  88. package/packages/core/dist/chunk-NXQF73EC.mjs.map +0 -1
  89. package/packages/core/dist/chunk-P366CCL2.mjs.map +0 -1
  90. package/packages/core/dist/chunk-U25RHRSU.mjs.map +0 -1
  91. package/packages/core/dist/chunk-WRE4CNPF.mjs.map +0 -1
@@ -1,17 +1,17 @@
1
- export { C as CreateInspectorOptions, D as DEFAULT_MAX_EVENT_BYTES, f as DEFAULT_MAX_METADATA_VALUE_LENGTH, h as DEFAULT_MAX_PREVIEW_LENGTH, I as Inspector, a as InspectorCaptureOptions, b as InspectorObserveOptions, c as InspectorRunOptions, i as InspectorRuntime, j as InspectorRuntimeContext, k as InspectorRuntimeDiagnostics, l as InspectorRuntimeOptions, d as InspectorStepOptions, T as TraceSafetyOptions, e as createInspector, n as createInspectorRuntime, o as getCurrentContext, g as getCurrentCorrelationMetadata, p as getCurrentDepth, q as getCurrentRunId, r as getCurrentRunName, s as getCurrentStepId, t as getParentStepId, u as getTraceDirFromContext, v as getTraceSafetyFromContext, w as hasActiveContext, x as isAgentInspectEnabled, y as isSilentContext, m as maybeInspectRun, z as prepareMetadataForDisk, A as prepareTraceEventForDisk, B as resolveTraceSafetyOptions, E as runWithContext, F as runWithStepContext } from './context-DGMqxFpz.cjs';
1
+ export { C as CreateInspectorOptions, D as DEFAULT_MAX_EVENT_BYTES, f as DEFAULT_MAX_METADATA_VALUE_LENGTH, h as DEFAULT_MAX_PREVIEW_LENGTH, I as Inspector, a as InspectorCaptureOptions, b as InspectorObserveOptions, c as InspectorRunOptions, i as InspectorRuntime, j as InspectorRuntimeContext, k as InspectorRuntimeDiagnostics, l as InspectorRuntimeOptions, d as InspectorStepOptions, T as TraceSafetyOptions, e as createInspector, n as createInspectorRuntime, o as getCurrentContext, g as getCurrentCorrelationMetadata, p as getCurrentDepth, q as getCurrentRunId, r as getCurrentRunName, s as getCurrentStepId, t as getParentStepId, u as getTraceDirFromContext, v as getTraceSafetyFromContext, w as hasActiveContext, x as isAgentInspectEnabled, y as isSilentContext, m as maybeInspectRun, z as prepareMetadataForDisk, A as prepareTraceEventForDisk, B as resolveTraceSafetyOptions, E as runWithContext, F as runWithStepContext } from './context-BhaVHtOT.cjs';
2
2
  import { R as RedactionRule } from './log-config-DcjV8ZjF.cjs';
3
- import { R as RedactionProfile, h as TraceEvent, E as ErrorInfo, b as RunStatus, e as StepStatus, k as RunSummary, l as TraceMetadata, j as TraceMetadataStatus, f as StepType, g as TraceCorrelationMetadata } from './types-wXuxMUop.cjs';
4
- export { A as ActiveStepContext, i as ExecutionContext, I as InspectRunOptions, O as ObserveOptions, a as Run, m as RunCompletedEvent, n as RunStartedEvent, c as Step, o as StepCompletedEvent, d as StepMetadata, S as StepOptions, p as StepStartedEvent, T as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-wXuxMUop.cjs';
3
+ import { R as RedactionProfile, h as TraceEvent, E as ErrorInfo, b as RunStatus, e as StepStatus, k as RunSummary, l as TraceMetadata, j as TraceMetadataStatus, f as StepType, g as TraceCorrelationMetadata } from './types-BSzhK7Z1.cjs';
4
+ export { A as ActiveStepContext, i as ExecutionContext, I as InspectRunOptions, O as ObserveOptions, a as Run, m as RunCompletedEvent, n as RunStartedEvent, c as Step, o as StepCompletedEvent, d as StepMetadata, S as StepOptions, p as StepStartedEvent, T as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-BSzhK7Z1.cjs';
5
5
  import { a as InspectRunTree } from './inspect-event-CDqjcrG_.cjs';
6
6
  export { A as AttributionConfidence, E as EventSource, b as InspectEvent, I as InspectKind, c as InspectNode } from './inspect-event-CDqjcrG_.cjs';
7
- import { P as PersistedInspectEvent } from './persisted-inspect-event-DiJ0I_vi.cjs';
7
+ import { P as PersistedInspectEvent } from './persisted-inspect-event-DPaCiars.cjs';
8
8
  import { Stats } from 'node:fs';
9
- import { aR as SessionWorkflowMetadata, aS as SessionRunRecord, aT as EnrichSessionSummaryOptions, aU as SessionStatus, aV as SessionSummary, aW as SessionIndex, aX as BuildActivitySummaryOptions, aY as ActivitySummary, aZ as SessionWarning, a_ as BuildSessionIndexOptions, N as TraceCheckResult, X as TraceCheckStatus, a2 as TraceContractInput, Z as TraceContract } from './index-DVetZwGG.cjs';
10
- export { a$ as ActivityEntry, b0 as CriticalPathStep, b1 as HandoffEdge, b2 as RetryLink, b3 as SESSION_WORKFLOW_KEYS, b4 as SessionCheckSummary, b5 as SessionConfidence, b6 as SessionEdgeSource, b7 as SessionGroup, b8 as SessionLastError, b9 as SessionWorkflowKey } from './index-DVetZwGG.cjs';
9
+ import { aR as SessionWorkflowMetadata, aS as SessionRunRecord, aT as EnrichSessionSummaryOptions, aU as SessionStatus, aV as SessionSummary, aW as SessionIndex, aX as BuildActivitySummaryOptions, aY as ActivitySummary, aZ as SessionWarning, a_ as BuildSessionIndexOptions, N as TraceCheckResult, X as TraceCheckStatus, a2 as TraceContractInput, Z as TraceContract } from './index-C61p7wBR.cjs';
10
+ export { a$ as ActivityEntry, b0 as CriticalPathStep, b1 as HandoffEdge, b2 as RetryLink, b3 as SESSION_WORKFLOW_KEYS, b4 as SessionCheckSummary, b5 as SessionConfidence, b6 as SessionEdgeSource, b7 as SessionGroup, b8 as SessionLastError, b9 as SessionWorkflowKey } from './index-C61p7wBR.cjs';
11
11
  import { b as ObservedOutcome } from './types-BA_IOdg4.cjs';
12
12
  export { a as ObservedOutcomeStatus } from './types-BA_IOdg4.cjs';
13
13
  import './writers.cjs';
14
- import './index-C6bCIbFO.cjs';
14
+ import './index-BT3KcO6-.cjs';
15
15
 
16
16
  interface ResolvedRedactionProfile {
17
17
  profile: RedactionProfile;
@@ -337,6 +337,8 @@ interface RunWhatSummary {
337
337
  output: number;
338
338
  total?: number;
339
339
  cached?: number;
340
+ cacheWrite?: number;
341
+ reasoning?: number;
340
342
  };
341
343
  correlation?: TraceCorrelationMetadata;
342
344
  failedStepNames: string[];
@@ -1055,6 +1057,16 @@ interface EvidenceHtmlShellInput {
1055
1057
  * Callers must pass only trusted, escaped fragments (use evidence view builders).
1056
1058
  */
1057
1059
  viewBodies?: Partial<Record<EvidenceViewId, string>>;
1060
+ /**
1061
+ * Safe contract-binding metadata only (status / digest / note). Never embed
1062
+ * expected-value payloads in HTML (6.29.3).
1063
+ */
1064
+ contractBinding?: {
1065
+ status: string;
1066
+ sha256?: string;
1067
+ note?: string;
1068
+ ruleCount?: number;
1069
+ };
1058
1070
  }
1059
1071
  /**
1060
1072
  * Encode JSON for embedding in HTML without breaking out of a script/pre context.
@@ -1251,6 +1263,7 @@ interface EvidenceCiPackageFiles {
1251
1263
  }
1252
1264
  /**
1253
1265
  * Build the standard CI evidence files (in memory) using Evidence v2 helpers.
1266
+ * Order (6.29.3): resolve → safety → bind → HTML → manifest last.
1254
1267
  * Optionally packages `contract.resolved.json` and binds digests (6.28+).
1255
1268
  */
1256
1269
  declare function buildEvidenceCiPackage(input: EvidenceCiPackageInput): EvidenceCiPackageFiles;
@@ -1,17 +1,17 @@
1
- export { C as CreateInspectorOptions, D as DEFAULT_MAX_EVENT_BYTES, f as DEFAULT_MAX_METADATA_VALUE_LENGTH, h as DEFAULT_MAX_PREVIEW_LENGTH, I as Inspector, a as InspectorCaptureOptions, b as InspectorObserveOptions, c as InspectorRunOptions, i as InspectorRuntime, j as InspectorRuntimeContext, k as InspectorRuntimeDiagnostics, l as InspectorRuntimeOptions, d as InspectorStepOptions, T as TraceSafetyOptions, e as createInspector, n as createInspectorRuntime, o as getCurrentContext, g as getCurrentCorrelationMetadata, p as getCurrentDepth, q as getCurrentRunId, r as getCurrentRunName, s as getCurrentStepId, t as getParentStepId, u as getTraceDirFromContext, v as getTraceSafetyFromContext, w as hasActiveContext, x as isAgentInspectEnabled, y as isSilentContext, m as maybeInspectRun, z as prepareMetadataForDisk, A as prepareTraceEventForDisk, B as resolveTraceSafetyOptions, E as runWithContext, F as runWithStepContext } from './context-DgcvkJ9t.js';
1
+ export { C as CreateInspectorOptions, D as DEFAULT_MAX_EVENT_BYTES, f as DEFAULT_MAX_METADATA_VALUE_LENGTH, h as DEFAULT_MAX_PREVIEW_LENGTH, I as Inspector, a as InspectorCaptureOptions, b as InspectorObserveOptions, c as InspectorRunOptions, i as InspectorRuntime, j as InspectorRuntimeContext, k as InspectorRuntimeDiagnostics, l as InspectorRuntimeOptions, d as InspectorStepOptions, T as TraceSafetyOptions, e as createInspector, n as createInspectorRuntime, o as getCurrentContext, g as getCurrentCorrelationMetadata, p as getCurrentDepth, q as getCurrentRunId, r as getCurrentRunName, s as getCurrentStepId, t as getParentStepId, u as getTraceDirFromContext, v as getTraceSafetyFromContext, w as hasActiveContext, x as isAgentInspectEnabled, y as isSilentContext, m as maybeInspectRun, z as prepareMetadataForDisk, A as prepareTraceEventForDisk, B as resolveTraceSafetyOptions, E as runWithContext, F as runWithStepContext } from './context-B8zzsmjX.js';
2
2
  import { R as RedactionRule } from './log-config-N_c5AE09.js';
3
- import { R as RedactionProfile, h as TraceEvent, E as ErrorInfo, b as RunStatus, e as StepStatus, k as RunSummary, l as TraceMetadata, j as TraceMetadataStatus, f as StepType, g as TraceCorrelationMetadata } from './types-xv9bSgOK.js';
4
- export { A as ActiveStepContext, i as ExecutionContext, I as InspectRunOptions, O as ObserveOptions, a as Run, m as RunCompletedEvent, n as RunStartedEvent, c as Step, o as StepCompletedEvent, d as StepMetadata, S as StepOptions, p as StepStartedEvent, T as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-xv9bSgOK.js';
3
+ import { R as RedactionProfile, h as TraceEvent, E as ErrorInfo, b as RunStatus, e as StepStatus, k as RunSummary, l as TraceMetadata, j as TraceMetadataStatus, f as StepType, g as TraceCorrelationMetadata } from './types-C5Y8Idle.js';
4
+ export { A as ActiveStepContext, i as ExecutionContext, I as InspectRunOptions, O as ObserveOptions, a as Run, m as RunCompletedEvent, n as RunStartedEvent, c as Step, o as StepCompletedEvent, d as StepMetadata, S as StepOptions, p as StepStartedEvent, T as TokenMetadata, q as TraceEventBase, r as TraceSchemaVersion, s as isStepStatus, t as isStepType, u as isTraceEvent } from './types-C5Y8Idle.js';
5
5
  import { a as InspectRunTree } from './inspect-event-CDqjcrG_.js';
6
6
  export { A as AttributionConfidence, E as EventSource, b as InspectEvent, I as InspectKind, c as InspectNode } from './inspect-event-CDqjcrG_.js';
7
- import { P as PersistedInspectEvent } from './persisted-inspect-event-CbaRYpbw.js';
7
+ import { P as PersistedInspectEvent } from './persisted-inspect-event-BMwvGIB8.js';
8
8
  import { Stats } from 'node:fs';
9
- import { aR as SessionWorkflowMetadata, aS as SessionRunRecord, aT as EnrichSessionSummaryOptions, aU as SessionStatus, aV as SessionSummary, aW as SessionIndex, aX as BuildActivitySummaryOptions, aY as ActivitySummary, aZ as SessionWarning, a_ as BuildSessionIndexOptions, N as TraceCheckResult, X as TraceCheckStatus, a2 as TraceContractInput, Z as TraceContract } from './index-BOA1AeEU.js';
10
- export { a$ as ActivityEntry, b0 as CriticalPathStep, b1 as HandoffEdge, b2 as RetryLink, b3 as SESSION_WORKFLOW_KEYS, b4 as SessionCheckSummary, b5 as SessionConfidence, b6 as SessionEdgeSource, b7 as SessionGroup, b8 as SessionLastError, b9 as SessionWorkflowKey } from './index-BOA1AeEU.js';
9
+ import { aR as SessionWorkflowMetadata, aS as SessionRunRecord, aT as EnrichSessionSummaryOptions, aU as SessionStatus, aV as SessionSummary, aW as SessionIndex, aX as BuildActivitySummaryOptions, aY as ActivitySummary, aZ as SessionWarning, a_ as BuildSessionIndexOptions, N as TraceCheckResult, X as TraceCheckStatus, a2 as TraceContractInput, Z as TraceContract } from './index-DTO2iGeq.js';
10
+ export { a$ as ActivityEntry, b0 as CriticalPathStep, b1 as HandoffEdge, b2 as RetryLink, b3 as SESSION_WORKFLOW_KEYS, b4 as SessionCheckSummary, b5 as SessionConfidence, b6 as SessionEdgeSource, b7 as SessionGroup, b8 as SessionLastError, b9 as SessionWorkflowKey } from './index-DTO2iGeq.js';
11
11
  import { b as ObservedOutcome } from './types-BA_IOdg4.js';
12
12
  export { a as ObservedOutcomeStatus } from './types-BA_IOdg4.js';
13
13
  import './writers.js';
14
- import './index-BzyNPfLm.js';
14
+ import './index-reskZCVW.js';
15
15
 
16
16
  interface ResolvedRedactionProfile {
17
17
  profile: RedactionProfile;
@@ -337,6 +337,8 @@ interface RunWhatSummary {
337
337
  output: number;
338
338
  total?: number;
339
339
  cached?: number;
340
+ cacheWrite?: number;
341
+ reasoning?: number;
340
342
  };
341
343
  correlation?: TraceCorrelationMetadata;
342
344
  failedStepNames: string[];
@@ -1055,6 +1057,16 @@ interface EvidenceHtmlShellInput {
1055
1057
  * Callers must pass only trusted, escaped fragments (use evidence view builders).
1056
1058
  */
1057
1059
  viewBodies?: Partial<Record<EvidenceViewId, string>>;
1060
+ /**
1061
+ * Safe contract-binding metadata only (status / digest / note). Never embed
1062
+ * expected-value payloads in HTML (6.29.3).
1063
+ */
1064
+ contractBinding?: {
1065
+ status: string;
1066
+ sha256?: string;
1067
+ note?: string;
1068
+ ruleCount?: number;
1069
+ };
1058
1070
  }
1059
1071
  /**
1060
1072
  * Encode JSON for embedding in HTML without breaking out of a script/pre context.
@@ -1251,6 +1263,7 @@ interface EvidenceCiPackageFiles {
1251
1263
  }
1252
1264
  /**
1253
1265
  * Build the standard CI evidence files (in memory) using Evidence v2 helpers.
1266
+ * Order (6.29.3): resolve → safety → bind → HTML → manifest last.
1254
1267
  * Optionally packages `contract.resolved.json` and binds digests (6.28+).
1255
1268
  */
1256
1269
  declare function buildEvidenceCiPackage(input: EvidenceCiPackageInput): EvidenceCiPackageFiles;
@@ -1,24 +1,24 @@
1
- import { extractSessionWorkflowMetadata, sessionKeyForRun, defineTraceContract, runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-ME4WXYY3.mjs';
2
- export { extractSessionWorkflowMetadata, sessionKeyForRun } from './chunk-ME4WXYY3.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-WGDSM37E.mjs';
4
- import { buildRunTimeline, filterTraces, extractMetadata, buildRunSummary } from './chunk-JBNRJLIV.mjs';
5
- export { buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildTraceStats, extractMetadata, filterTraces, formatStepLabel, renderRunWhat, renderTimeline, renderTraceStats } from './chunk-JBNRJLIV.mjs';
6
- import { extractOutcomesFromTraceEvents, parseObservationFilter, summarizeObservedOutcomes, extractOutcomesFromPersistedEvents, renderObservedOutcomesHtml } from './chunk-R4SSYU6D.mjs';
7
- export { extractOutcomesFromPersistedEvents, extractOutcomesFromTraceEvents } from './chunk-R4SSYU6D.mjs';
1
+ import { extractSessionWorkflowMetadata, sessionKeyForRun, defineTraceContract, runTraceChecks, createRunStatusRule, createToolUsageRule, createRunDurationRule, createLlmUsageRule, createObservedOutcomeRule } from './chunk-GPGBKN7W.mjs';
2
+ export { extractSessionWorkflowMetadata, sessionKeyForRun } from './chunk-GPGBKN7W.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-AQMJFKI6.mjs';
4
+ import { buildRunTimeline, filterTraces, extractMetadata, buildRunSummary } from './chunk-5RF7FYGL.mjs';
5
+ export { buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildTraceStats, extractMetadata, filterTraces, formatStepLabel, renderRunWhat, renderTimeline, renderTraceStats } from './chunk-5RF7FYGL.mjs';
6
+ import { extractOutcomesFromTraceEvents, parseObservationFilter, summarizeObservedOutcomes, extractOutcomesFromPersistedEvents, renderObservedOutcomesHtml } from './chunk-COZPMOUF.mjs';
7
+ export { extractOutcomesFromPersistedEvents, extractOutcomesFromTraceEvents } from './chunk-COZPMOUF.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 } from './chunk-U25RHRSU.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-U25RHRSU.mjs';
11
+ import { resolveRedactionProfile, readTraceEventsFromFile, stringContainsHighConfidenceCredential } from './chunk-65LFRW2T.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-65LFRW2T.mjs';
13
13
  import { Redactor } from './chunk-VU6O5QAH.mjs';
14
- import { openTrace } from './chunk-NDRMIL7Z.mjs';
14
+ import { openTrace } from './chunk-FKUTGUFG.mjs';
15
15
  import './chunk-FWK3Q3OJ.mjs';
16
- import './chunk-NXQF73EC.mjs';
16
+ import './chunk-5B4DNGFB.mjs';
17
17
  import './chunk-S4YWKV4G.mjs';
18
18
  import './chunk-AK5EN4U2.mjs';
19
- import { parseDuration, isTraceEvent, getTraceFilePath } from './chunk-WRE4CNPF.mjs';
20
- export { DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, MAX_NAME_LENGTH, RUNS_DIR_NAME, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTimestamp, getDefaultTraceDir, getTraceFilePath, isStepStatus, isStepType, isTraceEvent, parseDuration, parseTraceJsonl, truncateName, unknownTraceFormatMessage, warn } from './chunk-WRE4CNPF.mjs';
21
- import { persistedInspectEventsToTraceEvents } from './chunk-P366CCL2.mjs';
19
+ import { parseDuration, isTraceEvent, getTraceFilePath } from './chunk-SJ3C5RIS.mjs';
20
+ export { DEFAULT_TRACE_DIR_NAME, FALLBACK_TRACE_DIR, MAX_NAME_LENGTH, RUNS_DIR_NAME, createRunId, createStepId, ensureTraceDir, formatDuration, formatError, formatTimestamp, getDefaultTraceDir, getTraceFilePath, isStepStatus, isStepType, isTraceEvent, parseDuration, parseTraceJsonl, truncateName, unknownTraceFormatMessage, warn } from './chunk-SJ3C5RIS.mjs';
21
+ import { persistedInspectEventsToTraceEvents } from './chunk-QJI52TH3.mjs';
22
22
  import './chunk-7TGZLWEE.mjs';
23
23
  import { createReadStream } from 'fs';
24
24
  import { createInterface } from 'readline';
@@ -1990,6 +1990,39 @@ var EVIDENCE_CONTRACT_CANONICALIZATION_VERSION = "1";
1990
1990
  var EVIDENCE_CONTRACT_PARTIAL_NOTE = "Custom or programmatic rules are not serializable; Evidence records rule IDs only and does not claim complete reviewer replay.";
1991
1991
  var EVIDENCE_CONTRACT_UNAVAILABLE_NOTE = "No resolved TraceContract or check preset was packaged with this Evidence artifact.";
1992
1992
  var EVIDENCE_CONTRACT_ASSURANCE_NOTE = "Contract binding verifies packaged digest integrity only; it does not prove producer identity, trusted time, source completeness, semantic truth, or external acceptance.";
1993
+ var EVIDENCE_CONTRACT_UNSAFE_NOTE = "Resolved TraceContract contains high-confidence credential-like expected values; Evidence refuses complete packaging rather than silently redacting evaluated expectations.";
1994
+ function contractContainsUnsafeExpectedValues(value) {
1995
+ return scanForExpectedFields(value, 0);
1996
+ }
1997
+ function scanForExpectedFields(value, depth) {
1998
+ if (depth > 32) return false;
1999
+ if (Array.isArray(value)) {
2000
+ return value.some((item) => scanForExpectedFields(item, depth + 1));
2001
+ }
2002
+ if (value === null || typeof value !== "object") return false;
2003
+ const record = value;
2004
+ for (const [key, child] of Object.entries(record)) {
2005
+ if (key === "expected" || key === "oneOf") {
2006
+ if (valueTreeContainsCredential(child, depth + 1)) return true;
2007
+ continue;
2008
+ }
2009
+ if (scanForExpectedFields(child, depth + 1)) return true;
2010
+ }
2011
+ return false;
2012
+ }
2013
+ function valueTreeContainsCredential(value, depth) {
2014
+ if (depth > 32) return false;
2015
+ if (typeof value === "string") {
2016
+ return stringContainsHighConfidenceCredential(value);
2017
+ }
2018
+ if (Array.isArray(value)) {
2019
+ return value.some((item) => valueTreeContainsCredential(item, depth + 1));
2020
+ }
2021
+ if (value === null || typeof value !== "object") return false;
2022
+ return Object.values(value).some(
2023
+ (child) => valueTreeContainsCredential(child, depth + 1)
2024
+ );
2025
+ }
1993
2026
  function serializeCanonicalJson(value) {
1994
2027
  return `${JSON.stringify(stableValue(value), null, 2)}
1995
2028
  `;
@@ -2123,6 +2156,32 @@ function buildEvidenceContractPackage(input) {
2123
2156
  if (unsupported.length > 0) {
2124
2157
  ruleIds = sortedUniqueStrings([...ruleIds, ...unsupported]);
2125
2158
  }
2159
+ if (contractContainsUnsafeExpectedValues(resolved)) {
2160
+ return {
2161
+ binding: {
2162
+ status: "unavailable",
2163
+ source: input.source,
2164
+ ...input.contractId !== void 0 ? { contractId: input.contractId } : {},
2165
+ ...input.contractVersion !== void 0 ? { contractVersion: input.contractVersion } : {},
2166
+ canonicalizationVersion: EVIDENCE_CONTRACT_CANONICALIZATION_VERSION,
2167
+ engineVersion: input.engineVersion,
2168
+ ruleIds,
2169
+ ...unsupported.length > 0 ? { unsupportedRuleIds: unsupported } : {},
2170
+ note: input.note ?? EVIDENCE_CONTRACT_UNSAFE_NOTE
2171
+ },
2172
+ checkBinding: {
2173
+ canonicalizationVersion: EVIDENCE_CONTRACT_CANONICALIZATION_VERSION,
2174
+ engineVersion: input.engineVersion,
2175
+ evaluatedRuleIds: ruleIds,
2176
+ bindingStatus: "unavailable",
2177
+ ...unsupported.length > 0 ? { unsupportedRuleIds: unsupported } : {},
2178
+ origin: {
2179
+ source: input.source,
2180
+ ...input.preset?.name ? { preset: input.preset.name } : {}
2181
+ }
2182
+ }
2183
+ };
2184
+ }
2126
2185
  const document = {
2127
2186
  canonicalizationVersion: EVIDENCE_CONTRACT_CANONICALIZATION_VERSION,
2128
2187
  kind,
@@ -2504,7 +2563,15 @@ function buildEmbeddedPayload(input) {
2504
2563
  redactionProfile: input.redactionProfile,
2505
2564
  verificationPolicy: input.verificationPolicy
2506
2565
  },
2507
- checkSummary: input.checkSummary
2566
+ checkSummary: input.checkSummary,
2567
+ ...input.contractBinding !== void 0 ? {
2568
+ contract: {
2569
+ status: input.contractBinding.status,
2570
+ ...input.contractBinding.sha256 !== void 0 ? { sha256: input.contractBinding.sha256 } : {},
2571
+ ...input.contractBinding.ruleCount !== void 0 ? { ruleCount: input.contractBinding.ruleCount } : {},
2572
+ ...input.contractBinding.note !== void 0 ? { note: input.contractBinding.note } : {}
2573
+ }
2574
+ } : {}
2508
2575
  };
2509
2576
  }
2510
2577
  function buildEvidenceHtmlShell(input) {
@@ -2602,6 +2669,7 @@ ${nav}
2602
2669
  <p>Artifact status: <span class="badge ${statusClass(input.assessmentStatus)}">${escapeHtml(input.assessmentStatus)}</span>
2603
2670
  ${input.sourceStatus !== void 0 ? ` \xB7 Source status: <span class="badge ${statusClass(input.sourceStatus)}">${escapeHtml(input.sourceStatus)}</span>` : ""}</p>
2604
2671
  <p>Profile: <code>${escapeHtml(input.redactionProfile)}</code> \xB7 Verification: <code>${escapeHtml(input.verificationPolicy)}</code></p>
2672
+ ${input.contractBinding !== void 0 ? `<p>Contract binding: <code>${escapeHtml(input.contractBinding.status)}</code>${input.contractBinding.ruleCount !== void 0 ? ` \xB7 Rules: <code>${escapeHtml(String(input.contractBinding.ruleCount))}</code>` : ""}${input.contractBinding.sha256 !== void 0 ? ` \xB7 Digest: <code>${escapeHtml(input.contractBinding.sha256.slice(0, 16))}\u2026</code>` : ""}</p>${input.contractBinding.note !== void 0 && input.contractBinding.note.trim() !== "" ? `<p class="muted">${escapeHtml(input.contractBinding.note)}</p>` : ""}` : ""}
2605
2673
  <p>Generator: <code>${escapeHtml(input.generatorName)}@${escapeHtml(input.generatorVersion)}</code>
2606
2674
  ${input.createdAt ? ` \xB7 Created: <code>${escapeHtml(input.createdAt)}</code>` : ""}</p>
2607
2675
  <h3>Runs</h3>
@@ -3163,29 +3231,6 @@ function buildEvidenceCiPackage(input) {
3163
3231
  schemaVersions.add(version);
3164
3232
  }
3165
3233
  const createdAt = input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString();
3166
- const evidenceHtml = buildEvidenceHtmlShell({
3167
- title: "AgentInspect evidence",
3168
- runIds: input.runIds,
3169
- assessmentStatus: input.assessmentStatus,
3170
- sourceStatus: input.sourceStatus,
3171
- redactionProfile: input.redactionProfile,
3172
- verificationPolicy: input.redactionProfile,
3173
- generatorName: "agent-inspect",
3174
- generatorVersion: input.generatorVersion,
3175
- createdAt,
3176
- summaryText: input.summaryText,
3177
- checkSummary: {
3178
- aggregateStatus: input.assessmentStatus,
3179
- runs: input.runIds.map((runId) => ({
3180
- runId,
3181
- status: input.assessmentStatus,
3182
- sourceStatus: input.sourceStatus,
3183
- errors: input.assessmentStatus === "UNSAFE" || input.assessmentStatus === "UNKNOWN" ? 1 : 0,
3184
- warnings: input.assessmentStatus === "SAFE WITH WARNINGS" ? 1 : 0,
3185
- findings: 0
3186
- }))
3187
- }
3188
- });
3189
3234
  let checkResultsJson = input.checkResultsJson;
3190
3235
  let contractBinding;
3191
3236
  let contractFileContent;
@@ -3208,6 +3253,37 @@ function buildEvidenceCiPackage(input) {
3208
3253
  bindCheckResultsToContract(parsed, packaged2.checkBinding)
3209
3254
  );
3210
3255
  }
3256
+ const evidenceHtml = buildEvidenceHtmlShell({
3257
+ title: "AgentInspect evidence",
3258
+ runIds: input.runIds,
3259
+ assessmentStatus: input.assessmentStatus,
3260
+ sourceStatus: input.sourceStatus,
3261
+ redactionProfile: input.redactionProfile,
3262
+ verificationPolicy: input.redactionProfile,
3263
+ generatorName: "agent-inspect",
3264
+ generatorVersion: input.generatorVersion,
3265
+ createdAt,
3266
+ summaryText: input.summaryText,
3267
+ checkSummary: {
3268
+ aggregateStatus: input.assessmentStatus,
3269
+ runs: input.runIds.map((runId) => ({
3270
+ runId,
3271
+ status: input.assessmentStatus,
3272
+ sourceStatus: input.sourceStatus,
3273
+ errors: input.assessmentStatus === "UNSAFE" || input.assessmentStatus === "UNKNOWN" ? 1 : 0,
3274
+ warnings: input.assessmentStatus === "SAFE WITH WARNINGS" ? 1 : 0,
3275
+ findings: 0
3276
+ }))
3277
+ },
3278
+ ...contractBinding !== void 0 ? {
3279
+ contractBinding: {
3280
+ status: contractBinding.status,
3281
+ ...contractBinding.sha256 !== void 0 ? { sha256: contractBinding.sha256 } : {},
3282
+ ...contractBinding.note !== void 0 ? { note: contractBinding.note } : {},
3283
+ ruleCount: contractBinding.ruleIds.length
3284
+ }
3285
+ } : {}
3286
+ });
3211
3287
  const packaged = [
3212
3288
  { path: EVIDENCE_HTML_FILENAME, content: evidenceHtml },
3213
3289
  { path: "check-results.json", content: checkResultsJson },