0652d87aca
Small local models emit tool calls into message content but truncate them (unterminated arguments string, missing closing braces), so strict decode fails and the blob is treated as a failing artifact, exhausting the stage's retry budget. Add a lenient fallback that recovers the function name and the first brace-balanced arguments object, gated on a tool-call marker so genuine artifact JSON is never misread as a call.