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 %}
Trajectory ({{ trajectory.messages|length }} total) {% if trajectory.trajectory_file_path %} {% endif %}
{% for message in trajectory.messages %}
{{ message.role.title() }} #{{ loop.index }}
{% if message.content is string %} {% set content_lines = message.content.split('\n') %} {% if content_lines|length <= 5 %}
{% if message.role == 'assistant' and '```' in message.content %} {% set parts = message.content.split('```') %} {% for part in parts %} {% if loop.index is odd %}
{{ part | unescape_content }}
{% else %}
{{ part | unescape_content }}
{% endif %} {% endfor %} {% else %}
{{ message.content | unescape_content }}
{% endif %}
{% else %}
{{ content_lines[:5] | join('\n') | unescape_content }}
▼ {{ content_lines|length - 5 }} more lines
{% endif %} {% elif message.content is iterable %}
{% for content_part in message.content %} {% if content_part.type == 'text' %} {% set content_lines = content_part.text.split('\n') %} {% if content_lines|length <= 5 %}
{{ content_part.text | unescape_content }}
{% else %}
{{ content_lines[:5] | join('\n') | unescape_content }}
▼ {{ content_lines|length - 5 }} more lines
{% endif %} {% else %}
{{ content_part.type.title() }}:
{{ content_part | tojson(indent=2) }}
{% endif %} {% endfor %}
{% else %}
{{ message.content | tojson(indent=2) }}
{% endif %}
{% endfor %}
{% if trajectory.diff_by_files and trajectory.diff_by_files %}
Diff (Full) ({{ trajectory.diff_by_files|length }} files)
{% for file_path, file_diff in trajectory.diff_by_files.items() %}
{{ file_path }}
{{ file_diff }}
{% endfor %}
{% elif trajectory.diff and trajectory.diff.strip() %}
Diff (Full)
{{ trajectory.diff }}
{% endif %} {% if trajectory.incremental_diff_by_files and trajectory.incremental_diff_by_files %}
Incremental Diff ({{ trajectory.incremental_diff_by_files|length }} files)
{% for file_path, file_diff in trajectory.incremental_diff_by_files.items() %}
{{ file_path }}
{{ file_diff }}
{% endfor %}
{% elif trajectory.incremental_diff and trajectory.incremental_diff.strip() %}
Incremental Diff
{{ trajectory.incremental_diff }}
{% endif %} {% if trajectory.modified_files and trajectory.modified_files %}
Changed Files ({{ trajectory.modified_files|length }} files)
{% for file_path, file_content in trajectory.modified_files.items() %}
{{ file_path }}
{{ file_content }}
{% endfor %}
{% endif %}