@@ -482,7 +482,7 @@ async def _process_streaming_request(
482482 request_obj , context
483483 )
484484
485- return await self ._create_response (context , handler_result )
485+ return self ._create_response (context , handler_result )
486486
487487 async def _process_non_streaming_request (
488488 self ,
@@ -562,9 +562,9 @@ async def _process_non_streaming_request(
562562 )
563563 return self ._generate_error_response (request_id , error )
564564
565- return await self ._create_response (context , handler_result )
565+ return self ._create_response (context , handler_result )
566566
567- async def _create_response (
567+ def _create_response (
568568 self ,
569569 context : ServerCallContext ,
570570 handler_result : AsyncGenerator [dict [str , Any ]] | dict [str , Any ],
@@ -587,35 +587,15 @@ async def _create_response(
587587 if exts := context .activated_extensions :
588588 headers [HTTP_EXTENSION_HEADER ] = ', ' .join (sorted (exts ))
589589 if isinstance (handler_result , AsyncGenerator ):
590- try :
591- # Prime to see if it fails upfront
592- first_item = await handler_result .__anext__ ()
593- except StopAsyncIteration :
594-
595- async def empty_generator () -> AsyncGenerator [dict [str , str ], None ]:
596- if False :
597- yield {}
598-
599- return EventSourceResponse (empty_generator (), headers = headers )
600- except Exception as e :
601- logger .debug ('Upfront exception in streaming handler: %s' , e )
602- if not isinstance (e , A2AError | JSONRPCError ):
603- e = InternalError (message = str (e ))
604- request_id = context .state .get ('request_id' )
605- error_payload = build_error_response (request_id , e )
606- return JSONResponse (error_payload , headers = headers )
607-
608590 # Result is a stream of dict objects
609591 async def event_generator (
610592 stream : AsyncGenerator [dict [str , Any ]],
611- first_item : dict [str , Any ],
612- ) -> AsyncGenerator [dict [str , str ], None ]:
613- yield {'data' : json .dumps (first_item )}
593+ ) -> AsyncGenerator [dict [str , str ]]:
614594 async for item in stream :
615595 yield {'data' : json .dumps (item )}
616596
617597 return EventSourceResponse (
618- event_generator (handler_result , first_item ), headers = headers
598+ event_generator (handler_result ), headers = headers
619599 )
620600
621601 # handler_result is a dict (JSON-RPC response)
0 commit comments