{# 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 %} {# Text/markdown: render with lightweight markdown via Alpine #}
'; inList = true; } html += '
  • ' + trimmed.slice(2) + '
  • '; } else if (trimmed === '') { if (inList) { html += ''; inList = false; } html += '
    '; } else { if (inList) { html += ''; inList = false; } html += '

    ' + trimmed + '

    '; } } if (inList) html += ''; // Inline formatting: bold, italic, code html = html.replace(/\*\*(.+?)\*\*/g, '$1'); html = html.replace(/\*(.+?)\*/g, '$1'); html = html.replace(/`(.+?)`/g, '$1'); rendered = html; " x-html="rendered">
    {% 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 %}
    • ' + t.slice(2) + '

    '; else if (t === '') html += '
    '; else html += '

    ' + t + '

    '; } html = html.replace(/\*\*(.+?)\*\*/g, '$1'); html = html.replace(/`(.+?)`/g, '$1'); rendered = html; " x-html="rendered">
    {% endif %}
    {% endmacro %}