1#![allow(unused_doc_comments)]
2#![warn(missing_docs)]
3#![warn(clippy::unwrap_used)]
10#![cfg_attr(test, allow(clippy::unwrap_used, clippy::field_reassign_with_default))]
11#![allow(unknown_lints)]
12
13pub mod agent;
20pub mod agent_definition;
22pub mod agent_loop;
24pub mod compaction;
26pub mod config;
28pub mod error;
30pub mod events;
32pub mod mcp;
34pub mod model_id;
36pub mod recovery;
38pub mod state;
40pub mod stream_retry;
42pub mod structured_output;
43pub mod tools;
45pub mod types;
47
48pub use agent::Agent;
49pub use agent::ProviderResolver;
50pub use agent_definition::{
51 AgentDefinition, AgentDiscovery, AgentScope, DefaultContext, current_subagent_depth,
52 max_subagent_depth, validate_agent_name,
53};
54pub use agent_loop::{AgentLoop, AgentLoopConfig};
55
56pub use config::{
58 AfterToolCallContext, AfterToolCallResult, AgentConfig, AgentHooks, BeforeToolCallContext,
59 BeforeToolCallResult, ShouldStopAfterTurnContext, ToolExecutionMode,
60};
61pub use error::AgentError;
62pub use events::{AgentEvent, ToolCallContext, VisitReason};
63pub use tools::browse::{BrowseProgress, BrowseProgressCallback};
64
65pub use agent_loop::config::CompactionHook;
66pub use compaction::{CompactedContext, CompactionEvent};
67pub use oxi_ai::{CompactionManager, CompactionStrategy};
68pub use recovery::{
70 CircuitBreaker, CircuitBreakerConfig, CircuitOpenError as CircuitOpenErrorFromAi,
71 FallbackChain, PartialResponse,
72};
73pub use recovery::CircuitOpenErrorLocal;
75pub use state::{AgentState, SharedState};
76pub use structured_output::{OutputMode, StructuredOutput, StructuredOutputError};
77
78pub use mcp::{McpConfig, McpManager, McpTool};
79pub use tools::ask::{AskBridge, AskTool};
80pub use tools::commit::{
81 CommitGroup, CommitTool, CommitType, ConventionalAnalysis, ConventionalDetail, NumstatEntry,
82 ScopeCandidate,
83};
84pub use tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
85pub use tools::github::GitHubTool;
86pub use tools::github_search::GitHubSearchTool;
87pub use tools::memory_edit::MemoryEditTool;
88pub use tools::memory_recall::MemoryRecallTool;
89pub use tools::memory_reflect::MemoryReflectTool;
90pub use tools::memory_retain::MemoryRetainTool;
91pub use tools::search_cache::{GetSearchResultsTool, SearchCache};
92pub use tools::subagent::SubagentTool;
93pub use tools::web_search::WebSearchTool;
94pub use tools::{
96 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
97 ToolContext, ToolError, ToolRegistry, WriteTool,
98};
99
100pub use tools::TodoStateProvider;
101pub use tools::todo::{
102 InitListEntry, TodoCompletionTransition, TodoItem, TodoOp, TodoPhase, TodoStatus, TodoTool,
103 TodoUpdateResult,
104};
105
106pub use tools::{AgentHubStatus, AgentInfo, AgentKind, AgentPoolProvider};
107pub use tools::{LspAction, LspProvider};
108
109pub mod prelude {
111 pub use crate::agent::Agent;
112 pub use crate::agent_loop::{AgentLoop, AgentLoopConfig, ToolExecutionMode};
113 pub use crate::compaction::{CompactedContext, CompactionEvent};
114 pub use crate::config::AgentConfig;
115 pub use crate::events::AgentEvent;
116 pub use crate::mcp::{McpConfig, McpManager, McpTool};
117 pub use crate::state::{AgentState, SharedState};
118 pub use crate::tools::ask::{AskBridge, AskTool};
119 pub use crate::tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
120 pub use crate::tools::github::GitHubTool;
121 pub use crate::tools::github_search::GitHubSearchTool;
122 pub use crate::tools::search_cache::{GetSearchResultsTool, SearchCache};
123 pub use crate::tools::subagent::SubagentTool;
124 pub use crate::tools::web_search::WebSearchTool;
125 pub use crate::tools::{
126 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
127 ToolContext, ToolRegistry, WriteTool,
128 };
129}
130
131#[cfg(test)]
132mod tests;