pub fn classify_io_error(err: &Error) -> ToolErrorCategoryExpand description
Classify an io::Error into a ToolErrorCategory.
§Note on io::ErrorKind::NotFound
NotFound from an Execution error means a file or binary was not found at the
OS level (e.g., bash: command not found). This is NOT the same as “tool not found
in registry” (ToolNotFound). We map it to PermanentFailure to avoid incorrectly
penalizing the model for OS-level path issues.