summaryrefslogtreecommitdiff
path: root/makima/src/daemon/cli
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-20 12:47:39 +0000
committersoryu <soryu@soryu.co>2026-01-20 12:56:58 +0000
commit36233b7cb834223878aa075bb379846eb6d7bb05 (patch)
treed3eec4bc5fd30d41afe2d9df82ac62ca3f405a65 /makima/src/daemon/cli
parent7d5af3d817cf8aa62c9ee12b7f78a17730182e1d (diff)
downloadsoryu-36233b7cb834223878aa075bb379846eb6d7bb05.tar.gz
soryu-36233b7cb834223878aa075bb379846eb6d7bb05.zip
feat: Add contract lifecycle management commands (complete and resume-contract)
Add supervisor commands for properly managing contract lifecycle: - `makima supervisor complete` - Mark a contract as complete and stop the supervisor - `makima supervisor resume-contract` - Resume a completed contract (reactivate it) Also adds `api_key` field to TaskConfig for authenticated API calls. This consolidates the lifecycle management features from the contract-lifecycle-cleanup branch. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src/daemon/cli')
-rw-r--r--makima/src/daemon/cli/mod.rs6
-rw-r--r--makima/src/daemon/cli/supervisor.rs27
2 files changed, 33 insertions, 0 deletions
diff --git a/makima/src/daemon/cli/mod.rs b/makima/src/daemon/cli/mod.rs
index 842fa63..44c7a06 100644
--- a/makima/src/daemon/cli/mod.rs
+++ b/makima/src/daemon/cli/mod.rs
@@ -122,6 +122,12 @@ pub enum SupervisorCommand {
/// Rewind supervisor conversation
RewindConversation(supervisor::ConversationRewindArgs),
+
+ /// Mark the contract as complete and stop the supervisor
+ Complete(supervisor::CompleteArgs),
+
+ /// Resume a completed contract (reactivate it)
+ ResumeContract(supervisor::ResumeContractArgs),
}
/// Contract subcommands for task-contract interaction.
diff --git a/makima/src/daemon/cli/supervisor.rs b/makima/src/daemon/cli/supervisor.rs
index ae1a126..798a55f 100644
--- a/makima/src/daemon/cli/supervisor.rs
+++ b/makima/src/daemon/cli/supervisor.rs
@@ -390,3 +390,30 @@ pub struct ConversationRewindArgs {
#[arg(long)]
pub rewind_code: bool,
}
+
+/// Arguments for complete command (mark contract as complete).
+#[derive(Args, Debug)]
+pub struct CompleteArgs {
+ #[command(flatten)]
+ pub common: SupervisorArgs,
+}
+
+// ============================================================================
+// Resume Contract Command Args
+// ============================================================================
+
+/// Arguments for resume-contract command (reactivate a completed contract).
+#[derive(Args, Debug)]
+pub struct ResumeContractArgs {
+ /// API URL
+ #[arg(long, env = "MAKIMA_API_URL", default_value = "https://api.makima.jp")]
+ pub api_url: String,
+
+ /// API key for authentication
+ #[arg(long, env = "MAKIMA_API_KEY")]
+ pub api_key: String,
+
+ /// Contract ID to resume
+ #[arg(index = 1)]
+ pub contract_id: Uuid,
+}