{% extends "base.html" %} {% block content %}
{{ task.name }}
{{ task.id }} · {{ task.status }} {% if task.current_phase %}·phase {{ task.current_phase }}{% endif %} {% if task.current_iter %}·iter {{ task.current_iter }}/{{ task.max_iter }}{% endif %}
{% include "partials/phase_pipeline.html" %}
{{ task.status }} {{ events|length }} events recorded
Goal
{{ task.goal }}
{% set _stage_map = {"research":"Researcher", "plan":"Implementer", "develop":"Implementer", "review":"Verifier", "test":"Verifier", "push":"Push"} %} {% set ns = namespace(current_stage='') %} {% for ev in events %} {% set p = ev.payload|from_json %} {% if ev.type == 'iter' %} {% set _stage = 'Updater' if p.agent == 'updater' else _stage_map.get(p.phase, '') %} {% if _stage and _stage != ns.current_stage %} {% set ns.current_stage = _stage %}
{{ _stage }}
{% if _stage == 'Researcher' %}web search + synthesis {% elif _stage == 'Implementer' %}plan + develop {% elif _stage == 'Verifier' %}review + test {% elif _stage == 'Push' %}finalize {% elif _stage == 'Updater' %}correction {% endif %}
{% endif %} {% elif ev.type == 'tool' %}
{{ p.name|default('?') }} {{ p.args_preview|default('') }} call
{% elif ev.type == 'tool_result' %}
{{ p.name|default('?') }} {{ 'ok' if p.ok else 'fail' }}
{% if p.snippet is defined and p.snippet %}
{{ p.snippet }}
{% endif %}
{% elif ev.type == 'thinking' %} {% elif ev.type == 'output' %}
{{ p.content|default('') }}
{% elif ev.type == 'verdict' %} {% set v = p.verdict|default('') %}
{{ '✗' if 'FAIL' in v else '✔' }} {{ v }}
{% elif ev.type == 'complete' %}
✔ Complete
{% elif ev.type == 'exit' %}
⏹ exit {{ p.code|default('?') }}
{% elif ev.type == 'error' %}
✗ {{ p.message|default('error') }}
{% elif ev.type == 'usage' %}
Tokens {{ p.total|default(0) }} prompt {{ p.prompt_tokens|default(0) }} + completion {{ p.completion_tokens|default(0) }}
{% endif %} {% endfor %}
{% endblock %}