1#![deny(missing_docs)]
28#![allow(clippy::redundant_closure)]
29
30pub mod traits;
31pub mod types;
32
33pub mod agent;
34pub mod agent_builder;
35pub mod config;
36pub mod context_managers;
37pub mod default_strategy;
38pub mod error;
39pub mod factory;
40pub mod memory;
41pub mod pool;
42pub mod registries;
43pub mod retry;
44pub(crate) mod streaming;
45pub mod token_counter;
46pub mod token_counting;
47pub mod transformers;
48
49pub use traits::context_manager::ContextManager;
51pub use traits::execution_strategy::{
52 AdaptiveStrategy, ExecutionStrategy, ParallelStrategy, PendingToolCall, SequentialStrategy,
53 ToolResult,
54};
55pub use traits::guard::{Guard, GuardResult};
56pub use traits::hint::{Hint, HintMessage, HintPriority, InjectionPoint};
57pub use traits::memory::Memory;
58pub use traits::output_transformer::OutputTransformer;
59pub use traits::provider::Provider;
60
61pub use context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
62pub use registries::{AdaptiveRegistry, DynamicRegistry, GroupedRegistry, TierLimits};
63pub use retry::{RetryConfig, RetryProvider};
64#[cfg(feature = "tiktoken")]
65pub use token_counter::TikTokenCounter;
66pub use token_counting::{CharApproxCounter, TokenCounter};
67pub use traits::tool::{ErasedTool, Tool, ToolSchema};
68pub use traits::tool_registry::{SimpleRegistry, ToolRegistry};
69pub use traits::tracker::Tracker;
70pub use transformers::{
71 BudgetAwareTruncator, FullOutputRetriever, JsonExtractor, ProgressiveTransformer,
72 TransformerChain,
73};
74
75pub use default_strategy::DefaultStrategy;
77pub use traits::hook::{AgentHook, HookAction, LoggingHook};
78pub use traits::strategy::{AgentRuntime, AgentStrategy};
79
80pub use types::action::Action;
82pub use types::agent_state::AgentState;
83pub use types::completion::{CompletionRequest, CompletionResponse, Usage};
84pub use types::message::{Message, MessageRole};
85pub use types::model_info::{ModelInfo, ModelTier};
86pub use types::stream::{CompletionStream, StreamEvent};
87pub use types::tool_call::ToolCall;
88
89pub use error::{Error, Result};
91
92pub use memory::compressed::CompressedMemory;
94pub use memory::in_memory::InMemoryMemory;
95
96pub use agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
98pub use agent_builder::AgentBuilder;
99pub use factory::AgentFactory;
100pub use pool::AgentPool;
101
102pub mod prelude {
111
112 pub use crate::traits::context_manager::ContextManager;
113 pub use crate::traits::execution_strategy::{
114 ExecutionStrategy, ParallelStrategy, SequentialStrategy,
115 };
116 pub use crate::traits::guard::{Guard, GuardResult};
117 pub use crate::traits::hint::{Hint, HintMessage};
118 pub use crate::traits::memory::Memory;
119 pub use crate::traits::output_transformer::OutputTransformer;
120 pub use crate::traits::provider::{ModelInfo, ModelTier, Provider};
121 pub use crate::traits::tool::{ErasedTool, Tool, ToolSchema};
122 pub use crate::traits::tool_registry::{SimpleRegistry, ToolRegistry};
123
124 pub use crate::registries::{AdaptiveRegistry, DynamicRegistry, GroupedRegistry};
126
127 pub use crate::traits::tracker::Tracker;
129 pub use crate::transformers::{
130 BudgetAwareTruncator, FullOutputRetriever, ProgressiveTransformer, TransformerChain,
131 };
132
133 pub use crate::context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
135
136 pub use crate::types::action::Action;
137 pub use crate::types::agent_state::AgentState;
138 pub use crate::types::completion::{CompletionRequest, CompletionResponse};
139 pub use crate::types::message::{Message, MessageRole};
140 pub use crate::types::stream::{CompletionStream, StreamEvent};
141 pub use crate::types::tool_call::ToolCall;
142
143 pub use crate::config::AgentConfig;
144 pub use crate::error::{Error, Result};
145 pub use crate::memory::compressed::CompressedMemory;
146 pub use crate::memory::in_memory::InMemoryMemory;
147 pub use crate::retry::{RetryConfig, RetryProvider};
148
149 pub use crate::agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
150 pub use crate::agent_builder::AgentBuilder;
151
152 pub use crate::factory::AgentFactory;
154 pub use crate::pool::AgentPool;
155
156 pub use crate::default_strategy::DefaultStrategy;
158 pub use crate::traits::hook::{AgentHook, HookAction, LoggingHook};
159 pub use crate::traits::strategy::{AgentRuntime, AgentStrategy};
160}