diff --git a/src/a2a/compat/v0_3/rest_adapter.py b/src/a2a/compat/v0_3/rest_adapter.py index 3d1e9cb7..76b1ce4d 100644 --- a/src/a2a/compat/v0_3/rest_adapter.py +++ b/src/a2a/compat/v0_3/rest_adapter.py @@ -109,7 +109,7 @@ async def event_generator( ) async def handle_get_agent_card( - self, request: Request, call_context: ServerCallContext | None = None + self, request: Request, call_context: ServerCallContext ) -> dict[str, Any]: """Handles GET requests for the agent card endpoint.""" card_to_serve = self.agent_card @@ -119,7 +119,7 @@ async def handle_get_agent_card( return v03_card.model_dump(mode='json', exclude_none=True) async def handle_authenticated_agent_card( - self, request: Request, call_context: ServerCallContext | None = None + self, request: Request, call_context: ServerCallContext ) -> dict[str, Any]: """Hook for per credential agent card response.""" if not self.agent_card.capabilities.extended_agent_card: @@ -132,9 +132,8 @@ async def handle_authenticated_agent_card( card_to_serve = self.agent_card if self.extended_card_modifier: - context = self._context_builder.build(request) card_to_serve = await maybe_await( - self.extended_card_modifier(card_to_serve, context) + self.extended_card_modifier(card_to_serve, call_context) ) elif self.card_modifier: card_to_serve = await maybe_await(self.card_modifier(card_to_serve)) diff --git a/src/a2a/server/routes/jsonrpc_dispatcher.py b/src/a2a/server/routes/jsonrpc_dispatcher.py index fbc1c763..6bd326c8 100644 --- a/src/a2a/server/routes/jsonrpc_dispatcher.py +++ b/src/a2a/server/routes/jsonrpc_dispatcher.py @@ -215,8 +215,8 @@ def __init__( # noqa: PLR0913 extended_agent_card: An optional, distinct AgentCard to be served at the authenticated extended card endpoint. context_builder: The CallContextBuilder used to construct the - ServerCallContext passed to the request_handler. If None, no - ServerCallContext is passed. + ServerCallContext passed to the request_handler. If None the + DefaultCallContextBuilder is used. card_modifier: An optional callback to dynamically modify the public agent card before it is served. extended_card_modifier: An optional callback to dynamically modify diff --git a/src/a2a/server/routes/jsonrpc_routes.py b/src/a2a/server/routes/jsonrpc_routes.py index 8d1a67bb..a71a02b2 100644 --- a/src/a2a/server/routes/jsonrpc_routes.py +++ b/src/a2a/server/routes/jsonrpc_routes.py @@ -54,8 +54,8 @@ def create_jsonrpc_routes( # noqa: PLR0913 extended_agent_card: An optional, distinct AgentCard to be served at the authenticated extended card endpoint. context_builder: The CallContextBuilder used to construct the - ServerCallContext passed to the request_handler. If None, no - ServerCallContext is passed. + ServerCallContext passed to the request_handler. If None the + DefaultCallContextBuilder is used. card_modifier: An optional callback to dynamically modify the public agent card before it is served. extended_card_modifier: An optional callback to dynamically modify diff --git a/src/a2a/server/routes/rest_routes.py b/src/a2a/server/routes/rest_routes.py index 1923f038..1792fe8e 100644 --- a/src/a2a/server/routes/rest_routes.py +++ b/src/a2a/server/routes/rest_routes.py @@ -76,8 +76,8 @@ def create_rest_routes( # noqa: PLR0913 extended_agent_card: An optional, distinct AgentCard to be served at the authenticated extended card endpoint. context_builder: The CallContextBuilder used to construct the - ServerCallContext passed to the request_handler. If None, no - ServerCallContext is passed. + ServerCallContext passed to the request_handler. If None the + DefaultCallContextBuilder is used. card_modifier: An optional callback to dynamically modify the public agent card before it is served. extended_card_modifier: An optional callback to dynamically modify @@ -176,7 +176,7 @@ async def event_generator() -> AsyncIterator[str]: return EventSourceResponse(event_generator()) async def _handle_authenticated_agent_card( - request: 'Request', call_context: ServerCallContext | None = None + request: 'Request', call_context: ServerCallContext ) -> dict[str, Any]: if not agent_card.capabilities.extended_agent_card: raise ExtendedAgentCardNotConfiguredError( @@ -185,10 +185,8 @@ async def _handle_authenticated_agent_card( card_to_serve = extended_agent_card or agent_card if extended_card_modifier: - # Re-generate context if none passed to replicate RESTAdapter exact logic - context = call_context or _build_call_context(request) card_to_serve = await maybe_await( - extended_card_modifier(card_to_serve, context) + extended_card_modifier(card_to_serve, call_context) ) elif card_modifier: card_to_serve = await maybe_await(card_modifier(card_to_serve))