| use codex_code_mode_protocol::CodeModeToolKind; |
| use codex_code_mode_protocol::ExecuteRequest; |
| use codex_code_mode_protocol::FunctionCallOutputContentItem; |
| use codex_code_mode_protocol::ImageDetail; |
| use codex_code_mode_protocol::ToolDefinition; |
| use codex_protocol::ToolName; |
|
|
| use crate::session_runtime::CreateCellRequest as CellRequest; |
| use crate::session_runtime::ImageDetail as CellImageDetail; |
| use crate::session_runtime::OutputItem as CellOutputItem; |
| use crate::session_runtime::ToolKind as CellToolKind; |
|
|
| pub(super) fn runtime_request(request: CellRequest) -> ExecuteRequest { |
| ExecuteRequest { |
| tool_call_id: request.tool_call_id, |
| enabled_tools: request |
| .enabled_tools |
| .into_iter() |
| .map(|definition| ToolDefinition { |
| name: definition.name, |
| tool_name: ToolName { |
| name: definition.tool_name.name, |
| namespace: definition.tool_name.namespace, |
| }, |
| description: definition.description, |
| kind: match definition.kind { |
| CellToolKind::Function => CodeModeToolKind::Function, |
| CellToolKind::Freeform => CodeModeToolKind::Freeform, |
| }, |
| input_schema: None, |
| output_schema: None, |
| }) |
| .collect(), |
| source: request.source, |
| yield_time_ms: None, |
| max_output_tokens: None, |
| } |
| } |
|
|
| pub(super) fn cell_tool_kind(kind: CodeModeToolKind) -> CellToolKind { |
| match kind { |
| CodeModeToolKind::Function => CellToolKind::Function, |
| CodeModeToolKind::Freeform => CellToolKind::Freeform, |
| } |
| } |
|
|
| pub(super) fn output_item(item: FunctionCallOutputContentItem) -> CellOutputItem { |
| match item { |
| FunctionCallOutputContentItem::InputText { text } => CellOutputItem::Text { text }, |
| FunctionCallOutputContentItem::InputImage { image_url, detail } => CellOutputItem::Image { |
| image_url, |
| detail: detail.map(|detail| match detail { |
| ImageDetail::Auto => CellImageDetail::Auto, |
| ImageDetail::Low => CellImageDetail::Low, |
| ImageDetail::High => CellImageDetail::High, |
| ImageDetail::Original => CellImageDetail::Original, |
| }), |
| }, |
| FunctionCallOutputContentItem::InputAudio { audio_url } => { |
| CellOutputItem::Audio { audio_url } |
| } |
| } |
| } |
|
|