use anyhow::Result;
use clap::Parser;
use dkp::cli::{Cli, Commands};
use dkp::cmd;
#[tokio::main]
async fn main() -> Result<()> {
let cli = Cli::parse();
run(cli).await
}
async fn run(cli: Cli) -> Result<()> {
let ctx = cli.ctx();
match cli.command {
Commands::Init(mut args) => {
args.stubs = true;
cmd::init::run(args, &ctx).await
}
Commands::Info(args) => cmd::info::run(args, &ctx).await,
Commands::List(args) => cmd::list::run(args, &ctx).await,
Commands::Validate(args) => cmd::validate::run(args, &ctx).await,
Commands::Search(args) => cmd::search::run(args, &ctx).await,
Commands::Get(args) => cmd::get::run(args, &ctx).await,
Commands::Inject(args) => cmd::inject::run(args, &ctx).await,
Commands::Export(args) => cmd::export::run(args, &ctx).await,
Commands::Okf(args) => cmd::okf::run(args, &ctx).await,
Commands::Chunk(args) => cmd::chunk::run(args, &ctx).await,
Commands::Eval(args) => cmd::eval::run(args, &ctx).await,
Commands::Prompt(args) => cmd::prompt::run(args, &ctx).await,
Commands::Diff(args) => cmd::diff::run(args, &ctx).await,
Commands::Build(args) => cmd::build::run(args, &ctx).await,
Commands::RenderHandbook(args) => cmd::render_handbook::run(args, &ctx).await,
Commands::ReleaseCheck(args) => cmd::release_check::run(args, &ctx).await,
Commands::Rights(args) => cmd::rights::run(args, &ctx).await,
Commands::McpManifest(args) => cmd::mcp_manifest::run(args, &ctx).await,
#[cfg(feature = "mcp")]
Commands::Serve(args) => cmd::serve::run(args, &ctx).await,
#[cfg(feature = "tui")]
Commands::Tui(args) => cmd::tui::run(args, &ctx).await,
#[cfg(feature = "webui")]
Commands::Webui(args) => cmd::webui::run(args, &ctx).await,
Commands::Run(args) => cmd::run::run(args, &ctx).await,
Commands::Procedures(args) => cmd::procedures::run(args, &ctx).await,
Commands::Graph(args) => cmd::graph::run(args, &ctx).await,
Commands::CrossRefs(args) => cmd::cross_refs::run(args, &ctx).await,
Commands::Skills(args) => cmd::skills::run(args, &ctx).await,
Commands::L10n(args) => cmd::l10n::run(args, &ctx).await,
Commands::New(args) => cmd::new::run(args, &ctx).await,
Commands::Generate(args) => cmd::generate::run(args, &ctx).await,
Commands::Fix(args) => cmd::fix::run(args, &ctx).await,
Commands::Review(args) => cmd::review::run(args, &ctx).await,
Commands::Keygen(args) => cmd::keygen::run(args, &ctx).await,
Commands::Sign(args) => cmd::sign::run(args, &ctx).await,
Commands::Install(args) => cmd::registry::install::run(args, &ctx).await,
Commands::Uninstall(args) => cmd::registry::uninstall::run(args, &ctx).await,
Commands::Update(args) => cmd::registry::update::run(args, &ctx).await,
Commands::Publish(args) => cmd::registry::publish::run(args, &ctx).await,
Commands::Yank(args) => cmd::registry::yank::run(args, &ctx).await,
Commands::Deprecate(args) => cmd::registry::deprecate::run(args, &ctx).await,
Commands::Registry(args) => cmd::registry::account::run(args, &ctx).await,
}
}