@@ -52,26 +52,48 @@ async def execute(self, context: RequestContext, event_queue: EventQueue) -> Non
5252 updater = TaskUpdater (event_queue , task .id , task .context_id )
5353
5454 async for item in self .agent .stream (query , task .context_id ):
55- content = item ["content" ]
5655 final_parts = []
57-
58- if "---a2ui_JSON---" in content :
59- text_content , json_string = content .split ("---a2ui_JSON---" , 1 )
60- if text_content .strip ():
61- final_parts .append (Part (root = TextPart (text = text_content .strip ())))
56+
57+ if "payload" in item :
58+ payload = item ["payload" ]
59+ text = payload .get ("text" )
60+ if text :
61+ final_parts .append (Part (root = TextPart (text = text )))
62+
63+ json_data = payload .get ("json_data" )
64+ json_string = payload .get ("json_string" )
6265
63- if json_string . strip () :
66+ if json_string :
6467 try :
65- json_data = json .loads (json_string .strip ())
66- if isinstance (json_data , list ):
67- for msg in json_data :
68- final_parts .append (create_a2ui_part (msg ))
69- else :
70- final_parts .append (create_a2ui_part (json_data ))
68+ json_data = json .loads (json_string )
7169 except Exception as e :
72- logger .error (f"Failed to parse JSON: { e } " )
70+ logger .error (f"Failed to parse JSON string: { e } " )
71+
72+ if json_data :
73+ if isinstance (json_data , list ):
74+ for msg in json_data :
75+ final_parts .append (create_a2ui_part (msg ))
76+ else :
77+ final_parts .append (create_a2ui_part (json_data ))
7378 else :
74- final_parts .append (Part (root = TextPart (text = content )))
79+ content = item .get ("content" , "" )
80+ if "---a2ui_JSON---" in content :
81+ text_content , json_string = content .split ("---a2ui_JSON---" , 1 )
82+ if text_content .strip ():
83+ final_parts .append (Part (root = TextPart (text = text_content .strip ())))
84+
85+ if json_string .strip ():
86+ try :
87+ json_data = json .loads (json_string .strip ())
88+ if isinstance (json_data , list ):
89+ for msg in json_data :
90+ final_parts .append (create_a2ui_part (msg ))
91+ else :
92+ final_parts .append (create_a2ui_part (json_data ))
93+ except Exception as e :
94+ logger .error (f"Failed to parse JSON: { e } " )
95+ elif content :
96+ final_parts .append (Part (root = TextPart (text = content )))
7597
7698 await updater .update_status (
7799 TaskState .completed ,
0 commit comments