mod build;
mod execute;
mod extract;
use std::sync::Arc;
use crate::provider::ProviderRegistry;
use crate::session::Session;
use crate::tui::app::state::App;
pub(super) async fn run_ask(
app: &mut App,
session: &Session,
registry: Option<&Arc<ProviderRegistry>>,
question: &str,
) {
if question.is_empty() {
app.state.status =
"Usage: /ask <question> — ephemeral, full context, no tools, not saved.".to_string();
return;
}
let Some(registry) = registry else {
app.state.status = "/ask: no provider configured".to_string();
return;
};
let Some((provider, request)) = build::build_request(session, registry, question) else {
app.state.status = "/ask: cannot resolve provider".to_string();
return;
};
execute::run(app, provider, request).await;
}