Stream-based interface for incremental I/O with OS processes.
Uses Stream.resource/3 to provide lazy, demand-driven reads from stdout.
Input is written via a background Task to avoid deadlock.
Typically used through NetRunner.stream!/2 or NetRunner.stream/2.
Summary
Functions
Creates a stream that writes input to stdin and reads stdout chunks.
Returns {:ok, stream} or {:error, reason}.
Like stream/3 but raises on error.