Skip to content

Commit f85f249

Browse files
fix: Sync jsonrpc and rest implementation of authenticated agent card
1 parent 7dd561f commit f85f249

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/a2a/server/apps/rest/rest_adapter.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,9 @@ async def handle_authenticated_agent_card(
182182

183183
if self.extended_card_modifier:
184184
context = self._context_builder.build(request)
185-
# If no base extended card is provided, pass the public card to the modifier
186-
base_card = card_to_serve if card_to_serve else self.agent_card
187-
card_to_serve = self.extended_card_modifier(base_card, context)
185+
card_to_serve = self.extended_card_modifier(card_to_serve, context)
186+
elif self.card_modifier:
187+
card_to_serve = self.card_modifier(card_to_serve)
188188

189189
return card_to_serve.model_dump(mode='json', exclude_none=True)
190190

src/a2a/server/request_handlers/jsonrpc_handler.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
23
from collections.abc import AsyncIterable, Callable
34

45
from a2a.server.context import ServerCallContext
@@ -48,6 +49,7 @@
4849
from a2a.utils.helpers import validate
4950
from a2a.utils.telemetry import SpanKind, trace_class
5051

52+
5153
logger = 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

Comments
 (0)