A ClientTransport over the MCP **stdio** transport, built on the shared full-duplex DuplexChannel.
Launch an MCP server as a subprocess and wire a StdioClientTransport to its stdin/stdout via vibe's async process pipes. args is the command line (args[0] is the executable); newline-delimited JSON-RPC requests are written to the child's stdin and responses are read from its stdout; the child's stderr is inherited for logging. The read/write delegates are async (cooperative on the vibe event loop) so the duplex read loop never blocks the loop. The returned transport owns the subprocess: its close() runs the stdio shutdown sequence. Used by McpClient.spawn. REQUIRES a running event loop.