aether-agent-cli 0.9.13

CLI and ACP server for the Aether AI coding agent
Documentation
use std::io::{self, IsTerminal, Read as _};

pub(crate) fn prompt_or_stdin(explicit: Option<String>) -> io::Result<Option<String>> {
    if let Some(prompt) = explicit {
        return Ok(non_empty_prompt(&prompt));
    }
    if io::stdin().is_terminal() {
        return Ok(None);
    }

    let mut prompt = String::new();
    io::stdin().read_to_string(&mut prompt)?;
    Ok(non_empty_prompt(&prompt))
}

fn non_empty_prompt(prompt: &str) -> Option<String> {
    let prompt = prompt.trim();
    (!prompt.is_empty()).then(|| prompt.to_string())
}