summaryrefslogtreecommitdiff
path: root/makima/src/daemon/cli/directive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/daemon/cli/directive.rs')
-rw-r--r--makima/src/daemon/cli/directive.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/makima/src/daemon/cli/directive.rs b/makima/src/daemon/cli/directive.rs
index 8a6a9f2..7c8451f 100644
--- a/makima/src/daemon/cli/directive.rs
+++ b/makima/src/daemon/cli/directive.rs
@@ -111,6 +111,45 @@ pub struct BatchAddStepsArgs {
pub json: String,
}
+/// Arguments for ask command (ask user a question from directive context).
+#[derive(Args, Debug)]
+pub struct AskArgs {
+ #[command(flatten)]
+ pub common: DirectiveArgs,
+
+ /// The question to ask
+ #[arg(index = 1)]
+ pub question: String,
+
+ /// Optional choices (comma-separated)
+ #[arg(long)]
+ pub choices: Option<String>,
+
+ /// Context about what this relates to
+ #[arg(long)]
+ pub context: Option<String>,
+
+ /// Timeout in seconds (default: 3600 = 1 hour)
+ #[arg(long, default_value = "3600")]
+ pub timeout: i32,
+
+ /// Block indefinitely until user responds (no timeout)
+ #[arg(long, default_value = "false")]
+ pub phaseguard: bool,
+
+ /// Allow selecting multiple choices (response will be comma-separated)
+ #[arg(long, default_value = "false")]
+ pub multi_select: bool,
+
+ /// Non-blocking mode - returns immediately without waiting for response
+ #[arg(long, default_value = "false")]
+ pub non_blocking: bool,
+
+ /// Question type (general, phase_confirmation, contract_complete)
+ #[arg(long, default_value = "general")]
+ pub question_type: String,
+}
+
/// Arguments for update command.
#[derive(Args, Debug)]
pub struct UpdateArgs {