#![allow(unused_doc_comments)]
#![warn(missing_docs)]
#![warn(clippy::unwrap_used)]
#![allow(unknown_lints)]
pub mod agent;
pub mod agent_loop;
pub mod compaction;
pub mod config;
pub mod error;
pub mod events;
pub mod mcp;
pub mod model_id;
pub mod recovery;
pub mod state;
pub mod stream_retry;
pub mod structured_output;
pub mod tools;
pub mod types;
pub use agent::Agent;
pub use agent::ProviderResolver;
pub use agent_loop::{AgentLoop, AgentLoopConfig};
pub use config::{
AfterToolCallContext, AfterToolCallResult, AgentConfig, AgentHooks, BeforeToolCallContext,
BeforeToolCallResult, ShouldStopAfterTurnContext, ToolExecutionMode,
};
pub use error::AgentError;
pub use events::AgentEvent;
pub use compaction::{CompactedContext, CompactionEvent};
pub use oxi_ai::{CompactionManager, CompactionStrategy};
pub use recovery::{
CircuitBreaker, CircuitBreakerConfig, CircuitOpenError as CircuitOpenErrorFromAi,
FallbackChain, PartialResponse,
};
pub use recovery::CircuitOpenErrorLocal;
pub use state::{AgentState, SharedState};
pub use structured_output::{OutputMode, StructuredOutput, StructuredOutputError};
pub use mcp::{McpConfig, McpManager, McpTool};
pub use tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
pub use tools::github::GitHubTool;
pub use tools::github_search::GitHubSearchTool;
pub use tools::questionnaire::{QuestionnaireBridge, QuestionnaireTool};
pub use tools::search_cache::{GetSearchResultsTool, SearchCache};
pub use tools::subagent::SubagentTool;
pub use tools::web_search::WebSearchTool;
pub use tools::{
AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
ToolContext, ToolError, ToolRegistry, WriteTool,
};
pub mod prelude {
pub use crate::agent::Agent;
pub use crate::agent_loop::{AgentLoop, AgentLoopConfig, ToolExecutionMode};
pub use crate::compaction::{CompactedContext, CompactionEvent};
pub use crate::config::AgentConfig;
pub use crate::events::AgentEvent;
pub use crate::mcp::{McpConfig, McpManager, McpTool};
pub use crate::state::{AgentState, SharedState};
pub use crate::tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
pub use crate::tools::github::GitHubTool;
pub use crate::tools::github_search::GitHubSearchTool;
pub use crate::tools::questionnaire::{QuestionnaireBridge, QuestionnaireTool};
pub use crate::tools::search_cache::{GetSearchResultsTool, SearchCache};
pub use crate::tools::subagent::SubagentTool;
pub use crate::tools::web_search::WebSearchTool;
pub use crate::tools::{
AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
ToolContext, ToolRegistry, WriteTool,
};
}
#[cfg(test)]
mod tests;