
    Li                     l    d dl Z ddlmZ ddlmZmZ e j                  rd dlmZ d dlm	Z	  G d d      Z
y)	    N   )mcp_to_gemini_tools)FunctionCallTool)types)ClientSessionc                   P    e Zd ZdZ	 	 	 	 	 	 d	dZdeddfdZedee	   fd       Z
y)
McpToGenAiToolAdapterz5Adapter for working with MCP tools in a GenAI client.returnNc                      || _         || _        y )N)_mcp_session_list_tools_result)selfsessionlist_tools_results      T/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/google/genai/_adapters.py__init__zMcpToGenAiToolAdapter.__init__   s    
  D/D    function_callmcp_types.CallToolResultc                    K   |j                   r|j                   nd}|j                  rt        |j                        ni }t        j                  d| j
                  j                  ||       d{         S 7 w)z#Calls a function on the MCP server. r   )name	argumentsN)r   argsdicttypingcastr   	call_tool)r   r   r   r   s       r   r   zMcpToGenAiToolAdapter.call_tool%   st      "/!3!3=D,9,>,>]''(BI;;")) * 
 	
 	
s   A.A;0A9
1	A;c                 @    t        | j                  j                        S )z%Returns a list of Google GenAI tools.)r   r   tools)r   s    r   r!   zMcpToGenAiToolAdapter.tools4   s     t66<<==r   )r   zmcp.ClientSessionr   zmcp_types.ListToolsResultr   N)__name__
__module____qualname____doc__r   r   r   propertylistr   r!    r   r   r
   r
      sZ    =0"0 50 	0'! >T$Z > >r   r
   )r   
_mcp_utilsr   r   r   r   TYPE_CHECKINGmcp	mcp_typesr   r
   r(   r   r   <module>r-      s)      + %	$> >r   