text: stop DeepSeek V4 DSML tool markup leaking during streaming
The streaming tool-content gate withheld <tool>/<|tool_call>/call: markers but
not DeepSeek V4's native <|DSML|tool_calls>… block (| = U+FF5C), so during a
streamed tool call the raw markup reached the client token-by-token as visible
content (even though the post-stream parser extracted the tool_calls correctly).
_gate_tool_content now withholds everything from the first <|DSML| marker to the
end (dropped on final, surfaced as structured tool_calls), and the trailing-
partial hold list includes the DSML open tag so a marker split across chunks
doesn't leak its leading chars.
Co-Authored-By:
Claude Opus 4.8 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment