pub mod agent;
pub mod llm;
pub mod memory;
pub mod observability;
pub mod tokens;
pub mod tools;
#[doc(hidden)]
pub mod __macro_support {
pub use async_trait::async_trait;
pub use serde;
pub use serde_json;
}
pub use agent_io_macros::tool;
pub use agent::{Agent, AgentEvent};
pub use llm::BaseChatModel;
pub use memory::{EmbeddingProvider, InMemoryStore, MemoryManager, MemoryStore};
pub use observability::*;
pub use tokens::TokenCost;
pub use tools::Tool;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("LLM error: {0}")]
Llm(#[from] llm::LlmError),
#[error("Tool error: {0}")]
Tool(String),
#[error("Serialization error: {0}")]
Serialization(#[from] serde_json::Error),
#[error("HTTP error: {0}")]
Http(#[from] reqwest::Error),
#[error("Configuration error: {0}")]
Config(String),
#[error("Agent error: {0}")]
Agent(String),
#[error("Max iterations exceeded")]
MaxIterationsExceeded,
}