1use clap::{Parser, Subcommand};
2
3mod check_cmd;
4mod completions_cmd;
5mod init_cmd;
6mod install_cmd;
7mod list_cmd;
8mod remove_cmd;
9mod sync_cmd;
10mod update_cmd;
11mod use_cmd;
12
13pub use check_cmd::CheckCommand;
14pub use completions_cmd::CompletionsCommand;
15pub use init_cmd::InitCommand;
16pub use install_cmd::InstallCommand;
17pub use list_cmd::ListCommand;
18pub use remove_cmd::RemoveCommand;
19pub use sync_cmd::SyncCommand;
20pub use update_cmd::UpdateCommand;
21pub use use_cmd::UseCommand;
22
23#[derive(Parser)]
24#[command(name = "mai")]
25#[command(about = "AI tooling package manager", long_about = None)]
26pub struct Cli {
27 #[command(subcommand)]
28 pub command: Commands,
29}
30
31#[derive(Subcommand)]
32pub enum Commands {
33 Use(UseCommand),
35
36 Install(InstallCommand),
38
39 List(ListCommand),
41
42 Init(InitCommand),
44
45 Sync(SyncCommand),
47
48 Check(CheckCommand),
50
51 Remove(RemoveCommand),
53
54 Update(UpdateCommand),
56
57 Completions(CompletionsCommand),
59}