mirror of
https://github.com/openai/codex.git
synced 2026-05-03 04:42:20 +03:00
refactor: unify zsh fork shell tool with fd-based bridge
This commit is contained in:
@@ -24,6 +24,7 @@ anyhow = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
clap = { workspace = true, features = ["derive"] }
|
||||
codex-core = { workspace = true }
|
||||
codex-shell-exec-bridge = { workspace = true }
|
||||
codex-execpolicy = { workspace = true }
|
||||
codex-protocol = { workspace = true }
|
||||
codex-shell-command = { workspace = true }
|
||||
|
||||
@@ -73,14 +73,20 @@ use tracing_subscriber::EnvFilter;
|
||||
use tracing_subscriber::{self};
|
||||
|
||||
use crate::posix::mcp_escalation_policy::ExecPolicyOutcome;
|
||||
use codex_shell_exec_bridge::ESCALATE_SOCKET_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EscalateAction;
|
||||
use codex_shell_exec_bridge::EscalateRequest;
|
||||
use codex_shell_exec_bridge::EscalateResponse;
|
||||
use codex_shell_exec_bridge::LEGACY_BASH_EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::SuperExecMessage;
|
||||
use codex_shell_exec_bridge::SuperExecResult;
|
||||
|
||||
mod escalate_client;
|
||||
mod escalate_protocol;
|
||||
mod escalate_server;
|
||||
mod escalation_policy;
|
||||
mod mcp;
|
||||
mod mcp_escalation_policy;
|
||||
mod socket;
|
||||
mod stopwatch;
|
||||
|
||||
pub use mcp::ExecResult;
|
||||
|
||||
@@ -4,17 +4,16 @@ use std::os::fd::FromRawFd as _;
|
||||
use std::os::fd::OwnedFd;
|
||||
|
||||
use anyhow::Context as _;
|
||||
|
||||
use crate::posix::escalate_protocol::ESCALATE_SOCKET_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::EXEC_WRAPPER_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::EscalateAction;
|
||||
use crate::posix::escalate_protocol::EscalateRequest;
|
||||
use crate::posix::escalate_protocol::EscalateResponse;
|
||||
use crate::posix::escalate_protocol::LEGACY_BASH_EXEC_WRAPPER_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::SuperExecMessage;
|
||||
use crate::posix::escalate_protocol::SuperExecResult;
|
||||
use crate::posix::socket::AsyncDatagramSocket;
|
||||
use crate::posix::socket::AsyncSocket;
|
||||
use codex_shell_exec_bridge::AsyncDatagramSocket;
|
||||
use codex_shell_exec_bridge::AsyncSocket;
|
||||
use codex_shell_exec_bridge::ESCALATE_SOCKET_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EscalateAction;
|
||||
use codex_shell_exec_bridge::EscalateRequest;
|
||||
use codex_shell_exec_bridge::EscalateResponse;
|
||||
use codex_shell_exec_bridge::LEGACY_BASH_EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::SuperExecMessage;
|
||||
use codex_shell_exec_bridge::SuperExecResult;
|
||||
|
||||
fn get_escalate_client() -> anyhow::Result<AsyncDatagramSocket> {
|
||||
// TODO: we should defensively require only calling this once, since AsyncSocket will take ownership of the fd.
|
||||
|
||||
@@ -12,21 +12,21 @@ use codex_core::SandboxState;
|
||||
use codex_core::exec::process_exec_tool_call;
|
||||
use codex_core::sandboxing::SandboxPermissions;
|
||||
use codex_protocol::config_types::WindowsSandboxLevel;
|
||||
use codex_shell_exec_bridge::AsyncDatagramSocket;
|
||||
use codex_shell_exec_bridge::AsyncSocket;
|
||||
use codex_shell_exec_bridge::ESCALATE_SOCKET_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::EscalateAction;
|
||||
use codex_shell_exec_bridge::EscalateRequest;
|
||||
use codex_shell_exec_bridge::EscalateResponse;
|
||||
use codex_shell_exec_bridge::LEGACY_BASH_EXEC_WRAPPER_ENV_VAR;
|
||||
use codex_shell_exec_bridge::SuperExecMessage;
|
||||
use codex_shell_exec_bridge::SuperExecResult;
|
||||
use tokio::process::Command;
|
||||
use tokio_util::sync::CancellationToken;
|
||||
|
||||
use crate::posix::escalate_protocol::ESCALATE_SOCKET_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::EXEC_WRAPPER_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::EscalateAction;
|
||||
use crate::posix::escalate_protocol::EscalateRequest;
|
||||
use crate::posix::escalate_protocol::EscalateResponse;
|
||||
use crate::posix::escalate_protocol::LEGACY_BASH_EXEC_WRAPPER_ENV_VAR;
|
||||
use crate::posix::escalate_protocol::SuperExecMessage;
|
||||
use crate::posix::escalate_protocol::SuperExecResult;
|
||||
use crate::posix::escalation_policy::EscalationPolicy;
|
||||
use crate::posix::mcp::ExecParams;
|
||||
use crate::posix::socket::AsyncDatagramSocket;
|
||||
use crate::posix::socket::AsyncSocket;
|
||||
use codex_core::exec::ExecExpiration;
|
||||
|
||||
pub(crate) struct EscalateServer {
|
||||
|
||||
Reference in New Issue
Block a user