agent-inspect 6.22.0 → 6.23.0

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.23.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 97b962f: Structured control contracts: JSON Pointer tool-argument checks, mixed orderRules, declared-versus-enforced controls, and retry/side-effect safety.
8
+
3
9
  ## 6.22.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -212,7 +212,7 @@ The root package is enough for custom capture, the CLI, checks, and Evidence wor
212
212
 
213
213
  ## Status and documentation
214
214
 
215
- **Current published baseline:** **6.22.0** · persisted schema `1.0` · Node.js `>=20` · MIT.
215
+ **Current published baseline:** **6.23.0** · persisted schema `1.0` · Node.js `>=20` · MIT.
216
216
 
217
217
  Legacy v0.1 and v0.2 traces remain readable. Check the npm badge and [changelog](CHANGELOG.md) for the current published version.
218
218
 
@@ -11,6 +11,10 @@ Contracts compile to deterministic check rules for common cases:
11
11
  - run status / completion / max duration
12
12
  - tool required / forbidden / allowed / maxCalls / order (`requiredTools` / `forbiddenTools` aliases)
13
13
  - selectable `requiredOrderMode` (`first-occurrence` | `happens-before` | `all-occurrences`)
14
+ - additive `tools.orderRules` with per-rule occurrence modes
15
+ - bounded `tools.arguments` JSON Pointer checks (`exists` | `type` | `equals` | `oneOf`)
16
+ - `controls` declared-versus-enforced invariants
17
+ - `retry` / side-effect safety using explicit attempt identity
14
18
  - `alternatives.anyOf` for one level of legitimate alternate paths
15
19
  - actor `scope` selectors (`runId`, `subAgentId`, `groupId`, `workflowStep`, `rootEventId`)
16
20
  - observation `requireProvenance` (structural method / evidence / same-run event references)
@@ -165,6 +169,58 @@ defineTraceContract({
165
169
 
166
170
  Bounded evidence shapes: string event id, `{ eventId }`, or `{ eventIds }` (max 16). Method must be in the `ObservedOutcomeMethod` vocabulary. Omitting `requireProvenance` leaves prior observation behavior unchanged.
167
171
 
172
+ ### `tools.arguments` / `tools.orderRules` / `controls` / `retry` (shipped — experimental, 6.23)
173
+
174
+ See [ADR-0010](./decisions/ADR-0010-structured-control-contracts.md).
175
+
176
+ ```ts
177
+ defineTraceContract({
178
+ tools: {
179
+ defaultOccurrenceMode: "first-occurrence",
180
+ orderRules: [
181
+ { before: "authorize", after: "charge", occurrenceMode: "all-occurrences" },
182
+ ],
183
+ arguments: [
184
+ {
185
+ tool: "charge",
186
+ occurrence: "all",
187
+ path: "/dryRun",
188
+ operator: "equals",
189
+ expected: true,
190
+ },
191
+ ],
192
+ },
193
+ controls: {
194
+ declaredTools: ["search", "charge"],
195
+ enforcedTools: ["search", "charge"],
196
+ requireDeclaredMatchesEnforced: true,
197
+ requireObservedWithinEnforced: true,
198
+ requiredStages: [{ stage: "enforced" }],
199
+ },
200
+ retry: {
201
+ maxAttempts: 2,
202
+ nonIdempotentTools: ["charge"],
203
+ requireIdempotencyEvidenceForRetry: true,
204
+ requireRecoveredFailureVisible: true,
205
+ },
206
+ });
207
+ ```
208
+
209
+ Missing structured argument evidence fails closed (`AI_CHECK_TOOL_ARGUMENT_EVIDENCE_UNAVAILABLE`). Findings never include full actual inputs.
210
+
211
+ ### Capture capability matrix (tool-argument evidence)
212
+
213
+ | Source | Structured input | Preview only | Digest only | Unavailable |
214
+ | --- | :---: | :---: | :---: | :---: |
215
+ | Manual `attributes.arguments` / `attributes.input` (object) | yes | — | — | — |
216
+ | Manual `inputSummary` string | — | yes | — | for pointer checks |
217
+ | AI SDK / LangChain metadata-only default | — | sometimes | — | typical |
218
+ | OpenAI Agents metadata-only | — | sometimes | — | typical |
219
+ | MCP / OTLP / OpenInference import | varies | varies | optional digest | when unmapped |
220
+ | Custom TraceReader | reader-defined | reader-defined | reader-defined | fail closed |
221
+
222
+ Do not advertise a structured argument rule when the selected capture mode cannot supply object evidence.
223
+
168
224
  ### Lint and explain (shipped)
169
225
 
170
226
  ```ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inspect",
3
- "version": "6.22.0",
3
+ "version": "6.23.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Local evidence debugger and trajectory-test toolkit for TypeScript AI agents — execution trees, TraceContract checks, Evidence v2, and read-only MCP",
@@ -11804,5 +11804,5 @@ function renderGateReport(result, options = {}) {
11804
11804
  }
11805
11805
 
11806
11806
  export { COHORT_METRIC_IDS, DEFAULT_SUITE_ARTIFACTS_DIR, EVIDENCE_FORMAT_VERSION, EVIDENCE_HTML_FILENAME, EVIDENCE_MANIFEST_FILENAME, Redactor, TraceDirectory, TraceReadError, TreeBuilder, aggregateBundleSafeStatus, aggregateSessionCheckResults, analyzeCohort, applyProfileMetadataCaps, assertBundlePathContained, assertEvidenceRelativePath, buildActivitySummary, buildBundleMetadata, buildBundleSummaryMarkdown, buildEvidenceCausalFailureViewHtml, buildEvidenceCiPackage, buildEvidenceCircuitViewHtml, buildEvidenceContractsViewHtml, buildEvidenceDiffViewHtml, buildEvidenceHtmlShell, buildEvidenceManifest, buildEvidenceOutcomesViewHtml, buildEvidenceProvenanceViewHtml, buildEvidenceSafetyViewHtml, buildEvidenceTimelineViewHtml, buildEvidenceToolsLlmViewHtml, buildEvidenceTreeViewHtml, buildLocalExplanation, buildPlaceholderArtifact, buildRunSummary, buildRunTimeline, buildRunWhatSummary, buildSessionIndex, buildTraceStats, buildZipArchive, bundleFailsOnSafety, bundleRunAssetRelativePath, collectTraceSchemaVersions, compactAttributes, createBaselineRegressionRule, createLlmUsageRule, createMaxStepDurationRule, createObservedOutcomeRule, createRequireCompletedRule, createRunDepthRule, createRunDurationRule, createRunStatusRule, createSafetyOversizedAttributeRule, createSafetyRawContentRule, createSafetyRedactionRule, createSafetySecretPatternRule, createStallDetectionRule, createStructureCycleRule, createStructureOrphanRule, createStructureParallelWidthRule, createStructureRelationshipRule, createToolUsageRule, defaultBundleOutputPath, defaultSuiteConfigTemplate, diffRuns, diffTraceEvents, enrichSessionRunRecord, escapeHtml, escapeMarkdown, extractMetadata, extractOutcomesFromTraceEvents, filterMetasBySessionScope, filterTraces, flattenTree, formatDuration2 as formatDuration, formatStepLabel, formatTimestamp, gateHasThresholds, getIndent, getTraceFilePath, inferEvidenceFileRole, isAgentInspectTrace, isPersistedInspectEvent, loadSessionRunRecords, loadSuiteConfig, loadTraceMetadataList, manualTraceEventsToComparableRun, nanoid, normalizeBundleOutputPath, openTrace, parseCohortMetricList, parseDuration, parseDurationFilter, parseGateList, parseTraceJsonl, persistedInspectEventsToTraceEvents, renderActivitySummaryHuman, renderCohortReport, renderErrorLine, renderGateReport, renderObservedOutcomesHtml, renderObservedOutcomesMarkdown, renderRunDiff, renderRunWhat, renderStepLine, renderSuiteReport, renderTimeline, renderTraceStats, resolveBundleRunIds, resolveRedactionProfile, resolveSuiteTemplate, resolveTraceDir, runGate, runSuite, runTraceChecks, safeString, sanitizeBundleRunId, searchTraces, serializeEvidenceManifest, sha256Hex, stableJson, summarizeObservedOutcomes, summarizeSemanticParity, traceEventToPersistedInspectEvent, truncateName, truncateStringForProfile, validateEvent, validateSuiteConfig, verifyEvidenceDirectory, zeroKinds };
11807
- //# sourceMappingURL=chunk-CHBYF4LE.mjs.map
11808
- //# sourceMappingURL=chunk-CHBYF4LE.mjs.map
11807
+ //# sourceMappingURL=chunk-BVQO5CWA.mjs.map
11808
+ //# sourceMappingURL=chunk-BVQO5CWA.mjs.map