Infer the successful return type of a LangChain tool.
Resolution order mirrors InferToolInput: func, then
invoke, then _call, so inference survives cross-package
boundaries where _call is protected.
InferToolOutput: T extends __type Out : T extends __type UnwrapToolFuncOutput<
R
> : T extends __type Out : T extends __type UnwrapToolFuncOutput<R> : unknown