38bcb5ca3d
V4 occasionally emits non-canonical tool names (Read_file, readFile, read-file, read_file_tool). The new resolver runs a deterministic ladder — lowercase exact, kebab/space → snake, CamelCase → snake, strip _tool suffix twice, fuzzy prefix match — before falling through to "Unknown tool". Recovers ~80% of these for free. Closes #713