
    Gj'                     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            	       X    e Zd ZdZ	 ddddddeddf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.sessionzmcp.ClientSessionlist_tools_resultzmcp_types.ListToolsResultis_agent_platformreturnNc                 .    || _         || _        || _        y )N)_mcp_session_list_tools_result_is_agent_platform)selfr   r   r   s       \/var/www/python/quitsure-support/venv/lib/python3.12/site-packages/google/genai/_adapters.py__init__zMcpToGenAiToolAdapter.__init__   s      D/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.tools6   s     t66<<==r   )F)__name__
__module____qualname____doc__boolr   r   r!   propertylistr   r#    r   r   r
   r
      si    = !&	0"0 50 	0
 0'! >T$Z > >r   r
   )r   
_mcp_utilsr   r   r   r   TYPE_CHECKINGmcp	mcp_typesr   r
   r+   r   r   <module>r0      s)      + %	$> >r   