11import logging
2+
23from collections .abc import AsyncIterable , Callable
34
45from a2a .server .context import ServerCallContext
4849from a2a .utils .helpers import validate
4950from a2a .utils .telemetry import SpanKind , trace_class
5051
52+
5153logger = logging .getLogger (__name__ )
5254
5355
@@ -64,6 +66,7 @@ def __init__(
6466 [AgentCard , ServerCallContext ], AgentCard
6567 ]
6668 | None = None ,
69+ card_modifier : Callable [[AgentCard ], AgentCard ] | None = None ,
6770 ):
6871 """Initializes the JSONRPCHandler.
6972
@@ -74,11 +77,14 @@ def __init__(
7477 extended_card_modifier: An optional callback to dynamically modify
7578 the extended agent card before it is served. It receives the
7679 call context.
80+ card_modifier: An optional callback to dynamically modify the public
81+ agent card before it is served.
7782 """
7883 self .agent_card = agent_card
7984 self .request_handler = request_handler
8085 self .extended_agent_card = extended_agent_card
8186 self .extended_card_modifier = extended_card_modifier
87+ self .card_modifer = card_modifier
8288
8389 async def on_message_send (
8490 self ,
@@ -437,6 +443,8 @@ async def get_authenticated_extended_card(
437443 card_to_serve = base_card
438444 if self .extended_card_modifier and context :
439445 card_to_serve = self .extended_card_modifier (base_card , context )
446+ elif self .card_modifer :
447+ card_to_serve = self .card_modifer (base_card )
440448
441449 return GetAuthenticatedExtendedCardResponse (
442450 root = GetAuthenticatedExtendedCardSuccessResponse (
0 commit comments