diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs index 47d80c5cb4..6b3d64bcd4 100644 --- a/codex-rs/core/src/codex.rs +++ b/codex-rs/core/src/codex.rs @@ -56,8 +56,8 @@ use crate::client::ModelClient; use crate::client_common::Prompt; use crate::client_common::ResponseEvent; use crate::config::Config; -use crate::config_types::McpServerTransportConfig; -use crate::config_types::ShellEnvironmentPolicy; +use crate::config::types::McpServerTransportConfig; +use crate::config::types::ShellEnvironmentPolicy; use crate::conversation_history::ConversationHistory; use crate::environment_context::EnvironmentContext; use crate::error::CodexErr; @@ -2404,8 +2404,8 @@ mod tests { use super::*; use crate::config::ConfigOverrides; use crate::config::ConfigToml; - use crate::config_types::McpServerConfig; - use crate::config_types::McpServerTransportConfig; + use crate::config::types::McpServerConfig; + use crate::config::types::McpServerTransportConfig; use crate::exec::ExecToolCallOutput; use crate::mcp::auth::McpAuthStatusEntry; use crate::tools::format_exec_output_str; diff --git a/codex-rs/core/src/config_edit.rs b/codex-rs/core/src/config/edit.rs similarity index 100% rename from codex-rs/core/src/config_edit.rs rename to codex-rs/core/src/config/edit.rs diff --git a/codex-rs/core/src/config/helpers.rs b/codex-rs/core/src/config/helpers.rs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/codex-rs/core/src/config/helpers.rs @@ -0,0 +1 @@ + diff --git a/codex-rs/core/src/config.rs b/codex-rs/core/src/config/mod.rs similarity index 98% rename from codex-rs/core/src/config.rs rename to codex-rs/core/src/config/mod.rs index f671e8dd36..e937d26ade 100644 --- a/codex-rs/core/src/config.rs +++ b/codex-rs/core/src/config/mod.rs @@ -1,24 +1,29 @@ +pub mod edit; +pub mod helpers; +pub mod profile; +pub mod types; + use crate::auth::AuthCredentialsStoreMode; -use crate::config_loader::LoadedConfigLayers; -pub use crate::config_loader::load_config_as_toml; -use crate::config_loader::load_config_layers_with_overrides; -use crate::config_loader::merge_toml_values; -use crate::config_profile::ConfigProfile; -use crate::config_types::DEFAULT_OTEL_ENVIRONMENT; -use crate::config_types::History; -use crate::config_types::McpServerConfig; -use crate::config_types::McpServerTransportConfig; -use crate::config_types::Notice; -use crate::config_types::Notifications; -use crate::config_types::OtelConfig; -use crate::config_types::OtelConfigToml; -use crate::config_types::OtelExporterKind; -use crate::config_types::ReasoningSummaryFormat; -use crate::config_types::SandboxWorkspaceWrite; -use crate::config_types::ShellEnvironmentPolicy; -use crate::config_types::ShellEnvironmentPolicyToml; -use crate::config_types::Tui; -use crate::config_types::UriBasedFileOpener; +use crate::config::loader::LoadedConfigLayers; +pub use crate::config::loader::load_config_as_toml; +use crate::config::loader::load_config_layers_with_overrides; +use crate::config::loader::merge_toml_values; +use crate::config::profile::ConfigProfile; +use crate::config::types::DEFAULT_OTEL_ENVIRONMENT; +use crate::config::types::History; +use crate::config::types::McpServerConfig; +use crate::config::types::McpServerTransportConfig; +use crate::config::types::Notice; +use crate::config::types::Notifications; +use crate::config::types::OtelConfig; +use crate::config::types::OtelConfigToml; +use crate::config::types::OtelExporterKind; +use crate::config::types::ReasoningSummaryFormat; +use crate::config::types::SandboxWorkspaceWrite; +use crate::config::types::ShellEnvironmentPolicy; +use crate::config::types::ShellEnvironmentPolicyToml; +use crate::config::types::Tui; +use crate::config::types::UriBasedFileOpener; use crate::features::Feature; use crate::features::FeatureOverrides; use crate::features::Features; @@ -271,7 +276,7 @@ pub struct Config { pub disable_paste_burst: bool, /// OTEL configuration (exporter type, endpoint, headers, etc.). - pub otel: crate::config_types::OtelConfig, + pub otel: OtelConfig, } impl Config { @@ -284,7 +289,7 @@ impl Config { let root_value = load_resolved_config( &codex_home, cli_overrides, - crate::config_loader::LoaderOverrides::default(), + crate::config::loader::LoaderOverrides::default(), ) .await?; @@ -304,7 +309,7 @@ pub async fn load_config_as_toml_with_cli_overrides( let root_value = load_resolved_config( codex_home, cli_overrides, - crate::config_loader::LoaderOverrides::default(), + crate::config::loader::LoaderOverrides::default(), ) .await?; @@ -319,7 +324,7 @@ pub async fn load_config_as_toml_with_cli_overrides( async fn load_resolved_config( codex_home: &Path, cli_overrides: Vec<(String, TomlValue)>, - overrides: crate::config_loader::LoaderOverrides, + overrides: crate::config::loader::LoaderOverrides, ) -> std::io::Result { let layers = load_config_layers_with_overrides(codex_home, overrides).await?; Ok(apply_overlays(layers, cli_overrides)) @@ -964,13 +969,13 @@ pub struct ConfigToml { pub disable_paste_burst: Option, /// OTEL configuration. - pub otel: Option, + pub otel: Option, /// Tracks whether the Windows onboarding screen has been acknowledged. pub windows_wsl_setup_acknowledged: Option, /// Collection of in-product notices (different from notifications) - /// See [`crate::config_types::Notices`] for more details + /// See [`crate::config::types::Notices`] for more details pub notice: Option, /// Legacy, now use features @@ -1579,8 +1584,8 @@ pub fn log_dir(cfg: &Config) -> std::io::Result { #[cfg(test)] mod tests { - use crate::config_types::HistoryPersistence; - use crate::config_types::Notifications; + use crate::config::types::HistoryPersistence; + use crate::config::types::Notifications; use crate::features::Feature; use super::*; @@ -2067,7 +2072,7 @@ trust_level = "trusted" std::fs::write(&config_path, "mcp_oauth_credentials_store = \"file\"\n")?; std::fs::write(&managed_path, "mcp_oauth_credentials_store = \"keyring\"\n")?; - let overrides = crate::config_loader::LoaderOverrides { + let overrides = crate::config::loader::LoaderOverrides { managed_config_path: Some(managed_path.clone()), #[cfg(target_os = "macos")] managed_preferences_base64: None, @@ -2173,7 +2178,7 @@ trust_level = "trusted" )?; std::fs::write(&managed_path, "model = \"managed_config\"\n")?; - let overrides = crate::config_loader::LoaderOverrides { + let overrides = crate::config::loader::LoaderOverrides { managed_config_path: Some(managed_path), #[cfg(target_os = "macos")] managed_preferences_base64: None, @@ -3470,7 +3475,7 @@ trust_level = "trusted" #[cfg(test)] mod notifications_tests { - use crate::config_types::Notifications; + use crate::config::types::Notifications; use assert_matches::assert_matches; use serde::Deserialize; diff --git a/codex-rs/core/src/config_profile.rs b/codex-rs/core/src/config/profile.rs similarity index 100% rename from codex-rs/core/src/config_profile.rs rename to codex-rs/core/src/config/profile.rs diff --git a/codex-rs/core/src/config_types.rs b/codex-rs/core/src/config/types.rs similarity index 100% rename from codex-rs/core/src/config_types.rs rename to codex-rs/core/src/config/types.rs diff --git a/codex-rs/core/src/exec_env.rs b/codex-rs/core/src/exec_env.rs index 88246b063c..11334896bf 100644 --- a/codex-rs/core/src/exec_env.rs +++ b/codex-rs/core/src/exec_env.rs @@ -1,6 +1,6 @@ -use crate::config_types::EnvironmentVariablePattern; -use crate::config_types::ShellEnvironmentPolicy; -use crate::config_types::ShellEnvironmentPolicyInherit; +use crate::config::types::EnvironmentVariablePattern; +use crate::config::types::ShellEnvironmentPolicy; +use crate::config::types::ShellEnvironmentPolicyInherit; use std::collections::HashMap; use std::collections::HashSet; @@ -71,7 +71,7 @@ where #[cfg(test)] mod tests { use super::*; - use crate::config_types::ShellEnvironmentPolicyInherit; + use crate::config::types::ShellEnvironmentPolicyInherit; use maplit::hashmap; fn make_vars(pairs: &[(&str, &str)]) -> Vec<(String, String)> { diff --git a/codex-rs/core/src/features.rs b/codex-rs/core/src/features.rs index 269a445203..ccccf06eec 100644 --- a/codex-rs/core/src/features.rs +++ b/codex-rs/core/src/features.rs @@ -6,7 +6,7 @@ //! container attached to `Config`. use crate::config::ConfigToml; -use crate::config_profile::ConfigProfile; +use crate::config::profile::ConfigProfile; use serde::Deserialize; use std::collections::BTreeMap; use std::collections::BTreeSet; diff --git a/codex-rs/core/src/lib.rs b/codex-rs/core/src/lib.rs index f7d86c41a5..e29eef567a 100644 --- a/codex-rs/core/src/lib.rs +++ b/codex-rs/core/src/lib.rs @@ -16,10 +16,7 @@ mod codex_conversation; pub use codex_conversation::CodexConversation; mod command_safety; pub mod config; -pub mod config_edit; pub mod config_loader; -pub mod config_profile; -pub mod config_types; mod conversation_history; pub mod custom_prompts; mod environment_context; diff --git a/codex-rs/core/src/mcp/auth.rs b/codex-rs/core/src/mcp/auth.rs index 8718898e66..e321a857bb 100644 --- a/codex-rs/core/src/mcp/auth.rs +++ b/codex-rs/core/src/mcp/auth.rs @@ -7,8 +7,8 @@ use codex_rmcp_client::determine_streamable_http_auth_status; use futures::future::join_all; use tracing::warn; -use crate::config_types::McpServerConfig; -use crate::config_types::McpServerTransportConfig; +use crate::config::types::McpServerConfig; +use crate::config::types::McpServerTransportConfig; #[derive(Debug, Clone)] pub struct McpAuthStatusEntry { diff --git a/codex-rs/core/src/mcp_connection_manager.rs b/codex-rs/core/src/mcp_connection_manager.rs index ebe17d2c25..11a73c0b07 100644 --- a/codex-rs/core/src/mcp_connection_manager.rs +++ b/codex-rs/core/src/mcp_connection_manager.rs @@ -37,8 +37,8 @@ use tokio::task::JoinSet; use tracing::info; use tracing::warn; -use crate::config_types::McpServerConfig; -use crate::config_types::McpServerTransportConfig; +use crate::config::types::McpServerConfig; +use crate::config::types::McpServerTransportConfig; /// Delimiter used to separate the server name from the tool name in a fully /// qualified tool name. diff --git a/codex-rs/core/src/message_history.rs b/codex-rs/core/src/message_history.rs index d102b2ef7c..e96d8d5026 100644 --- a/codex-rs/core/src/message_history.rs +++ b/codex-rs/core/src/message_history.rs @@ -28,7 +28,7 @@ use tokio::fs; use tokio::io::AsyncReadExt; use crate::config::Config; -use crate::config_types::HistoryPersistence; +use crate::config::types::HistoryPersistence; use codex_protocol::ConversationId; #[cfg(unix)] diff --git a/codex-rs/core/src/model_family.rs b/codex-rs/core/src/model_family.rs index 76ed81b0c2..d6da1b05c4 100644 --- a/codex-rs/core/src/model_family.rs +++ b/codex-rs/core/src/model_family.rs @@ -1,4 +1,4 @@ -use crate::config_types::ReasoningSummaryFormat; +use crate::config::types::ReasoningSummaryFormat; use crate::tools::handlers::apply_patch::ApplyPatchToolType; /// The `instructions` field in the payload sent to a model should always start diff --git a/codex-rs/core/src/otel_init.rs b/codex-rs/core/src/otel_init.rs index e7175edc7f..5931d7caf9 100644 --- a/codex-rs/core/src/otel_init.rs +++ b/codex-rs/core/src/otel_init.rs @@ -1,6 +1,6 @@ use crate::config::Config; -use crate::config_types::OtelExporterKind as Kind; -use crate::config_types::OtelHttpProtocol as Protocol; +use crate::config::types::OtelExporterKind as Kind; +use crate::config::types::OtelHttpProtocol as Protocol; use crate::default_client::originator; use codex_otel::config::OtelExporter; use codex_otel::config::OtelHttpProtocol;