chabeau 0.7.1

A full-screen terminal chat interface that connects to various AI APIs for real-time conversations
Documentation
pub(super) mod config;
pub(super) mod core;
pub(super) mod io;
pub(super) mod mcp;

use crate::commands::CommandResult;
use crate::core::app::App;
use crate::core::message::AppMessageKind;

pub(super) fn usage_status(app: &mut App, usage: &'static str) -> CommandResult {
    app.conversation().set_status(usage);
    CommandResult::Continue
}

pub(super) fn required_arg<'a>(
    app: &mut App,
    invocation: &crate::commands::registry::CommandInvocation<'a>,
    index: usize,
    usage: &'static str,
) -> Option<&'a str> {
    match invocation.arg(index) {
        Some(value) => Some(value),
        None => {
            app.conversation().set_status(usage);
            None
        }
    }
}

pub(super) fn add_info_and_focus(app: &mut App, content: String) -> CommandResult {
    app.conversation()
        .add_app_message(AppMessageKind::Info, content);
    app.ui.focus_transcript();
    CommandResult::ContinueWithTranscriptFocus
}