
    ^sj	                         d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  G d de      Ze G d	 d
             Zeddededz  fd       Zy)    )contextmanager)	dataclassfield)	BaseModel)RequestContext)BaseSession)ProgressTokenc                   (    e Zd ZU eed<   edz  ed<   y)ProgressprogressNtotal)__name__
__module____qualname__float__annotations__     F/root/.hermes/venv/lib/python3.12/site-packages/mcp/shared/progress.pyr   r      s    O4<r   r   c                   `    e Zd ZU eed<   eed<   edz  ed<    edd      Zeed<   d	ed
dfdZ	y)ProgressContextsessionprogress_tokenNr   g        F)defaultinitcurrentamountreturnc                    K   | xj                   |z  c_         | j                  j                  | j                  | j                   | j                         d {    y 7 w)N)r   )r   r   send_progress_notificationr   r   )selfr   s     r   r   zProgressContext.progress   sJ     ll55TZZ 6 
 	
 	
s   AAAA)
r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r      s<    !!4<3U3GU3
U 
t 
r   r   Nctxr   c              #      K   | j                   | j                   j                  t        d      t        | j                  | j                   j                  |      }	 | y # w xY ww)NzNo progress token provided)metaprogressToken
ValueErrorr   r   )r"   r   progress_ctxs      r   r   r      sX     
xx388119566"3;;0F0FNLs   AA&A!  A&!A##A&)N)
contextlibr   dataclassesr   r   pydanticr   mcp.shared.contextr   mcp.shared.sessionr   	mcp.typesr	   r   r   r   r   r   r   r   <module>r.      sb    % (  - * #y 
 
 
 
 .   r   