package orch import ( "github.com/spf13/cobra" ) type rootOptions struct { dbPath string json bool } func NewRootCmd() *cobra.Command { opts := &rootOptions{} cmd := &cobra.Command{ Use: "orch", Short: "Leader-facing scheduler and control plane", Long: helpLong( "Use orch to manage leader-side scheduling for runs, tasks, dependencies, dispatch, retries, reassignment, verification gates, blocked-task answers, and worktree-backed code attempts.", "orch is the control plane; it creates durable handoff state in inbox but does not launch workers by itself.", "After dispatch, a separate worker runtime or worker agent should claim the assigned inbox thread.", "Use execution-mode analysis for thread-only work and execution-mode code for worktree-backed repository changes.", ), Example: ` orch --db .agents/coord.db run init --run blog_mvp_001 --goal "Build blog MVP" orch --db .agents/coord.db task add --run blog_mvp_001 --task T1 --title "Summarize flaky tests" --default-to qa-worker orch --db .agents/coord.db ready --run blog_mvp_001 orch --db .agents/coord.db dispatch --run blog_mvp_001 --task T1 --execution-mode analysis --to qa-worker --body "Read the latest failures." orch --db .agents/coord.db status --run blog_mvp_001`, SilenceErrors: true, SilenceUsage: true, } cmd.PersistentFlags().StringVar(&opts.dbPath, "db", ".agents/coord.db", "SQLite database path") cmd.PersistentFlags().BoolVar(&opts.json, "json", false, "Emit machine-readable JSON") cmd.AddCommand(newRunCmd(opts)) cmd.AddCommand(newTaskCmd(opts)) cmd.AddCommand(newDepCmd(opts)) cmd.AddCommand(newReadyCmd(opts)) cmd.AddCommand(newDispatchCmd(opts)) cmd.AddCommand(newReconcileCmd(opts)) cmd.AddCommand(newWaitCmd(opts)) cmd.AddCommand(newRetryCmd(opts)) cmd.AddCommand(newReassignCmd(opts)) cmd.AddCommand(newCancelCmd(opts)) cmd.AddCommand(newCleanupCmd(opts)) cmd.AddCommand(newCouncilCmd(opts)) cmd.AddCommand(newBlockedCmd(opts)) cmd.AddCommand(newAnswerCmd(opts)) cmd.AddCommand(newStatusCmd(opts)) cmd.AddCommand(newVerifyCmd(opts)) return cmd }