preview_compose_protection_by_agent
Preview composed protection (dry run) — Composes the cascade against a hypothetical body at the agent layer and returns conflicts + the composed view. No DB writes. Used by the dashboard editor for live conflict markers.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Screening mode for the protection pipeline. Required. `off` disables screening; `observe` records only; `nudge` warns; `enforce` blocks. | |
| agent_id | Yes | The agent this card belongs to (e.g. `smolt-abc123`). Identifier only — never place an API key, a secret, an email address, or any other personal data in this field. | |
| thresholds | No | Risk-score cutoffs, each in [0, 1] and ordered warn ≤ quarantine ≤ block. All three are required if this object is sent at all — omit the whole object to accept the composed defaults. | |
| card_version | Yes | Card schema version. REQUIRED by the server-side validator. Current canonical value: `protection/2026-04-26`. | |
| screen_surfaces | No | Which traffic surfaces are screened. Omit to accept the composed defaults. | |
| trusted_sources | No | Sources exempt from screening. Enumerate specific hosts — wildcards are rejected, and a server-side deny-list (public LLM/DNS endpoints, 0.0.0.0/0, ::/0, link-local, multicast) is always applied. | |
| protected_surface | No | The assets and operations this agent must protect. Omit to accept the composed default (empty surface). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | True when composition succeeded (no blocking conflicts). | |
| summary | Yes | One-line human-readable summary of composition status. | |
| full_report | No | Optional pointer to the full /v1 conflict report (method + path). | |
| conflicts_count | Yes | Total number of conflicts detected (0 = none). | |
| composition_valid | Yes | True when the composed card is valid. |