@@ -5,6 +5,7 @@ use crate::protocol::common::AuthMode;
55use codex_protocol:: account:: PlanType ;
66use codex_protocol:: approvals:: ExecPolicyAmendment as CoreExecPolicyAmendment ;
77use codex_protocol:: approvals:: SandboxCommandAssessment as CoreSandboxCommandAssessment ;
8+ use codex_protocol:: config_types:: ForcedLoginMethod ;
89use codex_protocol:: config_types:: ReasoningSummary ;
910use codex_protocol:: config_types:: Verbosity ;
1011use codex_protocol:: items:: AgentMessageContent as CoreAgentMessageContent ;
@@ -176,6 +177,32 @@ pub struct SandboxWorkspaceWrite {
176177 pub exclude_slash_tmp : bool ,
177178}
178179
180+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , JsonSchema , TS ) ]
181+ #[ serde( rename_all = "snake_case" ) ]
182+ #[ ts( export_to = "v2/" ) ]
183+ pub struct Tools {
184+ pub web_search : Option < bool > ,
185+ pub view_image : Option < bool > ,
186+ }
187+
188+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , JsonSchema , TS ) ]
189+ #[ serde( rename_all = "snake_case" ) ]
190+ #[ ts( export_to = "v2/" ) ]
191+ pub struct Profile {
192+ pub model : Option < String > ,
193+ pub model_provider : Option < String > ,
194+ #[ serde(
195+ default ,
196+ deserialize_with = "deserialize_approval_policy" ,
197+ serialize_with = "serialize_approval_policy"
198+ ) ]
199+ pub approval_policy : Option < AskForApproval > ,
200+ pub model_reasoning_effort : Option < ReasoningEffort > ,
201+ pub model_reasoning_summary : Option < ReasoningSummary > ,
202+ pub model_verbosity : Option < Verbosity > ,
203+ pub chatgpt_base_url : Option < String > ,
204+ }
205+
179206#[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , JsonSchema , TS ) ]
180207#[ serde( rename_all = "snake_case" ) ]
181208#[ ts( export_to = "v2/" ) ]
@@ -198,6 +225,12 @@ pub struct Config {
198225 ) ]
199226 pub sandbox_mode : Option < SandboxMode > ,
200227 pub sandbox_workspace_write : Option < SandboxWorkspaceWrite > ,
228+ pub forced_chatgpt_workspace_id : Option < String > ,
229+ pub forced_login_method : Option < ForcedLoginMethod > ,
230+ pub tools : Option < Tools > ,
231+ pub profile : Option < String > ,
232+ #[ serde( default ) ]
233+ pub profiles : HashMap < String , Profile > ,
201234 pub instructions : Option < String > ,
202235 pub developer_instructions : Option < String > ,
203236 pub compact_prompt : Option < String > ,
0 commit comments