darq 0.1.0

darq CLI + TUI — autonomous issue → PR pipeline with SAT and a learning loop.
Documentation
//! PR workflow commands: review, fix, merge.

use clap::Subcommand;

use crate::daemon::client::DaemonClient;

#[derive(Subcommand, Debug)]
pub enum PrCommands {
    /// Review a pull request (quality + functional review)
    Review {
        /// PR number
        number: u64,
    },
    /// Fix issues found in review
    Fix {
        /// PR number
        number: u64,
    },
    /// Merge an approved pull request
    Merge {
        /// PR number
        number: u64,
        /// Force merge without approval check
        #[arg(long)]
        force: bool,
    },
}

pub async fn handle(command: PrCommands, client: &mut DaemonClient) -> anyhow::Result<()> {
    match command {
        PrCommands::Review { number } => {
            println!("[review_pr] Reviewing PR #{number}...");
            super::run_workflow_chain(client, "review_pr", number, 1, false).await
        }
        PrCommands::Fix { number } => {
            println!("[fix_review] Fixing PR #{number} review issues...");
            super::run_workflow_chain(client, "fix_review", number, 2, false).await
        }
        PrCommands::Merge { number, force } => {
            if force {
                println!("[merge_pr] Merging PR #{number} (force)...");
            } else {
                println!("[merge_pr] Merging PR #{number}...");
            }
            super::run_workflow_chain(client, "merge_pr", number, 3, !force).await
        }
    }
}