agent-inspect 6.17.1 → 6.17.3

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.
@@ -1,231 +1,63 @@
1
- # Visual demos
1
+ # Demos and screenshots
2
2
 
3
- Curated terminal recordings and static diagrams for AgentInspect **6.7.x**. They show local capture inspect enforce verify/bundle — without a maintainer-hosted dashboard or vendor upload.
3
+ Curated terminal recordings and diagrams for AgentInspect **6.17.x**. They show **Debug / Prevent / Share** from one local trace — without a maintainer-hosted dashboard or vendor upload.
4
4
 
5
- **Synthetic output only:** demos use committed [fixtures](../fixtures/README.md), [examples](../examples/README.md), and recipes. No external LLM calls or API keys.
5
+ **Synthetic output only:** demos use committed [fixtures](../fixtures/README.md), [examples](../examples/README.md), and the [broken-agent-debugging](../examples/starters/broken-agent-debugging/) showcase. No external LLM calls or API keys.
6
6
 
7
- **npm note:** GIFs live in `docs/assets/demos/` for GitHub documentation. They are **not** shipped in the `agent-inspect` npm tarball. Brand SVGs used by the root README **are** included in the npm package.
7
+ **npm note:** Showcase GIFs live in `docs/assets/showcase/` for GitHub documentation. They are **not** shipped in the `agent-inspect` npm tarball. Brand SVGs used by the root README **are** included in the npm package.
8
8
 
9
- **Re-record guide:** [assets/demos/RECORDING.md](assets/demos/RECORDING.md)
10
- **Maintainer audit:** [implementation/VISUAL-DEMO-AUDIT.md](implementation/VISUAL-DEMO-AUDIT.md)
11
- **Live demo script:** [DEMO-SCRIPT.md](DEMO-SCRIPT.md) (uses [broken-agent-debugging](../examples/starters/broken-agent-debugging/) starter)
9
+ **Provenance:** [assets/showcase/provenance.json](assets/showcase/provenance.json)
12
10
 
13
- ---
14
-
15
- ## README brand assets (6.7.x)
16
-
17
- | Asset | Use |
18
- | ----- | --- |
19
- | [agent-inspect-logo.svg](assets/agent-inspect-logo.svg) | Light-mode wordmark |
20
- | [agent-inspect-logo-dark.svg](assets/agent-inspect-logo-dark.svg) | Dark-mode wordmark |
21
- | [readme-product-loop.svg](assets/readme-product-loop.svg) | Capture → understand → enforce → verify/bundle → local/Studio |
22
-
23
- Root README embeds the logo and product-loop SVG only. Terminal GIFs stay below.
24
-
25
- ---
26
-
27
- ## Adoption demo (6.7.x)
28
-
29
- Deterministic broken-agent flow — recommended for live demos.
30
-
31
- **Run:**
32
-
33
- ```bash
34
- cd examples/starters/broken-agent-debugging
35
- pnpm install && pnpm start
36
- npx agent-inspect report <run-id> --dir .agent-inspect
37
- npx agent-inspect redact <run-id> --dir .agent-inspect --profile share -o safe.jsonl
38
- npx agent-inspect verify-safe <run-id> --dir .agent-inspect
39
- ```
11
+ **Re-record helper:** `node scripts/render-showcase-tapes.mjs` (requires ffmpeg + Python Pillow)
40
12
 
41
- **GIF status:** re-record optional; use [error-handling.gif](assets/demos/error-handling.gif) as b-roll until a dedicated broken-agent GIF exists.
13
+ **Older recordings:** [assets/demos/RECORDING.md](assets/demos/RECORDING.md)
42
14
 
43
15
  ---
44
16
 
45
- ## Start tracing
46
-
47
- Manual `inspectRun` / `step` traces written as local JSONL.
48
-
49
- ### Quickstart (install → trace → view)
50
-
51
- ![Quickstart: install, run a traced script, list and view the run](assets/demos/quickstart.gif)
52
-
53
- Run: [examples/00-quickstart-demo](../examples/00-quickstart-demo/README.md)
54
- Also: [GETTING-STARTED.md](GETTING-STARTED.md)
55
-
56
- ### Nested execution tree
57
-
58
- ![Nested steps rendered as an execution tree in the terminal](assets/demos/execution-tree.gif)
59
-
60
- Run: [examples/02-nested-steps](../examples/02-nested-steps/README.md)
61
- Command: `agent-inspect view <run-id> --dir <trace-dir>`
62
-
63
- ### Parallel sibling steps
64
-
65
- ![Parallel tool steps under one parent in the execution tree](assets/demos/parallel-execution.gif)
66
-
67
- Run: [examples/03-parallel-steps](../examples/03-parallel-steps/README.md)
17
+ ## README showcase (6.17.x)
68
18
 
69
- ### Error handling
70
-
71
- ![Failed step recorded on step_completed with status error](assets/demos/error-handling.gif)
72
-
73
- Run: [examples/04-error-handling](../examples/04-error-handling/README.md)
74
-
75
- ### `observe()` wrapper
76
-
77
- ![observe() wrapper tracing an agent-like object](assets/demos/observe-wrapper.gif)
78
-
79
- Run: [examples/05-observe-wrapper](../examples/05-observe-wrapper/README.md) · API: [API.md](API.md)
80
-
81
- ### Env-gated tracing (`maybeInspectRun`)
82
-
83
- ![AGENT_INSPECT=1 toggles tracing; unset leaves no trace files](assets/demos/env-gated-tracing.gif)
19
+ | Asset | Job |
20
+ | ----- | --- |
21
+ | [debug-tree.gif](assets/showcase/gif/debug-tree.gif) | Debug — `list` then inspect a local run |
22
+ | [check-pass-fail.gif](assets/showcase/gif/check-pass-fail.gif) | Prevent — `check --preset trajectory` plus shorthands, pass then fail |
23
+ | [evidence-bundle.gif](assets/showcase/gif/evidence-bundle.gif) | Share — `bundle --profile share` then `bundle verify` (relative `./evidence`) |
24
+ | [readme-product-loop.svg](assets/readme-product-loop.svg) | README loop: one local trace → debug → prevent → share |
25
+ | [value-loop.svg](assets/showcase/diagrams/value-loop.svg) | Alternate stacked Debug / Prevent / Share diagram |
84
26
 
85
- Docs: [GETTING-STARTED.md](GETTING-STARTED.md) · [API.md](API.md) (`maybeInspectRun`)
27
+ The check tape is named for the `check` command, not `gate`.
86
28
 
87
29
  ---
88
30
 
89
- ## Use existing logs
90
-
91
- Turn structured logs you already emit into a **local** grouped timeline or tree.
31
+ ## Full six-flow set
92
32
 
93
- ### JSON logs tree
33
+ | Flow | GIF | Video |
34
+ | ---- | --- | ----- |
35
+ | Debug tree / list | [debug-tree.gif](assets/showcase/gif/debug-tree.gif) | [debug-tree.webm](assets/showcase/video/debug-tree.webm) |
36
+ | Check pass/fail | [check-pass-fail.gif](assets/showcase/gif/check-pass-fail.gif) | [check-pass-fail.webm](assets/showcase/video/check-pass-fail.webm) |
37
+ | Evidence bundle | [evidence-bundle.gif](assets/showcase/gif/evidence-bundle.gif) | [evidence-bundle.webm](assets/showcase/video/evidence-bundle.webm) |
38
+ | Explain | [explain.gif](assets/showcase/gif/explain.gif) | [explain.webm](assets/showcase/video/explain.webm) |
39
+ | Redact (derived copy) | [redact.gif](assets/showcase/gif/redact.gif) | [redact.webm](assets/showcase/video/redact.webm) |
94
40
 
95
- **Status:** animated demo pending re-record (staging asset had summary-count mismatch).
96
- **Command:**
97
-
98
- ```bash
99
- agent-inspect logs ./your.json.log \
100
- --format json \
101
- --run-id-key runId \
102
- --event-key event \
103
- --timestamp-key timestamp
104
- ```
105
-
106
- Run: [examples/06-log-to-tree](../examples/06-log-to-tree/README.md) · [LOGS.md](LOGS.md) · [LOG-TO-TREE-QUICKSTART.md](LOG-TO-TREE-QUICKSTART.md)
107
-
108
- ### Live tail
109
-
110
- **Status:** animated demo pending re-record.
111
- **Command:** `agent-inspect tail <log-file> [mapping flags]` — see [LOGS.md](LOGS.md).
112
-
113
- ### log4js (best-effort)
114
-
115
- **Status:** pending re-record. Documented in [LOGS.md](LOGS.md); recipe: [log4js-json-layout](../examples/recipes/log4js-json-layout/README.md).
41
+ Rejected source tapes (not published): blank one-frame `docs/demo-kit/b77a3f11-….gif` (PNG mislabeled as GIF); kit `06-run-live.mp4` (not re-recorded from the canonical starter). Kit MP4s that printed `/private/tmp` or captioned `check` as `gate` were re-recorded.
116
42
 
117
43
  ---
118
44
 
119
- ## Inspect and compare
120
-
121
- Read-only CLI over local JSONL traces.
122
-
123
- ### Chronological timeline (`--focus slow`)
124
-
125
- ![Timeline with slow-step focus highlighting longest steps](assets/demos/timeline.gif)
45
+ ## Canonical showcase commands
126
46
 
127
47
  ```bash
128
- agent-inspect timeline <run-id> --dir fixtures/traces --focus slow
129
- ```
130
-
131
- Docs: [CLI.md](CLI.md) § timeline
132
-
133
- ### Local stats
134
-
135
- ![Aggregate stats over a trace directory](assets/demos/stats.gif)
136
-
137
- ```bash
138
- agent-inspect stats --dir fixtures/traces
139
- ```
140
-
141
- Filter by correlation: `agent-inspect stats --correlation-id <id>` or `--group-id <id>`.
142
- Docs: [CLI.md](CLI.md) § stats
143
-
144
- ### Deterministic search
145
-
146
- ![Search traces by status error](assets/demos/search.gif)
147
-
148
- ```bash
149
- agent-inspect search --dir fixtures/traces --status error --limit 5
150
- ```
151
-
152
- Docs: [CLI.md](CLI.md) § search
153
-
154
- ### Diff two runs
155
-
156
- ![Diff comparing success and error runs](assets/demos/diff-runs.gif)
157
-
158
- ```bash
159
- agent-inspect diff minimal-success minimal-error --dir fixtures/traces
160
- ```
161
-
162
- Docs: [DIFF.md](DIFF.md)
163
-
164
- ### Markdown export
165
-
166
- ![Export a run to Markdown locally](assets/demos/markdown-export.gif)
167
-
168
- ```bash
169
- agent-inspect export minimal-success --dir fixtures/traces --format markdown
48
+ cd examples/starters/broken-agent-debugging
49
+ node demo-agent.mjs good
50
+ npx agent-inspect list --dir .agent-inspect
51
+ npx agent-inspect check demo-good --dir .agent-inspect \
52
+ --preset trajectory --required-tool retrieve_policy --fail-on-observation failed
53
+ npx agent-inspect bundle demo-good --dir .agent-inspect --profile share --out ./evidence
54
+ npx agent-inspect bundle verify ./evidence
170
55
  ```
171
56
 
172
- Docs: [EXPORTS.md](EXPORTS.md)
173
-
174
- ### HTML / OpenInference / OTLP
175
-
176
- - **HTML:** rendered-report visual pending re-record; export command in [EXPORTS.md](EXPORTS.md).
177
- - **OpenInference / OTLP JSON:** compatibility-oriented local formats — see prose and `--validate` in [EXPORTS.md](EXPORTS.md), not dedicated GIFs.
178
-
179
- ---
180
-
181
- ## Integrations and optional UI
182
-
183
- ### LangChain persistence
184
-
185
- ![LangChain callback with persist true writing inspectable JSONL](assets/demos/langchain-persistence.gif)
186
-
187
- Run: [examples/08-langchain-adapter](../examples/08-langchain-adapter/README.md) · [ADAPTERS.md](ADAPTERS.md)
188
-
189
- Streaming metadata (`stream: true`) demo pending re-record until `chunkCount` / `streamDurationMs` are non-null.
190
-
191
- ### Optional TUI (`@agent-inspect/tui`)
192
-
193
- ![Optional Ink TUI viewer for a local trace](assets/demos/tui-viewer.gif)
194
-
195
- Requires optional package: `pnpm add @agent-inspect/tui`
196
- Command: `agent-inspect view <run-id> --tui`
197
- Docs: [ADAPTERS.md](ADAPTERS.md)
57
+ Stable run ids: `demo-good`, `demo-regression`, `demo-pii`.
198
58
 
199
59
  ---
200
60
 
201
- ## Safety and sharing
202
-
203
- ### Default metadata redaction
204
-
205
- ![Sensitive metadata keys redacted before disk](assets/demos/redaction.gif)
206
-
207
- Profiles (`local` / `share` / `strict`) and export redaction: [SAFE-TRACE-SHARING.md](SAFE-TRACE-SHARING.md)
208
-
209
- ### Event size bounds
210
-
211
- Described in [LIMITATIONS.md](LIMITATIONS.md) — no GIF (static explanation preferred).
212
-
213
- ### Correlation metadata
214
-
215
- Described in [API.md](API.md) — optional `correlationId`, `requestId`, `decisionId`, `groupId` on `run_started`.
216
-
217
- ---
218
-
219
- ## VS Code (v3.3)
220
-
221
- Read-only sidebar trace explorer backed by the `agent-inspect` CLI. Develop with F5 from `packages/vscode`.
222
-
223
- Guide: [VSCODE.md](VSCODE.md)
61
+ ## Earlier 6.7.x terminal GIFs
224
62
 
225
- - [x] Basic trace tree (`inspectRun` + `step`)
226
- - [x] Failed step rendering
227
- - [x] `agent-inspect logs` output (JSON) — **re-record pending**
228
- - [x] `agent-inspect diff` output
229
- - [x] Optional TUI (`view --tui`)
230
- - [x] `timeline`, `stats`, `search` (v1.4.0)
231
- - [x] VS Code read-only trace explorer (v3.3.0) — see [VSCODE.md](VSCODE.md); Marketplace GIF pending first publish
63
+ The files under [assets/demos/](assets/demos/) remain available as additional command-level recordings (`quickstart.gif`, `execution-tree.gif`, `error-handling.gif`, ). Prefer the 6.17.x showcase above for README and website hero media. Log-to-tree and export HTML visuals still live in that older set.
@@ -1,6 +1,6 @@
1
1
  # Support levels
2
2
 
3
- Canonical maturity labels for AgentInspect public packages and major surfaces (6.16.x fixed release line).
3
+ Canonical maturity labels for AgentInspect public packages and major surfaces (6.17.x fixed release line).
4
4
 
5
5
  ## Definitions
6
6
 
@@ -19,10 +19,11 @@ Canonical maturity labels for AgentInspect public packages and major surfaces (6
19
19
  | `agent-inspect` core schema, readers, writers, inspection CLI | Stable |
20
20
  | Redaction engine / `@agent-inspect/redact` | Stable |
21
21
  | Deterministic checks (`agent-inspect/checks`) | Stable |
22
- | Official adapters (ai-sdk, openai-agents, langchain) | Supported |
22
+ | Official adapters (ai-sdk, openai-agents, langchain / LangGraph fidelity classes) | Supported |
23
23
  | Vitest / Jest reporters | Supported |
24
24
  | `@agent-inspect/harness` | Supported |
25
- | Workspace / bundles / observed outcomes | Supported |
25
+ | Workspace / bundles / observed outcomes / Evidence v2 | Supported |
26
+ | TraceFacts programmatic API | Beta |
26
27
  | TraceContract API | Beta |
27
28
  | Suites / cohorts / gates | Beta |
28
29
  | `@agent-inspect/index-sqlite` | Beta |
@@ -30,12 +31,22 @@ Canonical maturity labels for AgentInspect public packages and major surfaces (6
30
31
  | `@agent-inspect/adapter-sdk` / plugins | Beta |
31
32
  | `@agent-inspect/studio` | Beta |
32
33
  | Studio HTTP / GitHub ingest | Preview |
33
- | `@agent-inspect/mcp-server` | Preview |
34
+ | `@agent-inspect/mcp-server` (read-only MCP) | Preview |
34
35
  | Standards round-trip / Collector–Phoenix external proof | Preview |
35
36
  | Vitest/Jest TraceContract matchers (`toPassTraceContract`, `toHaveRequiredTool`) | Experimental |
36
37
 
37
38
  Part of the fixed AgentInspect release line — see the npm badge for the current version.
38
39
 
40
+ ## Public package groups (presentation only)
41
+
42
+ Physical packages stay the fixed group of 18. Outreach/install kits group them as:
43
+
44
+ 1. **Core kit** — `agent-inspect` (+ CLI)
45
+ 2. **Framework kit** — official adapters matching your stack
46
+ 3. **CI / Evidence kit** — checks, gates, reporters, Evidence v2 workflows
47
+
48
+ See [INSTALL-KITS.md](./INSTALL-KITS.md).
49
+
39
50
  ## Compatibility promise
40
51
 
41
52
  - Persisted schema **1.0**; v0.1 / v0.2 / 1.0 traces remain readable
@@ -44,4 +55,4 @@ Part of the fixed AgentInspect release line — see the npm badge for the curren
44
55
 
45
56
  ## Promotion criteria
46
57
 
47
- A surface moves up only with tests, docs, packed smoke where relevant, and honest limitation disclosure — not changelog marketing alone.
58
+ A surface moves up only with tests, docs, packed smoke where relevant, real-project or external retained use where required for Supported/Stable, and honest limitation disclosure — not changelog marketing alone.
@@ -0,0 +1,12 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-label="AgentInspect">
2
+ <defs>
3
+ <linearGradient id="ai-mark" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#4f46e5"/>
5
+ <stop offset="100%" stop-color="#6366f1"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <rect width="48" height="48" rx="12" fill="url(#ai-mark)"/>
9
+ <path d="M16 16h16M16 24h12M16 32h16" stroke="#fff" stroke-width="2.5" stroke-linecap="round"/>
10
+ <circle cx="36" cy="24" r="5" fill="none" stroke="#fff" stroke-width="2"/>
11
+ <path d="M39.5 27.5L44 32" stroke="#fff" stroke-width="2.5" stroke-linecap="round"/>
12
+ </svg>
@@ -1,4 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="900" height="150" viewBox="0 0 900 150" role="img" aria-label="AgentInspect evidence loop: capture or import, understand causality, enforce expectations, verify and bundle, review locally or in customer-owned Studio">
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="900" height="150" viewBox="0 0 900 150" role="img" aria-label="Capture one local trace, then debug the run, prevent trajectory regressions, and share-checked evidence">
2
2
  <defs>
3
3
  <marker id="arr" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
4
4
  <path d="M0,0 L6,3 L0,6 Z" fill="#64748b"/>
@@ -6,30 +6,21 @@
6
6
  </defs>
7
7
  <rect width="900" height="150" fill="#ffffff"/>
8
8
  <g font-family="ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif">
9
- <rect x="10" y="24" width="150" height="78" rx="12" fill="#eef2ff" stroke="#6366f1" stroke-width="1.5"/>
10
- <text x="85" y="52" text-anchor="middle" font-size="13" font-weight="600" fill="#312e81">Capture / import</text>
11
- <text x="85" y="72" text-anchor="middle" font-size="10" fill="#475569">JSONL, adapters,</text>
12
- <text x="85" y="86" text-anchor="middle" font-size="10" fill="#475569">logs, standards</text>
13
- <path d="M168 63h22" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
14
- <rect x="198" y="24" width="150" height="78" rx="12" fill="#ecfdf5" stroke="#10b981" stroke-width="1.5"/>
15
- <text x="273" y="52" text-anchor="middle" font-size="13" font-weight="600" fill="#064e3b">Understand</text>
16
- <text x="273" y="72" text-anchor="middle" font-size="10" fill="#475569">tree, timeline,</text>
17
- <text x="273" y="86" text-anchor="middle" font-size="10" fill="#475569">report, diff</text>
18
- <path d="M356 63h22" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
19
- <rect x="386" y="24" width="150" height="78" rx="12" fill="#fff7ed" stroke="#f59e0b" stroke-width="1.5"/>
20
- <text x="461" y="52" text-anchor="middle" font-size="13" font-weight="600" fill="#78350f">Enforce</text>
21
- <text x="461" y="72" text-anchor="middle" font-size="10" fill="#475569">checks, contracts,</text>
22
- <text x="461" y="86" text-anchor="middle" font-size="10" fill="#475569">suites, CI gates</text>
23
- <path d="M544 63h22" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
24
- <rect x="574" y="24" width="150" height="78" rx="12" fill="#f8fafc" stroke="#64748b" stroke-width="1.5"/>
25
- <text x="649" y="52" text-anchor="middle" font-size="13" font-weight="600" fill="#0f172a">Verify / bundle</text>
26
- <text x="649" y="72" text-anchor="middle" font-size="10" fill="#475569">redact, verify-safe,</text>
27
- <text x="649" y="86" text-anchor="middle" font-size="10" fill="#475569">offline bundle</text>
28
- <path d="M732 63h22" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
29
- <rect x="762" y="24" width="128" height="78" rx="12" fill="#f5f3ff" stroke="#7c3aed" stroke-width="1.5"/>
30
- <text x="826" y="52" text-anchor="middle" font-size="13" font-weight="600" fill="#4c1d95">Review</text>
31
- <text x="826" y="72" text-anchor="middle" font-size="10" fill="#475569">local or Studio</text>
32
- <text x="826" y="86" text-anchor="middle" font-size="10" fill="#475569">Beta (yours)</text>
33
- <text x="450" y="132" text-anchor="middle" font-size="12" fill="#64748b">No account · no default upload · metadata-only by default · optional customer-owned Studio</text>
9
+ <rect x="16" y="28" width="188" height="78" rx="12" fill="#eef2ff" stroke="#6366f1" stroke-width="1.5"/>
10
+ <text x="110" y="58" text-anchor="middle" font-size="13" font-weight="600" fill="#312e81">One local trace</text>
11
+ <text x="110" y="78" text-anchor="middle" font-size="11" fill="#475569">JSONL you own</text>
12
+ <path d="M212 67h28" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
13
+ <rect x="248" y="28" width="188" height="78" rx="12" fill="#ecfdf5" stroke="#10b981" stroke-width="1.5"/>
14
+ <text x="342" y="58" text-anchor="middle" font-size="13" font-weight="600" fill="#064e3b">Debug</text>
15
+ <text x="342" y="78" text-anchor="middle" font-size="11" fill="#475569">view · report · explain</text>
16
+ <path d="M444 67h28" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
17
+ <rect x="480" y="28" width="188" height="78" rx="12" fill="#fff7ed" stroke="#f59e0b" stroke-width="1.5"/>
18
+ <text x="574" y="58" text-anchor="middle" font-size="13" font-weight="600" fill="#78350f">Prevent</text>
19
+ <text x="574" y="78" text-anchor="middle" font-size="11" fill="#475569">check · contract · CI</text>
20
+ <path d="M676 67h28" stroke="#64748b" stroke-width="2" marker-end="url(#arr)"/>
21
+ <rect x="712" y="28" width="172" height="78" rx="12" fill="#f5f3ff" stroke="#7c3aed" stroke-width="1.5"/>
22
+ <text x="798" y="58" text-anchor="middle" font-size="13" font-weight="600" fill="#4c1d95">Share</text>
23
+ <text x="798" y="78" text-anchor="middle" font-size="11" fill="#475569">redact · bundle · verify</text>
24
+ <text x="450" y="132" text-anchor="middle" font-size="12" fill="#64748b">Capture once. Debug, prevent, and share from the same local trace.</text>
34
25
  </g>
35
26
  </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inspect",
3
- "version": "6.17.1",
3
+ "version": "6.17.3",
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",
@@ -181,6 +181,7 @@
181
181
  "docs/VSCODE.md",
182
182
  "docs/assets/agent-inspect-logo.svg",
183
183
  "docs/assets/agent-inspect-logo-dark.svg",
184
+ "docs/assets/agent-inspect-logo-mark.svg",
184
185
  "docs/assets/readme-product-loop.svg"
185
186
  ],
186
187
  "sideEffects": false,
@@ -2412,7 +2412,12 @@ function countErrorNodes(nodes) {
2412
2412
  return nodes.filter((entry) => entry.node.event.status === "error").length;
2413
2413
  }
2414
2414
  function slowestNode(nodes) {
2415
- return nodes.filter((entry) => entry.node.event.durationMs !== void 0).sort((a, b) => {
2415
+ return nodes.filter(
2416
+ (entry) => entry.node.event.durationMs !== void 0 && // The RUN boundary spans the whole run, so its duration always dominates
2417
+ // and shadows every real step. Rank actual work nodes only, matching the
2418
+ // stats slowest-step ranking, which never counts the run envelope.
2419
+ entry.node.event.kind !== "RUN"
2420
+ ).sort((a, b) => {
2416
2421
  const delta = (b.node.event.durationMs ?? 0) - (a.node.event.durationMs ?? 0);
2417
2422
  return delta !== 0 ? delta : a.index - b.index;
2418
2423
  })[0];
@@ -6580,6 +6585,18 @@ function stringAttr(event, keys) {
6580
6585
  }
6581
6586
  return void 0;
6582
6587
  }
6588
+ function metadataStringAttr(event, keys) {
6589
+ const metadata = event.attributes?.metadata;
6590
+ if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata)) {
6591
+ return void 0;
6592
+ }
6593
+ const record = metadata;
6594
+ for (const key of keys) {
6595
+ const value = record[key];
6596
+ if (typeof value === "string" && value.trim() !== "") return value;
6597
+ }
6598
+ return void 0;
6599
+ }
6583
6600
  function numericAttr(event, keys) {
6584
6601
  for (const key of keys) {
6585
6602
  const value = event.attributes?.[key];
@@ -6638,13 +6655,16 @@ function semanticEvents(context) {
6638
6655
  return context.logicalEvents ?? context.events;
6639
6656
  }
6640
6657
  function llmModel(event) {
6641
- return stringAttr(event, ["model", "modelId", "responseModelId", "modelName", "model_name"]) ?? stripPrefix(event.name, ["llm:", "generation:", "transcription:", "speech:"]);
6658
+ const keys = ["model", "modelId", "responseModelId", "modelName", "model_name"];
6659
+ return stringAttr(event, keys) ?? metadataStringAttr(event, keys) ?? stripPrefix(event.name, ["llm:", "generation:", "transcription:", "speech:"]);
6642
6660
  }
6643
6661
  function llmProvider(event) {
6644
- return stringAttr(event, ["provider", "providerName", "provider_name"]);
6662
+ const keys = ["provider", "providerName", "provider_name"];
6663
+ return stringAttr(event, keys) ?? metadataStringAttr(event, keys);
6645
6664
  }
6646
6665
  function llmFinishReason(event) {
6647
- return stringAttr(event, ["finishReason", "rawFinishReason", "finish_reason"]);
6666
+ const keys = ["finishReason", "rawFinishReason", "finish_reason"];
6667
+ return stringAttr(event, keys) ?? metadataStringAttr(event, keys);
6648
6668
  }
6649
6669
  function retryCount(event) {
6650
6670
  return numericAttr(event, ["retryCount", "retryAttempt", "retry_attempt", "attempt"]);
@@ -11321,5 +11341,5 @@ function renderGateReport(result, options = {}) {
11321
11341
  }
11322
11342
 
11323
11343
  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 };
11324
- //# sourceMappingURL=chunk-LFSBMUCD.mjs.map
11325
- //# sourceMappingURL=chunk-LFSBMUCD.mjs.map
11344
+ //# sourceMappingURL=chunk-5GGYDIZD.mjs.map
11345
+ //# sourceMappingURL=chunk-5GGYDIZD.mjs.map