Skip to content

Commit 3474612

Browse files
committed
comment
1 parent 00d0399 commit 3474612

File tree

1 file changed

+60
-62
lines changed
  • codex-rs/app-server-protocol/src/protocol

1 file changed

+60
-62
lines changed

codex-rs/app-server-protocol/src/protocol/v2.rs

Lines changed: 60 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use codex_protocol::account::PlanType;
66
use codex_protocol::approvals::ExecPolicyAmendment as CoreExecPolicyAmendment;
77
use codex_protocol::config_types::ForcedLoginMethod;
88
use codex_protocol::config_types::ReasoningSummary;
9+
use codex_protocol::config_types::SandboxMode as CoreSandboxMode;
910
use codex_protocol::config_types::Verbosity;
1011
use codex_protocol::items::AgentMessageContent as CoreAgentMessageContent;
1112
use codex_protocol::items::TurnItem as CoreTurnItem;
@@ -125,17 +126,68 @@ impl From<CoreCodexErrorInfo> for CodexErrorInfo {
125126
}
126127
}
127128

128-
v2_enum_from_core!(
129-
pub enum AskForApproval from codex_protocol::protocol::AskForApproval {
130-
UnlessTrusted, OnFailure, OnRequest, Never
129+
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, JsonSchema, TS)]
130+
#[serde(rename_all = "kebab-case")]
131+
#[ts(rename_all = "kebab-case", export_to = "v2/")]
132+
pub enum AskForApproval {
133+
#[serde(rename = "untrusted")]
134+
#[ts(rename = "untrusted")]
135+
UnlessTrusted,
136+
OnFailure,
137+
OnRequest,
138+
Never,
139+
}
140+
141+
impl AskForApproval {
142+
pub fn to_core(self) -> CoreAskForApproval {
143+
match self {
144+
AskForApproval::UnlessTrusted => CoreAskForApproval::UnlessTrusted,
145+
AskForApproval::OnFailure => CoreAskForApproval::OnFailure,
146+
AskForApproval::OnRequest => CoreAskForApproval::OnRequest,
147+
AskForApproval::Never => CoreAskForApproval::Never,
148+
}
131149
}
132-
);
150+
}
133151

134-
v2_enum_from_core!(
135-
pub enum SandboxMode from codex_protocol::config_types::SandboxMode {
136-
ReadOnly, WorkspaceWrite, DangerFullAccess
152+
impl From<CoreAskForApproval> for AskForApproval {
153+
fn from(value: CoreAskForApproval) -> Self {
154+
match value {
155+
CoreAskForApproval::UnlessTrusted => AskForApproval::UnlessTrusted,
156+
CoreAskForApproval::OnFailure => AskForApproval::OnFailure,
157+
CoreAskForApproval::OnRequest => AskForApproval::OnRequest,
158+
CoreAskForApproval::Never => AskForApproval::Never,
159+
}
137160
}
138-
);
161+
}
162+
163+
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, JsonSchema, TS)]
164+
#[serde(rename_all = "kebab-case")]
165+
#[ts(rename_all = "kebab-case", export_to = "v2/")]
166+
pub enum SandboxMode {
167+
ReadOnly,
168+
WorkspaceWrite,
169+
DangerFullAccess,
170+
}
171+
172+
impl SandboxMode {
173+
pub fn to_core(self) -> CoreSandboxMode {
174+
match self {
175+
SandboxMode::ReadOnly => CoreSandboxMode::ReadOnly,
176+
SandboxMode::WorkspaceWrite => CoreSandboxMode::WorkspaceWrite,
177+
SandboxMode::DangerFullAccess => CoreSandboxMode::DangerFullAccess,
178+
}
179+
}
180+
}
181+
182+
impl From<CoreSandboxMode> for SandboxMode {
183+
fn from(value: CoreSandboxMode) -> Self {
184+
match value {
185+
CoreSandboxMode::ReadOnly => SandboxMode::ReadOnly,
186+
CoreSandboxMode::WorkspaceWrite => SandboxMode::WorkspaceWrite,
187+
CoreSandboxMode::DangerFullAccess => SandboxMode::DangerFullAccess,
188+
}
189+
}
190+
}
139191

140192
v2_enum_from_core!(
141193
pub enum ReviewDelivery from codex_protocol::protocol::ReviewDelivery {
@@ -190,11 +242,6 @@ pub struct ToolsV2 {
190242
pub struct ProfileV2 {
191243
pub model: Option<String>,
192244
pub model_provider: Option<String>,
193-
#[serde(
194-
default,
195-
deserialize_with = "deserialize_approval_policy",
196-
serialize_with = "serialize_approval_policy"
197-
)]
198245
pub approval_policy: Option<AskForApproval>,
199246
pub model_reasoning_effort: Option<ReasoningEffort>,
200247
pub model_reasoning_summary: Option<ReasoningSummary>,
@@ -211,17 +258,7 @@ pub struct Config {
211258
pub model_context_window: Option<i64>,
212259
pub model_auto_compact_token_limit: Option<i64>,
213260
pub model_provider: Option<String>,
214-
#[serde(
215-
default,
216-
deserialize_with = "deserialize_approval_policy",
217-
serialize_with = "serialize_approval_policy"
218-
)]
219261
pub approval_policy: Option<AskForApproval>,
220-
#[serde(
221-
default,
222-
deserialize_with = "deserialize_sandbox_mode",
223-
serialize_with = "serialize_sandbox_mode"
224-
)]
225262
pub sandbox_mode: Option<SandboxMode>,
226263
pub sandbox_workspace_write: Option<SandboxWorkspaceWrite>,
227264
pub forced_chatgpt_workspace_id: Option<String>,
@@ -240,45 +277,6 @@ pub struct Config {
240277
pub additional: HashMap<String, JsonValue>,
241278
}
242279

243-
fn deserialize_approval_policy<'de, D>(deserializer: D) -> Result<Option<AskForApproval>, D::Error>
244-
where
245-
D: serde::Deserializer<'de>,
246-
{
247-
let value = Option::<CoreAskForApproval>::deserialize(deserializer)?;
248-
Ok(value.map(AskForApproval::from))
249-
}
250-
251-
fn serialize_approval_policy<S>(
252-
value: &Option<AskForApproval>,
253-
serializer: S,
254-
) -> Result<S::Ok, S::Error>
255-
where
256-
S: serde::Serializer,
257-
{
258-
value
259-
.as_ref()
260-
.map(|policy| policy.to_core())
261-
.serialize(serializer)
262-
}
263-
264-
fn deserialize_sandbox_mode<'de, D>(deserializer: D) -> Result<Option<SandboxMode>, D::Error>
265-
where
266-
D: serde::Deserializer<'de>,
267-
{
268-
let value = Option::<codex_protocol::config_types::SandboxMode>::deserialize(deserializer)?;
269-
Ok(value.map(SandboxMode::from))
270-
}
271-
272-
fn serialize_sandbox_mode<S>(value: &Option<SandboxMode>, serializer: S) -> Result<S::Ok, S::Error>
273-
where
274-
S: serde::Serializer,
275-
{
276-
value
277-
.as_ref()
278-
.map(|mode| mode.to_core())
279-
.serialize(serializer)
280-
}
281-
282280
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
283281
#[serde(rename_all = "camelCase")]
284282
#[ts(export_to = "v2/")]

0 commit comments

Comments
 (0)