1#![deny(warnings)]
28#![deny(missing_docs)]
29#![warn(clippy::pedantic)]
30#![allow(clippy::module_name_repetitions)]
31
32pub mod traits;
33pub mod types;
34
35pub mod agent;
36pub mod agent_builder;
37pub mod config;
38pub mod context_managers;
39pub mod default_strategy;
40pub mod error;
41pub mod factory;
42pub mod memory;
43pub mod pool;
44pub mod registries;
45pub mod retry;
46pub(crate) mod runtime;
47pub(crate) mod streaming;
48pub mod token_counter;
49pub mod token_counting;
50pub mod transformers;
51
52#[cfg(test)]
53pub(crate) mod test_utils;
54
55pub use traits::context_manager::ContextManager;
57#[allow(deprecated)]
58pub use traits::context_strategy::{ContextStrategy, NoopContextStrategy, SlidingWindowStrategy};
59pub use traits::execution_strategy::{
60 AdaptiveStrategy, ExecutionStrategy, ParallelStrategy, PendingToolCall, SequentialStrategy,
61 ToolResult,
62};
63pub use traits::guard::{Guard, GuardResult};
64pub use traits::hint::{Hint, HintMessage, HintPriority, InjectionPoint};
65pub use traits::memory::Memory;
66#[allow(deprecated)]
67pub use traits::output_processor::{
68 ChainProcessor, NoopProcessor, OutputProcessor, TruncateProcessor,
69};
70pub use traits::output_transformer::OutputTransformer;
71pub use traits::provider::Provider;
72
73pub use context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
74pub use registries::{AdaptiveRegistry, DynamicRegistry, GroupedRegistry, TierLimits};
75pub use retry::{RetryConfig, RetryProvider};
76#[cfg(feature = "tiktoken")]
77pub use token_counter::TikTokenCounter;
78pub use token_counting::{CharApproxCounter, TokenCounter};
79pub use traits::tool::{ErasedTool, Tool, ToolSchema};
80pub use traits::tool_registry::{SimpleRegistry, ToolRegistry};
81pub use traits::tracker::Tracker;
82pub use transformers::{
83 BudgetAwareTruncator, FullOutputRetriever, JsonExtractor, ProgressiveTransformer,
84 TransformerChain,
85};
86
87pub use default_strategy::DefaultStrategy;
89pub use traits::hook::{AgentHook, HookAction, LoggingHook};
90pub use traits::strategy::{AgentRuntime, AgentStrategy};
91
92pub use types::action::Action;
94pub use types::agent_state::AgentState;
95pub use types::completion::{CompletionRequest, CompletionResponse, Usage};
96pub use types::message::{Message, MessageRole};
97pub use types::model_info::{ModelInfo, ModelTier};
98pub use types::stream::{CompletionStream, StreamEvent};
99pub use types::tool_call::ToolCall;
100
101pub use error::{Error, Result};
103
104pub use memory::compressed::CompressedMemory;
106pub use memory::in_memory::InMemoryMemory;
107
108pub use agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
110pub use agent_builder::AgentBuilder;
111pub use factory::AgentFactory;
112pub use pool::AgentPool;
113
114pub mod prelude {
123
124 pub use crate::traits::context_manager::ContextManager;
125 #[allow(deprecated)]
126 pub use crate::traits::context_strategy::{
127 ContextStrategy, NoopContextStrategy, SlidingWindowStrategy,
128 };
129 pub use crate::traits::execution_strategy::{
130 ExecutionStrategy, ParallelStrategy, SequentialStrategy,
131 };
132 pub use crate::traits::guard::{Guard, GuardResult};
133 pub use crate::traits::hint::{Hint, HintMessage};
134 pub use crate::traits::memory::Memory;
135 #[allow(deprecated)]
136 pub use crate::traits::output_processor::{OutputProcessor, TruncateProcessor};
137 pub use crate::traits::output_transformer::OutputTransformer;
138 pub use crate::traits::provider::{ModelInfo, ModelTier, Provider};
139 pub use crate::traits::tool::{ErasedTool, Tool, ToolSchema};
140 pub use crate::traits::tool_registry::{SimpleRegistry, ToolRegistry};
141
142 pub use crate::registries::{AdaptiveRegistry, GroupedRegistry};
144
145 pub use crate::traits::tracker::Tracker;
147 pub use crate::transformers::{FullOutputRetriever, ProgressiveTransformer};
148
149 pub use crate::context_managers::{LlmCompressor, RuleBasedCompressor, TieredCompressor};
151
152 pub use crate::types::action::Action;
153 pub use crate::types::agent_state::AgentState;
154 pub use crate::types::completion::{CompletionRequest, CompletionResponse};
155 pub use crate::types::message::{Message, MessageRole};
156 pub use crate::types::stream::{CompletionStream, StreamEvent};
157 pub use crate::types::tool_call::ToolCall;
158
159 pub use crate::config::AgentConfig;
160 pub use crate::error::{Error, Result};
161 pub use crate::memory::in_memory::InMemoryMemory;
162
163 pub use crate::agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
164 pub use crate::agent_builder::AgentBuilder;
165
166 pub use crate::factory::AgentFactory;
168 pub use crate::pool::AgentPool;
169
170 pub use crate::default_strategy::DefaultStrategy;
172 pub use crate::traits::hook::{AgentHook, HookAction, LoggingHook};
173 pub use crate::traits::strategy::{AgentRuntime, AgentStrategy};
174}