use crate::JsonSchema; use crate::TS; use codex_protocol::config_types::CollaborationModeMask as CoreCollaborationModeMask; use codex_protocol::config_types::ModeKind; use codex_protocol::openai_models::ReasoningEffort; use serde::Deserialize; use serde::Serialize; /// 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, pub model: Option, #[serde(rename = "reasoning_effort")] #[ts(rename = "reasoning_effort")] pub reasoning_effort: Option>, } impl From 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, }