Codex Handbook
app-server-protocol/src/protocol/v2/review.rs 65 lines
use super::Turn;use super::shared::v2_enum_from_core;use schemars::JsonSchema;use serde::Deserialize;use serde::Serialize;use ts_rs::TS;v2_enum_from_core!(    pub enum ReviewDelivery from codex_protocol::protocol::ReviewDelivery {        Inline, Detached    });#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct ReviewStartParams {    pub thread_id: String,    pub target: ReviewTarget,    /// Where to run the review: inline (default) on the current thread or    /// detached on a new thread (returned in `reviewThreadId`).    #[serde(default)]    #[ts(optional = nullable)]    pub delivery: Option<ReviewDelivery>,}#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct ReviewStartResponse {    pub turn: Turn,    /// Identifies the thread where the review runs.    ///    /// For inline reviews, this is the original thread id.    /// For detached reviews, this is the id of the new review thread.    pub review_thread_id: String,}#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]#[serde(tag = "type", rename_all = "camelCase")]#[ts(tag = "type", export_to = "v2/")]pub enum ReviewTarget {    /// Review the working tree: staged, unstaged, and untracked files.    UncommittedChanges,    /// Review changes between the current branch and the given base branch.    #[serde(rename_all = "camelCase")]    #[ts(rename_all = "camelCase")]    BaseBranch { branch: String },    /// Review the changes introduced by a specific commit.    #[serde(rename_all = "camelCase")]    #[ts(rename_all = "camelCase")]    Commit {        sha: String,        /// Optional human-readable label (e.g., commit subject) for UIs.        title: Option<String>,    },    /// Arbitrary instructions, equivalent to the old free-form prompt.    #[serde(rename_all = "camelCase")]    #[ts(rename_all = "camelCase")]    Custom { instructions: String },}