1111
1212from a2a .client import A2ACardResolver , ClientConfig , create_client
1313from a2a .types import Message , Part , Role , SendMessageRequest , TaskState
14+ from a2a .utils import get_artifact_text , get_message_text
1415from a2a .utils .agent_card import display_agent_card
1516
1617
17- async def _handle_stream ( # noqa: PLR0912
18+ async def _handle_stream (
1819 stream : Any , current_task_id : str | None
1920) -> str | None :
2021 async for event in stream :
2122 if event .HasField ('message' ):
22- print ('Message:' , end = ' ' )
23- for part in event .message .parts :
24- if part .text :
25- print (part .text , end = ' ' )
26- print ()
23+ print ('Message:' , get_message_text (event .message , delimiter = ' ' ))
2724 return None
2825
2926 if not current_task_id :
@@ -36,12 +33,15 @@ async def _handle_stream( # noqa: PLR0912
3633
3734 if event .HasField ('status_update' ):
3835 state_name = TaskState .Name (event .status_update .status .state )
39- print (f'TaskStatusUpdate [state={ state_name } ]:' , end = ' ' )
40- if event .status_update .status .HasField ('message' ):
41- for part in event .status_update .status .message .parts :
42- if part .text :
43- print (part .text , end = ' ' )
44- print ()
36+ message_text = (
37+ ': '
38+ + get_message_text (
39+ event .status_update .status .message , delimiter = ' '
40+ )
41+ if event .status_update .status .HasField ('message' )
42+ else ''
43+ )
44+ print (f'TaskStatusUpdate [state={ state_name } ]{ message_text } ' )
4545 if state_name in (
4646 'TASK_STATE_COMPLETED' ,
4747 'TASK_STATE_FAILED' ,
@@ -53,12 +53,10 @@ async def _handle_stream( # noqa: PLR0912
5353 elif event .HasField ('artifact_update' ):
5454 print (
5555 f'TaskArtifactUpdate [name={ event .artifact_update .artifact .name } ]:' ,
56- end = ' ' ,
56+ get_artifact_text (
57+ event .artifact_update .artifact , delimiter = ' '
58+ ),
5759 )
58- for part in event .artifact_update .artifact .parts :
59- if part .text :
60- print (part .text , end = ' ' )
61- print ()
6260 return current_task_id
6361
6462
0 commit comments