diff --git a/litellm/llms/gemini/realtime/transformation.py b/litellm/llms/gemini/realtime/transformation.py index 8f67f3f34a3..3473e323746 100644 --- a/litellm/llms/gemini/realtime/transformation.py +++ b/litellm/llms/gemini/realtime/transformation.py @@ -1122,6 +1122,22 @@ class GeminiRealtimeConfig(BaseRealtimeConfig): }) # response.function_call_arguments.done returned_message.append(tool_call) + # response.output_item.done + returned_message.append({ + "type": "response.output_item.done", + "event_id": f"event_{uuid.uuid4()}", + "response_id": current_response_id, + "output_index": idx, + "item": { + "id": item_id, + "object": "realtime.item", + "type": "function_call", + "status": "completed", + "call_id": tool_call["call_id"], + "name": tool_call["name"], + "arguments": tool_call["arguments"], + }, + }) # conversation.item.created returned_message.append({ "type": "conversation.item.created", diff --git a/tests/test_litellm/llms/gemini/realtime/test_gemini_realtime_transformation.py b/tests/test_litellm/llms/gemini/realtime/test_gemini_realtime_transformation.py index 17aea5faf61..a8a53fb52e5 100644 --- a/tests/test_litellm/llms/gemini/realtime/test_gemini_realtime_transformation.py +++ b/tests/test_litellm/llms/gemini/realtime/test_gemini_realtime_transformation.py @@ -655,13 +655,18 @@ def test_gemini_tool_call_emits_response_created_preamble(): ) responses = result["response"] - # Should have: response.created, output_item.added, function_call_arguments.done, conversation.item.created - assert len(responses) >= 4 + # Should have: response.created, output_item.added, function_call_arguments.done, output_item.done, conversation.item.created + assert len(responses) >= 5 assert responses[0]["type"] == "response.created" assert "response" in responses[0] assert responses[0]["response"]["status"] == "in_progress" assert responses[1]["type"] == "response.output_item.added" assert responses[1]["item"]["type"] == "function_call" + assert responses[1]["item"]["status"] == "in_progress" assert responses[2]["type"] == "response.function_call_arguments.done" - assert responses[3]["type"] == "conversation.item.created" + assert responses[3]["type"] == "response.output_item.done" assert responses[3]["item"]["type"] == "function_call" + assert responses[3]["item"]["status"] == "completed" + assert responses[4]["type"] == "conversation.item.created" + assert responses[4]["item"]["type"] == "function_call" + assert responses[4]["item"]["status"] == "completed"