use serde::Deserialize; use std::path::PathBuf; use crate::protocol::AskForApproval; use codex_protocol::config_types::ReasoningEffort; use codex_protocol::config_types::ReasoningSummary; use codex_protocol::config_types::Verbosity; /// Collection of common configuration options that a user can define as a unit /// in `config.toml`. #[derive(Debug, Clone, Default, PartialEq, Deserialize)] pub struct ConfigProfile { pub model: Option, /// The key in the `model_providers` map identifying the /// [`ModelProviderInfo`] to use. pub model_provider: Option, pub approval_policy: Option, pub model_reasoning_effort: Option, pub model_reasoning_summary: Option, pub model_verbosity: Option, pub chatgpt_base_url: Option, pub experimental_instructions_file: Option, } impl From for codex_protocol::mcp_protocol::Profile { fn from(config_profile: ConfigProfile) -> Self { Self { model: config_profile.model, model_provider: config_profile.model_provider, approval_policy: config_profile.approval_policy, model_reasoning_effort: config_profile.model_reasoning_effort, model_reasoning_summary: config_profile.model_reasoning_summary, model_verbosity: config_profile.model_verbosity, chatgpt_base_url: config_profile.chatgpt_base_url, } } }