Your tool call could not be parsed: {{ error_summary }}{{ if has_partial_success }}
(The other {{ parsed_call_count }} tool call(s) in this turn parsed successfully and were dispatched; the errors above describe only the malformed ones, which were dropped.){{ end }}
{{ body_hint }}
{{ if is_native_format }}
Use the provider's native tool channel for the retry. Pass code-bearing arguments such as `content`, `new_text`, and `new_body` as ordinary string argument values. Do not put text-tool heredoc delimiters, XML tool tags, or fenced JSON/tool blocks inside those string values; they would become literal file bytes.
{{ else }}
{{ if is_json_format }}
```tool
{ "name": "edit", "args": { "action": "create", "path": "main.go", "content": "<<BODY" } }
<<BODY
package main
// backticks, quotes, and backslashes are all literal bytes here:
const usage = `go run main.go`
BODY
```
Do not re-send the same hand-escaped string. Put the file body in a verbatim block instead: set the value to `"<<BODY"`, write the raw text on the lines after the JSON object inside the same ```tool fence, and close it with a line that is exactly `BODY`. Nothing in that block is escaped, so a missed `\"`, a stray backslash, or an unbalanced brace cannot lose the call. Use `"<<BODY:N"` with N body lines only when the body itself contains a line that is exactly `BODY`. Short scalar values stay ordinary JSON strings. Emit one ```tool block per call.
{{ else }}
edit({
action: "create",
path: "...",
content: <<EOF
package main
// backticks, quotes, and backslashes are all fine inside heredoc
EOF
})
Do not use backtick template literals for code that contains backtick characters, such as Go raw strings, Rust raw strings, or shell snippets. Heredoc avoids those escaping issues.
{{ end }}
{{ end }}