From 4ae6b9787a0e6f39bb7b0b01828947db8835daec Mon Sep 17 00:00:00 2001 From: Dylan Date: Fri, 12 Sep 2025 14:24:09 -0400 Subject: [PATCH] standardize shell description (#3514) ## Summary Standardizes the shell description across sandbox_types, since we cover this in the prompt, and have moved necessary details (like network_access and writeable workspace roots) to EnvironmentContext messages. ## Test Plan - [x] updated unit tests --- codex-rs/core/src/openai_tools.rs | 82 ++----------------------------- 1 file changed, 3 insertions(+), 79 deletions(-) diff --git a/codex-rs/core/src/openai_tools.rs b/codex-rs/core/src/openai_tools.rs index ec56fdfd..a511d6dd 100644 --- a/codex-rs/core/src/openai_tools.rs +++ b/codex-rs/core/src/openai_tools.rs @@ -288,58 +288,9 @@ fn create_shell_tool_for_sandbox(sandbox_policy: &SandboxPolicy) -> OpenAiTool { ); } - let description = match sandbox_policy { - SandboxPolicy::WorkspaceWrite { - network_access, - .. - } => { - let network_line = if !network_access { - "\n - Commands that require network access" - } else { - "" - }; - - format!( - r#" -The shell tool is used to execute shell commands. -- When invoking the shell tool, your call will be running in a sandbox, and some shell commands will require escalated privileges: - - Types of actions that require escalated privileges: - - Writing files other than those in the writable roots (see the environment context for the allowed directories){network_line} - - Examples of commands that require escalated privileges: - - git commit - - npm install or pnpm install - - cargo build - - cargo test -- When invoking a command that will require escalated privileges: - - Provide the with_escalated_permissions parameter with the boolean value true - - Include a short, 1 sentence explanation for why we need to run with_escalated_permissions in the justification parameter."#, - ) - } - SandboxPolicy::DangerFullAccess => { - "Runs a shell command and returns its output.".to_string() - } - SandboxPolicy::ReadOnly => { - r#" -The shell tool is used to execute shell commands. -- When invoking the shell tool, your call will be running in a sandbox, and some shell commands (including apply_patch) will require escalated permissions: - - Types of actions that require escalated privileges: - - Writing files - - Applying patches - - Examples of commands that require escalated privileges: - - apply_patch - - git commit - - npm install or pnpm install - - cargo build - - cargo test -- When invoking a command that will require escalated privileges: - - Provide the with_escalated_permissions parameter with the boolean value true - - Include a short, 1 sentence explanation for why we need to run with_escalated_permissions in the justification parameter"#.to_string() - } - }; - OpenAiTool::Function(ResponsesApiTool { name: "shell".to_string(), - description, + description: "Runs a shell command and returns its output.".to_string(), strict: false, parameters: JsonSchema::Object { properties, @@ -1165,20 +1116,7 @@ mod tests { }; assert_eq!(name, "shell"); - let expected = r#" -The shell tool is used to execute shell commands. -- When invoking the shell tool, your call will be running in a sandbox, and some shell commands will require escalated privileges: - - Types of actions that require escalated privileges: - - Writing files other than those in the writable roots (see the environment context for the allowed directories) - - Commands that require network access - - Examples of commands that require escalated privileges: - - git commit - - npm install or pnpm install - - cargo build - - cargo test -- When invoking a command that will require escalated privileges: - - Provide the with_escalated_permissions parameter with the boolean value true - - Include a short, 1 sentence explanation for why we need to run with_escalated_permissions in the justification parameter."#; + let expected = "Runs a shell command and returns its output."; assert_eq!(description, expected); } @@ -1193,21 +1131,7 @@ The shell tool is used to execute shell commands. }; assert_eq!(name, "shell"); - let expected = r#" -The shell tool is used to execute shell commands. -- When invoking the shell tool, your call will be running in a sandbox, and some shell commands (including apply_patch) will require escalated permissions: - - Types of actions that require escalated privileges: - - Writing files - - Applying patches - - Examples of commands that require escalated privileges: - - apply_patch - - git commit - - npm install or pnpm install - - cargo build - - cargo test -- When invoking a command that will require escalated privileges: - - Provide the with_escalated_permissions parameter with the boolean value true - - Include a short, 1 sentence explanation for why we need to run with_escalated_permissions in the justification parameter"#; + let expected = "Runs a shell command and returns its output."; assert_eq!(description, expected); }