{# Dialog HITL renderer — chat-like interface for content review #} {% macro render_hitl_dialog(case_id, dialog) %} {% set content_raw = dialog.get("content", "") %} {% set content_type = dialog.get("content_type", "text") %} {% set objective = dialog.get("objective", "") %} {% set messages = dialog.get("messages", []) %} {% set confirm_label = dialog.get("confirm_label", "Approve") %}
{# Header #}
Review & Respond
{# Objective #} {% if objective %}
{{ objective }}
{% endif %} {# Content preview card #} {% if content_raw %}
{% if content_type == "email" %} {# Email: render subject + HTML body via Alpine #} {% elif content_type == "code" %}
{{ content_raw }}
{% else %}
{{ content_raw }}
{% endif %}
{% endif %} {# Chat messages #}
{% if messages %} {% for msg in messages %} {% set role = msg.get("role", "assistant") %} {% set text = msg.get("text", "") %} {% if role == "user" %}
{{ text }}
{% else %}
{{ text }}
{% endif %} {% endfor %} {% else %}
No messages yet.
{% endif %}
{# Input + action buttons #}
{% endmacro %} {# Confirmed content display — shown after dialog is approved #} {% macro render_dialog_confirmed(content_raw, content_type) %}
Approved Content
{% if content_type == "email" %}
{% else %}
{{ content_raw }}
{% endif %}
{% endmacro %}