mod anthropic;
mod client;
mod error;
mod http;
mod openai;
mod setup;
mod types;
pub use crate::retry::{RetryPolicy, Retryable, with_retry};
pub use anthropic::AnthropicClient;
pub use client::ProtocolClient;
pub use error::LlmError;
pub use openai::OpenAiClient;
pub use setup::{SetupError, connect};
pub use types::{Completion, CompletionRequest, Reasoning, Usage};
use std::future::Future;
pub trait LlmClient: Send + Sync {
fn complete(
&self,
request: CompletionRequest,
) -> impl Future<Output = Result<Completion, LlmError>> + Send;
fn embed(
&self,
inputs: &[String],
) -> impl Future<Output = Result<Vec<Vec<f32>>, LlmError>> + Send;
}