o
    ưi                     @   s<   d Z ddlmZmZ ddlmZmZmZ G dd deZdS )z0
Base configuration for A2A protocol providers.
    )ABCabstractmethod)AnyAsyncIteratorDictc                   @   sp   e Zd ZdZededeeef dedeeef fddZededeeef dede	eeef  fdd	Z
d
S )BaseA2AProviderConfigz
    Base configuration class for A2A protocol providers.
    
    Each provider should implement this interface to define how to handle
    A2A requests for their specific agent type.
    
request_idparamsapi_basereturnc                    s   dS )aX  
        Handle non-streaming A2A request.

        Args:
            request_id: A2A JSON-RPC request ID
            params: A2A MessageSendParams containing the message
            api_base: Base URL of the agent
            **kwargs: Additional provider-specific parameters

        Returns:
            A2A SendMessageResponse dict
        N selfr   r	   r
   kwargsr   r   Z/home/app/Keep/.python/lib/python3.10/site-packages/litellm/a2a_protocol/providers/base.pyhandle_non_streaming   s   z*BaseA2AProviderConfig.handle_non_streamingc                 K  s   dS )aT  
        Handle streaming A2A request.

        Args:
            request_id: A2A JSON-RPC request ID
            params: A2A MessageSendParams containing the message
            api_base: Base URL of the agent
            **kwargs: Additional provider-specific parameters

        Yields:
            A2A streaming response events
        FNr   r   r   r   r   handle_streaming'   s   z&BaseA2AProviderConfig.handle_streamingN)__name__
__module____qualname____doc__r   strr   r   r   r   r   r   r   r   r   r   	   s,    


r   N)	r   abcr   r   typingr   r   r   r   r   r   r   r   <module>   s    