-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathmessage.html
More file actions
100 lines (100 loc) · 5.29 KB
/
Copy pathmessage.html
File metadata and controls
100 lines (100 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{# Template for rendering a single message in static mode #}
{% set message_role_upper = message.role[0]|upper + message.role[1:] if message.role else 'Unknown' %}
<div class="message-block {{ message.role }}">
<span class="message-role-badge">
{{ message_role_upper }} #{{ loop.index }}
</span>
<div class="message-content">
{% set tool_actions = message.extra.actions if (message.extra and message.extra.actions) else [] %}
{% if tool_actions %}
{# mini-swe-agent v2 tool-call assistant message: reasoning text + issued command(s).
The command lives in extra.actions rather than a ```bash block in the text. #}
<div class="message-content-full">
{% if message.content is string and message.content|trim %}
<div class="message-text">
<pre>{{ message.content }}</pre>
</div>
{% endif %}
{% for action in tool_actions %}
{% if action.command %}
<div class="code-block">
<pre><code>{{ action.command }}</code></pre>
</div>
{% endif %}
{% endfor %}
</div>
{% elif message.content is string %}
{# Simple string content #}
{% set line_count = message.content.count('\n') + 1 %}
{% if line_count <= 5 %}
{# Short message: show in full #}
<div class="message-content-full">
<div class="message-text">
<pre>{{ message.content }}</pre>
</div>
</div>
{% else %}
{# Long message: show preview with expand #}
{% set lines_list = message.content.split('\n') %}
{% set preview_lines = lines_list[:5] %}
{% set preview = preview_lines | join('\n') %}
{% set more_lines = line_count - 5 %}
<div class="message-preview-short clickable-message" title="Click to expand ({{ more_lines }} more lines)">
<div class="message-text">
<pre>{{ preview }}</pre>
</div>
<div class="expand-indicator">▼ {{ more_lines }} more lines</div>
</div>
<div class="message-content-full" style="display: none;" title="Content expanded - click collapse button below to hide">
<div class="message-text">
<pre>{{ message.content }}</pre>
</div>
<div class="collapse-indicator clickable-message" title="Click to collapse">▲ Click to collapse</div>
</div>
{% endif %}
{% elif message.content is iterable and message.content is not string %}
{# Complex content (e.g., user messages with multiple parts) #}
<div class="message-content-full">
{% for part in message.content %}
{% if part.type == 'text' %}
{% set part_line_count = part.text.count('\n') + 1 %}
{% if part_line_count <= 5 %}
<div class="message-text">
<pre>{{ part.text }}</pre>
</div>
{% else %}
{% set part_lines_list = part.text.split('\n') %}
{% set part_preview_lines = part_lines_list[:5] %}
{% set part_preview = part_preview_lines | join('\n') %}
{% set part_more_lines = part_line_count - 5 %}
<div class="message-preview-short clickable-message" title="Click to expand ({{ part_more_lines }} more lines)">
<div class="message-text">
<pre>{{ part_preview }}</pre>
</div>
<div class="expand-indicator">▼ {{ part_more_lines }} more lines</div>
</div>
<div class="message-content-expanded" style="display: none;" title="Content expanded - click collapse button below to hide">
<div class="message-text">
<pre>{{ part.text }}</pre>
</div>
<div class="collapse-indicator clickable-message" title="Click to collapse">▲ Click to collapse</div>
</div>
{% endif %}
{% else %}
<div class="message-part">
<strong>{{ part.type[0]|upper + part.type[1:] }}:</strong>
<pre>{{ part | tojson(indent=2) }}</pre>
</div>
{% endif %}
{% endfor %}
</div>
{% else %}
{# Fallback for other content types #}
<div class="message-content-full">
<div class="message-text">
<pre>{{ message.content | tojson(indent=2) }}</pre>
</div>
</div>
{% endif %}
</div>
</div>