1111
1212from ag_ui .core import (
1313 EventType , TextMessageStartEvent , TextMessageContentEvent , TextMessageEndEvent ,
14- ToolCallStartEvent , ToolCallArgsEvent , ToolCallEndEvent , StateDeltaEvent , CustomEvent
14+ ToolCallStartEvent , ToolCallArgsEvent , ToolCallEndEvent , ToolCallResultEvent ,
15+ StateDeltaEvent , CustomEvent
1516)
1617from google .adk .events import Event as ADKEvent
1718from ag_ui_adk .event_translator import EventTranslator
@@ -128,11 +129,14 @@ async def test_translate_function_responses_handling(self, translator, mock_adk_
128129
129130 @pytest .mark .asyncio
130131 async def test_translate_function_response_with_call_tool_result_payload (self , translator ):
131- """Ensure CallToolResult payloads are serialized without errors ."""
132+ """Ensure complex CallToolResult payloads are serialized correctly ."""
132133
133134 @dataclass
134135 class TextContent :
135- text : str
136+ type : str = "text"
137+ text : str = ""
138+ annotations : list | None = None
139+ meta : dict | None = None
136140
137141 @dataclass
138142 class CallToolResult :
@@ -149,15 +153,15 @@ class CallToolResult:
149153 ]
150154
151155 payload = CallToolResult (
152- meta = { "source" : "test" } ,
156+ meta = None ,
153157 structuredContent = None ,
154158 isError = False ,
155159 content = [TextContent (text = text ) for text in repeated_text_entries ],
156160 )
157161
158162 function_response = SimpleNamespace (
159163 id = "tool-structured-1" ,
160- response = asdict ( payload ) ,
164+ response = { "result" : payload } ,
161165 )
162166
163167 events = []
@@ -169,9 +173,9 @@ class CallToolResult:
169173 assert isinstance (event , ToolCallResultEvent )
170174
171175 content = json .loads (event .content )
172- assert content ["isError" ] is False
173- assert content ["structuredContent" ] is None
174- assert [item ["text" ] for item in content ["content" ]] == repeated_text_entries
176+ assert content ["result" ][ " isError" ] is False
177+ assert content ["result" ][ " structuredContent" ] is None
178+ assert [item ["text" ] for item in content ["result" ][ " content" ]] == repeated_text_entries
175179
176180 @pytest .mark .asyncio
177181 async def test_translate_state_delta_event (self , translator , mock_adk_event ):
@@ -835,4 +839,4 @@ async def test_partial_streaming_continuation(self, translator, mock_adk_event_w
835839
836840 # Should reset streaming state
837841 assert translator ._is_streaming is False
838- assert translator ._streaming_message_id is None
842+ assert translator ._streaming_message_id is None
0 commit comments