When a real complete artifact is already in the response, prose mentions of bare <html> / <svg> tags in explanatory text are common (for example "Use the <html> tag for the root"). The unbalanced- open/close count would falsely classify the response as mid-stream and wipe the valid answer. The artifact-counting cross-check now only runs when NO real artifact has been emitted yet; once a real artifact exists, mid-stream second markup is rare enough that the count-based detector is not worth the false-positive cost. This also unblocks complete <html> answers that nest <svg> children or contain JS string literals like "<svg width=10>", since those unmatched markup tokens were being flagged as unclosed. |
||
|---|---|---|
| .. | ||
| data_recipe | ||
| export | ||
| inference | ||
| training | ||
| __init__.py | ||
| tool_healing.py | ||