parley-cli 0.3.0

Terminal-first review tool for AI-generated code changes
Documentation
use thiserror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("git operation failed: {0}")]
    Git(#[from] git2::Error),

    #[error("io error: {0}")]
    Io(#[from] std::io::Error),

    #[error("serde error: {0}")]
    Serde(#[from] serde_json::Error),

    #[error("toml parse error: {0}")]
    Toml(#[from] toml::de::Error),

    #[error("config error: {0}")]
    Config(String),

    #[error("review not found: {0}")]
    ReviewNotFound(String),

    #[error("comment not found: {id}")]
    CommentNotFound { id: u64 },

    #[error("invalid diff side: {0}")]
    InvalidDiffSide(String),

    #[error("invalid review state: {0}")]
    InvalidReviewState(String),

    #[error("invalid author: {0}")]
    InvalidAuthor(String),

    #[error("invalid ai provider: {0}")]
    InvalidAiProvider(String),

    #[error("invalid ai session mode: {0}")]
    InvalidAiSessionMode(String),

    #[error("persistence error: {0}")]
    Persistence(String),

    #[error("tui error: {0}")]
    Tui(String),

    #[error("mcp error: {0}")]
    Mcp(String),

    #[error("ai service error: {0}")]
    AiService(String),

    #[error("validation error: {0}")]
    Validation(String),

    #[error("internal error: {0}")]
    Internal(String),
}

pub type Result<T> = std::result::Result<T, Error>;