{% from "partials/guidance_block.html" import render_guidance_block %} {# Managed-listener panel slot — hydrated by /api/ipi/managed-listener on load, then self-refreshes via its own hx-trigger. #}
{% if ipi_guidance %} {# ===== Run results playbook mode ===== #}Retrieval rate: {{ "%.0f" | format(retrieval_gate.retrieval_rate * 100) }}% (threshold: {{ "%.0f" | format(retrieval_gate.threshold * 100) }}%)
{% if retrieval_gate.non_viable_queries %}Non-viable queries (zero retrieval):
| Timestamp | Campaign | Confidence | Source IP | Token |
|---|---|---|---|---|
| {{ h.timestamp }} | {{ h.uuid[:8] }}... | {% set conf = h.confidence|string|upper %} {% if conf in ("2", "HIGH") %} HIGH {% elif conf in ("1", "MEDIUM") %} MEDIUM {% else %} LOW {% endif %} | {{ h.source_ip }} {% if h.via_tunnel %} tunnel {% else %} direct {% endif %} | {% if h.token_valid %} valid {% else %} missing {% endif %} |
No callback hits yet. Deploy payloads and issue a trigger prompt to generate activity.
{% endif %}| UUID | Format | Technique | Template | Hits | Created |
|---|---|---|---|---|---|
| {{ c.uuid[:8] }}... | {{ c.format }} | {{ c.technique }} | {% if c.template_id %} {{ c.template_id }} {% else %} — {% endif %} | {{ c.hit_count }} | {{ c.created_at }} |
No IPI campaigns. Run qai ipi generate to create payloads.
Full dashboard: qai ipi listen --port 8080
RXP pre-validation found zero retrieval across all queries (retrieval rate: {{ "%.0f" | format(retrieval_gate.retrieval_rate * 100) }}%, threshold: {{ "%.0f" | format(retrieval_gate.threshold * 100) }}%).
{% if retrieval_gate.non_viable_queries %}Non-viable queries:
No deployment guidance available (generated before this version).
{% endif %} {% else %} {# ===== Loading state ===== #}Click Load to view IPI campaigns and hits.
{% endif %}