feat: phase 2 — automatisation: doctor --watch, schedule, service, orchestration, conteneurs (closes #55 #56 #57 #58 #59)
This commit is contained in:
+66
-1
@@ -177,6 +177,12 @@ pub enum Command {
|
||||
Secret(SecretCmd),
|
||||
/// Audit the configuration: who changed what, when (issue #63)
|
||||
Audit,
|
||||
/// Register an agent as a system service (issue #55)
|
||||
#[command(subcommand)]
|
||||
Service(ServiceCmd),
|
||||
/// Schedule am commands (issue #56)
|
||||
#[command(subcommand)]
|
||||
Schedule(ScheduleCmd),
|
||||
/// List local models (ollama, llama.cpp, LM Studio) and prune unused ones
|
||||
Models(ModelsArgs),
|
||||
/// Manage remote catalogs: update the official one, add external ones
|
||||
@@ -412,6 +418,9 @@ pub enum Command {
|
||||
/// Attempt to repair problems (create directories, fix the state file)
|
||||
#[arg(long)]
|
||||
fix: bool,
|
||||
/// Re-run the checks every N seconds, alerting on failure (issue #59)
|
||||
#[arg(long, value_name = "SECONDS")]
|
||||
watch: Option<u64>,
|
||||
},
|
||||
/// Run the agent command directly with the given arguments (no process management)
|
||||
Run {
|
||||
@@ -420,6 +429,9 @@ pub enum Command {
|
||||
/// Local model to use for this run (validated against the local runtimes)
|
||||
#[arg(long, value_name = "MODEL")]
|
||||
model: Option<String>,
|
||||
/// Run the agent inside a container (issue #58)
|
||||
#[arg(long)]
|
||||
container: bool,
|
||||
/// Arguments passed through to the agent command
|
||||
#[arg(trailing_var_arg = true, allow_hyphen_values = true, value_name = "ARGS...")]
|
||||
args: Vec<std::ffi::OsString>,
|
||||
@@ -488,6 +500,12 @@ pub struct StartArgs {
|
||||
/// Local model to use for this run (validated against the local runtimes)
|
||||
#[arg(long, value_name = "MODEL")]
|
||||
pub model: Option<String>,
|
||||
/// Start every member of a group simultaneously (issue #57)
|
||||
#[arg(long, action = ArgAction::SetTrue)]
|
||||
pub parallel: bool,
|
||||
/// Run the agent inside a container (issue #58)
|
||||
#[arg(long, action = ArgAction::SetTrue)]
|
||||
pub container: bool,
|
||||
}
|
||||
|
||||
/// Arguments of the models command: inventory by default, prune with --prune.
|
||||
@@ -534,7 +552,54 @@ pub enum ProfileCmd {
|
||||
},
|
||||
}
|
||||
|
||||
/// Secret management subcommands.
|
||||
/// 'am service' subcommands (issue #55).
|
||||
#[derive(Subcommand, Debug, Clone)]
|
||||
pub enum ServiceCmd {
|
||||
/// Install the service unit (systemd / launchd / Task Scheduler)
|
||||
Install {
|
||||
/// Agent name
|
||||
agent: String,
|
||||
/// Enable autostart (boot/logon)
|
||||
#[arg(long)]
|
||||
autostart: bool,
|
||||
},
|
||||
/// Remove the service unit
|
||||
Uninstall {
|
||||
/// Agent name
|
||||
agent: String,
|
||||
},
|
||||
/// Show whether the service is installed
|
||||
Status {
|
||||
/// Agent name
|
||||
agent: String,
|
||||
},
|
||||
}
|
||||
|
||||
/// 'am schedule' subcommands (issue #56).
|
||||
#[derive(Subcommand, Debug, Clone)]
|
||||
pub enum ScheduleCmd {
|
||||
/// Add a daily schedule (ex: 'am schedule add update --all')
|
||||
Add {
|
||||
/// Command to run, e.g. ["update", "--all"]
|
||||
#[arg(trailing_var_arg = true, allow_hyphen_values = true, value_name = "CMD...")]
|
||||
command: Vec<String>,
|
||||
/// Time of day HH:MM (default 08:00)
|
||||
#[arg(long, value_name = "HH:MM")]
|
||||
at: Option<String>,
|
||||
},
|
||||
/// List the schedules
|
||||
List,
|
||||
/// Remove a schedule by id
|
||||
Remove {
|
||||
/// Schedule id ('am schedule list' shows them)
|
||||
id: String,
|
||||
},
|
||||
/// Run a schedule now (invoked by the OS task, issue #56)
|
||||
Run {
|
||||
/// Schedule id
|
||||
id: String,
|
||||
},
|
||||
}
|
||||
#[derive(Subcommand, Debug, Clone)]
|
||||
pub enum SecretCmd {
|
||||
/// Store a secret for an agent
|
||||
|
||||
Reference in New Issue
Block a user