Skip to content

Commit ede4d0b

Browse files
Merge branch '1.0-dev' into guglielmoc/remove_unused_imports
2 parents 8c1d032 + 677bb71 commit ede4d0b

2 files changed

Lines changed: 388 additions & 24 deletions

File tree

src/a2a/server/routes/jsonrpc_dispatcher.py

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
DefaultServerCallContextBuilder,
3232
ServerCallContextBuilder,
3333
)
34-
from a2a.types import A2ARequest
3534
from 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

Comments
 (0)