Codex Handbook
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;