carryctx 0.3.0

Persistent project context for coding agents
use carryctx::application::runtime::InvocationContext;
use carryctx::error::ExitCode;
use clap::Parser;

#[derive(Parser, Debug)]
pub struct McpArgs {
    /// Accept stdio flag for compatibility; stdio is always the transport
    #[arg(long, hide = true)]
    pub stdio: bool,
}

pub fn handle_mcp(_args: &McpArgs, ctx: &InvocationContext) -> Result<ExitCode, ExitCode> {
    // stdio is the only supported transport; --stdio flag is accepted for compatibility
    use carryctx::application::mcp::run_stdio_server;
    run_stdio_server(ctx).map_err(|e| {
        eprintln!("MCP Server Error: {}", e);
        ExitCode::General
    })?;

    Ok(ExitCode::Success)
}