#34978 [Bug]: Chat-to-Responses bridge always wraps tool output in a list, breaking strict Responses API backends for plain-string tool results
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
### What happened?
When a chat-completions request targets a Responses-API-backed model (e.g. openai/responses/<model>), litellm's convert_chat_completion_messages_to_responses_api() in litellm/completion_extras/litellm_responses_transformation/transformation.py unconditionally wraps every tool message's content into a list of input_text items — even when the content is a plain string with no multimodal parts: ``` elif role == "tool": ... elif isinstance(content, str): # Convert string to list with input_text tool_output = [{"type": "input_text", "text": content}] ... input_items.append( { "type": "function_call_output", "call_id": tool_call_id, "output": tool_output, } ) ``` Per the OpenAI Responses API spec, function_call_output.output is documented as a plain string. Some backends (we hit this against an enterprise OpenAI-compatible gateway) strictly validate this and reject the list form for simple text output.
This behavior was introduced fixing #17507 (list-form tool co…