
    j
i                         d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 de	deez  fdZ
d	d
dededeeef         d	z  deeez           fdZd	S )a  Prompts adapter for converting MCP prompts to LangChain [messages](https://docs.langchain.com/oss/python/langchain/messages).

This module provides functionality to convert MCP prompt messages into LangChain
message objects, handling both user and assistant message types.
    )Any)	AIMessageHumanMessage)ClientSession)PromptMessagemessagereturnc                 $   | j         j        dk    rc| j        dk    rt          | j         j                  S | j        dk    rt          | j         j                  S d| j         }t          |          d| j         j         }t          |          )zConvert an MCP prompt message to a LangChain message.

    Args:
        message: MCP prompt message to convert

    Returns:
        A LangChain message

    textuser)content	assistantz!Unsupported prompt message role: z)Unsupported prompt message content type: )r   typeroler   r   r   
ValueError)r   msgs     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langchain_mcp_adapters/prompts.py/convert_mcp_prompt_message_to_langchain_messager      s     v%%<6!!(<====<;&&W_%9::::@',@@oo
Lgo6J
L
LC
S//    N)	argumentssessionnamer   c                `   K   |                      ||           d{V }d |j        D             S )a  Load MCP prompt and convert to LangChain [messages](https://docs.langchain.com/oss/python/langchain/messages).

    Args:
        session: The MCP client session.
        name: Name of the prompt to load.
        arguments: Optional arguments to pass to the prompt.

    Returns:
        A list of LangChain [messages](https://docs.langchain.com/oss/python/langchain/messages)
            converted from the MCP prompt.
    Nc                 ,    g | ]}t          |          S  )r   ).0r   s     r   
<listcomp>z#load_mcp_prompt.<locals>.<listcomp>8   s0        	8@@  r   )
get_promptmessages)r   r   r   responses       r   load_mcp_promptr!   &   sS      " ''i88888888H (   r   )__doc__typingr   langchain_core.messagesr   r   mcpr   	mcp.typesr   r   strdictlistr!   r   r   r   <module>r*      s           ; ; ; ; ; ; ; ;       # # # # # #I   8 (,	  
 CH~$	
 
,
"#     r   