2
0

feat(headless): add plan command for previewing agent configuration

This commit is contained in:
2026-03-24 14:55:32 +09:00
parent a330170cb4
commit e8c71d739d
2 changed files with 31 additions and 0 deletions

View File

@@ -757,6 +757,31 @@ pub fn commit() {
} }
} }
/// Preview agent configuration without executing.
pub fn plan(preset: Option<&str>, config_path: Option<&str>) {
let configs = if let Some(name) = preset {
config::preset(name).unwrap_or_default()
} else if let Some(path) = config_path {
config::load(path)
} else {
eprintln!("usage: aishell plan -p <preset> or aishell plan -f <config>");
return;
};
if configs.is_empty() {
println!("(no agents)");
return;
}
println!("{} agent(s):", configs.len());
for (i, c) in configs.iter().enumerate() {
let last = i == configs.len() - 1;
let prefix = if last { "└─" } else { "├─" };
let task_short: String = c.task.chars().take(50).collect();
println!(" {prefix} {:16} {task_short}", c.name);
}
}
/// Save the latest decision to aigpt memory (explicit, not automatic). /// Save the latest decision to aigpt memory (explicit, not automatic).
pub fn remember() { pub fn remember() {
let dec_path = format!("{STATE_DIR}/decision.json"); let dec_path = format!("{STATE_DIR}/decision.json");

View File

@@ -92,6 +92,11 @@ fn main() {
aishell::headless::log(&id); aishell::headless::log(&id);
} }
Some("decision") => aishell::headless::decision(), Some("decision") => aishell::headless::decision(),
Some("plan") => {
let preset = parse_flag("-p");
let config = parse_flag("-f");
aishell::headless::plan(preset.as_deref(), config.as_deref());
}
Some("commit") => aishell::headless::commit(), Some("commit") => aishell::headless::commit(),
Some("context") => aishell::headless::context(), Some("context") => aishell::headless::context(),
Some("remember") => aishell::headless::remember(), Some("remember") => aishell::headless::remember(),
@@ -136,6 +141,7 @@ fn print_help() {
println!(" aishell run <task> Run single agent"); println!(" aishell run <task> Run single agent");
println!(" aishell run -p <preset> Preset: daily, review, improve, report"); println!(" aishell run -p <preset> Preset: daily, review, improve, report");
println!(" aishell run -f <config> Custom config file"); println!(" aishell run -f <config> Custom config file");
println!(" aishell plan -p <preset> Preview agent config without running");
println!(" aishell commit Git commit with AI-suggested message"); println!(" aishell commit Git commit with AI-suggested message");
println!(" aishell status [-v] Show agent status"); println!(" aishell status [-v] Show agent status");
println!(" aishell log <id|name> Show agent output"); println!(" aishell log <id|name> Show agent output");