#![recursion_limit = "1024"]
#[macro_export]
macro_rules! println {
() => {
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::println!()
})
};
($($arg:tt)*) => {{
let s = ::std::format!($($arg)*);
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::println!("{}", s)
})
}};
}
#[macro_export]
macro_rules! print {
($($arg:tt)*) => {{
let s = ::std::format!($($arg)*);
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::print!("{}", s)
})
}};
}
#[macro_export]
macro_rules! eprintln {
() => {
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::eprintln!()
})
};
($($arg:tt)*) => {{
let s = ::std::format!($($arg)*);
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::eprintln!("{}", s)
})
}};
}
#[macro_export]
macro_rules! eprint {
($($arg:tt)*) => {{
let s = ::std::format!($($arg)*);
$crate::utils::terminal_output::with_suspended_spinner(|| {
std::eprint!("{}", s)
})
}};
}
pub mod acp;
pub mod agent;
pub mod config;
pub mod directories;
pub mod learning;
pub mod logging;
pub mod mcp;
pub mod providers;
pub mod sandbox;
pub mod session;
pub mod state;
pub mod utils;
pub mod websocket;
pub use config::Config;
pub use logging::AcpErrorSink;
pub use session::workflows::{PatternParser, StepExecutor, WorkflowOrchestrator};