fix: Codex YOLO mode (#627)

This commit is contained in:
Solomon
2025-09-04 16:21:36 +01:00
committed by GitHub
parent 18a9ff770e
commit c31239c6fa
3 changed files with 20 additions and 1 deletions

View File

@@ -38,6 +38,17 @@ pub enum SandboxMode {
DangerFullAccess,
}
/// Approval policy for Codex
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, TS, AsRefStr)]
#[serde(rename_all = "kebab-case")]
#[strum(serialize_all = "kebab-case")]
pub enum ApprovalPolicy {
Untrusted,
OnFailure,
OnRequest,
Never,
}
/// Handles session management for Codex executor
pub struct SessionHandler;
@@ -198,6 +209,8 @@ pub struct Codex {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sandbox: Option<SandboxMode>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub approval: Option<ApprovalPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oss: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
@@ -212,6 +225,9 @@ impl Codex {
if let Some(sandbox) = &self.sandbox {
builder = builder.extend_params(["--sandbox", sandbox.as_ref()]);
if sandbox == &SandboxMode::DangerFullAccess && self.approval.is_none() {
builder = builder.extend_params(["--dangerously-bypass-approvals-and-sandbox"]);
}
}
if self.oss.unwrap_or(false) {

View File

@@ -70,6 +70,7 @@ fn generate_types_content() -> String {
executors::executors::amp::Amp::decl(),
executors::executors::codex::Codex::decl(),
executors::executors::codex::SandboxMode::decl(),
executors::executors::codex::ApprovalPolicy::decl(),
executors::executors::cursor::Cursor::decl(),
executors::executors::opencode::Opencode::decl(),
executors::executors::qwen::QwenCode::decl(),

View File

@@ -142,10 +142,12 @@ export type GeminiModel = "default" | "flash";
export type Amp = { append_prompt?: string | null, dangerously_allow_all?: boolean | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type Codex = { append_prompt?: string | null, sandbox?: SandboxMode | null, oss?: boolean | null, model?: string | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type Codex = { append_prompt?: string | null, sandbox?: SandboxMode | null, approval?: ApprovalPolicy | null, oss?: boolean | null, model?: string | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type SandboxMode = "read-only" | "workspace-write" | "danger-full-access";
export type ApprovalPolicy = "untrusted" | "on-failure" | "on-request" | "never";
export type Cursor = { append_prompt?: string | null, force?: boolean | null, model?: string | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type Opencode = { append_prompt?: string | null, model?: string | null, agent?: string | null, base_command_override?: string | null, additional_params?: Array<string> | null, };