summaryrefslogtreecommitdiff
path: root/makima/src/bin
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-21 19:33:44 +0000
committerGitHub <noreply@github.com>2026-02-21 19:33:44 +0000
commitd670dcb72984cfa483063d161bb468704038895c (patch)
tree885ea969d2c5ea5c026d1caf25cd0a15f6753ca1 /makima/src/bin
parent61442ea1cb92ce8c28fe0622aa19d4e2947a8fd0 (diff)
downloadsoryu-d670dcb72984cfa483063d161bb468704038895c.tar.gz
soryu-d670dcb72984cfa483063d161bb468704038895c.zip
feat: add directive ask command, log backfill & specialized DAG steps (#75)
* feat: soryu-co/soryu - makima: Add makima directive ask CLI command * feat: soryu-co/soryu - makima: Update directive skill docs and planning prompt to support asking questions * feat: soryu-co/soryu - makima: Add log stream backfill for directive tasks * feat: soryu-co/soryu - makima: Update planning prompts to inform tasks they can ask questions * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Add ask command to directive SKILL.md documentation * feat: soryu-co/soryu - makima: Add log stream backfill for directive task output history * feat: soryu-co/soryu - makima: Update planning prompt to tell planning tasks they can ask questions * WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Show Planning, PR, and Cleanup tasks as specialized steps in DAG
Diffstat (limited to 'makima/src/bin')
-rw-r--r--makima/src/bin/makima.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/makima/src/bin/makima.rs b/makima/src/bin/makima.rs
index 070e28e..aaf5a08 100644
--- a/makima/src/bin/makima.rs
+++ b/makima/src/bin/makima.rs
@@ -800,6 +800,18 @@ async fn run_directive(
.await?;
println!("{}", serde_json::to_string(&result.0)?);
}
+ DirectiveCommand::Ask(args) => {
+ let client = ApiClient::new(args.common.api_url.clone(), args.common.api_key.clone())?;
+ eprintln!("Asking user: {}...", args.question);
+ let choices = args
+ .choices
+ .map(|c| c.split(',').map(|s| s.trim().to_string()).collect())
+ .unwrap_or_default();
+ let result = client
+ .supervisor_ask(&args.question, choices, args.context, args.timeout, args.phaseguard, args.multi_select, args.non_blocking, args.question_type)
+ .await?;
+ println!("{}", serde_json::to_string(&result.0)?);
+ }
}
Ok(())