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), } }}