o
    ưi                     @   sF   d Z ddlmZmZ ddlZddlmZ dededee fdd	Z	dS )
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OptionalN)verbose_proxy_loggerdata
route_typereturnc           	      C   s   ddl m} ddlm}m} | dd}t|tr|ds dS |dd }|	|}|du rDt
d	| d
 |||}|||d|jrLd|jvrat
d	| d |||}|||d|jd | d< t
d| d| d   tt| di | S )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   )global_agent_registry)ROUTE_ENDPOINT_MAPPINGProxyModelNotFoundErrormodel za2a/N   z[A2A] Agent 'z' not found in registry)Zroute
model_nameurlz' has no URL configuredZapi_basez[A2A] Routing z to  )Z,litellm.proxy.agent_endpoints.agent_registryr   Zlitellm.proxy.route_llm_requestr	   r
   get
isinstancestr
startswithZget_agent_by_namer   errorZagent_card_paramsdebuggetattrlitellm)	r   r   r   r	   r
   r   Z
agent_nameZagentZ
route_namer   r   `/home/app/Keep/.python/lib/python3.10/site-packages/litellm/proxy/agent_endpoints/a2a_routing.pyroute_a2a_agent_request   s$   
r   )
__doc__typingr   r   r   Zlitellm._loggingr   dictr   r   r   r   r   r   <module>   s
    