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 error;
39pub mod memory;
40pub mod retry;
41pub(crate) mod runtime;
42pub(crate) mod streaming;
43
44pub use traits::context_strategy::{ContextStrategy, NoopContextStrategy, SlidingWindowStrategy};
46pub use traits::execution_strategy::{
47 AdaptiveStrategy, ExecutionStrategy, ParallelStrategy, PendingToolCall, SequentialStrategy,
48 ToolResult,
49};
50pub use traits::guard::{Guard, GuardResult};
51pub use traits::hint::{Hint, HintMessage, HintPriority, InjectionPoint};
52pub use traits::memory::Memory;
53pub use traits::output_processor::{
54 ChainProcessor, NoopProcessor, OutputProcessor, TruncateProcessor,
55};
56pub use traits::provider::Provider;
57
58pub use retry::{RetryConfig, RetryProvider};
59pub use traits::tool::{ErasedTool, Tool, ToolSchema};
60pub use traits::tracker::Tracker;
61
62pub use types::action::Action;
64pub use types::agent_state::AgentState;
65pub use types::completion::{CompletionRequest, CompletionResponse, Usage};
66pub use types::message::{Message, MessageRole};
67pub use types::model_info::{ModelInfo, ModelTier};
68pub use types::stream::{CompletionStream, StreamEvent};
69pub use types::tool_call::ToolCall;
70
71pub use error::{Error, Result};
73
74pub use memory::in_memory::InMemoryMemory;
76
77pub use agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
79pub use agent_builder::AgentBuilder;
80
81pub mod prelude {
90
91 pub use crate::traits::context_strategy::{
92 ContextStrategy, NoopContextStrategy, SlidingWindowStrategy,
93 };
94 pub use crate::traits::execution_strategy::{
95 ExecutionStrategy, ParallelStrategy, SequentialStrategy,
96 };
97 pub use crate::traits::guard::{Guard, GuardResult};
98 pub use crate::traits::hint::{Hint, HintMessage};
99 pub use crate::traits::memory::Memory;
100 pub use crate::traits::output_processor::{OutputProcessor, TruncateProcessor};
101 pub use crate::traits::provider::{ModelInfo, ModelTier, Provider};
102 pub use crate::traits::tool::{ErasedTool, Tool, ToolSchema};
103 pub use crate::traits::tracker::Tracker;
104
105 pub use crate::types::action::Action;
106 pub use crate::types::agent_state::AgentState;
107 pub use crate::types::completion::{CompletionRequest, CompletionResponse};
108 pub use crate::types::message::{Message, MessageRole};
109 pub use crate::types::stream::{CompletionStream, StreamEvent};
110 pub use crate::types::tool_call::ToolCall;
111
112 pub use crate::config::AgentConfig;
113 pub use crate::error::{Error, Result};
114 pub use crate::memory::in_memory::InMemoryMemory;
115
116 pub use crate::agent::{Agent, AgentOutput, AgentOutputContent, AgentSession, RunUsage};
117 pub use crate::agent_builder::AgentBuilder;
118}