|
DRY: unify tool execution in ToolExecutor._execute_one()
Three methods (_run_single_tool, _execute_tool_calls, _execute_tool_calls_streaming) duplicated identical logic: resolve → middleware → execute → image extraction → build message. - Extract canonical _execute_one(tc, tool_map) -> (ToolEvent, Message, image_msg) - All three public methods now delegate to _execute_one - Public signatures unchanged — no test or caller changes needed 392 passed, 1 skipped Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/core/tool_executor.py |
|---|