Tool loop and approvals.
Agent turns follow:
- User message → prepare LLM messages (tools + MCP).
- Model returns text and/or a tool call (native or XML).
- Elcro validates params, may request approval, executes tool.
- Tool result is appended; loop continues until the model stops.
Local / OpenAI-compatible providers get a tool-calling mediator: native tool_calls preferred, with XML dual-parse and a one-shot retry when the model talks about tools but does not call them.