agent-inspect 6.29.3 → 6.29.5
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 +22 -0
- package/README.md +1 -1
- package/docs/LIMITATIONS.md +2 -1
- package/docs/RUN-COMPARABILITY.md +54 -0
- package/docs/TRACE-CONTRACTS.md +1 -1
- package/package.json +9 -5
- package/packages/cli/dist/{chunk-TBTRH7KY.mjs → chunk-XWQEHKGB.mjs} +44 -31
- package/packages/cli/dist/chunk-XWQEHKGB.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +197 -72
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +146 -43
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-PGESGQ7G.mjs → src-XNC4EUN3.mjs} +3 -3
- package/packages/cli/dist/{src-PGESGQ7G.mjs.map → src-XNC4EUN3.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +23 -11
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +10 -10
- package/packages/core/dist/advanced.d.ts +10 -10
- package/packages/core/dist/advanced.mjs +18 -16
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/core/dist/checks.cjs +45 -31
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +7 -7
- package/packages/core/dist/checks.d.ts +7 -7
- package/packages/core/dist/checks.mjs +5 -5
- package/packages/core/dist/{chunk-7LSVGXCN.mjs → chunk-26YJSETN.mjs} +3 -3
- package/packages/core/dist/{chunk-7LSVGXCN.mjs.map → chunk-26YJSETN.mjs.map} +1 -1
- package/packages/core/dist/{chunk-5M4QUYFH.mjs → chunk-BGF5JDJN.mjs} +3 -3
- package/packages/core/dist/{chunk-5M4QUYFH.mjs.map → chunk-BGF5JDJN.mjs.map} +1 -1
- package/packages/core/dist/{chunk-3I6KX32E.mjs → chunk-EE5Z2GQ3.mjs} +20 -12
- package/packages/core/dist/chunk-EE5Z2GQ3.mjs.map +1 -0
- package/packages/core/dist/{chunk-FKVCTIP6.mjs → chunk-KWBO36PH.mjs} +4 -4
- package/packages/core/dist/{chunk-FKVCTIP6.mjs.map → chunk-KWBO36PH.mjs.map} +1 -1
- package/packages/core/dist/{chunk-BMRK6XHO.mjs → chunk-PBNBQRXV.mjs} +4 -4
- package/packages/core/dist/{chunk-BMRK6XHO.mjs.map → chunk-PBNBQRXV.mjs.map} +1 -1
- package/packages/core/dist/{chunk-KNRY24RS.mjs → chunk-Q5SLKV2Y.mjs} +3 -3
- package/packages/core/dist/{chunk-KNRY24RS.mjs.map → chunk-Q5SLKV2Y.mjs.map} +1 -1
- package/packages/core/dist/{chunk-XPDNO3KH.mjs → chunk-TU47EKKS.mjs} +29 -34
- package/packages/core/dist/chunk-TU47EKKS.mjs.map +1 -0
- package/packages/core/dist/{chunk-AT7TICCQ.mjs → chunk-WN5PT4GV.mjs} +4 -4
- package/packages/core/dist/{chunk-AT7TICCQ.mjs.map → chunk-WN5PT4GV.mjs.map} +1 -1
- package/packages/core/dist/{chunk-DZBNXCLA.mjs → chunk-ZFJ2ICTC.mjs} +5 -5
- package/packages/core/dist/{chunk-DZBNXCLA.mjs.map → chunk-ZFJ2ICTC.mjs.map} +1 -1
- package/packages/core/dist/{context-B8zzsmjX.d.ts → context-B7DqUmsJ.d.ts} +3 -3
- package/packages/core/dist/{context-BhaVHtOT.d.cts → context-rR_jW9TH.d.cts} +3 -3
- package/packages/core/dist/diff.d.cts +3 -3
- package/packages/core/dist/diff.d.ts +3 -3
- package/packages/core/dist/exporters.d.cts +3 -3
- package/packages/core/dist/exporters.d.ts +3 -3
- package/packages/core/dist/exporters.mjs +5 -5
- package/packages/core/dist/{index-BT3KcO6-.d.cts → index-Cdww9h50.d.cts} +2 -2
- package/packages/core/dist/{index-BaQ48jrq.d.cts → index-DKv7esIo.d.cts} +4 -4
- package/packages/core/dist/{index-CrnEOoRu.d.ts → index-DvSbXNot.d.ts} +4 -4
- package/packages/core/dist/{index-reskZCVW.d.ts → index-xUbdpcrP.d.ts} +2 -2
- package/packages/core/dist/index.cjs +11 -9
- package/packages/core/dist/index.cjs.map +1 -1
- package/packages/core/dist/index.d.cts +6 -6
- package/packages/core/dist/index.d.ts +6 -6
- package/packages/core/dist/index.mjs +6 -6
- package/packages/core/dist/{inspect-event-CDqjcrG_.d.cts → inspect-event-ClM5Z8om.d.cts} +6 -1
- package/packages/core/dist/{inspect-event-CDqjcrG_.d.ts → inspect-event-ClM5Z8om.d.ts} +6 -1
- package/packages/core/dist/{log-config-DcjV8ZjF.d.cts → log-config-CyRGaaWd.d.cts} +1 -1
- package/packages/core/dist/{log-config-N_c5AE09.d.ts → log-config-DAV_sR9A.d.ts} +1 -1
- package/packages/core/dist/logs.d.cts +3 -3
- package/packages/core/dist/logs.d.ts +3 -3
- package/packages/core/dist/{persisted-inspect-event-BMwvGIB8.d.ts → persisted-inspect-event-DG02LhEP.d.ts} +1 -1
- package/packages/core/dist/{persisted-inspect-event-DPaCiars.d.cts → persisted-inspect-event-q2ViiBW6.d.cts} +1 -1
- package/packages/core/dist/persisted.cjs +11 -9
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.d.cts +5 -5
- package/packages/core/dist/persisted.d.ts +5 -5
- package/packages/core/dist/persisted.mjs +3 -3
- package/packages/core/dist/readers.cjs +11 -9
- package/packages/core/dist/readers.cjs.map +1 -1
- package/packages/core/dist/readers.d.cts +3 -3
- package/packages/core/dist/readers.d.ts +3 -3
- package/packages/core/dist/readers.mjs +4 -4
- package/packages/core/dist/{types-C5Y8Idle.d.ts → types-BX1EPji1.d.ts} +1 -1
- package/packages/core/dist/{types-BSzhK7Z1.d.cts → types-bwL8cBv5.d.cts} +1 -1
- package/packages/core/dist/writers.cjs +11 -9
- package/packages/core/dist/writers.cjs.map +1 -1
- package/packages/core/dist/writers.d.cts +2 -2
- package/packages/core/dist/writers.d.ts +2 -2
- package/packages/core/dist/writers.mjs +3 -3
- package/packages/cli/dist/chunk-TBTRH7KY.mjs.map +0 -1
- package/packages/core/dist/chunk-3I6KX32E.mjs.map +0 -1
- package/packages/core/dist/chunk-XPDNO3KH.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 6.29.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 3e8750f: Trustworthy existing checks for 6.29.5:
|
|
8
|
+
|
|
9
|
+
- Validate `structure.minConfidence` against the canonical AttributionConfidence vocabulary (`unknown` | `heuristic` | `correlated` | `explicit`); reject obsolete values with exit 2.
|
|
10
|
+
- Fail closed on uncertain write completion: client idempotency keys / producer flags are not write-completion proof (ADR-0011).
|
|
11
|
+
- Circuit rules use logical-event projection, case-insensitive TOOL/LLM kind, and `--run` scoping so other runs cannot inflate counts.
|
|
12
|
+
- Selected `--circuit` / `--guardrails` rules appear in `ruleExecutions` / `rulesEvaluated`; unknown extension rule names fail closed instead of silent green.
|
|
13
|
+
|
|
14
|
+
## 6.29.4
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- d7a3801: Trust and package integrity for 6.29.4:
|
|
19
|
+
|
|
20
|
+
- Advertise honest MCP `tools/list` annotations (readOnlyHint / openWorldHint / destructiveHint) without treating hints as authorization.
|
|
21
|
+
- Ship an exact LICENSE copy in every public fixed-group tarball and enforce it in pack-smoke / docs gates.
|
|
22
|
+
- Keep Evidence demo generator versions synced through `version:packages` (`demo:generate` + verify).
|
|
23
|
+
- Document run comparability and transport retry (429) evaluation guidance; AgentInspect evaluates retries, it does not execute them.
|
|
24
|
+
|
|
3
25
|
## 6.29.3
|
|
4
26
|
|
|
5
27
|
### 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.
|
|
215
|
+
**Current published baseline:** **6.29.5** · 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/LIMITATIONS.md
CHANGED
|
@@ -8,8 +8,9 @@ This document states what AgentInspect **does not** provide today. It complement
|
|
|
8
8
|
- **No production APM replacement**: no sampling agents, no fleet-wide aggregation, no uptime SLAs.
|
|
9
9
|
- **No vendor upload pipeline**: no built-in Langfuse/Braintrust/New Relic/Datadog direct exporters as live sinks.
|
|
10
10
|
- **No automatic universal instrumentation** of every framework: integration is explicit (manual traces, log ingest, optional adapters).
|
|
11
|
-
- **No retry execution engine:** TraceContract `retry` rules (including additive `retry.operations[]` recovery oracles in 6.27) evaluate attempt identity and evidence only. AgentInspect does not retry tools, remediates nothing, and does not treat a client `idempotencyKey` as proof of exactly-once writes. Write-tool timeout/unknown completion is unevaluable
|
|
11
|
+
- **No retry execution engine:** TraceContract `retry` rules (including additive `retry.operations[]` recovery oracles in 6.27) evaluate attempt identity and evidence only. AgentInspect does not retry tools, remediates nothing, and does not treat a client `idempotencyKey` as proof of exactly-once writes. Write-tool timeout/unknown/running completion is unevaluable for `retry.operations` write recovery (client keys and producer no-side-effect flags do not clear that finding); write-retry is not safe by default.
|
|
12
12
|
- **Transport facts are source-boundary only:** HTTP status, server-advertised retry delay, selected delay, and their sources must be captured at the transport/fetch boundary. An MCP wrapper cannot recover facts already collapsed into an SDK error message.
|
|
13
|
+
- **Run comparability is optional guidance:** Ordinary trajectory checks do not fail when cohort/prompt/tool commitments are absent. See [RUN-COMPARABILITY.md](./RUN-COMPARABILITY.md). A machine-readable comparable-run profile is not a default gate in this line.
|
|
13
14
|
- **Omitted-payload digests** (`createOmittedPayloadCommitment`) are bounded (1 MiB preflight). Digests prove omitted bytes existed; they are not redaction or authorization.
|
|
14
15
|
|
|
15
16
|
## Correlation metadata (v1.3.0)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Run comparability (guidance)
|
|
2
|
+
|
|
3
|
+
AgentInspect trajectory checks are deterministic **given the evidence they receive**. That does not mean two agent runs are automatically comparable. A changed path may reflect nondeterministic tools, sampling, prompt drift, or missing capture—not only an application regression.
|
|
4
|
+
|
|
5
|
+
Ordinary `check` / TraceContract evaluation does **not** fail when comparability provenance is absent.
|
|
6
|
+
|
|
7
|
+
## Classification
|
|
8
|
+
|
|
9
|
+
| Class | Meaning |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `comparable` | Enough shared identity and commitments to interpret path differences as meaningful |
|
|
12
|
+
| `partially comparable` | Shared cohort/test case, but missing prompt/tools/model commitments |
|
|
13
|
+
| `not comparable` | Identity conflicts or insufficient linkage |
|
|
14
|
+
| `unknown` | No comparability metadata |
|
|
15
|
+
|
|
16
|
+
## Optional provenance fields
|
|
17
|
+
|
|
18
|
+
Attach as run or step metadata when you need honest before/after interpretation:
|
|
19
|
+
|
|
20
|
+
- `cohortId`, `testCaseId`, `attempt`
|
|
21
|
+
- `promptTemplateVersion` (or a content hash commitment)
|
|
22
|
+
- per-LLM-step **input commitment** (hash; prefer not to store raw prompts)
|
|
23
|
+
- upstream **tool-output commitment** (hash)
|
|
24
|
+
- `availableToolsCommitment`
|
|
25
|
+
- `requestedModel` / `resolvedModel`
|
|
26
|
+
- SDK/framework version
|
|
27
|
+
- sampling parameters (temperature, top_p, …)
|
|
28
|
+
- system fingerprint / finish reason when the provider exposes them
|
|
29
|
+
- contract digest
|
|
30
|
+
- outcome evaluator method/version
|
|
31
|
+
|
|
32
|
+
## Privacy
|
|
33
|
+
|
|
34
|
+
- Hashes show equality, not content.
|
|
35
|
+
- Low-entropy values may still be guessed.
|
|
36
|
+
- Caller-owned HMAC is allowed; AgentInspect does not manage keys.
|
|
37
|
+
- Cohort labels alone are insufficient.
|
|
38
|
+
- Temperature `0` is not proof of determinism.
|
|
39
|
+
- A digest does not prove complete capture.
|
|
40
|
+
|
|
41
|
+
## Retry and transport identity
|
|
42
|
+
|
|
43
|
+
Do not infer retries by matching tool names across steps. Prefer explicit:
|
|
44
|
+
|
|
45
|
+
- `operationId`, `attemptId`, `attemptNumber`, `retryOf`
|
|
46
|
+
- HTTP status, server-advertised delay, selected delay, delay source
|
|
47
|
+
|
|
48
|
+
The MCP client wrapper records each call as a separate operation unless the application supplies that identity. AgentInspect **evaluates** retry evidence; it does not execute retries.
|
|
49
|
+
|
|
50
|
+
See recipe `examples/recipes/comparable-cohort-runs/` and `examples/recipes/mcp-transport-retry-429/`.
|
|
51
|
+
|
|
52
|
+
## Future profile
|
|
53
|
+
|
|
54
|
+
A machine-readable comparable-run profile remains gated for `6.30.0` and requires external validation before it can become a default gate.
|
package/docs/TRACE-CONTRACTS.md
CHANGED
|
@@ -225,7 +225,7 @@ defineTraceContract({
|
|
|
225
225
|
|
|
226
226
|
**Retry classification (6.25.1):** a genuine retry is detected from explicit identity preference — `attemptNumber > 1`, valid `retryOf` (target exists and precedes), distinct later `attemptId` under the same `operationId`, or a later finished attempt in an explicitly grouped operation — **not** only from a prior `ok`. `error → success` without `idempotencyKey` / `noSideEffect` evidence fails when `requireIdempotencyEvidenceForRetry` is set. `fallbackOnlyAfterFailure` and `requireRecoveredFailureVisible` require chronological earlier failure in the related chain. A client `idempotencyKey` is evidence of intent, not proof of exactly-once mutation. AgentInspect evaluates traces; it does not execute retries.
|
|
227
227
|
|
|
228
|
-
**Bounded recovery operations (6.27):** `retry.operations[]` adds per-tool oracles for safe **read** recovery first (`retrieve_policy` recipe). Same-arguments checks accept structured payloads or matching digests and fail closed when both are missing. Write `sideEffectClass` treats timeout/`unknown`/`running` completion as unevaluable
|
|
228
|
+
**Bounded recovery operations (6.27 / 6.29.5):** `retry.operations[]` adds per-tool oracles for safe **read** recovery first (`retrieve_policy` recipe). Same-arguments checks accept structured payloads or matching digests and fail closed when both are missing. Write `sideEffectClass` treats timeout/`unknown`/`running` completion as unevaluable → fail; a client `idempotencyKey` or producer `noSideEffect`/`sideEffect:false` flag does **not** clear that finding. Write-retry is not safe by default.
|
|
229
229
|
|
|
230
230
|
Missing structured argument evidence fails closed (`AI_CHECK_TOOL_ARGUMENT_EVIDENCE_UNAVAILABLE`). Findings never include full actual inputs.
|
|
231
231
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-inspect",
|
|
3
|
-
"version": "6.29.
|
|
3
|
+
"version": "6.29.5",
|
|
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",
|
|
@@ -152,6 +152,7 @@
|
|
|
152
152
|
"docs/ADAPTERS.md",
|
|
153
153
|
"docs/ADAPTER-CONFORMANCE.md",
|
|
154
154
|
"docs/COMPARE.md",
|
|
155
|
+
"docs/RUN-COMPARABILITY.md",
|
|
155
156
|
"docs/LOG-TO-TREE-QUICKSTART.md",
|
|
156
157
|
"docs/SCREENSHOTS.md",
|
|
157
158
|
"docs/SAFE-TRACE-SHARING.md",
|
|
@@ -235,7 +236,7 @@
|
|
|
235
236
|
"test:all": "pnpm run typecheck && pnpm run linked-versions:check && pnpm run build && pnpm run test && pnpm run size",
|
|
236
237
|
"prepublish:checks": "pnpm run typecheck && pnpm run test && pnpm run test:coverage && pnpm run build && pnpm run fixtures:check && pnpm run recipes:check && pnpm run size && pnpm run linked-versions:check && pnpm run repo:health && pnpm run pack:smoke",
|
|
237
238
|
"pack:dry-run": "pnpm run build && npm pack --dry-run",
|
|
238
|
-
"pack:smoke": "pnpm run build && node scripts/package-smoke.mjs && node scripts/packed-openai-agents-e2e.mjs && node scripts/packed-ai-sdk-e2e.mjs && node scripts/packed-mcp-e2e.mjs && node scripts/packed-quickstart-e2e.mjs && node scripts/packed-semantic-loop-e2e.mjs && node scripts/packed-swarm-loop-e2e.mjs && node scripts/evidence-ci-golden-paths.mjs",
|
|
239
|
+
"pack:smoke": "pnpm run package-licenses:check && pnpm run build && node scripts/package-smoke.mjs && node scripts/packed-openai-agents-e2e.mjs && node scripts/packed-ai-sdk-e2e.mjs && node scripts/packed-mcp-e2e.mjs && node scripts/packed-quickstart-e2e.mjs && node scripts/packed-semantic-loop-e2e.mjs && node scripts/packed-swarm-loop-e2e.mjs && node scripts/evidence-ci-golden-paths.mjs",
|
|
239
240
|
"linked-versions:check": "node scripts/check-linked-versions.mjs",
|
|
240
241
|
"docs:commands": "node scripts/validate-doc-commands.mjs",
|
|
241
242
|
"docs:links": "node scripts/validate-doc-links.mjs",
|
|
@@ -244,7 +245,7 @@
|
|
|
244
245
|
"ai-assets:check": "node scripts/validate-ai-assets.mjs",
|
|
245
246
|
"package-readmes:check": "node scripts/validate-package-readmes.mjs",
|
|
246
247
|
"actions:check": "node scripts/check-github-actions-pins.mjs",
|
|
247
|
-
"docs:check": "pnpm run docs:commands && pnpm run docs:links && pnpm run public-truth:check && pnpm run ai-assets:check && pnpm run package-readmes:check && pnpm run
|
|
248
|
+
"docs:check": "pnpm run docs:commands && pnpm run docs:links && pnpm run public-truth:check && pnpm run ai-assets:check && pnpm run package-readmes:check && pnpm run package-licenses:check && pnpm run build:cli && pnpm run demo-version-sync:check && pnpm run repo:health && pnpm run actions:check && pnpm run demo:verify",
|
|
248
249
|
"build:cli": "pnpm exec tsup --config tsup.cli.config.ts",
|
|
249
250
|
"repo:health": "node scripts/validate-repo-health.mjs",
|
|
250
251
|
"demo:generate": "node scripts/demo-generate.mjs",
|
|
@@ -256,10 +257,13 @@
|
|
|
256
257
|
"perf:baseline": "node scripts/performance-baseline.mjs",
|
|
257
258
|
"examples:check": "pnpm install && pnpm --filter agent-inspect-example-01-basic run start",
|
|
258
259
|
"changeset": "changeset",
|
|
259
|
-
"version:packages": "changeset version && pnpm public-truth:sync && pnpm public-truth:check",
|
|
260
|
+
"version:packages": "changeset version && pnpm public-truth:sync && pnpm build && pnpm demo:generate && pnpm public-truth:check && pnpm demo:verify && pnpm package-licenses:check",
|
|
260
261
|
"release": "changeset publish",
|
|
261
262
|
"website:dev": "pnpm --filter @agent-inspect/website dev",
|
|
262
263
|
"website:build": "pnpm --filter @agent-inspect/website build",
|
|
263
|
-
"website:typecheck": "pnpm --filter @agent-inspect/website typecheck"
|
|
264
|
+
"website:typecheck": "pnpm --filter @agent-inspect/website typecheck",
|
|
265
|
+
"package-licenses:check": "node scripts/validate-package-licenses.mjs",
|
|
266
|
+
"package-licenses:sync": "node scripts/sync-package-licenses.mjs",
|
|
267
|
+
"demo-version-sync:check": "node scripts/check-demo-version-sync.mjs"
|
|
264
268
|
}
|
|
265
269
|
}
|
|
@@ -9,6 +9,23 @@ import { createReadStream } from 'fs';
|
|
|
9
9
|
import { createInterface } from 'readline';
|
|
10
10
|
import { pathToFileURL } from 'url';
|
|
11
11
|
|
|
12
|
+
// packages/core/src/types/inspect-event.ts
|
|
13
|
+
var ATTRIBUTION_CONFIDENCES = [
|
|
14
|
+
"unknown",
|
|
15
|
+
"heuristic",
|
|
16
|
+
"correlated",
|
|
17
|
+
"explicit"
|
|
18
|
+
];
|
|
19
|
+
function isAttributionConfidence(value) {
|
|
20
|
+
return typeof value === "string" && ATTRIBUTION_CONFIDENCES.includes(value);
|
|
21
|
+
}
|
|
22
|
+
var ATTRIBUTION_CONFIDENCE_RANK = {
|
|
23
|
+
unknown: 0,
|
|
24
|
+
heuristic: 1,
|
|
25
|
+
correlated: 2,
|
|
26
|
+
explicit: 3
|
|
27
|
+
};
|
|
28
|
+
|
|
12
29
|
// packages/core/src/types/persisted-inspect-event.ts
|
|
13
30
|
var INSPECT_KINDS = [
|
|
14
31
|
"RUN",
|
|
@@ -24,12 +41,6 @@ var INSPECT_KINDS = [
|
|
|
24
41
|
"LOG",
|
|
25
42
|
"OUTCOME"
|
|
26
43
|
];
|
|
27
|
-
var ATTRIBUTION_CONFIDENCES = [
|
|
28
|
-
"explicit",
|
|
29
|
-
"correlated",
|
|
30
|
-
"heuristic",
|
|
31
|
-
"unknown"
|
|
32
|
-
];
|
|
33
44
|
var PERSISTED_EVENT_SOURCE_TYPES = [
|
|
34
45
|
"manual",
|
|
35
46
|
"json-log",
|
|
@@ -65,9 +76,6 @@ function isOptionalNonNegativeNumber(value) {
|
|
|
65
76
|
function isInspectKind(value) {
|
|
66
77
|
return typeof value === "string" && INSPECT_KINDS.includes(value);
|
|
67
78
|
}
|
|
68
|
-
function isAttributionConfidence(value) {
|
|
69
|
-
return typeof value === "string" && ATTRIBUTION_CONFIDENCES.includes(value);
|
|
70
|
-
}
|
|
71
79
|
function isPersistedEventSourceType(value) {
|
|
72
80
|
return typeof value === "string" && PERSISTED_EVENT_SOURCE_TYPES.includes(value);
|
|
73
81
|
}
|
|
@@ -5192,12 +5200,7 @@ var STATUS_RANK = {
|
|
|
5192
5200
|
warning: 1,
|
|
5193
5201
|
pass: 2
|
|
5194
5202
|
};
|
|
5195
|
-
var CONFIDENCE_RANK =
|
|
5196
|
-
unknown: 0,
|
|
5197
|
-
heuristic: 1,
|
|
5198
|
-
correlated: 2,
|
|
5199
|
-
explicit: 3
|
|
5200
|
-
};
|
|
5203
|
+
var CONFIDENCE_RANK = ATTRIBUTION_CONFIDENCE_RANK;
|
|
5201
5204
|
var DEFAULT_SENSITIVE_KEYS = DEFAULT_CREDENTIAL_SENSITIVE_KEYS;
|
|
5202
5205
|
var DEFAULT_RAW_CONTENT_KEYS = [
|
|
5203
5206
|
"body",
|
|
@@ -6164,6 +6167,12 @@ function createStructureCycleRule() {
|
|
|
6164
6167
|
};
|
|
6165
6168
|
}
|
|
6166
6169
|
function createStructureRelationshipRule(options = {}) {
|
|
6170
|
+
if (options.minConfidence !== void 0 && !isAttributionConfidence(options.minConfidence)) {
|
|
6171
|
+
throw new TypeError(
|
|
6172
|
+
`createStructureRelationshipRule: minConfidence must be one of: ${ATTRIBUTION_CONFIDENCES.join(", ")}.`
|
|
6173
|
+
);
|
|
6174
|
+
}
|
|
6175
|
+
const minConfidence = options.minConfidence;
|
|
6167
6176
|
return {
|
|
6168
6177
|
id: "structure.relationship",
|
|
6169
6178
|
category: "structure",
|
|
@@ -6171,18 +6180,21 @@ function createStructureRelationshipRule(options = {}) {
|
|
|
6171
6180
|
evaluate(context) {
|
|
6172
6181
|
const byId = eventMap(semanticEvents(context));
|
|
6173
6182
|
const findings = [];
|
|
6174
|
-
const minConfidence = options.minConfidence;
|
|
6175
6183
|
for (const event of semanticEvents(context)) {
|
|
6176
|
-
if (minConfidence
|
|
6177
|
-
|
|
6178
|
-
|
|
6179
|
-
|
|
6180
|
-
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6185
|
-
|
|
6184
|
+
if (minConfidence) {
|
|
6185
|
+
const eventRank = CONFIDENCE_RANK[event.confidence] ?? CONFIDENCE_RANK.unknown;
|
|
6186
|
+
const minRank = CONFIDENCE_RANK[minConfidence];
|
|
6187
|
+
if (eventRank < minRank) {
|
|
6188
|
+
findings.push(
|
|
6189
|
+
failFinding(
|
|
6190
|
+
"structure.relationship",
|
|
6191
|
+
`Event confidence ${event.confidence} is below ${minConfidence}.`,
|
|
6192
|
+
[eventEvidence(event, "confidence")],
|
|
6193
|
+
{ minConfidence },
|
|
6194
|
+
event.confidence
|
|
6195
|
+
)
|
|
6196
|
+
);
|
|
6197
|
+
}
|
|
6186
6198
|
}
|
|
6187
6199
|
if (!event.parentId) continue;
|
|
6188
6200
|
if (event.parentId === event.eventId) {
|
|
@@ -7206,8 +7218,9 @@ ${nav}
|
|
|
7206
7218
|
<p>Artifact status: <span class="badge ${statusClass(input.assessmentStatus)}">${escapeHtml(input.assessmentStatus)}</span>
|
|
7207
7219
|
${input.sourceStatus !== void 0 ? ` \xB7 Source status: <span class="badge ${statusClass(input.sourceStatus)}">${escapeHtml(input.sourceStatus)}</span>` : ""}</p>
|
|
7208
7220
|
<p>Profile: <code>${escapeHtml(input.redactionProfile)}</code> \xB7 Verification: <code>${escapeHtml(input.verificationPolicy)}</code></p>
|
|
7209
|
-
|
|
7210
|
-
<p
|
|
7221
|
+
${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() !== "" ? `
|
|
7222
|
+
<p class="muted">${escapeHtml(input.contractBinding.note)}</p>` : ""}
|
|
7223
|
+
` : ""} <p>Generator: <code>${escapeHtml(input.generatorName)}@${escapeHtml(input.generatorVersion)}</code>
|
|
7211
7224
|
${input.createdAt ? ` \xB7 Created: <code>${escapeHtml(input.createdAt)}</code>` : ""}</p>
|
|
7212
7225
|
<h3>Runs</h3>
|
|
7213
7226
|
<ul class="runs">${runList}</ul>
|
|
@@ -12487,6 +12500,6 @@ function renderGateReport(result, options = {}) {
|
|
|
12487
12500
|
return renderGateSummaryMarkdown(result);
|
|
12488
12501
|
}
|
|
12489
12502
|
|
|
12490
|
-
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 };
|
|
12491
|
-
//# sourceMappingURL=chunk-
|
|
12492
|
-
//# sourceMappingURL=chunk-
|
|
12503
|
+
export { ATTRIBUTION_CONFIDENCES, 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, isAttributionConfidence, isPersistedInspectEvent, loadSessionRunRecords, loadSuiteConfig, loadTraceMetadataList, manualTraceEventsToComparableRun, nanoid, normalizeBundleOutputPath, openTrace, parseCohortMetricList, parseDuration, parseDurationFilter, parseGateList, parseTraceJsonl, persistedInspectEventsToTraceEvents, projectLogicalEvents, 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 };
|
|
12504
|
+
//# sourceMappingURL=chunk-XWQEHKGB.mjs.map
|
|
12505
|
+
//# sourceMappingURL=chunk-XWQEHKGB.mjs.map
|