#![cfg_attr(
test,
allow(
clippy::unwrap_used,
clippy::expect_used,
clippy::panic,
clippy::str_to_string
)
)]
pub mod system_delivery;
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 pool;
pub mod pricing;
pub mod process;
pub mod prompt;
pub mod quality_gate;
pub mod quota;
#[cfg(feature = "quota-http")]
pub mod quota_http;
pub mod quota_store;
#[cfg(feature = "quota-redis")]
pub mod quota_store_redis;
pub mod router;
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 = "http-api")]
pub mod http_api;
#[cfg(feature = "web-ui")]
pub mod web_ui;
pub mod copilot_common;
#[cfg(feature = "copilot-headless")]
pub mod copilot_headless;
#[cfg(feature = "copilot-headless")]
pub mod copilot_headless_config;
#[cfg(feature = "copilot-sdk")]
pub mod copilot_sdk;
#[cfg(feature = "copilot-sdk")]
pub mod copilot_sdk_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::{
is_empty_completion, Attempt, FallThrough, FallbackObserver, FallbackProvider,
FallthroughReason, QuotaCooldowns, ResponsePolicy, RetryConfig, Tier, DEFAULT_QUOTA_COOLDOWN,
QUOTA_COOLDOWN_SKIP,
};
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::{MetricsProvider, MetricsReport};
pub use opencode::OpenCodeRunner;
pub use pricing::{
calculate_cost, calculate_cost_for, is_not_per_token_metered, ModelPricing, TokenCounts,
NOT_PER_TOKEN_METERED_PROVIDERS, PRICING_TABLE,
};
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, McpServerConfig, ProviderConfig,
};
#[cfg(feature = "http-api")]
pub use http_api::{
AnthropicConfig, AnthropicEffort, AnthropicProvider, AnthropicThinking, CohereConfig,
CohereProvider, GeminiConfig, GeminiProvider, GroqConfig, GroqProvider, OpenAiCompatibleConfig,
OpenAiCompatibleProvider, OpenRouterConfig, OpenRouterProvider,
};
#[cfg(feature = "web-ui")]
pub use web_ui::{WebProviderConfig, WebUiConfig, WebUiRunner};
pub use copilot_common::{
HeadlessEventStream, HeadlessStreamEvent, HeadlessToolResponse, HeadlessTurnProvider,
ObservedToolCall, PermissionPolicy, DEFAULT_MAX_HISTORY_TURNS,
};
#[cfg(feature = "copilot-headless")]
pub use copilot_headless::CopilotHeadlessRunner;
#[cfg(feature = "copilot-headless")]
pub use copilot_headless_config::CopilotHeadlessConfig;
#[cfg(feature = "copilot-sdk")]
pub use copilot_sdk::CopilotSdkRunner;
#[cfg(feature = "copilot-sdk")]
pub use copilot_sdk_config::{CopilotSdkConfig, CopilotSdkProvider};