elph 0.0.7

Minimalist AI agent companion for coding
use crate::app::{EXIT_SUCCESS, ExitCode};
use crate::cli::{ServerArgs, ServerCommands};

pub fn handle(args: &ServerArgs) -> ExitCode {
    let Some(cmd) = &args.command else {
        eprintln!("Run the local Elph server (REST + WebSocket + web UI)");
        eprintln!();
        eprintln!("Usage: elph server [OPTIONS] [COMMAND]");
        eprintln!();
        eprintln!("Commands:");
        eprintln!("  run           Start the Elph server");
        eprintln!("  ps            List connected clients");
        eprintln!("  kill          Stop the running server");
        eprintln!("  rotate-token  Generate a new persistent server token");
        eprintln!("  help          Print this message or the help of the given subcommand(s)");
        eprintln!();
        eprintln!("Options:");
        eprintln!("  -p, --port <PORT>  Port to listen on [default: 8080]");
        eprintln!("      --host <HOST>  Hostname to bind to [default: 127.0.0.1]");
        return EXIT_SUCCESS;
    };
    match cmd {
        ServerCommands::Run(run_args) => {
            eprintln!(
                "Server run — not yet implemented (port: {}, host: {}, foreground: {})",
                args.port, args.host, run_args.foreground
            );
            EXIT_SUCCESS
        }
        ServerCommands::Ps => {
            eprintln!("Server ps — not yet implemented");
            EXIT_SUCCESS
        }
        ServerCommands::Kill => {
            eprintln!("Server kill — not yet implemented");
            EXIT_SUCCESS
        }
        ServerCommands::RotateToken => {
            eprintln!("Server rotate-token — not yet implemented");
            EXIT_SUCCESS
        }
    }
}