Codex Handbook
utils/sandbox-summary/src/config_summary.rs 44 lines
use codex_core::config::Config;use codex_model_provider_info::WireApi;use crate::sandbox_summary::summarize_sandbox_policy;/// Build a list of key/value pairs summarizing the effective configuration.pub fn create_config_summary_entries(config: &Config, model: &str) -> Vec<(&'static str, String)> {    let mut entries = vec![        ("workdir", config.cwd.display().to_string()),        ("model", model.to_string()),        ("provider", config.model_provider_id.clone()),        (            "approval",            config.permissions.approval_policy.value().to_string(),        ),        (            "sandbox",            summarize_sandbox_policy(                &config                    .permissions                    .legacy_sandbox_policy(config.cwd.as_path()),            ),        ),    ];    if config.model_provider.wire_api == WireApi::Responses {        let reasoning_effort = config            .model_reasoning_effort            .as_ref()            .map(std::string::ToString::to_string);        entries.push((            "reasoning effort",            reasoning_effort.unwrap_or_else(|| "none".to_string()),        ));        entries.push((            "reasoning summaries",            config                .model_reasoning_summary                .map(|summary| summary.to_string())                .unwrap_or_else(|| "none".to_string()),        ));    }    entries}