o
    i                     @   st   U d dl mZ d dlZd dlmZ d dlmZ eejj	ejj
f ejjB eB Zeed< eZeed< G dd dZdS )	    )	TypeAliasN)MessageHandlerFnT)RequestResponderMessageMessageHandlerTc                   @   s  e Zd ZdZdeejjejjf ejj	B e
B ddfddZdeddfddZdeddfd	d
Zdeejjejjf ddfddZdejjddfddZdejjddfddZdejjddfddZdejj	ddfddZde
ddfddZdejjddfddZdejjddfddZdejjddfddZdejjddfddZdejj ddfdd Z!dejj"ddfd!d"Z#dejj$ddfd#d$Z%dS )%MessageHandlerz
    This class is used to handle MCP messages sent to the client. It is used to handle all messages,
    requests, notifications, and exceptions. Users can override any of the hooks
    messagereturnNc                    s   |  |I d H S N)dispatchselfr    r   ]/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/fastmcp/client/messages.py__call__   s   zMessageHandler.__call__c                    s6  |  |I d H  | td r^  | |I d H  |jj tjjd r1  | |jjI d H  d S   tjj	d rG  | 
|jjI d H  d S  tjjd r[ | |jjI d H  d S  d S   tjjd r  | |I d H  |j tjjd r  | |jI d H  d S   tjjd r  | |jI d H  d S   tjjd r  | |jI d H  d S   tjjd r  | |jI d H  d S   tjjd r  | |jI d H  d S   tjjd r  | |jI d H  d S  tjjd r | |jI d H  d S  d S  td r | |I d H  d S  d S )Nr   )
on_messager   
on_requestrequestrootmcptypesPingRequeston_pingListRootsRequeston_list_rootsCreateMessageRequeston_create_messageServerNotificationon_notificationCancelledNotificationon_cancelledProgressNotificationon_progressLoggingMessageNotificationon_logging_messageToolListChangedNotificationon_tool_list_changedResourceListChangedNotificationon_resource_list_changedPromptListChangedNotificationon_prompt_list_changedResourceUpdatedNotificationon_resource_updated	Exceptionon_exceptionr   r   r   r   r      sh   
	
zMessageHandler.dispatchc                       d S r
   r   r   r   r   r   r   J      zMessageHandler.on_messagec                    r/   r
   r   r   r   r   r   r   M      zMessageHandler.on_requestc                    r/   r
   r   r   r   r   r   r   R   r0   zMessageHandler.on_pingc                    r/   r
   r   r   r   r   r   r   U   r0   zMessageHandler.on_list_rootsc                    r/   r
   r   r   r   r   r   r   X   r0   z MessageHandler.on_create_messagec                    r/   r
   r   r   r   r   r   r   [   r0   zMessageHandler.on_notificationc                    r/   r
   r   r   r   r   r   r.   ^   r0   zMessageHandler.on_exceptionc                    r/   r
   r   r   r   r   r   r"   a   r0   zMessageHandler.on_progressc                    r/   r
   r   r   r   r   r   r$   d   r1   z!MessageHandler.on_logging_messagec                    r/   r
   r   r   r   r   r   r&   i   r1   z#MessageHandler.on_tool_list_changedc                    r/   r
   r   r   r   r   r   r(   n   r1   z'MessageHandler.on_resource_list_changedc                    r/   r
   r   r   r   r   r   r*   s   r1   z%MessageHandler.on_prompt_list_changedc                    r/   r
   r   r   r   r   r   r,   x   r1   z"MessageHandler.on_resource_updatedc                    r/   r
   r   r   r   r   r   r    }   r0   zMessageHandler.on_cancelled)&__name__
__module____qualname____doc__r   r   r   ServerRequestClientResultr   r-   r   r   r   r   r   r   r   r   r   r   r   r   r.   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r   r    r   r   r   r   r      sd    
,





r   )typingr   	mcp.typesr   mcp.client.sessionr   mcp.shared.sessionr   r   r6   r7   r   r-   r   __annotations__r   r   r   r   r   r   <module>   s    
