app-server-protocol/src/protocol/v2/collaboration_mode.rs
45 lines
use codex_protocol::config_types::CollaborationModeMask as CoreCollaborationModeMask;use codex_protocol::config_types::ModeKind;use codex_protocol::openai_models::ReasoningEffort;use schemars::JsonSchema;use serde::Deserialize;use serde::Serialize;use ts_rs::TS;/// EXPERIMENTAL - list collaboration mode presets.#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct CollaborationModeListParams {}/// EXPERIMENTAL - collaboration mode preset metadata for clients.#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct CollaborationModeMask { pub name: String, pub mode: Option<ModeKind>, pub model: Option<String>, #[serde(rename = "reasoning_effort")] #[ts(rename = "reasoning_effort")] pub reasoning_effort: Option<Option<ReasoningEffort>>,}impl From<CoreCollaborationModeMask> for CollaborationModeMask { fn from(value: CoreCollaborationModeMask) -> Self { Self { name: value.name, mode: value.mode, model: value.model, reasoning_effort: value.reasoning_effort, } }}/// EXPERIMENTAL - collaboration mode presets response.#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]#[serde(rename_all = "camelCase")]#[ts(export_to = "v2/")]pub struct CollaborationModeListResponse { pub data: Vec<CollaborationModeMask>,}