Body submission delivers the implementation llmcpp should accept. The deposit fixture's final action corresponds to this MCP call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "submit",
"arguments": {
"body": "cents += amount;"
}
}
}
The active target is Account::deposit(int amount), so the submitted text contains only its statements. The compiler checks that body before accepting it; a rejected submission uses one attempt.
After acceptance, the generation pass can cache the body and rewrite the source. An external agent also answers the original llm/generate request with completion status. Returning C++ only in that final response is insufficient: the tool-mediated submission identifies the checked implementation that belongs to the target.