From a596e9c5f29121c46350eec0a83c62a0e00b6c68 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Mon, 27 Oct 2025 02:03:41 -0700 Subject: [PATCH] feat: update NewConversationParams to take an optional model_provider --- codex-rs/app-server-protocol/src/protocol.rs | 5 +++++ codex-rs/app-server/src/codex_message_processor.rs | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/codex-rs/app-server-protocol/src/protocol.rs b/codex-rs/app-server-protocol/src/protocol.rs index 98b16a26e5..74e9b6f9e2 100644 --- a/codex-rs/app-server-protocol/src/protocol.rs +++ b/codex-rs/app-server-protocol/src/protocol.rs @@ -266,6 +266,10 @@ pub struct NewConversationParams { #[serde(skip_serializing_if = "Option::is_none")] pub model: Option, + /// Override the model provider to use for this session. + #[serde(skip_serializing_if = "Option::is_none")] + pub model_provider: Option, + /// Configuration profile from config.toml to specify default options. #[serde(skip_serializing_if = "Option::is_none")] pub profile: Option, @@ -1032,6 +1036,7 @@ mod tests { request_id: RequestId::Integer(42), params: NewConversationParams { model: Some("gpt-5-codex".to_string()), + model_provider: None, profile: None, cwd: None, approval_policy: Some(AskForApproval::OnRequest), diff --git a/codex-rs/app-server/src/codex_message_processor.rs b/codex-rs/app-server/src/codex_message_processor.rs index f6f81173b2..9b66322047 100644 --- a/codex-rs/app-server/src/codex_message_processor.rs +++ b/codex-rs/app-server/src/codex_message_processor.rs @@ -1610,6 +1610,7 @@ async fn derive_config_from_params( ) -> std::io::Result { let NewConversationParams { model, + model_provider, profile, cwd, approval_policy, @@ -1625,7 +1626,7 @@ async fn derive_config_from_params( cwd: cwd.map(PathBuf::from), approval_policy, sandbox_mode, - model_provider: None, + model_provider, codex_linux_sandbox_exe, base_instructions, include_apply_patch_tool,