package infra import ( "bytes" "os/exec" "time" ) // ProcessHandle represents a running subprocess with output buffers. type ProcessHandle struct { Cmd *exec.Cmd Pid int StartTime time.Time Dir string stdout *bytes.Buffer stderr *bytes.Buffer } // ProcessResult contains the outcome of a completed subprocess. type ProcessResult struct { ExitCode int Stdout string Stderr string DurationMs int64 Killed bool }