@@ -28,45 +28,38 @@ async def main() -> None:
2828 )
2929
3030 # Fetch Public Agent Card and Initialize Client
31- public_agent_card : AgentCard | None = None
32- extended_agent_card : AgentCard | None = None
3331 final_agent_card_to_use : AgentCard | None = None
3432
3533 try :
3634 logger .info (f"Attempting to fetch public agent card from: { base_url } { PUBLIC_AGENT_CARD_PATH } " )
37- public_agent_card = await resolver .get_agent_card () # Fetches from default public path
35+ _public_card = await resolver .get_agent_card () # Fetches from default public path
3836 logger .info ("Successfully fetched public agent card:" )
39- logger .info (public_agent_card .model_dump_json (indent = 2 , exclude_none = True ))
40-
41- # --- Conditional Step: Fetch Extended Agent Card
42- if public_agent_card and public_agent_card .supportsAuthenticatedExtendedCard :
43- logger .info (f"\n Public card supports authenticated extended card. Attempting to fetch from: { base_url } { EXTENDED_AGENT_CARD_PATH } " )
44- auth_headers_dict = {"Authorization" : "Bearer dummy-token-for-extended-card" }
45- extended_agent_card = await resolver .get_agent_card (
46- relative_card_path = EXTENDED_AGENT_CARD_PATH , # Or resolver.extended_agent_card_path
47- http_kwargs = {"headers" : auth_headers_dict }
48- )
49- logger .info ("Successfully fetched authenticated extended agent card:" )
50- logger .info (extended_agent_card .model_dump_json (indent = 2 , exclude_none = True ))
51- else :
52- logger .info ("\n Public card does not support authenticated extended card, or public card not fetched." )
37+ logger .info (_public_card .model_dump_json (indent = 2 , exclude_none = True ))
38+ final_agent_card_to_use = _public_card
39+ logger .info ("\n Using PUBLIC agent card for client initialization (default)." )
40+
41+ if _public_card .supportsAuthenticatedExtendedCard :
42+ try :
43+ logger .info (f"\n Public card supports authenticated extended card. Attempting to fetch from: { base_url } { EXTENDED_AGENT_CARD_PATH } " )
44+ auth_headers_dict = {"Authorization" : "Bearer dummy-token-for-extended-card" }
45+ _extended_card = await resolver .get_agent_card (
46+ relative_card_path = EXTENDED_AGENT_CARD_PATH ,
47+ http_kwargs = {"headers" : auth_headers_dict }
48+ )
49+ logger .info ("Successfully fetched authenticated extended agent card:" )
50+ logger .info (_extended_card .model_dump_json (indent = 2 , exclude_none = True ))
51+ final_agent_card_to_use = _extended_card # Update to use the extended card
52+ logger .info ("\n Using AUTHENTICATED EXTENDED agent card for client initialization." )
53+ except Exception as e_extended :
54+ logger .warning (f"Failed to fetch extended agent card: { e_extended } . Will proceed with public card." , exc_info = True )
55+ elif _public_card : # supportsAuthenticatedExtendedCard is False or None
56+ logger .info ("\n Public card does not indicate support for an extended card. Using public card." )
5357
5458 except Exception as e :
55- logger .error (f"Error during agent card fetching: { e } " , exc_info = True )
56- # If public card fetching failed, or extended card fetching failed after public card indicated support,
57- # we might not have a card to use.
58-
59- # Determine which card to use and Initialize Client
60- if extended_agent_card :
61- final_agent_card_to_use = extended_agent_card
62- logger .info ("\n Using AUTHENTICATED EXTENDED agent card for client initialization." )
63- elif public_agent_card :
64- final_agent_card_to_use = public_agent_card
65- logger .info ("\n Using PUBLIC agent card for client initialization." )
66- else :
67- logger .error ("\n No agent card successfully fetched. Cannot initialize client." )
68- return # Cannot proceed
59+ logger .error (f"Critical error fetching public agent card: { e } " , exc_info = True )
60+ raise RuntimeError ("Failed to fetch the public agent card. Cannot continue." ) from e
6961
62+
7063 client = A2AClient (
7164 httpx_client = httpx_client , agent_card = final_agent_card_to_use
7265 )
0 commit comments