+
    wi'*                     l   R t ^ RIHtHt ^ RIHtHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ]'       d   ^ RIHt  ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR R ltR R ltR R ltR R ltR R ltR R lt] ! R  R!4      4       t]t]t R# )"a  
Experimental task handler protocols for server -> client requests.

This module provides Protocol types and default handlers for when servers
send task-related requests to clients (the reverse of normal client -> server flow).

WARNING: These APIs are experimental and may change without notice.

Use cases:
- Server sends task-augmented sampling/elicitation request to client
- Client creates a local task, spawns background work, returns CreateTaskResult
- Server polls client's task status via tasks/get, tasks/result, etc.
)	dataclassfield)TYPE_CHECKINGAnyProtocol)TypeAdapterN)RequestContext)RequestResponder)ClientSessionc                   6   a  ] tR t^t o RtV 3R lR ltRtV tR# )GetTaskHandlerFnTzjHandler for tasks/get requests from server.

WARNING: This is experimental and may change without notice.
c                   < V ^8  d   QhRS[ RS[3,          RS[P                  RS[P                  S[P
                  ,          /#    contextr
   paramsreturnr   r   typesGetTaskRequestParamsGetTaskResult	ErrorData)format__classdict__s   "Y/home/ubuntu/.local/lib/python3.14/site-packages/mcp/client/experimental/task_handlers.py__annotate__GetTaskHandlerFnT.__annotate__"   sH     4 4 454 **4 
		u	.	4    c                   "   R # 5iN selfr   r   s   &&&r   __call__GetTaskHandlerFnT.__call__"   s
      14   r    N__name__
__module____qualname____firstlineno____doc__r#   __static_attributes____classdictcell__r   s   @r   r   r      s     
4 4r   r   c                   6   a  ] tR t^)t o RtV 3R lR ltRtV tR# )GetTaskResultHandlerFnTzmHandler for tasks/result requests from server.

WARNING: This is experimental and may change without notice.
c                   < V ^8  d   QhRS[ RS[3,          RS[P                  RS[P                  S[P
                  ,          /# r   r   r   r   GetTaskPayloadRequestParamsGetTaskPayloadResultr   )r   r   s   "r   r   $GetTaskResultHandlerFnT.__annotate__/   sH     ; ; 45; 11; 
	#	#eoo	5	;r   c                   "   R # 5ir   r    r!   s   &&&r   r#    GetTaskResultHandlerFnT.__call__/   s
      8;r%   r    Nr&   r.   s   @r   r0   r0   )   s     
; ;r   r0   c                   6   a  ] tR t^6t o RtV 3R lR ltRtV tR# )ListTasksHandlerFnTzkHandler for tasks/list requests from server.

WARNING: This is experimental and may change without notice.
c                   < V ^8  d   QhRS[ RS[3,          RS[P                  R,          RS[P                  S[P
                  ,          /# r   r   r
   r   Nr   r   r   r   PaginatedRequestParamsListTasksResultr   )r   r   s   "r   r    ListTasksHandlerFnT.__annotate__<   sM     6 6 456 ,,t36 
			0	6r   c                   "   R # 5ir   r    r!   s   &&&r   r#   ListTasksHandlerFnT.__call__<   s
      36r%   r    Nr&   r.   s   @r   r9   r9   6   s     
6 6r   r9   c                   6   a  ] tR t^Ct o RtV 3R lR ltRtV tR# )CancelTaskHandlerFnTzmHandler for tasks/cancel requests from server.

WARNING: This is experimental and may change without notice.
c                   < V ^8  d   QhRS[ RS[3,          RS[P                  RS[P                  S[P
                  ,          /# r   r   r   r   CancelTaskRequestParamsCancelTaskResultr   )r   r   s   "r   r   !CancelTaskHandlerFnT.__annotate__I   sH     7 7 457 --7 
		%//	1	7r   c                   "   R # 5ir   r    r!   s   &&&r   r#   CancelTaskHandlerFnT.__call__I   s
      47r%   r    Nr&   r.   s   @r   rC   rC   C   s     
7 7r   rC   c                   6   a  ] tR t^Pt o RtV 3R lR ltRtV tR# )TaskAugmentedSamplingFnTa>  Handler for task-augmented sampling/createMessage requests from server.

When server sends a CreateMessageRequest with task field, this callback
is invoked. The callback should create a task, spawn background work,
and return CreateTaskResult immediately.

WARNING: This is experimental and may change without notice.
c          	         < V ^8  d   QhRS[ RS[3,          RS[P                  RS[P                  RS[P
                  S[P                  ,          /# r   r   r
   r   task_metadatar   r   r   r   CreateMessageRequestParamsTaskMetadataCreateTaskResultr   )r   r   s   "r   r   %TaskAugmentedSamplingFnT.__annotate__Z   sX     7 7 457 007 ))	7
 
		%//	17r   c                   "   R # 5ir   r    r"   r   r   rO   s   &&&&r   r#   !TaskAugmentedSamplingFnT.__call__Z   
     
 47r%   r    Nr&   r.   s   @r   rL   rL   P        7 7r   rL   c                   6   a  ] tR t^bt o RtV 3R lR ltRtV tR# )TaskAugmentedElicitationFnTa4  Handler for task-augmented elicitation/create requests from server.

When server sends an ElicitRequest with task field, this callback
is invoked. The callback should create a task, spawn background work,
and return CreateTaskResult immediately.

WARNING: This is experimental and may change without notice.
c          	         < V ^8  d   QhRS[ RS[3,          RS[P                  RS[P                  RS[P
                  S[P                  ,          /# rN   r   r   r   ElicitRequestParamsrR   rS   r   )r   r   s   "r   r   (TaskAugmentedElicitationFnT.__annotate__l   sX     7 7 457 ))7 ))	7
 
		%//	17r   c                   "   R # 5ir   r    rV   s   &&&&r   r#   $TaskAugmentedElicitationFnT.__call__l   rX   r%   r    Nr&   r.   s   @r   r[   r[   b   rY   r   r[   c                    V ^8  d   QhR\         R\        3,          R\        P                  R\        P                  \        P
                  ,          /# r   r   )r   s   "r   r   r   t   sE      OS01&& 5??*r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)ztasks/get not supportedcodemessager   r   METHOD_NOT_FOUNDr   r   s   &&r   default_get_task_handlerrj   t   s$      ??##)    ')c                    V ^8  d   QhR\         R\        3,          R\        P                  R\        P                  \        P
                  ,          /# r   r2   )r   s   "r   r   r   ~   sE      OS01-- %//1r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)ztasks/result not supportedrd   rg   ri   s   &&r   default_get_task_result_handlerrn   ~   $      ??##, rk   c                    V ^8  d   QhR\         R\        3,          R\        P                  R,          R\        P                  \        P
                  ,          /# r;   r<   )r   s   "r   r   r      sJ      OS01((4/ U__,r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)ztasks/list not supportedrd   rg   ri   s   &&r   default_list_tasks_handlerrr      s$      ??##* rk   c                    V ^8  d   QhR\         R\        3,          R\        P                  R\        P                  \        P
                  ,          /# r   rE   )r   s   "r   r   r      sE      OS01)) eoo-r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)ztasks/cancel not supportedrd   rg   ri   s   &&r   default_cancel_task_handlerru      ro   rk   c          	          V ^8  d   QhR\         R\        3,          R\        P                  R\        P                  R\        P
                  \        P                  ,          /# rN   rP   )r   s   "r   r   r      sU      OS01,, %% eoo-	r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)z%Task-augmented sampling not supportedrd   r   r   INVALID_REQUESTr   r   rO   s   &&&r   default_task_augmented_samplingr{      s$     
 ??""7 rk   c          	          V ^8  d   QhR\         R\        3,          R\        P                  R\        P                  R\        P
                  \        P                  ,          /# rN   r]   )r   s   "r   r   r      sU      OS01%% %% eoo-	r   c                 V   "   \         P                  ! \         P                  R R7      # 5i)z(Task-augmented elicitation not supportedrd   rx   rz   s   &&&r   "default_task_augmented_elicitationr~      s$     
 ??"": rk   c                      a  ] tR t^t o Rt]! ]R7      t]! ]R7      t	]! ]
R7      t]! ]R7      t]! ]R7      t]! ]R7      tV 3R lR lt]V 3R lR l4       tV 3R lR ltV 3R	 ltR
tV tR# )ExperimentalTaskHandlersa  Container for experimental task handlers.

Groups all task-related handlers that handle server -> client requests.
This includes both pure task requests (get, list, cancel, result) and
task-augmented request handlers (sampling, elicitation with task field).

WARNING: These APIs are experimental and may change without notice.

Example:
    handlers = ExperimentalTaskHandlers(
        get_task=my_get_task_handler,
        list_tasks=my_list_tasks_handler,
    )
    session = ClientSession(..., experimental_task_handlers=handlers)
)defaultc                B   < V ^8  d   QhRS[ P                  R,          /# )r   r   N)r   ClientTasksCapability)r   r   s   "r   r   %ExperimentalTaskHandlers.__annotate__   s     "
 "
%"="="D "
r   c                   V P                   \        JpV P                  \        JpV P                  \
        JpV P                  \        Jp\        WW4.4      '       g   R# RpV'       g	   V'       d}   \        P                  ! V'       d+   \        P                  ! \        P                  ! 4       R7      MRV'       d+   \        P                  ! \        P                  ! 4       R7      MRR7      p\        P                  ! V'       d   \        P                   ! 4       MRV'       d   \        P"                  ! 4       VR7      # RVR7      # )a  Build ClientTasksCapability from the configured handlers.

Returns a capability object that reflects which handlers are configured
(i.e., not using the default "not supported" handlers).

Returns:
    ClientTasksCapability if any handlers are provided, None otherwise
N)createMessage)create)samplingelicitation)listcancelrequests)
list_tasksrr   cancel_taskru   augmented_samplingr{   augmented_elicitationr~   anyr   ClientTasksRequestsCapabilityTasksSamplingCapabilityTasksCreateMessageCapabilityTasksElicitationCapability TasksCreateElicitationCapabilityr   TasksListCapabilityTasksCancelCapability)r"   has_list
has_cancelhas_samplinghas_elicitationrequests_capabilitys   &     r   build_capability)ExperimentalTaskHandlers.build_capability   s     ??*DD%%-HH
..6UU44<^^ H,HII KO?"'"E"E 66UEgEgEij" "<<EDjDjDlm# **08**,d4>5..0(
 	
DH(
 	
r   c                :   < V ^8  d   QhRS[ P                  RS[/# )r   requestr   )r   ServerRequestbool)r   r   s   "r   r   r      s!     
 
!4!4 
 
r   c                    \        V P                  \        P                  \        P                  ,          \        P
                  ,          \        P                  ,          4      # )z5Check if this handler handles the given request type.)
isinstancerootr   GetTaskRequestGetTaskPayloadRequestListTasksRequestCancelTaskRequest)r   s   &r   handles_request(ExperimentalTaskHandlers.handles_request   sC     LL  5#>#>>AWAWWZ_ZqZqq
 	
r   c                |   < V ^8  d   QhRS[ RS[3,          RS[S[P                  S[P
                  3,          RR/# )r   ctxr
   	responderr   N)r   r   r	   r   r   ClientResult)r   r   s   "r   r   r      sN     #\ #\OS01#\ $E$7$79K9K$KL#\ 
	#\r   c                
  "   \        \        P                  \        P                  ,          4      pVP                  P
                  ;\        P                  Rc ;eJ   w  p V P                  W4      G Rj  xL
 pVP                  V4      pVP                  V4      G Rj  xL
  R#  ;\        P                  Rc ;eJ   w  p V P                  W4      G Rj  xL
 pVP                  V4      pVP                  V4      G Rj  xL
  R#  ;\        P                  Rc ;eJ   w  p V P                  W4      G Rj  xL
 pVP                  V4      pVP                  V4      G Rj  xL
  R#  \        P                  Rc ;eI   w  pV P                  W4      G Rj  xL
 pVP                  V4      pVP                  V4      G Rj  xL
  R#   \!        R\#        VP                  P
                  4       24      h EL| ELU EL" L L L Ll LD5i)z~Handle a task-related request from the server.

Call handles_request() first to check if this handler can handle the request.
)r   NzUnhandled request type: )r   r   r   r   r   r   r   get_taskvalidate_pythonrespondr   get_task_resultr   r   r   r   
ValueErrortype)r"   r   r   client_response_typer   responseclient_responses   &&&    r   handle_request'ExperimentalTaskHandlers.handle_request   s     S^0S
 $$4%%44!%s!;;"6"F"Fx"P''888 5
 <,,;;!%!5!5c!BB"6"F"Fx"P''888 <
 7''66!%!=="6"F"Fx"P''888 7
 ((77!%!1!1#!>>"6"F"Fx"P''888 8
  #;DARARAWAW<X;Y!Z[[) <8 C8 >8 ?8s   A2H4G05)HG35HG6)H>G9?5H4G;5)HG=3HG?)H<H=4H3H6H9H;H=H?HHc                b   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )r   r   r   r   r   r   r   )r   r0   r9   rC   rL   r[   )r   r   s   "r   r   r      sS     &  I' ( -]) * $O+ , &R- 2 1a3 4 7j5 r   r    N)r'   r(   r)   r*   r+   r   rj   r   rn   r   rr   r   ru   r   r{   r   r~   r   r   staticmethodr   r   __annotate_func__r,   r-   r.   s   @r   r   r      s     " #(0H"IH/4=\/]O&+4N&OJ(-6Q(RK 49A`3a9>Gi9j"
 "
H 
 
#\ #\Q  r   r   )!r+   dataclassesr   r   typingr   r   r   pydanticr   	mcp.typesr   mcp.shared.contextr   mcp.shared.sessionr	   mcp.client.sessionr
   r   r0   r9   rC   rL   r[   rj   rn   rr   ru   r{   r~   r   (default_task_augmented_sampling_callback+default_task_augmented_elicitation_callbackr    r   r   <module>r      s    ) / /    - /0
4 
4
;h 
;
6( 
6
78 
77x 7$7( 7$ j\ j\ j\\ ,K (.P +r   