summaryrefslogtreecommitdiff
path: root/makima/src/daemon
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/daemon')
-rw-r--r--makima/src/daemon/api/supervisor.rs4
-rw-r--r--makima/src/daemon/cli/supervisor.rs4
2 files changed, 8 insertions, 0 deletions
diff --git a/makima/src/daemon/api/supervisor.rs b/makima/src/daemon/api/supervisor.rs
index 8b3d480..adeda22 100644
--- a/makima/src/daemon/api/supervisor.rs
+++ b/makima/src/daemon/api/supervisor.rs
@@ -71,6 +71,8 @@ pub struct AskQuestionRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub context: Option<String>,
pub timeout_seconds: i32,
+ /// When true, the request will block indefinitely until user responds (no timeout)
+ pub phaseguard: bool,
}
// Generic response type for JSON output
@@ -202,12 +204,14 @@ impl ApiClient {
choices: Vec<String>,
context: Option<String>,
timeout_seconds: i32,
+ phaseguard: bool,
) -> Result<JsonValue, ApiError> {
let req = AskQuestionRequest {
question: question.to_string(),
choices,
context,
timeout_seconds,
+ phaseguard,
};
self.post("/api/v1/mesh/supervisor/questions", &req).await
}
diff --git a/makima/src/daemon/cli/supervisor.rs b/makima/src/daemon/cli/supervisor.rs
index db30cf1..0e2da32 100644
--- a/makima/src/daemon/cli/supervisor.rs
+++ b/makima/src/daemon/cli/supervisor.rs
@@ -180,6 +180,10 @@ pub struct AskArgs {
/// 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,
}
/// Arguments for status command (get contract status including phase).