pub mod types;
pub mod agent;
#[cfg(feature = "agui")]
pub mod agui;
pub mod auth;
pub mod cache;
pub mod capability_guard;
pub mod claude_code;
pub mod cli_common;
pub mod cline_cli;
pub mod codex_cli;
pub mod compat;
pub mod config;
pub mod container;
pub mod continue_cli;
pub mod copilot;
pub mod copilot_models;
pub mod cursor_agent;
pub mod discovery;
pub mod factory;
pub mod fallback;
pub mod gemini_cli;
pub mod goose_cli;
pub mod guardrail;
pub mod kilo_cli;
pub mod kiro_cli;
pub mod mcp_tool_bridge;
pub mod metrics;
pub mod opencode;
pub mod process;
pub mod prompt;
pub mod quality_gate;
pub mod sandbox;
pub mod stream;
pub mod structured_output;
pub mod tool_simulation;
pub mod turn;
pub mod warp_cli;
#[cfg(feature = "config-file")]
pub mod config_file;
#[cfg(feature = "openai-api")]
pub mod openai_api;
#[cfg(feature = "copilot-headless")]
pub mod copilot_headless;
#[cfg(feature = "copilot-headless")]
pub mod copilot_headless_config;
#[cfg(feature = "ffi")]
#[allow(unsafe_code)]
mod ffi;
pub use agent::{AgentExecutor, AgentResult, OnTurnCallback, TurnInfo};
pub use auth::ProviderReadiness;
pub use cache::{CacheConfig, CacheProvider, CacheStats};
pub use capability_guard::validate_capabilities;
pub use claude_code::ClaudeCodeRunner;
pub use cli_common::CliRunnerBase;
pub use cline_cli::ClineCliRunner;
pub use codex_cli::CodexCliRunner;
pub use compat::{CliCapabilities, CliFeatureFlags};
pub use config::{CliRunnerType, RunnerConfig};
pub use container::{ContainerConfig, ContainerExecutor, NetworkMode};
pub use continue_cli::ContinueCliRunner;
pub use copilot::{copilot_fallback_models, CopilotRunner};
pub use cursor_agent::CursorAgentRunner;
pub use discovery::{discover_runner, resolve_binary};
pub use factory::{
create_runner, create_runner_with_config, parse_runner_type, valid_provider_names,
ALL_PROVIDERS,
};
pub use fallback::{FallbackProvider, RetryConfig};
pub use gemini_cli::GeminiCliRunner;
pub use goose_cli::GooseCliRunner;
pub use guardrail::{
ContentLengthGuardrail, Guardrail, GuardrailProvider, GuardrailViolation, PiiScrubGuardrail,
TopicFilterGuardrail,
};
pub use kilo_cli::KiloCliRunner;
pub use kiro_cli::KiroCliRunner;
pub use mcp_tool_bridge::{McpToolDefinition, McpToolExecutor};
pub use metrics::{
default_pricing_table, MetricsProvider, MetricsReport, PricingTable, TokenPricing,
};
pub use opencode::OpenCodeRunner;
pub use quality_gate::{QualityGateProvider, QualityPolicy};
pub use structured_output::{
extract_json_from_response, request_structured_output, StructuredOutputRequest,
};
pub use warp_cli::WarpCliRunner;
pub use types::{ImagePart, ResponseFormat, ToolCallRequest, ToolChoice, ToolDefinition};
pub use turn::ConversationTurnId;
pub use tool_simulation::{
execute_with_text_tools, format_tool_results_as_text, generate_tool_catalog,
inject_tool_catalog, parse_tool_call_blocks, strip_tool_call_blocks, FunctionCall,
FunctionDeclaration, FunctionResponse, TextToolHandler, TextToolResponse,
};
#[cfg(feature = "agui")]
pub use agui::{AgUiEmitter, AgUiEvent, AgUiEventFilter, AgUiEventKind, NoopEmitter};
#[cfg(feature = "config-file")]
pub use config_file::{
build_fallback_from_config, build_runner_config, load_config, load_config_from, resolve_alias,
DefaultsConfig, EmbacleConfig, FallbackConfig, ProviderConfig,
};
#[cfg(feature = "openai-api")]
pub use openai_api::{OpenAiApiConfig, OpenAiApiRunner};
#[cfg(feature = "copilot-headless")]
pub use copilot_headless::{
CopilotHeadlessRunner, HeadlessEventStream, HeadlessStreamEvent, HeadlessToolResponse,
ObservedToolCall,
};
#[cfg(feature = "copilot-headless")]
pub use copilot_headless_config::{
CopilotHeadlessConfig, PermissionPolicy, DEFAULT_MAX_HISTORY_TURNS,
};