Discriminated union of ToolCallStream variants, one per tool
in TTools. Enables TypeScript to narrow .input and .output
when the consumer checks call.name === "someToolName".
Falls back to ToolCallStream (untyped) when the tools tuple is a
plain (ClientTool | ServerTool)[] without literal name types.
ToolCallStreamUnion: { [K in keyof TTools]: ToolCallStream<
ToolNameOf<TTools[K]>,
ToolInputOf<TTools[K]>,
ToolOutputOf<TTools[K]>
> }[number]