@spec run_with( [String.t()], keyword() ) :: {:ready, map()} | {:blocked, map()} | {:error, String.t()}