1212from a2a .compat .v0_3 import (
1313 a2a_v0_3_pb2 ,
1414 a2a_v0_3_pb2_grpc ,
15- conversions ,
1615 proto_utils ,
1716)
1817from a2a .compat .v0_3 import (
2726 GrpcServerCallContextBuilder ,
2827)
2928from a2a .server .request_handlers .request_handler import RequestHandler
30- from a2a .types .a2a_pb2 import AgentCard
3129from a2a .utils .errors import A2AError , InvalidParamsError
32- from a2a .utils .helpers import maybe_await
3330
3431
3532logger = logging .getLogger (__name__ )
@@ -42,29 +39,21 @@ class CompatGrpcHandler(a2a_v0_3_pb2_grpc.A2AServiceServicer):
4239
4340 def __init__ (
4441 self ,
45- agent_card : AgentCard ,
4642 request_handler : RequestHandler ,
4743 context_builder : GrpcServerCallContextBuilder | None = None ,
48- card_modifier : Callable [[AgentCard ], Awaitable [AgentCard ] | AgentCard ]
49- | None = None ,
5044 ):
5145 """Initializes the CompatGrpcHandler.
5246
5347 Args:
54- agent_card: The AgentCard describing the agent's capabilities (v1.0).
5548 request_handler: The underlying `RequestHandler` instance to
5649 delegate requests to.
5750 context_builder: The CallContextBuilder object. If none the
5851 DefaultCallContextBuilder is used.
59- card_modifier: An optional callback to dynamically modify the public
60- agent card before it is served.
6152 """
62- self .agent_card = agent_card
6353 self .handler03 = RequestHandler03 (request_handler = request_handler )
6454 self ._context_builder = (
6555 context_builder or DefaultGrpcServerCallContextBuilder ()
6656 )
67- self .card_modifier = card_modifier
6857
6958 async def _handle_unary (
7059 self ,
@@ -348,32 +337,20 @@ async def GetAgentCard(
348337 request : a2a_v0_3_pb2 .GetAgentCardRequest ,
349338 context : grpc .aio .ServicerContext ,
350339 ) -> a2a_v0_3_pb2 .AgentCard :
351- """Get the agent card for the agent served (v0.3)."""
352- card_to_serve = self .agent_card
353- if self .card_modifier :
354- card_to_serve = await maybe_await (self .card_modifier (card_to_serve ))
355- compat_card = proto_utils .ToProto .agent_card (
356- conversions .to_compat_agent_card (card_to_serve )
357- )
358-
359- if self .agent_card .capabilities .extended_agent_card :
360-
361- async def _handler (
362- server_context : ServerCallContext ,
363- ) -> a2a_v0_3_pb2 .AgentCard :
364- req_v03 = types_v03 .GetAuthenticatedExtendedCardRequest (id = 0 )
365- res_v03 = await self .handler03 .on_get_extended_agent_card (
366- req_v03 , server_context
367- )
368- if res_v03 :
369- return proto_utils .ToProto .agent_card (res_v03 )
370- return compat_card
340+ """Get the extended agent card for the agent served (v0.3)."""
371341
372- return await self ._handle_unary (
373- context , _handler , a2a_v0_3_pb2 .AgentCard ()
342+ async def _handler (
343+ server_context : ServerCallContext ,
344+ ) -> a2a_v0_3_pb2 .AgentCard :
345+ req_v03 = types_v03 .GetAuthenticatedExtendedCardRequest (id = 0 )
346+ res_v03 = await self .handler03 .on_get_extended_agent_card (
347+ req_v03 , server_context
374348 )
349+ return proto_utils .ToProto .agent_card (res_v03 )
375350
376- return compat_card
351+ return await self ._handle_unary (
352+ context , _handler , a2a_v0_3_pb2 .AgentCard ()
353+ )
377354
378355 async def DeleteTaskPushNotificationConfig (
379356 self ,
0 commit comments