#![deny(missing_docs)]
#![allow(clippy::redundant_closure)]
pub mod traits;
pub mod types;
pub mod agent;
pub mod agent_builder;
pub mod config;
pub mod context_managers;
pub mod default_strategy;
pub mod error;
pub mod factory;
pub mod memory;
pub mod pool;
pub mod registries;
pub mod retry;
pub(crate) mod streaming;
pub mod token_counter;
pub mod token_counting;
pub mod transformers;
pub use traits::context_manager::ContextManager;
pub use traits::execution_strategy::{
AdaptiveStrategy, ExecutionStrategy, ParallelStrategy, PendingToolCall, SequentialStrategy,
ToolResult,
};
pub use traits::guard::{Guard, GuardResult};
pub use traits::hint::{Hint, HintMessage, HintPriority, InjectionPoint};
pub use traits::memory::Memory;
pub use traits::output_transformer::OutputTransformer;
pub use traits::provider::Provider;
pub use context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
pub use registries::{AdaptiveRegistry, DynamicRegistry, GroupedRegistry, TierLimits};
pub use retry::{RetryConfig, RetryProvider};
#[cfg(feature = "tiktoken")]
pub use token_counter::TikTokenCounter;
pub use token_counting::{CharApproxCounter, TokenCounter};
pub use traits::tool::{ErasedTool, Tool, ToolSchema};
pub use traits::tool_registry::{SimpleRegistry, ToolRegistry};
pub use traits::tracker::Tracker;
pub use transformers::{
BudgetAwareTruncator, FullOutputRetriever, JsonExtractor, ProgressiveTransformer,
TransformerChain,
};
pub use default_strategy::DefaultStrategy;
pub use traits::hook::{AgentHook, HookAction, LoggingHook};
pub use traits::strategy::{AgentRuntime, AgentStrategy};
pub use types::action::Action;
pub use types::agent_state::AgentState;
pub use types::completion::{CompletionRequest, CompletionResponse, Usage};
pub use types::message::{Message, MessageRole};
pub use types::model_info::{ModelInfo, ModelTier};
pub use types::stream::{CompletionStream, StreamEvent};
pub use types::tool_call::ToolCall;
pub use error::{Error, Result};
pub use memory::compressed::CompressedMemory;
pub use memory::in_memory::InMemoryMemory;
pub use agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
pub use agent_builder::AgentBuilder;
pub use factory::AgentFactory;
pub use pool::AgentPool;
pub mod prelude {
pub use crate::traits::context_manager::ContextManager;
pub use crate::traits::execution_strategy::{
ExecutionStrategy, ParallelStrategy, SequentialStrategy,
};
pub use crate::traits::guard::{Guard, GuardResult};
pub use crate::traits::hint::{Hint, HintMessage};
pub use crate::traits::memory::Memory;
pub use crate::traits::output_transformer::OutputTransformer;
pub use crate::traits::provider::{ModelInfo, ModelTier, Provider};
pub use crate::traits::tool::{ErasedTool, Tool, ToolSchema};
pub use crate::traits::tool_registry::{SimpleRegistry, ToolRegistry};
pub use crate::registries::{AdaptiveRegistry, DynamicRegistry, GroupedRegistry};
pub use crate::traits::tracker::Tracker;
pub use crate::transformers::{
BudgetAwareTruncator, FullOutputRetriever, ProgressiveTransformer, TransformerChain,
};
pub use crate::context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
pub use crate::types::action::Action;
pub use crate::types::agent_state::AgentState;
pub use crate::types::completion::{CompletionRequest, CompletionResponse};
pub use crate::types::message::{Message, MessageRole};
pub use crate::types::stream::{CompletionStream, StreamEvent};
pub use crate::types::tool_call::ToolCall;
pub use crate::config::AgentConfig;
pub use crate::error::{Error, Result};
pub use crate::memory::compressed::CompressedMemory;
pub use crate::memory::in_memory::InMemoryMemory;
pub use crate::retry::{RetryConfig, RetryProvider};
pub use crate::agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
pub use crate::agent_builder::AgentBuilder;
pub use crate::factory::AgentFactory;
pub use crate::pool::AgentPool;
pub use crate::default_strategy::DefaultStrategy;
pub use crate::traits::hook::{AgentHook, HookAction, LoggingHook};
pub use crate::traits::strategy::{AgentRuntime, AgentStrategy};
}