
    ~hQ                     `   d Z ddlZddlmZmZmZ ddlZddlZddlm	Z	 ddl
mZ  ej                  e      Z G d de      Zedk(  r\ddlZdd	lmZ dd
l
mZ  e edddgddiej&                         e             5 Z eed   d   j,                  d          ddd       yy# 1 sw Y   yxY w)zThis module implements the Google GenAI adapter.

Example Usage:
>>> with MCPAdapt(StdioServerParameters(command="uv", args=["run", "src/echo.py"]), GoogleGenAIAdapter()) as tools:
>>>     print(tools)
    N)AnyCallable	Coroutine)types)ToolAdapterc                      e Zd ZdZdeedz  gej                  j                  f   dej                  j                  de
ej                  e
eeedz  gej                  j                  f   f   f   fdZdeedz  geeeej                  j                  f   f   dej                  j                  de
ej                  e
eeedz  geeeej                  j                  f   f   f   f   fdZy)GoogleGenAIAdapterzAdapter for the `google.genai` package.

    Note that the `google.genai` package do not support async tools at this time so we
    write only the adapt method.
    funcNmcp_toolreturnc                    t        j                  |j                        j                         D ci c]  \  }}|dk7  r|| }}}t	        j
                  |j                  |j                  |dg      |j                  |ffS c c}}w zAdapt a MCP tool to a Google GenAI tool.

        Args:
            func: The function to adapt.
            mcp_tool: The MCP tool to adapt.

        Returns:
            A Google GenAI tool.
        z$defs)namedescription
parameters)function_declarationsjsonrefreplace_refsinputSchemaitemsr   Toolr   r   selfr
   r   kvinput_schemas         Y/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/mcpadapt/google_genai_adapter.pyadaptzGoogleGenAIAdapter.adapt   s    &  ,,X-A-ABHHJ
1G| qD
 
 JJ !)'/';';&2' ]]D!
 	

   Bc                    t        j                  |j                        j                         D ci c]  \  }}|dk7  r|| }}}t	        j
                  |j                  |j                  |dg      |j                  |ffS c c}}w r   r   r   s         r   async_adaptzGoogleGenAIAdapter.async_adapt?   s    ,  ,,X-A-ABHHJ
1G| qD
 
 JJ !)'/';';&2' ]]D!
 	

r    )__name__
__module____qualname____doc__r   dictmcpr   CallToolResultr   tuplestrr   r   r   r"        r   r	   r	      s   "
t}cii&>&>>?"
 )).."
 


E#xsyy7O7O(OPPQQ
	"
H%
t}iS#)):R:R0R&SST%
 ))..%
 


4$;-3SYY=U=U3U)VVWW	
	
	%
r-   r	   __main__)StdioServerParameters)MCPAdaptuvxz--quietzpubmedmcp@0.1.3	UV_PYTHONz3.12)commandargsenv   )r&   loggingtypingr   r   r   r   r(   google.genair   mcpadapt.corer   	getLoggerr#   loggerr	   osr/   r0   environtoolsprintr4   r,   r-   r   <module>rB      s     + +  
  %			8	$P
 P
f z)&	./f3

3	

 	
 $ 
eAhqkr"#$ $ $ $s   >B$$B-