#![forbid(unsafe_code)]
#![deny(missing_docs)]
mod alias;
mod builder;
mod tool_loop;
pub use alias::ModelAliases;
pub use builder::{LlmClient, LlmClientBuilder};
pub use tool_loop::ChatBuilder;
pub use llmkit_core::{
pricing, ChatRequest, ChatRequestBuilder, ChatResponse, ChatStream, ContentPart, CostEstimate,
EmbedRequest, EmbedResponse, FinishReason, LlmError, LlmProvider, LlmResult, Message,
MessageContent, ModelPricing, Role, StreamDelta, TokenUsage, Tool, ToolCall, ToolChoice,
ToolResult, ToolSchema,
};
pub use llmkit_macros::ToolSchema;
pub use llmkit_tower::{
CostTracking, CostTrackingLayer, FallbackProvider, LlmLayer, RateLimit, RateLimitLayer, Retry,
RetryLayer, SessionCost, Tracing, TracingLayer,
};
#[cfg(feature = "openai")]
pub use llmkit_openai::OpenAiProvider;
#[cfg(feature = "anthropic")]
pub use llmkit_anthropic::AnthropicProvider;
#[cfg(feature = "ollama")]
pub use llmkit_ollama::OllamaProvider;
pub mod prelude {
pub use crate::{
ChatRequest, ChatResponse, CostTrackingLayer, LlmClient, LlmClientBuilder, LlmError,
LlmProvider, LlmResult, Message, RateLimitLayer, RetryLayer, StreamDelta, Tool, ToolSchema,
TracingLayer,
};
#[cfg(feature = "openai")]
pub use crate::OpenAiProvider;
#[cfg(feature = "anthropic")]
pub use crate::AnthropicProvider;
#[cfg(feature = "ollama")]
pub use crate::OllamaProvider;
}