chat : fix LFM2 tool-call parsing double-escaping (#24667)

* Add escape test cases

* chat : fix LFM2 tool-call parsing double-escaping
This commit is contained in:
Tarek Dakhran
2026-06-15 22:10:09 +02:00
committed by GitHub
parent e36a602ba3
commit 7dad2f1a17
2 changed files with 25 additions and 6 deletions

View File

@@ -540,10 +540,11 @@ common_peg_parser common_chat_peg_builder::python_style_tool_calls(
auto arg_name_parser = literal(prop_name);
common_peg_parser arg_value_parser = eps();
auto string_value_parser = choice({
literal("\"") + tool_arg_string_value(string_content('"')) + literal("\""),
literal("'") + tool_arg_string_value(string_content('\'')) + literal("'")
});
// Quoted literal as a value: normalize_quotes_to_json preserves escapes.
auto string_value_parser = tool_arg_value(choice({
literal("\"") + string_content('"') + literal("\""),
literal("'") + string_content('\'') + literal("'")
}));
if (is_string_type) {
arg_value_parser = string_value_parser;