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 advisor;
20pub mod agent;
22pub mod agent_definition;
24pub mod agent_loop;
26pub mod compaction;
28pub mod config;
30pub mod error;
32pub mod events;
34pub mod mcp;
36pub mod model_id;
38pub mod recovery;
40pub mod state;
42pub mod stream_retry;
44pub mod structured_output;
45pub mod tools;
47pub mod types;
49
50pub use agent::Agent;
51pub use agent::ProviderResolver;
52pub use agent_definition::{
53 AgentDefinition, AgentDiscovery, AgentScope, DefaultContext, current_subagent_depth,
54 max_subagent_depth, validate_agent_name,
55};
56pub use agent_loop::{AgentLoop, AgentLoopConfig};
57
58pub use advisor::{
59 ADVISOR_GUIDANCE, ADVISOR_READONLY_TOOL_NAMES, ADVISOR_SYSTEM_PROMPT, AdviseTool, AdvisorAgent,
60 AdvisorDeliveryChannel, AdvisorEmissionGuard, AdvisorNote, AdvisorRuntime, AdvisorRuntimeHost,
61 AdvisorSeverity, AgentAdvisor, DeliveryOpts, EnqueueAdviceFn, format_advisory_batch,
62 is_immune_turn_active, is_interrupting_severity, normalize_advisor_note,
63 resolve_delivery_channel,
64};
65pub use config::{
67 AfterToolCallContext, AfterToolCallResult, AgentConfig, AgentHooks, BeforeToolCallContext,
68 BeforeToolCallResult, ShouldStopAfterTurnContext, ToolExecutionMode,
69};
70pub use error::AgentError;
71pub use events::{AgentEvent, ToolCallContext, VisitReason};
72pub use tools::browse::{BrowseProgress, BrowseProgressCallback};
73
74pub use agent_loop::config::CompactionHook;
75pub use compaction::{CompactedContext, CompactionEvent};
76pub use oxi_ai::{CompactionManager, CompactionStrategy};
77pub use recovery::PartialResponse;
79pub use state::{AgentState, SharedState};
80pub use structured_output::{OutputMode, StructuredOutput, StructuredOutputError};
81
82pub use mcp::{McpConfig, McpManager, McpTool};
83pub use tools::ask::{AskBridge, AskTool};
84pub use tools::commit::{
85 CommitGroup, CommitTool, CommitType, ConventionalAnalysis, ConventionalDetail, NumstatEntry,
86 ScopeCandidate,
87};
88pub use tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
89pub use tools::github::GitHubTool;
90pub use tools::github_search::GitHubSearchTool;
91pub use tools::memory_edit::MemoryEditTool;
92pub use tools::memory_recall::MemoryRecallTool;
93pub use tools::memory_reflect::MemoryReflectTool;
94pub use tools::memory_retain::MemoryRetainTool;
95pub use tools::search_cache::{GetSearchResultsTool, SearchCache};
96pub use tools::subagent::SubagentTool;
97pub use tools::web_search::WebSearchTool;
98pub use tools::{
100 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, ForkResult, GrepTool, LsTool,
101 ReadTool, SubagentRunner, ToolContext, ToolError, ToolRegistry, WriteTool,
102};
103
104pub use tools::TodoStateProvider;
105pub use tools::todo::{
106 InitListEntry, TodoCompletionTransition, TodoItem, TodoOp, TodoPhase, TodoStatus, TodoTool,
107 TodoUpdateResult,
108};
109
110pub use tools::{AgentHubStatus, AgentInfo, AgentKind, AgentPoolProvider};
111pub use tools::{LspAction, LspProvider};
112
113pub mod prelude {
115 pub use crate::agent::Agent;
116 pub use crate::agent_loop::{AgentLoop, AgentLoopConfig, ToolExecutionMode};
117 pub use crate::compaction::{CompactedContext, CompactionEvent};
118 pub use crate::config::AgentConfig;
119 pub use crate::events::AgentEvent;
120 pub use crate::mcp::{McpConfig, McpManager, McpTool};
121 pub use crate::state::{AgentState, SharedState};
122 pub use crate::tools::ask::{AskBridge, AskTool};
123 pub use crate::tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
124 pub use crate::tools::github::GitHubTool;
125 pub use crate::tools::github_search::GitHubSearchTool;
126 pub use crate::tools::search_cache::{GetSearchResultsTool, SearchCache};
127 pub use crate::tools::subagent::SubagentTool;
128 pub use crate::tools::web_search::WebSearchTool;
129 pub use crate::tools::{
130 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
131 ToolContext, ToolRegistry, WriteTool,
132 };
133}
134
135#[cfg(test)]
136mod tests;