findToolByName
Finds a tool by its name and ensures its arguments are compatible with the specified type.
Return
A SafeTool instance wrapping the tool with the specified argument type.
Parameters
toolName
The name of the tool to be retrieved.
Throws
If the tool with the specified name is not defined or its arguments are incompatible with the expected type.