
    ~h                         U d dl Z d dlmZmZ d dlmZ d dlZd dlmZm	Z	 d dl
mZ d dlmZmZ d dlmZ d dlmZ g d	Z G d
 de	      Zeee   eeeef   gee	z  eee	z     z  f   Zeed<   dedefdZy)    N)	AwaitableCallable)	TypeAlias)ClientSessionCreateMessageResult)SamplingFnT)LifespanContextTRequestContext)CreateMessageRequestParams)SamplingMessage)r   SamplingParamsMessageResultSamplingHandlerc                       e Zd ZU dZej
                  j                  ed<   ej
                  j                  ej
                  j                  z  ed<   dZ
eed<   y)r   	assistantrolecontentzclient-modelmodelN)__name__
__module____qualname__r   mcptypesRole__annotations__TextContentImageContentr   str     S/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/fastmcp/client/sampling.pyr   r      s=    &D#))..&YY""SYY%;%;;;E3r    r   r   sampling_handlerreturnc                      dt         t        t        f   dt        dt        t
        j                  j                  z  f fd}|S )Ncontextparamsr#   c                   K   	  |j                   ||       }t        j                  |      r
| d {   }t        |t              r+t        t        j                  j                  d|            }|S 7 A# t        $ rL}t        j                  j                  t        j                  j                  t	        |            cY d }~S d }~ww xY ww)Ntext)typer(   )r   )codemessage)messagesinspectisawaitable
isinstancer   r   r   r   r   	Exception	ErrorDataINTERNAL_ERROR)r%   r&   resulter"   s       r!   _sampling_handlerz3create_sampling_callback.<locals>._sampling_handler    s     	%foovwGF""6*%&#&&II11vF1K M &  	99&&YY--A '  	sF   C.A7 A5A A7 4C5A7 7	C ACCCCC)r
   r   r	   r   r   r   r   r1   )r"   r5   s   ` r!   create_sampling_callbackr6      sD    /? ?@ 
syy22	2( r    )r-   collections.abcr   r   typingr   	mcp.typesr   r   r   mcp.client.sessionr   mcp.shared.contextr	   r
   r   r   r   __all__r   listr   r   r   r6   r   r    r!   <module>r>      s     /   2 * ? B %
S '   &_}&667
 
	#0C*C DDF  ; r    