diff --git a/codex-rs/app-server/src/config_api.rs b/codex-rs/app-server/src/config_api.rs index dd525cb61..5c924d181 100644 --- a/codex-rs/app-server/src/config_api.rs +++ b/codex-rs/app-server/src/config_api.rs @@ -135,7 +135,7 @@ mod tests { CoreSandboxModeRequirement::ReadOnly, CoreSandboxModeRequirement::ExternalSandbox, ]), - mcp_server_requirements: None, + mcp_servers: None, }; let mapped = map_requirements_toml_to_api(requirements); diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs index a198962e4..486a04ec4 100644 --- a/codex-rs/core/src/config/mod.rs +++ b/codex-rs/core/src/config/mod.rs @@ -1420,7 +1420,7 @@ impl Config { let ConfigRequirements { approval_policy: mut constrained_approval_policy, sandbox_policy: mut constrained_sandbox_policy, - mcp_server_requirements, + mcp_servers, } = requirements; constrained_approval_policy @@ -1430,11 +1430,8 @@ impl Config { .set(sandbox_policy) .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidInput, format!("{e}")))?; - let mcp_servers = - constrain_mcp_servers(cfg.mcp_servers.clone(), mcp_server_requirements.as_ref()) - .map_err(|e| { - std::io::Error::new(std::io::ErrorKind::InvalidInput, format!("{e}")) - })?; + let mcp_servers = constrain_mcp_servers(cfg.mcp_servers.clone(), mcp_servers.as_ref()) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidInput, format!("{e}")))?; let config = Self { model, diff --git a/codex-rs/core/src/config_loader/config_requirements.rs b/codex-rs/core/src/config_loader/config_requirements.rs index 731ff7d79..0411b0916 100644 --- a/codex-rs/core/src/config_loader/config_requirements.rs +++ b/codex-rs/core/src/config_loader/config_requirements.rs @@ -44,7 +44,7 @@ impl fmt::Display for RequirementSource { pub struct ConfigRequirements { pub approval_policy: Constrained, pub sandbox_policy: Constrained, - pub mcp_server_requirements: Option>, + pub mcp_servers: Option>, } impl Default for ConfigRequirements { @@ -52,7 +52,7 @@ impl Default for ConfigRequirements { Self { approval_policy: Constrained::allow_any_from_default(), sandbox_policy: Constrained::allow_any(SandboxPolicy::ReadOnly), - mcp_server_requirements: None, + mcp_servers: None, } } } @@ -74,7 +74,7 @@ pub struct McpServerRequirement { pub struct ConfigRequirementsToml { pub allowed_approval_policies: Option>, pub allowed_sandbox_modes: Option>, - pub mcp_server_requirements: Option>, + pub mcp_servers: Option>, } /// Value paired with the requirement source it came from, for better error @@ -103,7 +103,7 @@ impl std::ops::Deref for Sourced { pub struct ConfigRequirementsWithSources { pub allowed_approval_policies: Option>>, pub allowed_sandbox_modes: Option>>, - pub mcp_server_requirements: Option>>, + pub mcp_servers: Option>>, } impl ConfigRequirementsWithSources { @@ -134,7 +134,7 @@ impl ConfigRequirementsWithSources { { allowed_approval_policies, allowed_sandbox_modes, - mcp_server_requirements, + mcp_servers, } ); } @@ -143,12 +143,12 @@ impl ConfigRequirementsWithSources { let ConfigRequirementsWithSources { allowed_approval_policies, allowed_sandbox_modes, - mcp_server_requirements, + mcp_servers, } = self; ConfigRequirementsToml { allowed_approval_policies: allowed_approval_policies.map(|sourced| sourced.value), allowed_sandbox_modes: allowed_sandbox_modes.map(|sourced| sourced.value), - mcp_server_requirements: mcp_server_requirements.map(|sourced| sourced.value), + mcp_servers: mcp_servers.map(|sourced| sourced.value), } } } @@ -184,7 +184,7 @@ impl ConfigRequirementsToml { pub fn is_empty(&self) -> bool { self.allowed_approval_policies.is_none() && self.allowed_sandbox_modes.is_none() - && self.mcp_server_requirements.is_none() + && self.mcp_servers.is_none() } } @@ -195,7 +195,7 @@ impl TryFrom for ConfigRequirements { let ConfigRequirementsWithSources { allowed_approval_policies, allowed_sandbox_modes, - mcp_server_requirements, + mcp_servers, } = toml; let approval_policy: Constrained = match allowed_approval_policies { @@ -273,7 +273,7 @@ impl TryFrom for ConfigRequirements { Ok(ConfigRequirements { approval_policy, sandbox_policy, - mcp_server_requirements: mcp_server_requirements.map(|sourced| sourced.value), + mcp_servers: mcp_servers.map(|sourced| sourced.value), }) } } @@ -291,15 +291,14 @@ mod tests { let ConfigRequirementsToml { allowed_approval_policies, allowed_sandbox_modes, - mcp_server_requirements, + mcp_servers, } = toml; ConfigRequirementsWithSources { allowed_approval_policies: allowed_approval_policies .map(|value| Sourced::new(value, RequirementSource::Unknown)), allowed_sandbox_modes: allowed_sandbox_modes .map(|value| Sourced::new(value, RequirementSource::Unknown)), - mcp_server_requirements: mcp_server_requirements - .map(|value| Sourced::new(value, RequirementSource::Unknown)), + mcp_servers: mcp_servers.map(|value| Sourced::new(value, RequirementSource::Unknown)), } } @@ -319,7 +318,7 @@ mod tests { let other = ConfigRequirementsToml { allowed_approval_policies: Some(allowed_approval_policies.clone()), allowed_sandbox_modes: Some(allowed_sandbox_modes.clone()), - mcp_server_requirements: None, + mcp_servers: None, }; target.merge_unset_fields(source.clone(), other); @@ -332,7 +331,7 @@ mod tests { source.clone() )), allowed_sandbox_modes: Some(Sourced::new(allowed_sandbox_modes, source)), - mcp_server_requirements: None, + mcp_servers: None, } ); } @@ -360,7 +359,7 @@ mod tests { source_location, )), allowed_sandbox_modes: None, - mcp_server_requirements: None, + mcp_servers: None, } ); Ok(()) @@ -396,7 +395,7 @@ mod tests { existing_source, )), allowed_sandbox_modes: None, - mcp_server_requirements: None, + mcp_servers: None, } ); Ok(()) @@ -561,17 +560,17 @@ mod tests { #[test] fn deserialize_mcp_server_requirements() -> Result<()> { let toml_str = r#" - [mcp_server_requirements.docs.identity] + [mcp_servers.docs.identity] command = "codex-mcp" - [mcp_server_requirements.remote.identity] + [mcp_servers.remote.identity] url = "https://example.com/mcp" "#; let requirements: ConfigRequirements = with_unknown_source(from_str(toml_str)?).try_into()?; assert_eq!( - requirements.mcp_server_requirements, + requirements.mcp_servers, Some(BTreeMap::from([ ( "docs".to_string(),