use std::sync::Arc;
use super::extract;
use crate::provider::{CompletionRequest, Provider};
use crate::tui::app::state::App;
use crate::tui::chat::message::{ChatMessage, MessageType};
pub(super) async fn run(app: &mut App, provider: Arc<dyn Provider>, request: CompletionRequest) {
app.state.status = "/ask: asking…".to_string();
match provider.complete(request).await {
Ok(resp) => {
let text = extract::extract_text(&resp.message);
app.state.messages.push(ChatMessage::new(
MessageType::System,
format!("/ask → {text}"),
));
app.state.status = "/ask: answered".to_string();
app.state.scroll_to_bottom();
}
Err(err) => {
app.state.status = format!("/ask failed: {err}");
}
}
}