parser: handle DeepSeek V4 DSML tool calls; reword waiting message
DeepSeek V4 (ds4) emits native tool calls as <|DSML|invoke name="…">
<|DSML|parameter name="p" string="true">val</|DSML|parameter></|DSML|invoke>
(the | is U+FF5C). No parser recognised this, so ToolCallParser returned None
and the raw markup leaked to the client as content even though ds4 reported
finish=tool_calls.
- parse_deepseek_dsml_tool_calls(): extract (name, args); string="false" params
are JSON-decoded, others kept as strings; ASCII | tolerated.
- Wired into DeepSeekParser and ToolCallParser.extract_tool_calls (the live path).
- strip_dsml_tool_calls(): drop the DSML block from displayed content in both
strip_tool_calls_from_content paths. Guarded by 'DSML' in text -> no effect on
other models.
Also reword the slow-reply notice from "Waiting for model to load..." to
"Waiting for model reply..." (the model is usually loaded, just slow).
Co-Authored-By:
Claude Opus 4.8 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment