Codex: remove ask-for-approval flag (#771)

This commit is contained in:
Solomon
2025-09-18 15:17:02 +01:00
committed by GitHub
parent c60c1a8f77
commit 9810de7d00
4 changed files with 2 additions and 36 deletions

View File

@@ -43,17 +43,6 @@ pub enum SandboxMode {
DangerFullAccess,
}
/// Approval policy for Codex
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, TS, AsRefStr, JsonSchema)]
#[serde(rename_all = "kebab-case")]
#[strum(serialize_all = "kebab-case")]
pub enum ApprovalPolicy {
Untrusted,
OnFailure,
OnRequest,
Never,
}
/// Reasoning effort for the underlying model
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, TS, JsonSchema, AsRefStr)]
#[serde(rename_all = "kebab-case")]
@@ -82,8 +71,6 @@ 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>,
@@ -100,16 +87,12 @@ impl Codex {
let mut builder = CommandBuilder::new("npx -y @openai/codex@latest exec")
.params(["--json", "--skip-git-repo-check"]);
if let Some(approval) = &self.approval {
builder = builder.extend_params(["--ask-for-approval", approval.as_ref()]);
}
if let Some(sandbox) = &self.sandbox {
if sandbox == &SandboxMode::Auto {
builder = builder.extend_params(["--full-auto"]);
} else {
builder = builder.extend_params(["--sandbox", sandbox.as_ref()]);
if sandbox == &SandboxMode::DangerFullAccess && self.approval.is_none() {
if sandbox == &SandboxMode::DangerFullAccess {
builder = builder.extend_params(["--dangerously-bypass-approvals-and-sandbox"]);
}
}

View File

@@ -73,7 +73,6 @@ 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::codex::ReasoningEffort::decl(),
executors::executors::codex::ReasoningSummary::decl(),
executors::executors::cursor::Cursor::decl(),

View File

@@ -25,20 +25,6 @@
null
]
},
"approval": {
"description": "Approval policy for Codex",
"type": [
"string",
"null"
],
"enum": [
"untrusted",
"on-failure",
"on-request",
"never",
null
]
},
"oss": {
"type": [
"boolean",

View File

@@ -146,12 +146,10 @@ export type GeminiModel = "default" | "flash";
export type Amp = { append_prompt: AppendPrompt, dangerously_allow_all?: boolean | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type Codex = { append_prompt: AppendPrompt, sandbox?: SandboxMode | null, approval?: ApprovalPolicy | null, oss?: boolean | null, model?: string | null, model_reasoning_effort?: ReasoningEffort | null, model_reasoning_summary?: ReasoningSummary | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type Codex = { append_prompt: AppendPrompt, sandbox?: SandboxMode | null, oss?: boolean | null, model?: string | null, model_reasoning_effort?: ReasoningEffort | null, model_reasoning_summary?: ReasoningSummary | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
export type SandboxMode = "auto" | "read-only" | "workspace-write" | "danger-full-access";
export type ApprovalPolicy = "untrusted" | "on-failure" | "on-request" | "never";
export type ReasoningEffort = "low" | "medium" | "high";
export type ReasoningSummary = "auto" | "concise" | "detailed" | "none";