claudy 0.2.2

Modern multi-provider launcher for Claude CLI
mod interactive;
mod lifecycle;
mod status;

use crate::domain::commands::ChannelAction;
use crate::domain::context::Context;

pub fn run_channel(
    ctx: &mut Context,
    action: ChannelAction,
    profile: Option<&str>,
    listen: Option<&str>,
) -> anyhow::Result<i32> {
    match action {
        ChannelAction::Serve => lifecycle::run_serve(ctx, profile, listen),
        ChannelAction::Start => lifecycle::run_start(ctx, profile, listen),
        ChannelAction::Stop => lifecycle::run_stop(ctx),
        ChannelAction::Restart => lifecycle::run_restart(ctx, profile, listen),
        ChannelAction::Status => status::run_status(ctx),
        ChannelAction::Add { platform } => interactive::run_add(ctx, &platform),
        ChannelAction::Remove { platform } => interactive::run_remove(ctx, &platform),
        ChannelAction::Enable => lifecycle::run_enable(ctx, profile, listen),
        ChannelAction::Disable => lifecycle::run_disable(ctx),
    }
}