//! Core traits and types for OWLEN LLM client //! //! This crate provides the foundational abstractions for building //! LLM providers, routers, and MCP (Model Context Protocol) adapters. pub mod config; pub mod conversation; pub mod formatting; pub mod input; pub mod model; pub mod provider; pub mod router; pub mod session; pub mod storage; pub mod types; pub mod ui; pub mod wrap_cursor; pub use config::*; pub use conversation::*; pub use formatting::*; pub use input::*; pub use model::*; pub use provider::*; pub use router::*; pub use session::*; /// Result type used throughout the OWLEN ecosystem pub type Result = std::result::Result; /// Core error types for OWLEN #[derive(thiserror::Error, Debug)] pub enum Error { #[error("Provider error: {0}")] Provider(#[from] anyhow::Error), #[error("Network error: {0}")] Network(String), #[error("Authentication error: {0}")] Auth(String), #[error("Configuration error: {0}")] Config(String), #[error("I/O error: {0}")] Io(#[from] std::io::Error), #[error("Invalid input: {0}")] InvalidInput(String), #[error("Operation timed out: {0}")] Timeout(String), #[error("Serialization error: {0}")] Serialization(#[from] serde_json::Error), #[error("Storage error: {0}")] Storage(String), #[error("Unknown error: {0}")] Unknown(String), }