|
4 | 4 | import traceback |
5 | 5 |
|
6 | 6 | from abc import ABC, abstractmethod |
7 | | -from collections.abc import AsyncGenerator, Callable |
| 7 | +from collections.abc import AsyncGenerator, Awaitable, Callable |
8 | 8 | from typing import TYPE_CHECKING, Any |
9 | 9 |
|
10 | 10 | from pydantic import ValidationError |
@@ -178,9 +178,10 @@ def __init__( # noqa: PLR0913 |
178 | 178 | http_handler: RequestHandler, |
179 | 179 | extended_agent_card: AgentCard | None = None, |
180 | 180 | context_builder: CallContextBuilder | None = None, |
181 | | - card_modifier: Callable[[AgentCard], AgentCard] | None = None, |
| 181 | + card_modifier: Callable[[AgentCard], Awaitable[AgentCard]] |
| 182 | + | None = None, |
182 | 183 | extended_card_modifier: Callable[ |
183 | | - [AgentCard, ServerCallContext], AgentCard |
| 184 | + [AgentCard, ServerCallContext], Awaitable[AgentCard] |
184 | 185 | ] |
185 | 186 | | None = None, |
186 | 187 | max_content_length: int | None = 10 * 1024 * 1024, # 10MB |
@@ -576,7 +577,7 @@ async def _handle_get_agent_card(self, request: Request) -> JSONResponse: |
576 | 577 |
|
577 | 578 | card_to_serve = self.agent_card |
578 | 579 | if self.card_modifier: |
579 | | - card_to_serve = self.card_modifier(card_to_serve) |
| 580 | + card_to_serve = await self.card_modifier(card_to_serve) |
580 | 581 |
|
581 | 582 | return JSONResponse( |
582 | 583 | card_to_serve.model_dump( |
@@ -605,7 +606,9 @@ async def _handle_get_authenticated_extended_agent_card( |
605 | 606 | context = self._context_builder.build(request) |
606 | 607 | # If no base extended card is provided, pass the public card to the modifier |
607 | 608 | base_card = card_to_serve if card_to_serve else self.agent_card |
608 | | - card_to_serve = self.extended_card_modifier(base_card, context) |
| 609 | + card_to_serve = await self.extended_card_modifier( |
| 610 | + base_card, context |
| 611 | + ) |
609 | 612 |
|
610 | 613 | if card_to_serve: |
611 | 614 | return JSONResponse( |
|
0 commit comments