From fc52274836eac57492d2da50c5deed4f7d571e5a Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 16 Dec 2025 17:44:30 -0800 Subject: [PATCH] fix: handle MessageContent enum in responses API conversion - Update request.rs to handle new MessageContent enum structure from main - MessageContent can now be Text(String) or Items(Vec) - Handle new InputItem variants (ItemReference, FunctionCallOutput) - Fixes compilation error after merging latest main (#632) --- crates/hermesllm/src/providers/request.rs | 29 +++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/crates/hermesllm/src/providers/request.rs b/crates/hermesllm/src/providers/request.rs index 212d6eb1..f8d26f68 100644 --- a/crates/hermesllm/src/providers/request.rs +++ b/crates/hermesllm/src/providers/request.rs @@ -220,16 +220,21 @@ impl ProviderRequestType { }; // Extract text from message content - let content = msg.content.iter() - .filter_map(|c| { - if let crate::apis::openai_responses::InputContent::InputText { text } = c { - Some(text.clone()) - } else { - None - } - }) - .collect::>() - .join("\n"); + let content = match &msg.content { + crate::apis::openai_responses::MessageContent::Text(text) => text.clone(), + crate::apis::openai_responses::MessageContent::Items(items) => { + items.iter() + .filter_map(|c| { + if let crate::apis::openai_responses::InputContent::InputText { text } = c { + Some(text.clone()) + } else { + None + } + }) + .collect::>() + .join("\n") + } + }; openai_messages.push(Message { role, @@ -239,6 +244,10 @@ impl ProviderRequestType { tool_call_id: None, }); } + // Skip other input item types for now + InputItem::ItemReference { .. } | InputItem::FunctionCallOutput { .. } => { + // These are not yet supported in agent framework + } } } }