core/src/user_shell_command.rs
41 lines
use codex_protocol::exec_output::ExecToolCallOutput;use codex_protocol::models::ResponseItem;use crate::context::ContextualUserFragment;use crate::context::UserShellCommand;use crate::session::turn_context::TurnContext;use crate::tools::format_exec_output_str;fn user_shell_command_fragment( command: &str, exec_output: &ExecToolCallOutput, turn_context: &TurnContext,) -> UserShellCommand { let output = format_exec_output_str(exec_output, turn_context.truncation_policy); UserShellCommand::new(command, exec_output.exit_code, exec_output.duration, output)}#[cfg(test)]pub fn format_user_shell_command_record( command: &str, exec_output: &ExecToolCallOutput, turn_context: &TurnContext,) -> String { user_shell_command_fragment(command, exec_output, turn_context).render()}pub fn user_shell_command_record_item( command: &str, exec_output: &ExecToolCallOutput, turn_context: &TurnContext,) -> ResponseItem { ContextualUserFragment::into(user_shell_command_fragment( command, exec_output, turn_context, ))}#[cfg(test)]#[path = "user_shell_command_tests.rs"]mod tests;