1212from starlette .responses import JSONResponse , Response
1313from starlette .routing import Route
1414
15- from a2a .utils .errors import MethodNotImplementedError
16- from a2a .server .request_handlers .jsonrpc_handler import RequestHandler , JSONRPCHandler
17- from a2a .server .events .event_queue import Event
15+ from a2a .server .request_handlers .jsonrpc_handler import (
16+ JSONRPCHandler ,
17+ RequestHandler ,
18+ )
1819from a2a .types import (
1920 A2AError ,
2021 A2ARequest ,
3536 TaskResubscriptionRequest ,
3637 UnsupportedOperationError ,
3738)
39+ from a2a .utils .errors import MethodNotImplementedError
3840
3941
4042logger = logging .getLogger (__name__ )
@@ -47,17 +49,17 @@ class A2AStarletteApplication:
4749 handler methods, and manages response generation including Server-Sent Events (SSE).
4850 """
4951
50- def __init__ (
51- self , agent_card : AgentCard , http_handler : RequestHandler
52- ):
52+ def __init__ (self , agent_card : AgentCard , http_handler : RequestHandler ):
5353 """Initializes the A2AApplication.
5454
5555 Args:
5656 agent_card: The AgentCard describing the agent's capabilities.
5757 http_handler: The handler instance responsible for processing A2A requests via http.
5858 """
5959 self .agent_card = agent_card
60- self .handler = JSONRPCHandler (agent_card = agent_card , request_handler = http_handler )
60+ self .handler = JSONRPCHandler (
61+ agent_card = agent_card , request_handler = http_handler
62+ )
6163
6264 def _generate_error_response (
6365 self , request_id : str | int | None , error : JSONRPCError | A2AError
@@ -154,7 +156,7 @@ async def _process_streaming_request(
154156 ):
155157 handler_result = self .handler .on_message_send_stream (request_obj )
156158 elif isinstance (request_obj , TaskResubscriptionRequest ):
157- handler_result = self .handler .on_resubscribe (request_obj )
159+ handler_result = self .handler .on_resubscribe_to_task (request_obj )
158160
159161 return self ._create_response (handler_result )
160162
@@ -173,15 +175,17 @@ async def _process_non_streaming_request(
173175 case SendMessageRequest ():
174176 handler_result = await self .handler .on_message_send (request_obj )
175177 case CancelTaskRequest ():
176- handler_result = await self .handler .on_cancel (request_obj )
178+ handler_result = await self .handler .on_cancel_task (request_obj )
177179 case GetTaskRequest ():
178180 handler_result = await self .handler .on_get_task (request_obj )
179181 case SetTaskPushNotificationConfigRequest ():
180- handler_result = await self .handler .on_set_push_notification (
181- request_obj )
182+ handler_result = await self .handler .set_push_notification (
183+ request_obj
184+ )
182185 case GetTaskPushNotificationConfigRequest ():
183- handler_result = await self .handler .on_get_push_notification (
184- request_obj )
186+ handler_result = await self .handler .get_push_notification (
187+ request_obj
188+ )
185189 case _:
186190 logger .error (
187191 f'Unhandled validated request type: { type (request_obj )} '
@@ -218,7 +222,7 @@ def _create_response(
218222 if isinstance (handler_result , AsyncGenerator ):
219223 # Result is a stream of SendStreamingMessageResponse objects
220224 async def event_generator (
221- stream : AsyncGenerator [Event , None ],
225+ stream : AsyncGenerator [SendStreamingMessageResponse , None ],
222226 ) -> AsyncGenerator [dict [str , str ], None ]:
223227 async for item in stream :
224228 yield {'data' : item .root .model_dump_json (exclude_none = True )}
0 commit comments