@@ -210,7 +210,9 @@ def _parse_steps_by_chat_pairs(self, agent_logs: list[LogPart]) -> list[dict]:
210
210
211
211
return steps
212
212
213
- def _syntax_highlight_content (self , content : str , default_language : str = "" ) -> str :
213
+ def _syntax_highlight_content (self ,
214
+ content : str ,
215
+ default_language : str = "" ) -> str :
214
216
"""Syntax highlights content while preserving visible tags."""
215
217
216
218
# Escape everything first so raw logs are safe to render in HTML
@@ -240,45 +242,48 @@ def _normalize_lang(lang: str) -> str:
240
242
241
243
lang_key = _normalize_lang (default_language )
242
244
243
- escaped = _sub (r'<conclusion>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</conclusion>' ,
244
- r'<span class="log-tag"><conclusion></span>'
245
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto reason-block">\1</pre>'
246
- r'<span class="log-tag"></conclusion></span>' , escaped )
247
- escaped = _sub (r'<reason>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</reason>' ,
248
- r'<span class="log-tag"><reason></span>'
249
- r'<div class="markdown-block whitespace-pre-wrap break-words overflow-x-auto">\1</div>'
250
- r'<span class="log-tag"></reason></span>' , escaped )
251
-
252
- escaped = _sub (r'<bash>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</bash>' ,
253
- r'<span class="log-tag"><bash></span>'
254
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
255
- r'<span class="log-tag"></bash></span>' ,
256
- escaped )
257
- escaped = _sub (r'<build_script>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</build_script>' ,
258
- r'<span class="log-tag"><build_script></span>'
259
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-cpp">\1</code></pre>'
260
- r'<span class="log-tag"></build_script></span>' ,
261
- escaped )
262
- escaped = _sub (r'<fuzz target>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</fuzz target>' ,
263
- rf'<span class="log-tag"><fuzz target></span>'
264
- rf'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-{ lang_key } ">\1</code></pre>'
265
- rf'<span class="log-tag"></fuzz target></span>' ,
266
- escaped )
267
-
268
- escaped = _sub (r'<stdout>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</stdout>' ,
269
- r'<span class="log-tag"><stdout></span>'
270
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
271
- r'<span class="log-tag"></stdout></span>' ,
272
- escaped )
273
- escaped = _sub (r'<stderr>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</stderr>' ,
274
- r'<span class="log-tag"><stderr></span>'
275
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
276
- r'<span class="log-tag"></stderr></span>' ,
277
- escaped )
278
- escaped = _sub (r'<return_code>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</return_code>' ,
279
- r'<span class="log-tag"><return_code></span>'
280
- r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code>\1</code></pre>'
281
- r'<span class="log-tag"></return_code></span>' , escaped )
245
+ escaped = _sub (
246
+ r'<conclusion>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</conclusion>' ,
247
+ r'<span class="log-tag"><conclusion></span>'
248
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto reason-block">\1</pre>'
249
+ r'<span class="log-tag"></conclusion></span>' , escaped )
250
+ escaped = _sub (
251
+ r'<reason>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</reason>' ,
252
+ r'<span class="log-tag"><reason></span>'
253
+ r'<div class="markdown-block whitespace-pre-wrap break-words overflow-x-auto">\1</div>'
254
+ r'<span class="log-tag"></reason></span>' , escaped )
255
+
256
+ escaped = _sub (
257
+ r'<bash>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</bash>' ,
258
+ r'<span class="log-tag"><bash></span>'
259
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
260
+ r'<span class="log-tag"></bash></span>' , escaped )
261
+ escaped = _sub (
262
+ r'<build_script>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</build_script>' ,
263
+ r'<span class="log-tag"><build_script></span>'
264
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-cpp">\1</code></pre>'
265
+ r'<span class="log-tag"></build_script></span>' , escaped )
266
+ escaped = _sub (
267
+ r'<fuzz target>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</fuzz target>' ,
268
+ rf'<span class="log-tag"><fuzz target></span>'
269
+ rf'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-{ lang_key } ">\1</code></pre>'
270
+ rf'<span class="log-tag"></fuzz target></span>' , escaped )
271
+
272
+ escaped = _sub (
273
+ r'<stdout>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</stdout>' ,
274
+ r'<span class="log-tag"><stdout></span>'
275
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
276
+ r'<span class="log-tag"></stdout></span>' , escaped )
277
+ escaped = _sub (
278
+ r'<stderr>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</stderr>' ,
279
+ r'<span class="log-tag"><stderr></span>'
280
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
281
+ r'<span class="log-tag"></stderr></span>' , escaped )
282
+ escaped = _sub (
283
+ r'<return_code>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</return_code>' ,
284
+ r'<span class="log-tag"><return_code></span>'
285
+ r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code>\1</code></pre>'
286
+ r'<span class="log-tag"></return_code></span>' , escaped )
282
287
283
288
return escaped
284
289
0 commit comments