pub mod events;
pub mod harness;
pub mod raw;
pub mod models_dev;
mod program_path;
pub use events::{
normalize_process_event, run_events_from_parsed, ByteRange, ParsedLine, PlanEntry,
PlanEntryPriority, PlanEntryStatus, Question, QuestionOption, RunEvent, SessionInfo,
SuggestedEdit, ToolCallEnd, ToolCallStart, ToolKind, ToolLocation, UsageInfo,
};
pub use raw::parse_raw_line;
pub use harness::{
run_login_command, Attachment, BoxError, CredentialSpec, Harness, Features, Error,
Info, ModelChoice, Readiness, InstallCallback, InstalledModel, InstallHint,
ModelManagement,
PullProgress, PullProgressAggregator, PullProgressCallback, ReasoningEffort, RunCallback,
RunControl, RunHandle, RunMode, RunRequest, RunTuning,
};
pub use program_path::{augmented_path, probe_version, resolve_program, ResolveCli};
pub use cli_stream::{
hidden_command, InstallEvent, Event, Command,
ProcessHandle, StreamError,
};
#[cfg(feature = "claude")]
pub mod claude;
#[cfg(feature = "codex")]
pub mod codex;
#[cfg(feature = "acp")]
pub mod acp;
#[cfg(feature = "openai-compatible")]
pub mod openai_compatible;
pub mod registry;
#[cfg(feature = "claude")]
pub use claude::{ClaudeHarness as Claude, ClaudeHarness, ClaudeHarnessConfig, CLAUDE_HARNESS_ID, DEFAULT_CLAUDE_COMMAND};
#[cfg(feature = "codex")]
pub use codex::{CodexHarness as Codex, CodexHarness, CodexHarnessConfig, CODEX_HARNESS_ID, DEFAULT_CODEX_COMMAND};
#[cfg(feature = "acp")]
pub use acp::{AcpHarness, AcpHarnessConfig};
#[cfg(feature = "openai-compatible")]
pub use openai_compatible::{
AgentDef, ApiKey, InstructionSources, McpPrompt, McpPromptArg, McpServer, McpTransport,
ModelCost, ModelFacts, OpenHarness, OpenHarnessConfig, Permission, PermissionPrompt,
PermissionRequest, PermissionRule, PromptCache, PromptMessage, PromptProfile, SessionRecord,
};
pub use registry::{
Listing,
default_registry, harness_by_id, harness_catalog, Registry, DEFAULT_HARNESS_ID,
};