ralph_adapters/lib.rs
1//! # ralph-adapters
2//!
3//! Agent adapters for the Ralph Orchestrator framework.
4//!
5//! This crate provides implementations for various AI agent backends:
6//! - Claude (Anthropic)
7//! - Gemini (Google)
8//! - Codex (OpenAI)
9//! - Amp
10//! - Custom commands
11//!
12//! Each adapter implements the common CLI executor interface.
13//!
14//! ## Auto-Detection
15//!
16//! When config specifies `agent: auto`, the `auto_detect` module handles
17//! detecting which backends are available in the system PATH.
18//!
19//! ## PTY Mode
20//!
21//! The `pty_executor` module provides PTY-based execution for Claude CLI,
22//! preserving rich terminal UI features (colors, spinners, animations) while
23//! allowing Ralph to orchestrate iterations. Supports interactive mode (user
24//! input forwarded) and observe mode (output-only).
25
26mod auto_detect;
27mod claude_stream;
28mod cli_backend;
29mod cli_executor;
30mod pty_executor;
31pub mod pty_handle;
32mod stream_handler;
33
34pub use auto_detect::{
35 DEFAULT_PRIORITY, NoBackendError, detect_backend, detect_backend_default, is_backend_available,
36};
37pub use claude_stream::{
38 AssistantMessage, ClaudeStreamEvent, ClaudeStreamParser, ContentBlock, Usage, UserContentBlock,
39 UserMessage,
40};
41pub use cli_backend::{CliBackend, CustomBackendError, OutputFormat, PromptMode};
42pub use cli_executor::{CliExecutor, ExecutionResult};
43pub use pty_executor::{
44 CtrlCAction, CtrlCState, PtyConfig, PtyExecutionResult, PtyExecutor, TerminationType,
45};
46pub use pty_handle::{ControlCommand, PtyHandle};
47pub use stream_handler::{
48 ConsoleStreamHandler, PrettyStreamHandler, QuietStreamHandler, SessionResult, StreamHandler,
49 TuiStreamHandler,
50};