Expand description
tools run — resolve a tool by (owner, name, version), build its
command from the current platform’s exec vector + the caller’s
args, run it with the tool’s version folder as the working
directory, and yield each stdout/stderr line as a ResponseItem
as it arrives. A non-zero exit code surfaces as a final
Err(Error::ToolExit(code)).