{% extends "base.html" %} {% block content %} {% set t = trace %}
Trace detail

{% if t.get("blocked") %}Action blocked {% elif t.get("hitl_status") == "idle" %}Held for review {% elif t.get("hitl_status") == "denied" %}Action denied {% else %}Action allowed{% endif %}

{% if t.get("blocked") %}BLOCKED{% elif t.get("hitl_status") == "idle" %}HELD{% elif t.get("hitl_status") == "denied" %}DENIED{% elif t.get("hitl_status") == "approved" %}APPROVED{% else %}ALLOWED{% endif %}
Call ID{{ t.get("call_id","") }}
Tenant{{ t.get("tenant_id","") }}
Session{{ t.get("session_id","") }}
Engine latency{{ "%.1f"|format(t.get("engine_latency_ms", t.get("total_latency_ms",0))) }}ms
Cost${{ "%.6f"|format(t.get("provider_cost_usd",0)) }}
{% if t.get("blocked") %}
Blocked

Block reason

{{ t.get("block_reason","") }}

{% if t.get("this_hash") %}

this_hash: {{ t.get("this_hash","") }}

{% endif %}
{% endif %}
Input
{{ t.get("input_text","") }}
Output
{{ t.get("output_text","") }}
{% for ev in t.get("layer_events", []) %} {% else %} {% endfor %}
LayerDecisionDetailLatency
{{ ev.get("layer","") }} {{ ev.get("decision","") }} {{ ev.get("detail","") }} {{ "%.1f"|format(ev.get("latency_ms",0)) }}ms
No layer events.
{% endblock %}