async fn repl_loop<L: LLM>( llm_client: &L, storage: &impl Storage, session: &mut Session ) -> Result<(), Box<dyn Error>>