summaryrefslogtreecommitdiff
path: root/makima/src/daemon/cli
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-04 01:07:14 +0000
committersoryu <soryu@soryu.co>2026-02-04 01:07:14 +0000
commita734bf1a472b19d63341769d26a66628575df7f4 (patch)
treeec78f57e5721d157c620df0c99de5b5efe485231 /makima/src/daemon/cli
parentc732dd048128808cd9f67f6e1176a5b565df5678 (diff)
downloadsoryu-a734bf1a472b19d63341769d26a66628575df7f4.tar.gz
soryu-a734bf1a472b19d63341769d26a66628575df7f4.zip
Add chain checkpoint contracts
Diffstat (limited to 'makima/src/daemon/cli')
-rw-r--r--makima/src/daemon/cli/mod.rs14
-rw-r--r--makima/src/daemon/cli/supervisor.rs64
2 files changed, 78 insertions, 0 deletions
diff --git a/makima/src/daemon/cli/mod.rs b/makima/src/daemon/cli/mod.rs
index 035a784..25163c2 100644
--- a/makima/src/daemon/cli/mod.rs
+++ b/makima/src/daemon/cli/mod.rs
@@ -170,6 +170,20 @@ pub enum SupervisorCommand {
/// Mark a deliverable as complete
MarkDeliverable(supervisor::MarkDeliverableArgs),
+
+ // Chain supervisor commands (for chain-level orchestration)
+
+ /// Get chain status with progress info
+ ChainStatus(supervisor::ChainStatusArgs),
+
+ /// List contracts in the chain
+ ChainContracts(supervisor::ChainContractsArgs),
+
+ /// Manually trigger chain progression
+ ChainProgress(supervisor::ChainProgressArgs),
+
+ /// Get chain DAG visualization
+ ChainGraph(supervisor::ChainGraphArgs),
}
/// Contract subcommands for task-contract interaction.
diff --git a/makima/src/daemon/cli/supervisor.rs b/makima/src/daemon/cli/supervisor.rs
index 6f19697..0b52c9c 100644
--- a/makima/src/daemon/cli/supervisor.rs
+++ b/makima/src/daemon/cli/supervisor.rs
@@ -445,3 +445,67 @@ pub struct ResumeContractArgs {
#[arg(index = 1)]
pub contract_id: Uuid,
}
+
+// ============================================================================
+// Chain Supervisor Command Args
+// ============================================================================
+
+/// Common arguments for chain supervisor commands.
+#[derive(Args, Debug, Clone)]
+pub struct ChainSupervisorArgs {
+ /// 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,
+
+ /// Current task ID (the chain supervisor's own task ID)
+ #[arg(long, env = "MAKIMA_TASK_ID")]
+ pub self_task_id: Option<Uuid>,
+
+ /// Chain ID
+ #[arg(long, env = "MAKIMA_CHAIN_ID")]
+ pub chain_id: Uuid,
+}
+
+/// Arguments for chain-status command (get chain status with progress info).
+#[derive(Args, Debug)]
+pub struct ChainStatusArgs {
+ #[command(flatten)]
+ pub common: ChainSupervisorArgs,
+
+ /// Include contract details
+ #[arg(long)]
+ pub verbose: bool,
+}
+
+/// Arguments for chain-contracts command (list contracts in the chain).
+#[derive(Args, Debug)]
+pub struct ChainContractsArgs {
+ #[command(flatten)]
+ pub common: ChainSupervisorArgs,
+
+ /// Filter by status (active, completed, failed)
+ #[arg(long)]
+ pub status: Option<String>,
+}
+
+/// Arguments for chain-progress command (manually trigger chain progression).
+#[derive(Args, Debug)]
+pub struct ChainProgressArgs {
+ #[command(flatten)]
+ pub common: ChainSupervisorArgs,
+}
+
+/// Arguments for chain-graph command (get chain DAG visualization).
+#[derive(Args, Debug)]
+pub struct ChainGraphArgs {
+ #[command(flatten)]
+ pub common: ChainSupervisorArgs,
+
+ /// Output format (ascii, json)
+ #[arg(long, default_value = "ascii")]
+ pub format: String,
+}