pub mod mock_openai;
pub mod tui_harness;
pub fn strip_ansi(input: &str) -> String {
let mut out = String::with_capacity(input.len());
let bytes = input.as_bytes();
let mut i = 0;
while i < bytes.len() {
if bytes[i] == 0x1b && i + 1 < bytes.len() && bytes[i + 1] == b'[' {
i += 2;
while i < bytes.len() && !matches!(bytes[i], 0x40..=0x7e) {
i += 1;
}
if i < bytes.len() {
i += 1;
}
continue;
}
out.push(bytes[i] as char);
i += 1;
}
out
}