Player {{ trajectory.player_id }} Round {{ round_num }}

API Calls: {{ trajectory.api_calls }}
Cost: ${{ "%.2f"|format(trajectory.cost) }}
{% if trajectory.exit_status %}
Exit Status: {{ trajectory.exit_status }}
{% endif %} {% if trajectory.valid_submission is not none %}
Valid Submission? {{ trajectory.valid_submission }}
{% endif %}
Trajectory
{% if is_static and trajectory.messages %} {# Static mode: render messages directly #}
{{ trajectory.messages | length }} messages
{% for message in trajectory.messages %} {% include 'includes/message.html' %} {% endfor %}
{% else %} {# Dynamic mode: lazy load messages #}
{% endif %}
Diff (Full)
{% if is_static and trajectory.diff_by_files %} {# Static mode: render diff directly #}
{% if trajectory.diff_by_files %} {% for file_path, file_diff in trajectory.diff_by_files.items() %}
{{ file_path }}
{{ file_diff }}
{% endfor %} {% else %}
No diff available
{% endif %}
{% else %} {# Dynamic mode: lazy load diffs #}
{% endif %}
{% if not is_static or (trajectory.incremental_diff_by_files and trajectory.incremental_diff_by_files|length > 0) %}
Incremental Diff
{% if is_static and trajectory.incremental_diff_by_files %} {# Static mode: render incremental diff directly #}
{% for file_path, file_diff in trajectory.incremental_diff_by_files.items() %}
{{ file_path }}
{{ file_diff }}
{% endfor %}
{% else %} {# Dynamic mode: lazy load diffs #}
{% endif %}
{% endif %}
Modified Files
{% if is_static and trajectory.modified_files %} {# Static mode: render modified files directly #}
{% if trajectory.modified_files %} {% for file_path, file_content in trajectory.modified_files.items() %}
{{ file_path }}
{{ file_content }}
{% endfor %} {% else %}
No modified files available
{% endif %}
{% else %} {# Dynamic mode: lazy load modified files #}
{% endif %}