3131 DefaultServerCallContextBuilder ,
3232 ServerCallContextBuilder ,
3333)
34- from a2a .types import A2ARequest
3534from a2a .types .a2a_pb2 import (
3635 AgentCard ,
3736 CancelTaskRequest ,
@@ -341,7 +340,7 @@ async def handle_requests(self, request: Request) -> Response: # noqa: PLR0911,
341340 else :
342341 try :
343342 raw_result = await self ._process_non_streaming_request (
344- request_id , specific_request , call_context
343+ specific_request , call_context
345344 )
346345 handler_result = JSONRPC20Response (
347346 result = raw_result , _id = request_id
@@ -377,7 +376,7 @@ async def handle_requests(self, request: Request) -> Response: # noqa: PLR0911,
377376 async def _process_streaming_request (
378377 self ,
379378 request_id : str | int | None ,
380- request_obj : A2ARequest ,
379+ request_obj : Any ,
381380 context : ServerCallContext ,
382381 ) -> AsyncGenerator [dict [str , Any ], None ]:
383382 """Processes streaming requests (SendStreamingMessage or SubscribeToTask).
@@ -391,11 +390,12 @@ async def _process_streaming_request(
391390 An `AsyncGenerator` object to stream results to the client.
392391 """
393392 stream : AsyncGenerator | None = None
394- if isinstance (request_obj , SendMessageRequest ):
393+ method = context .state .get ('method' )
394+ if method == 'SendStreamingMessage' :
395395 stream = self .request_handler .on_message_send_stream (
396396 request_obj , context
397397 )
398- elif isinstance ( request_obj , SubscribeToTaskRequest ) :
398+ elif method == 'SubscribeToTask' :
399399 stream = self .request_handler .on_subscribe_to_task (
400400 request_obj , context
401401 )
@@ -530,55 +530,53 @@ async def _handle_get_extended_agent_card(
530530 @validate_version (constants .PROTOCOL_VERSION_1_0 )
531531 async def _process_non_streaming_request ( # noqa: PLR0911
532532 self ,
533- request_id : str | int | None ,
534- request_obj : A2ARequest ,
533+ request_obj : Any ,
535534 context : ServerCallContext ,
536535 ) -> dict [str , Any ] | None :
537- """Processes non-streaming requests (message/send, tasks/get, tasks/cancel, tasks/pushNotificationConfig/*) .
536+ """Processes non-streaming requests.
538537
539538 Args:
540- request_id: The ID of the request.
541539 request_obj: The proto request message.
542540 context: The ServerCallContext for the request.
543541
544542 Returns:
545543 A dict containing the result or error.
546544 """
547- match request_obj :
548- case SendMessageRequest ():
545+ method = context .state .get ('method' )
546+ match method :
547+ case 'SendMessage' :
549548 return await self ._handle_send_message (request_obj , context )
550- case CancelTaskRequest () :
549+ case 'CancelTask' :
551550 return await self ._handle_cancel_task (request_obj , context )
552- case GetTaskRequest () :
551+ case 'GetTask' :
553552 return await self ._handle_get_task (request_obj , context )
554- case ListTasksRequest () :
553+ case 'ListTasks' :
555554 return await self ._handle_list_tasks (request_obj , context )
556- case TaskPushNotificationConfig () :
555+ case 'CreateTaskPushNotificationConfig' :
557556 return await self ._handle_create_task_push_notification_config (
558557 request_obj , context
559558 )
560- case GetTaskPushNotificationConfigRequest () :
559+ case 'GetTaskPushNotificationConfig' :
561560 return await self ._handle_get_task_push_notification_config (
562561 request_obj , context
563562 )
564- case ListTaskPushNotificationConfigsRequest () :
563+ case 'ListTaskPushNotificationConfigs' :
565564 return await self ._handle_list_task_push_notification_configs (
566565 request_obj , context
567566 )
568- case DeleteTaskPushNotificationConfigRequest () :
569- return await self ._handle_delete_task_push_notification_config (
567+ case 'DeleteTaskPushNotificationConfig' :
568+ await self ._handle_delete_task_push_notification_config (
570569 request_obj , context
571570 )
572- case GetExtendedAgentCardRequest ():
571+ return None
572+ case 'GetExtendedAgentCard' :
573573 return await self ._handle_get_extended_agent_card (
574574 request_obj , context
575575 )
576576 case _:
577- logger .error (
578- 'Unhandled validated request type: %s' , type (request_obj )
579- )
577+ logger .error ('Unhandled method: %s' , method )
580578 raise UnsupportedOperationError (
581- message = f'Request type { type ( request_obj ). __name__ } is unknown .'
579+ message = f'Method { method } is not supported .'
582580 )
583581
584582 def _create_response (
0 commit comments