agent-inspect 6.29.6 → 6.31.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.
Files changed (29) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -1
  3. package/docs/CLI.md +26 -4
  4. package/docs/TRACE-CONTRACTS.md +25 -0
  5. package/package.json +1 -1
  6. package/packages/cli/dist/{chunk-DBRMI7TC.mjs → chunk-Y5Z4BXUO.mjs} +2422 -101
  7. package/packages/cli/dist/chunk-Y5Z4BXUO.mjs.map +1 -0
  8. package/packages/cli/dist/index.cjs +10313 -7195
  9. package/packages/cli/dist/index.cjs.map +1 -1
  10. package/packages/cli/dist/index.mjs +866 -59
  11. package/packages/cli/dist/index.mjs.map +1 -1
  12. package/packages/cli/dist/{src-6CET2GW2.mjs → src-WTTH5G33.mjs} +3 -3
  13. package/packages/cli/dist/{src-6CET2GW2.mjs.map → src-WTTH5G33.mjs.map} +1 -1
  14. package/packages/core/dist/advanced.cjs +12 -1
  15. package/packages/core/dist/advanced.cjs.map +1 -1
  16. package/packages/core/dist/advanced.d.cts +2 -2
  17. package/packages/core/dist/advanced.d.ts +2 -2
  18. package/packages/core/dist/advanced.mjs +2 -2
  19. package/packages/core/dist/checks.cjs +172 -43
  20. package/packages/core/dist/checks.cjs.map +1 -1
  21. package/packages/core/dist/checks.d.cts +2 -2
  22. package/packages/core/dist/checks.d.ts +2 -2
  23. package/packages/core/dist/checks.mjs +1 -1
  24. package/packages/core/dist/{chunk-OOX25GTH.mjs → chunk-VEQKLWGJ.mjs} +174 -46
  25. package/packages/core/dist/chunk-VEQKLWGJ.mjs.map +1 -0
  26. package/packages/core/dist/{index-7hG_qggp.d.ts → index-CgOAGuM5.d.ts} +111 -1
  27. package/packages/core/dist/{index-CQJUNPPe.d.cts → index-EQihlEei.d.cts} +111 -1
  28. package/packages/cli/dist/chunk-DBRMI7TC.mjs.map +0 -1
  29. package/packages/core/dist/chunk-OOX25GTH.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.31.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 11a8b90: Add TraceContract `steps.orderRelations` for typed TOOL↔LLM step ordering (additive; TOOL-only `requiredOrder` / `orderRules` unchanged).
8
+
9
+ ## 6.30.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 094854f: Strict CLI TraceContract JSON for `agent-inspect check --config`:
14
+
15
+ - Top-level `contract` evaluates through `defineTraceContract` / `evaluateTraceContract`.
16
+ - Strict nested validation for run/tools/llm/observations/scope/alternatives/controls/retry (unknown keys fail closed).
17
+ - Mutually exclusive with an effective top-level `checks` block.
18
+ - `--evidence-on` binds the resolved contract (`contract.resolved.json` + check-results digests).
19
+
3
20
  ## 6.29.6
4
21
 
5
22
  ### Patch 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.29.6** · persisted schema `1.0` · Node.js `>=20` · MIT.
215
+ **Current published baseline:** **6.31.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
 
package/docs/CLI.md CHANGED
@@ -58,9 +58,9 @@ No new CLI commands were added for branching paths.
58
58
  | ---- | ------ |
59
59
  | One tool must always run | CLI `--required-tool` / contract `tools.required` |
60
60
  | Tool must never run | CLI `--forbidden-tool` / contract `tools.forbidden` |
61
- | Legitimate alternate paths (OR) | TraceContract `alternatives.anyOf` (not CLI flags) |
62
- | Causal order between tools | TraceContract `requiredOrder` + `requiredOrderMode` |
63
- | Read recovery vs write fail-closed | TraceContract `retry.operations` + `sideEffectClass` |
61
+ | Legitimate alternate paths (OR) | TraceContract `alternatives.anyOf` via `--config` `contract` (or TS API) |
62
+ | Causal order between tools | TraceContract `requiredOrder` + `requiredOrderMode` via `--config` `contract` |
63
+ | Read recovery vs write fail-closed | TraceContract `retry.operations` + `sideEffectClass` via `--config` `contract` |
64
64
  | Sensitive expected literals in Evidence | Contract binding safety (`unavailable` on credential-like expected); never silent complete packaging |
65
65
  | Share-safe offline review package | CLI `bundle` / Evidence CI helpers |
66
66
 
@@ -351,7 +351,8 @@ Options:
351
351
 
352
352
  By default, `check` runs `run.status`. Additional built-in rules can be selected with `--rule` or config when their options are available. Prefer `--preset trajectory` in CI, then `verify-safe` before sharing.
353
353
 
354
- Config files use this shape:
354
+ Config files use either `checks` (flat rule options) or top-level `contract`
355
+ (TraceContract vocabulary). Do not combine both in one file.
355
356
 
356
357
  ```json
357
358
  {
@@ -364,6 +365,27 @@ Config files use this shape:
364
365
  }
365
366
  ```
366
367
 
368
+ Rich TraceContract JSON (6.30+):
369
+
370
+ ```json
371
+ {
372
+ "contract": {
373
+ "tools": {
374
+ "required": ["retrieve_policy"],
375
+ "forbidden": ["send_email"],
376
+ "requiredOrder": ["retrieve_policy", "generate_answer"],
377
+ "requiredOrderMode": "first-occurrence"
378
+ },
379
+ "observations": { "failOn": ["failed"] },
380
+ "scope": { "runId": "optional-run-id" }
381
+ }
382
+ }
383
+ ```
384
+
385
+ Supported `contract` fields: `run`, `tools` (including `arguments`, `orderRules`),
386
+ `llm`, `observations` (including `requireProvenance`), `scope`, `alternatives.anyOf`,
387
+ `controls`, and `retry`. Unknown keys fail closed (exit 2). With `--evidence-on`,
388
+ contract mode writes `contract.resolved.json` and binds digests into check-results.
367
389
  YAML is not supported. TypeScript config files (`.ts`, `.mts`, `.cts`) fail clearly unless a future explicit loader strategy is added; use precompiled JavaScript config instead.
368
390
 
369
391
  Examples:
@@ -12,6 +12,7 @@ Contracts compile to deterministic check rules for common cases:
12
12
  - tool required / forbidden / allowed / maxCalls / order (`requiredTools` / `forbiddenTools` aliases)
13
13
  - selectable `requiredOrderMode` (`first-occurrence` | `happens-before` | `all-occurrences`)
14
14
  - additive `tools.orderRules` with per-rule occurrence modes
15
+ - typed cross-kind `steps.orderRelations` (TOOL ↔ LLM endpoints; additive in 6.31)
15
16
  - bounded `tools.arguments` JSON Pointer checks (`exists` | `type` | `equals` | `oneOf`)
16
17
  - `controls` declared-versus-enforced invariants
17
18
  - `retry` / side-effect safety using explicit attempt identity (additive `retry.operations[]` recovery oracles in 6.27)
@@ -61,6 +62,30 @@ For overlapping first calls, omitted / `first-occurrence` warns while `happens-b
61
62
 
62
63
  Immediate or positional `all-pairs` matching is not implemented.
63
64
 
65
+ ## `steps.orderRelations` (shipped — experimental, 6.31)
66
+
67
+ Typed before/after relations with explicit `kind: "TOOL" | "LLM"` endpoints. Use this when a TOOL must precede an LLM (or vice versa). It does **not** change TOOL-only `tools.requiredOrder` / `orderRules` semantics.
68
+
69
+ ```ts
70
+ defineTraceContract({
71
+ steps: {
72
+ orderRelations: [
73
+ {
74
+ before: { kind: "TOOL", name: "retrieve_policy" },
75
+ after: { kind: "LLM", name: "generate_answer" },
76
+ // mode?: "first-occurrence" | "happens-before" | "all-occurrences"
77
+ // requireEndpoints?: boolean // default true
78
+ },
79
+ ],
80
+ },
81
+ });
82
+ ```
83
+
84
+ - Default `mode` is `first-occurrence` (same three modes as tool order).
85
+ - Default `requireEndpoints: true` — missing kind+name fails; a same display name under the other kind does **not** satisfy the endpoint.
86
+ - LLM names match finished LLM events after stripping common prefixes (`llm:`, `generation:`, …).
87
+ - Low-level `createStepOrderingRule` is compositional when `requireEndpoints` is omitted/false.
88
+
64
89
  ### Experimental Vitest / Jest matchers (shipped)
65
90
 
66
91
  | Package | Export | Matchers |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inspect",
3
- "version": "6.29.6",
3
+ "version": "6.31.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",