1#![allow(unused_doc_comments)]
2#![warn(missing_docs)]
3#![cfg_attr(
12 not(test),
13 deny(clippy::expect_used, clippy::panic, clippy::unwrap_used)
14)]
15#![cfg_attr(
16 test,
17 allow(
18 clippy::unwrap_used,
19 clippy::field_reassign_with_default,
20 clippy::expect_used,
21 clippy::panic,
22 )
23)]
24#![allow(unknown_lints)]
25
26#[allow(unused_imports)]
32use oxicode_api_stability::{
33 internal as oxicode_internal, stable as oxicode_stable, unstable as oxicode_unstable,
34};
35
36pub mod advisor;
38pub mod agent;
40pub mod agent_definition;
42pub mod agent_loop;
44pub mod compaction;
46pub mod config;
48pub mod error;
50pub mod events;
52pub mod mcp;
54pub mod model_id;
56pub mod recovery;
58pub mod state;
60pub mod stream_retry;
62pub mod structured_output;
63pub mod tools;
65pub mod types;
67
68#[oxicode_stable(since = "0.63.0")]
69pub use agent::Agent;
70pub use agent::ProviderResolver;
71#[oxicode_stable(since = "0.63.0")]
72pub use agent_definition::{
73 AgentDefinition, AgentDiscovery, AgentScope, DefaultContext, current_subagent_depth,
74 max_subagent_depth, validate_agent_name,
75};
76#[oxicode_stable(since = "0.63.0")]
77pub use agent_loop::{AgentLoop, AgentLoopConfig};
78
79#[oxicode_unstable(feature = "advisor")]
80pub use advisor::{
81 ADVISOR_GUIDANCE, ADVISOR_READONLY_TOOL_NAMES, ADVISOR_SYSTEM_PROMPT, AdviseTool, AdvisorAgent,
82 AdvisorDeliveryChannel, AdvisorEmissionGuard, AdvisorNote, AdvisorRuntime, AdvisorRuntimeHost,
83 AdvisorSeverity, AgentAdvisor, DeliveryOpts, EnqueueAdviceFn, format_advisory_batch,
84 is_immune_turn_active, is_interrupting_severity, normalize_advisor_note,
85 resolve_delivery_channel,
86};
87#[oxicode_stable(since = "0.63.0")]
89pub use config::{
90 AfterToolCallContext, AfterToolCallResult, AgentConfig, AgentHooks, BeforeToolCallContext,
91 BeforeToolCallResult, ShouldStopAfterTurnContext, ToolExecutionMode,
92};
93pub use error::AgentError;
94pub use events::{AgentEvent, StreamDelta, ToolCallContext, VisitReason};
95pub use tools::browse::{BrowseProgress, BrowseProgressCallback};
96
97#[oxicode_stable(since = "0.63.0")]
98pub use agent_loop::config::CompactionHook;
99pub use compaction::{CompactedContext, CompactionEvent};
100pub use oxicode_ai::{CompactionManager, CompactionStrategy};
101pub use recovery::PartialResponse;
103pub use state::{AgentState, SharedState};
104pub use structured_output::{OutputMode, StructuredOutput, StructuredOutputError};
105
106#[oxicode_stable(since = "0.63.0")]
107pub use mcp::{McpConfig, McpManager, McpTool};
108#[oxicode_unstable(feature = "subagent")]
110pub use tools::SubagentRunner;
111pub use tools::ask::{AskBridge, AskTool};
112pub use tools::commit::{
113 CommitGroup, CommitTool, CommitType, ConventionalAnalysis, ConventionalDetail, NumstatEntry,
114 ScopeCandidate,
115};
116pub use tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
117pub use tools::github::GitHubTool;
118pub use tools::github_search::GitHubSearchTool;
119pub use tools::memory_edit::MemoryEditTool;
120pub use tools::memory_recall::MemoryRecallTool;
121pub use tools::memory_reflect::MemoryReflectTool;
122pub use tools::memory_retain::MemoryRetainTool;
123pub use tools::search_cache::{GetSearchResultsTool, SearchCache};
124pub use tools::subagent::SubagentTool;
125pub use tools::web_search::WebSearchTool;
126#[oxicode_stable(since = "0.63.0")]
128pub use tools::{
129 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, ForkResult, GrepTool, LsTool,
130 ReadTool, ToolContext, ToolError, ToolRegistry, WriteTool,
131};
132
133#[oxicode_unstable(feature = "todo")]
134pub use tools::TodoStateProvider;
135#[oxicode_unstable(feature = "todo")]
136pub use tools::todo::{
137 InitListEntry, TodoCompletionTransition, TodoItem, TodoOp, TodoPhase, TodoStatus, TodoTool,
138 TodoUpdateResult,
139};
140
141#[oxicode_unstable(feature = "agent-pool")]
142pub use tools::{AgentHubStatus, AgentInfo, AgentKind, AgentPoolProvider};
143#[oxicode_unstable(feature = "lsp")]
144pub use tools::{LspAction, LspProvider};
145
146pub mod prelude {
148 pub use crate::agent::Agent;
149 pub use crate::agent_loop::{AgentLoop, AgentLoopConfig, ToolExecutionMode};
150 pub use crate::compaction::{CompactedContext, CompactionEvent};
151 pub use crate::config::AgentConfig;
152 pub use crate::events::AgentEvent;
153 pub use crate::mcp::{McpConfig, McpManager, McpTool};
154 pub use crate::state::{AgentState, SharedState};
155 pub use crate::tools::ask::{AskBridge, AskTool};
156 pub use crate::tools::context7::{Context7QueryDocsTool, Context7ResolveLibraryIdTool};
157 pub use crate::tools::github::GitHubTool;
158 pub use crate::tools::github_search::GitHubSearchTool;
159 pub use crate::tools::search_cache::{GetSearchResultsTool, SearchCache};
160 pub use crate::tools::subagent::SubagentTool;
161 pub use crate::tools::web_search::WebSearchTool;
162 pub use crate::tools::{
163 AgentTool, AgentToolResult, BashTool, EditTool, FindTool, GrepTool, LsTool, ReadTool,
164 ToolContext, ToolRegistry, WriteTool,
165 };
166}
167
168#[cfg(test)]
169mod tests;