{% extends "base.html" %} {% block title %}safety · tau-x402-cage{% endblock %} {% block content %}
Counterfactual view of the risk the cage prevented over the selected window. Every reject is a payment that would have gone through under the empty-registry baseline. Refreshes every 30 seconds.
{% if aggregate.get("verdict") == "error" %} {% endif %} {% set agg = aggregate.get("aggregate") or {} %}| # | Provider | Prevented count | Prevented value |
|---|---|---|---|
| {{ loop.index }} | {{ p.get("provider") }} | {{ p.get("count") }} | {% set vals = p.get("value_by_currency") or {} %} {% if vals %} {% for ccy, amt in vals.items() %} {{ amt }} {{ ccy }}{% if not loop.last %}, {% endif %} {% endfor %} {% else %}—{% endif %} |
No rejects recorded in this window.
{% endif %}| # | Rule | Fired | Prevented value |
|---|---|---|---|
| {{ loop.index }} | {{ r.get("rule_id") }} | {{ r.get("count") }} | {% set vals = r.get("value_by_currency") or {} %} {% if vals %} {% for ccy, amt in vals.items() %} {{ amt }} {{ ccy }}{% if not loop.last %}, {% endif %} {% endfor %} {% else %}—{% endif %} |
No rules fired in this window.
{% endif %}Rules the cage is enforcing right now, grouped by class. The top 5 scope summaries per class are shown; the count column is the full total.
{% set constraints_data = constraints or {} %} {% if constraints_data.get("verdict") == "error" %} {% endif %} {% set rows = constraints_data.get("constraints") or [] %} {% if rows %}| Class | Count | Fragment | Summaries (top 5) |
|---|---|---|---|
| {{ c.get("class_name") }} | {{ c.get("count") }} | {{ c.get("fragment") }} | {% for s in c.get("summaries") or [] %} {{ s }} {% endfor %} |
No constraints declared.
{% endif %}Recent rejected mutation ops: contradictions, governance violations, cross-revision violations, inconclusive proofs. Read-only tail of the daemon's in-memory ring buffer.
{% set failures_data = mutation_failures or {} %} {% if failures_data.get("verdict") == "error" %} {% endif %} {% set entries = failures_data.get("entries") or [] %} {% if entries %}| When (unix) | Op | Category | Actor | Reason |
|---|---|---|---|---|
| {{ e.get("timestamp_unix") }} | {{ e.get("op") }} | {{ e.get("category") }} | {{ e.get("actor_id") or "—" }} | {{ e.get("reason") }} |
No mutation failures recorded.
{% endif %}Live velocity, retry density, and tightening level. Read-only; refreshes every 15 seconds because runtime state moves faster than the rest of this page.
{% set rt = runtime_state or {} %} {% if rt.get("verdict") == "error" and rt.get("category") == "unknown_op" %}Runtime guard state unavailable on this cage version. Upgrade to v0.17.0 or later to surface spend velocity + tightening level here.
{% elif rt.get("verdict") == "error" %} {% else %} {% set level = (rt.get("tightening_level") or "none")|lower %} {% set retries = rt.get("retry_density") or [] %}| # | Provider | Counterparty | Endpoint | Count |
|---|---|---|---|---|
| {{ loop.index }} | {{ r.get("provider") or "—" }} | {{ r.get("counterparty") or "—" }} | {{ r.get("endpoint") or "—" }} | {{ r.get("count", 0) }} |
No repeating intent tuples in the current window.
{% endif %} {% set cooldowns = rt.get("active_cooldowns") or [] %}| Source | Expires in (s) |
|---|---|
| {{ cd.get("source") or "—" }} | {{ cd.get("expires_in_seconds", 0) }} |
No active cooldowns.
{% endif %} {% endif %}