
    
j[                     L    d Z ddlZddlmZmZ ddlmZmZ  G d d          ZdS )zMinimax API client base class.    N)AnyDict)MinimaxAuthErrorMinimaxRequestErrorc                       e Zd ZdZdedefdZdededeeef         fdZdedeeef         fd	Z	dedeeef         fd
Z
dS )MinimaxAPIClientz/Base client for making requests to Minimax API.api_keyapi_hostc                     || _         || _        t          j                    | _        | j        j                            d| dd           dS )zInitialize the API client.
        
        Args:
            api_key: The API key for authentication
            api_host: The API host URL
        zBearer zMinimax-MCP)AuthorizationzMM-API-SourceN)r	   r
   requestsSessionsessionheadersupdate)selfr	   r
   s      d/home/kuhnn/.cache/uv/archive-v0/3GxwVqnJIwJbhxw5/lib/python3.11/site-packages/minimax_mcp/client.py__init__zMinimaxAPIClient.__init__
   sa      '))##0w00*%
 %
 	 	 	 	 	    methodendpointreturnc           
         | j          | }|                    d          }|sd| j        j        d<   n | j        j                            dd           	  | j        j        ||fi |}|                                 |                                }|                    di           }|                    d          dk    r|                    d          xdk    rA t          d	|                    d
           d|j                            d                     dk    r@t          d	|                    d
           d|j                            d                     	 t          d	|                    d           d|                    d
           d|j                            d                     |S # t          j        j        $ r$}	t          dt          |	                     d}	~	ww xY w)a  Make an HTTP request to the Minimax API.
        
        Args:
            method: HTTP method (GET, POST, etc.)
            endpoint: API endpoint path
            **kwargs: Additional arguments to pass to requests
            
        Returns:
            API response data as dictionary
            
        Raises:
            MinimaxAuthError: If authentication fails
            MinimaxRequestError: If the request fails
        fileszapplication/jsonzContent-TypeN	base_respstatus_coder   i  zAPI Error: 
status_msgz3, please check your API key and API host.Trace-Id: zTrace-Idi  z, should complete real-name verification on the open-platform(https://platform.minimaxi.com/user-center/basic-information).Trace-Id: -z Trace-Id: zRequest failed: )r
   getr   r   poprequestraise_for_statusjsonr   r   r   
exceptionsRequestExceptionstr)
r   r   r   kwargsurlr   responsedatar   es
             r   _make_requestzMinimaxAPIClient._make_request   sW   ( *** 

7## 	;3EDL 00 L $$^T:::	C+t|+FCBB6BBH %%'''==??D b11I}}]++q00mmM22.L)--*E*E L L)1)9)=)=j)I)IL L   1L)--*E*E L L)1)9)=)=j)I)IL L   1L)--*F*F L LWcIdId L L)1)9)=)=j)I)IL L  
 K"3 	C 	C 	C%&AQ&A&ABBB	Cs   E#F8 8G0G++G0c                       | j         d|fi |S )zMake a GET request.GETr,   r   r   r'   s      r   r   zMinimaxAPIClient.getY   s    !t!%<<V<<<r   c                       | j         d|fi |S )zMake a POST request.POSTr/   r0   s      r   postzMinimaxAPIClient.post]   s    !t!&(==f===r   N)__name__
__module____qualname____doc__r&   r   r   r   r,   r   r3    r   r   r   r      s        99 s    >C>C >C
 
c3h>C >C >C >C@=C =d38n = = = =>S >tCH~ > > > > > >r   r   )	r7   r   typingr   r   minimax_mcp.exceptionsr   r   r   r8   r   r   <module>r;      s    $ $          H H H H H H H HX> X> X> X> X> X> X> X> X> X>r   