root ::= object object ::= "{" ws "\"thought\":" ws string "," ws "\"tool_call\":" ws tool-call ws "}" tool-call ::= "{" ws "\"name\":" ws string "," ws "\"arguments\":" ws tool-args ws "}" tool-args ::= "{" ws ( pair ("," ws pair)* )? ws "}" pair ::= string ws ":" ws value value ::= string | number | "true" | "false" | "null" | tool-args | array array ::= "[" ws ( value ("," ws value)* )? ws "]" string ::= "\"" ([^"\\\x00-\x1F] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]))* "\"" number ::= "-"? ([0-9]+ | [0-9]* "." [0-9]+) ([eE] [+-]? [0-9]+)? ws ::= [ \t\n\r]*