[mcp-server] Support CodexToolCallApprovalPolicy::OnRequest (#2187)

## Summary
#1865 added `AskForApproval::OnRequest`, but missed adding it to our
custom struct in `mcp-server`. This adds the missing configuration

## Testing
- [x] confirmed locally
This commit is contained in:
Dylan
2025-08-11 11:38:47 -07:00
committed by GitHub
parent 7f6408720b
commit c6b46fe220

View File

@@ -34,7 +34,7 @@ pub struct CodexToolCallParam {
pub cwd: Option<String>, pub cwd: Option<String>,
/// Approval policy for shell commands generated by the model: /// Approval policy for shell commands generated by the model:
/// `untrusted`, `on-failure`, `never`. /// `untrusted`, `on-failure`, `on-request`, `never`.
#[serde(default, skip_serializing_if = "Option::is_none")] #[serde(default, skip_serializing_if = "Option::is_none")]
pub approval_policy: Option<CodexToolCallApprovalPolicy>, pub approval_policy: Option<CodexToolCallApprovalPolicy>,
@@ -63,6 +63,7 @@ pub struct CodexToolCallParam {
pub enum CodexToolCallApprovalPolicy { pub enum CodexToolCallApprovalPolicy {
Untrusted, Untrusted,
OnFailure, OnFailure,
OnRequest,
Never, Never,
} }
@@ -71,6 +72,7 @@ impl From<CodexToolCallApprovalPolicy> for AskForApproval {
match value { match value {
CodexToolCallApprovalPolicy::Untrusted => AskForApproval::UnlessTrusted, CodexToolCallApprovalPolicy::Untrusted => AskForApproval::UnlessTrusted,
CodexToolCallApprovalPolicy::OnFailure => AskForApproval::OnFailure, CodexToolCallApprovalPolicy::OnFailure => AskForApproval::OnFailure,
CodexToolCallApprovalPolicy::OnRequest => AskForApproval::OnRequest,
CodexToolCallApprovalPolicy::Never => AskForApproval::Never, CodexToolCallApprovalPolicy::Never => AskForApproval::Never,
} }
} }
@@ -244,10 +246,11 @@ mod tests {
"type": "object", "type": "object",
"properties": { "properties": {
"approval-policy": { "approval-policy": {
"description": "Approval policy for shell commands generated by the model: `untrusted`, `on-failure`, `never`.", "description": "Approval policy for shell commands generated by the model: `untrusted`, `on-failure`, `on-request`, `never`.",
"enum": [ "enum": [
"untrusted", "untrusted",
"on-failure", "on-failure",
"on-request",
"never" "never"
], ],
"type": "string" "type": "string"