Ë
    tPêj  ã            
       óp   — d Z ddlmZmZ ddlmZ ddlZddlmZ ddl	m
Z
mZ 	 ddeded	edz  d
edz  fd„Zy)zœ
A2A Agent Routing

Handles routing for A2A agents (models with "a2a/<agent-name>" prefix).
Looks up agents in the registry and injects their API base URL.
é    )ÚAnyÚFinal)ÚHTTPExceptionN)Úverbose_proxy_logger)ÚLitellmUserRolesÚUserAPIKeyAuthÚdataÚ
route_typeÚuser_api_key_dictÚreturnc              ƒ   ód  K  — ddl m} ddlm} ddlm}m} | j                  dd«      }t        |t        «      r|j                  d«      sy|d	d } ||«      ƒ d{  –—† }	|	€3t        j                  d
|«       |j                  ||«      }
 ||
|d¬«      ‚|duxrF |j                  t        j                  k(  xs' |j                  t        j                  j                   k(  }|s8|j#                  |	j$                  |¬«      ƒ d{  –—† }|st'        dd|› d�¬«      ‚|	j(                  rd|	j(                  vr3t        j                  d|«       |j                  ||«      }
 ||
|d¬«      ‚|	j(                  d   | d<   t        j*                  d|| d   «        t-        t.        |› «      di | ¤ŽS 7 �ŒP7 Œª­w)z›
    Route A2A agent requests directly to litellm with injected API base.

    Returns None if not an A2A request (allows normal routing to continue).
    r   )ÚAgentRequestHandler)Úget_agent_with_read_through)ÚROUTE_ENDPOINT_MAPPINGÚProxyModelNotFoundErrorÚmodelÚ za2a/Né   z&[A2A] Agent '%s' not found in registryF)ÚrouteÚ
model_nameÚ!retryable_with_model_read_through)Úagent_idÚuser_api_key_authi“  zAgent 'zC' is not allowed for your key/team. Contact proxy admin for access.)Ústatus_codeÚdetailÚurlz&[A2A] Agent '%s' has no URL configuredÚapi_basez[A2A] Routing %s to %s© )Ú;litellm.proxy.agent_endpoints.auth.agent_permission_handlerr   Ú0litellm.proxy.common_utils.registry_read_throughr   Úlitellm.proxy.route_llm_requestr   r   ÚgetÚ
isinstanceÚstrÚ
startswithr   ÚerrorÚ	user_roler   ÚPROXY_ADMINÚvalueÚis_agent_allowedr   r   Úagent_card_paramsÚdebugÚgetattrÚlitellm)r	   r
   r   r   r   r   r   r   Ú
agent_nameÚagentÚ
route_nameÚis_adminÚ
is_alloweds                ún/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/agent_endpoints/a2a_routing.pyÚroute_a2a_agent_requestr5      sÍ  è ø€ õõ÷ð
 Ÿ™ ¨"Ó-€Jô �j¤#Ô&¨j×.CÑ.CÀFÔ.KØð # 1 2˜€Jñ 5°ZÓ@×@€EØ€}Ü×"Ñ"Ð#KÈZÔXØ+×/Ñ/°
¸JÓGˆ
Ù%¨JÀ:ÐqvÔwÐwð (¨tÐ3ò Ø×#Ñ#Ô'7×'CÑ'CÑCò 	MØ×&Ñ&Ô*:×*FÑ*F×*LÑ*LÑLð ñ Ø"5×"FÑ"FØ—^‘^Ø/ð #Gó #
÷ 
ˆ
ñ ÜØØ   Ð,oÐpôð ð ×"Ò" e°5×3JÑ3JÑ&JÜ×"Ñ"Ð#KÈZÔXØ+×/Ñ/°
¸JÓGˆ
Ù%¨JÀ:ÐqvÔwÐwð ×.Ñ.¨uÑ5€DˆÑÜ×ÑÐ7¸ÀTÈ*ÑEUÔVà,Œ7”7˜z˜lÓ,Ñ4¨tÑ4Ð4ðA Aùð
ús&   ‚AF0ÁF+ÁB'F0ÄF.ÄB(F0Æ.F0)N)Ú__doc__Útypingr   r   Úfastapir   r.   Úlitellm._loggingr   Úlitellm.proxy._typesr   r   Údictr$   r5   r   ó    r4   ú<module>r=      sW   ðñ÷ å !ã Ý 1ß Að 04ñ@5Ø
ð@5àð@5ð &¨Ñ,ð@5ð 	ˆ4�Zô	@5r<   