use crate::agent::types::{Msg, ToolSpec, Turn};
use async_trait::async_trait;
#[async_trait]
pub trait LlmProvider: Send + Sync {
async fn chat(&self, system: &str, msgs: &[Msg], tools: &[ToolSpec]) -> Result<Turn, String>;
fn name(&self) -> &str;
fn synthesizes(&self) -> bool {
true
}
}