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 },}