fix: Codex YOLO mode (#627)
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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, };
|
||||
|
||||
Reference in New Issue
Block a user