pub async fn run_client( config: Arc<RwLock<ClientConfig>>, opts: ClientOpts, command_rx: Receiver<Message>, result_tx: Sender<Message>, ) -> Result<()>