Codex Handbook
tools/src/tool_payload.rs 21 lines
use std::borrow::Cow;use codex_protocol::models::SearchToolCallParams;/// Canonical payload shapes accepted by model-visible tool runtimes.#[derive(Clone, Debug)]pub enum ToolPayload {    Function { arguments: String },    ToolSearch { arguments: SearchToolCallParams },    Custom { input: String },}impl ToolPayload {    pub fn log_payload(&self) -> Cow<'_, str> {        match self {            ToolPayload::Function { arguments } => Cow::Borrowed(arguments),            ToolPayload::ToolSearch { arguments } => Cow::Owned(arguments.query.clone()),            ToolPayload::Custom { input } => Cow::Borrowed(input),        }    }}