§
    ‰eîiÉ-  ã                  óL  — d dl mZ d dlmZ d dlmZmZ d dlmZmZ d dl	Z	d dl
mZmZ d dlmZmZ d dlmZ d,d„Z ed¬¦  «         G d„ d¦  «        ¦   «         Z ed¬¦  «         G d„ d¦  «        ¦   «         Zd-d„Zd.d„Zd/d„Zddœd0d"„Zd1d$„Zd2d%„Zd2d&„Zd3d(„Zddd)œd4d+„ZdS )5é    )Úannotations)Ú	dataclass)ÚdatetimeÚtimezone)ÚAnyÚOptionalN)Ú_is_oauth_tokenÚresolve_anthropic_token)Ú_read_codex_tokensÚ!resolve_codex_runtime_credentials)Úresolve_runtime_providerÚreturnr   c                 ó>   — t          j        t          j        ¦  «        S ©N)r   Únowr   Úutc© ó    ú5/home/div/.hermes/hermes-agent/agent/account_usage.pyÚ_utc_nowr      s   € ÝŒ<�œÑ%Ô%Ð%r   T)Úfrozenc                  óD   — e Zd ZU ded<   dZded<   dZded<   dZded	<   dS )
ÚAccountUsageWindowÚstrÚlabelNzOptional[float]Úused_percentúOptional[datetime]Úreset_atúOptional[str]Údetail)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r   r    r   r   r   r   r      sN   € € € € € € à€J€J�JØ$(€LÐ(Ð(Ð(Ñ(Ø#'€HÐ'Ð'Ð'Ñ'Ø €FÐ Ð Ð Ñ Ð Ð r   r   c                  óŒ   — e Zd ZU ded<   ded<   ded<   dZded<   dZd	ed
<   dZded<   dZded<   dZd	ed<   e	dd„¦   «         Z
dS )ÚAccountUsageSnapshotr   ÚproviderÚsourcer   Ú
fetched_atzAccount limitsÚtitleNr   Úplanr   ztuple[AccountUsageWindow, ...]Úwindowsztuple[str, ...]ÚdetailsÚunavailable_reasonr   Úboolc                óH   — t          | j        p| j        ¦  «        o| j         S r   )r/   r,   r-   r.   )Úselfs    r   Ú	availablezAccountUsageSnapshot.available%   s$   € å�D”LÐ0 D¤LÑ1Ô1ÐQ¸$Ô:QÐ6QÐQr   )r   r/   )r!   r"   r#   r$   r*   r+   r,   r-   r.   Úpropertyr2   r   r   r   r&   r&      s®   € € € € € € à€M€M�MØ€K€K�KØÐÐÑØ!€EÐ!Ð!Ð!Ñ!Ø€DÐÐÐÑØ.0€GÐ0Ð0Ð0Ñ0Ø!€GÐ!Ð!Ð!Ñ!Ø(,ÐÐ,Ð,Ð,Ñ,àðRð Rð Rñ „XðRð Rð Rr   r&   Úvaluer   c                óÈ   — t          | pd¦  «                             ¦   «         }|sd S |                     dd¦  «                             dd¦  «                             ¦   «         S )NÚ Ú_Ú Ú-)r   ÚstripÚreplacer*   )r4   Úcleaneds     r   Ú_title_case_slugr=   *   s\   € Ý�%�+˜2ÑÔ×$Ò$Ñ&Ô&€GØð ØˆtØ�?Š?˜3 Ñ$Ô$×,Ò,¨S°#Ñ6Ô6×<Ò<Ñ>Ô>Ð>r   r   r   c                óà  — | dv rd S t          | t          t          f¦  «        r-t          j        t          | ¦  «        t
          j        ¬¦  «        S t          | t          ¦  «        r‰|                      ¦   «         }|sd S | 	                    d¦  «        r|d d…         dz   }	 t          j
        |¦  «        }|j        r|n|                     t
          j        ¬¦  «        S # t          $ r Y d S w xY wd S )N)Nr6   )ÚtzÚZéÿÿÿÿz+00:00)Útzinfo)Ú
isinstanceÚintÚfloatr   Úfromtimestampr   r   r   r:   ÚendswithÚfromisoformatrB   r;   Ú
ValueError)r4   ÚtextÚdts      r   Ú	_parse_dtrL   1   sö   € Ø�
ÐÐØˆtÝ�%�#�u˜Ñ&Ô&ð EÝÔ%¥e¨E¡l¤lµx´|ÐDÑDÔDÐDÝ�%�ÑÔð 
Ø�{Š{‰}Œ}ˆØð 	Ø�4Ø�=Š=˜ÑÔð 	(Ø˜˜˜”9˜xÑ'ˆDð	ÝÔ'¨Ñ-Ô-ˆBØœÐG�2�2¨¯
ª
½(¼,¨
Ñ(GÔ(GÐGøÝð 	ð 	ð 	Ø�4�4ð	øøøàˆ4s   Â <C Ã
C+Ã*C+rK   r   c                ó¬  — | sdS |                       ¦   «         }| t          ¦   «         z
  }t          |                     ¦   «         ¦  «        }|dk    rd|                     d¦  «        › d�S t          |d¦  «        \  }}|dz  }|dk    rt          |d¦  «        \  }}d	|› d
|› d�}n|dk    r
d	|› d|› d�}nd	|› d�}|› d|                     d¦  «        › d�S )NÚunknownr   znow (z%Y-%m-%d %H:%M %Zú)i  é<   é   zin zd Úhzh Úmú ()Ú
astimezoner   rD   Útotal_secondsÚstrftimeÚdivmod)	rK   Úlocal_dtÚdeltarV   ÚhoursÚremÚminutesÚdaysÚrels	            r   Ú_format_resetr`   D   s  € Øð ØˆyØ�}Š}‰Œ€HØ•‘”‰O€EÝ˜×+Ò+Ñ-Ô-Ñ.Ô.€MØ˜ÒÐØ@�x×(Ò(Ð)<Ñ=Ô=Ð@Ð@Ð@Ð@Ý˜ tÑ,Ô,�J€Eˆ3Ø�R‰i€GØ�‚{€{Ý˜U BÑ'Ô'‰ˆˆeØ$�DÐ$Ð$˜EÐ$Ð$Ð$ˆˆØ	�ŠˆØ'�EÐ'Ð'˜WÐ'Ð'Ð'ˆˆà�GÐÐÐˆØÐ>Ð>�X×&Ò&Ð':Ñ;Ô;Ð>Ð>Ð>Ð>r   F)ÚmarkdownÚsnapshotúOptional[AccountUsageSnapshot]ra   r/   ú	list[str]c          
     ó  — | sg S d|rdnd› | j         › |rdnd› �}|g}| j        r'|                     d| j        › d| j        › d�¦  «         n|                     d| j        › �¦  «         | j        D ]Ð}|j        €|j        › d�}nqt          dt          d	t          |j        ¦  «        z
  ¦  «        ¦  «        }t          dt          t          |j        ¦  «        ¦  «        ¦  «        }|j        › d
|› d|› d�}|j
        r|dt          |j
        ¦  «        › �z  }n|j        r|d|j        › �z  }|                     |¦  «         ŒÑ| j        D ]}|                     |¦  «         Œ| j        r|                     d| j        › �¦  «         |S )Nu   ðŸ“ˆ z**r6   z
Provider: rT   rO   z: unavailabler   éd   z: z% remaining (z% used)u    â€¢ resets õ    â€¢ zUnavailable: )r*   r+   Úappendr'   r,   r   r   ÚmaxÚroundrE   r   r`   r    r-   r.   )	rb   ra   ÚheaderÚlinesÚwindowÚbaseÚ	remainingÚusedr    s	            r   Úrender_account_usage_linesrq   X   sá  € Øð Øˆ	ØY˜XÐ-�T�T¨2ÐY¨x¬~ÐYÀxÐ?W¸t¸tÐUWÐYÐY€FØˆH€EØ„}ð 7Ø�ŠÐG (Ô"3ÐGÐG°x´}ÐGÐGÐGÑHÔHÐHÐHà�ŠÐ5 (Ô"3Ð5Ð5Ñ6Ô6Ð6ØÔ"ð ð ˆØÔÐ&Ø”lÐ1Ð1Ð1ˆDˆDå˜A�u S­5°Ô1DÑ+EÔ+EÑ%EÑFÔFÑGÔGˆIÝ�q�%¥ fÔ&9Ñ :Ô :Ñ;Ô;Ñ<Ô<ˆDØ”lÐKÐK iÐKÐK¸dÐKÐKÐKˆDØŒ?ð 	,ØÐC¥=°´Ñ#AÔ#AÐCÐCÑCˆDˆDØŒ]ð 	,ØÐ+˜FœMÐ+Ð+Ñ+ˆDØ�Š�TÑÔÐÐØÔ"ð ð ˆØ�Š�VÑÔÐÐØÔ"ð DØ�ŠÐB XÔ%@ÐBÐBÑCÔCÐCØ€Lr   Úbase_urlc                óÒ   — | pd                      ¦   «                              d¦  «        }|sd}|                     d¦  «        r|d t          d¦  «         …         }d|v r|dz   S |dz   S )Nr6   ú/z%https://chatgpt.com/backend-api/codexz/codexz/backend-apiz/wham/usagez/api/codex/usage)r:   ÚrstriprG   Úlen)rr   Ú
normalizeds     r   Ú_resolve_codex_usage_urlrx   t   s‚   € Ø�.˜b×'Ò'Ñ)Ô)×0Ò0°Ñ5Ô5€JØð =Ø<ˆ
Ø×Ò˜8Ñ$Ô$ð 2ØÐ 0¥3 x¡=¤= .Ð 0Ô1ˆ
Ø˜Ð#Ð#Ø˜MÑ)Ð)ØÐ*Ñ*Ð*r   c                 ó‚  — t          d¬¦  «        } t          ¦   «         }|                     d¦  «        pi }t          |                     dd¦  «        pd¦  «                             ¦   «         pd }d| d         › �dd	d
œ}|r||d<   t          j        d¬¦  «        5 }|                     t          |                      dd¦  «        ¦  «        |¬¦  «        }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   | 	                    ¦   «         pi }|                     d¦  «        pi }g }	dD ]†\  }
}|                     |
¦  «        pi }|                     d¦  «        }|€Œ4|	 
                    t          |t          |¦  «        t          |                     d¦  «        ¦  «        ¬¦  «        ¦  «         Œ‡g }|                     d¦  «        pi }|                     d¦  «        r‚|                     d¦  «        }t          |t          t          f¦  «        r'| 
                    dt          |¦  «        d›�¦  «         n*|                     d¦  «        r| 
                    d¦  «         t!          ddt#          ¦   «         t%          |                     d¦  «        ¦  «        t'          |	¦  «        t'          |¦  «        ¬¦  «        S ) NT)Úrefresh_if_expiringÚtokensÚ
account_idr6   úBearer Úapi_keyúapplication/jsonz	codex-cli)ÚAuthorizationÚAcceptú
User-AgentzChatGPT-Account-Idç      .@©Útimeoutrr   ©ÚheadersÚ
rate_limit))Úprimary_windowÚSession)Úsecondary_windowÚWeeklyr   r   ©r   r   r   ÚcreditsÚhas_creditsÚbalanceúCredits balance: $ú.2fÚ	unlimitedzCredits balance: unlimitedúopenai-codexÚ	usage_apiÚ	plan_type)r'   r(   r)   r+   r,   r-   )r   r   Úgetr   r:   ÚhttpxÚClientrx   Úraise_for_statusÚjsonrh   r   rE   rL   rC   rD   r&   r   r=   Útuple)ÚcredsÚ
token_datar{   r|   r‡   ÚclientÚresponseÚpayloadrˆ   r,   Úkeyr   rm   rp   r-   rŽ   r�   s                    r   Ú_fetch_codex_account_usager£      só  € Ý-À$ÐGÑGÔG€EÝ#Ñ%Ô%€JØ�^Š^˜HÑ%Ô%Ð+¨€FÝ�V—Z’Z ¨bÑ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ÐHÀD€Jà5 5¨Ô#3Ð5Ð5Ø$Ø!ðð €Gð
 ð 3Ø(2ˆÐ$Ñ%Ý	Œ˜dÐ	#Ñ	#Ô	#ð $ vØ—:’:Õ6°u·y²yÀÈRÑ7PÔ7PÑQÔQÐ[b�:ÑcÔcˆØ×!Ò!Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �mŠm‰oŒoÐ# €GØ—’˜\Ñ*Ô*Ð0¨b€JØ(*€GØUð 
ð 
‰
ˆˆUØ—’ Ñ$Ô$Ð*¨ˆØ�zŠz˜.Ñ)Ô)ˆØˆ<ØØ�ŠÝØÝ" 4™[œ[Ý" 6§:¢:¨jÑ#9Ô#9Ñ:Ô:ðñ ô ñ	
ô 	
ð 	
ð 	
ð €GØ�kŠk˜)Ñ$Ô$Ð*¨€GØ‡{‚{�=Ñ!Ô!ð 9Ø—+’+˜iÑ(Ô(ˆÝ�g¥¥U˜|Ñ,Ô,ð 	9Ø�NŠNÐDµ°g±´ÐDÐDÐDÑEÔEÐEÐEØ�[Š[˜Ñ%Ô%ð 	9Ø�NŠNÐ7Ñ8Ô8Ð8ÝØØÝ‘:”:Ý˜gŸkšk¨+Ñ6Ô6Ñ7Ô7Ý�g‘”Ý�g‘”ðñ ô ð s   ÂAC3Ã3C7Ã:C7c                 ó  — t          ¦   «         pd                     ¦   «         } | sd S t          | ¦  «        st          ddt	          ¦   «         d¬¦  «        S d| › �dddd	d
œ}t          j        d¬¦  «        5 }|                     d|¬¦  «        }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   | 	                    ¦   «         pi }g }d}|D ]­\  }}|                     |¦  «        pi }	|	                     d¦  «        }
|
€Œ4t          |
¦  «        dk    rt          |
¦  «        dz  nt          |
¦  «        }|                     t          ||t          |	                     d¦  «        ¦  «        ¬¦  «        ¦  «         Œ®g }|                     d¦  «        pi }|                     d¦  «        r™|                     d¦  «        }|                     d¦  «        }|                     d¦  «        pd}t          |t          t          f¦  «        r<t          |t          t          f¦  «        r |                     d|d›d|d›d|› �¦  «         t          ddt	          ¦   «         t!          |¦  «        t!          |¦  «        ¬¦  «        S ) Nr6   Ú	anthropicÚoauth_usage_apizMAnthropic account limits are only available for OAuth-backed Claude accounts.)r'   r(   r)   r.   r}   r   zoauth-2025-04-20zclaude-code/2.1.0)r€   r�   zContent-Typezanthropic-betar‚   rƒ   r„   z)https://api.anthropic.com/api/oauth/usager†   ))Ú	five_hourzCurrent session)Ú	seven_dayzCurrent week)Úseven_day_opusz	Opus week)Úseven_day_sonnetzSonnet weekÚutilizationé   rf   Ú	resets_atr�   Úextra_usageÚ
is_enabledÚused_creditsÚmonthly_limitÚcurrencyÚUSDzExtra usage: r’   z / r8   ©r'   r(   r)   r,   r-   )r
   r:   r	   r&   r   r˜   r™   r—   rš   r›   rE   rh   r   rL   rC   rD   rœ   )Útokenr‡   rŸ   r    r¡   r,   Úmappingr¢   r   rm   Úutilrp   r-   Úextrar°   r±   r²   s                    r   Ú_fetch_anthropic_account_usager¹   ¯   sö  € Ý$Ñ&Ô&Ð,¨"×3Ò3Ñ5Ô5€EØð ØˆtÝ˜5Ñ!Ô!ð 
Ý#Ø Ø$Ý‘z”zØnð	
ñ 
ô 
ð 	
ð + 5Ð*Ð*Ø$Ø*Ø,Ø)ðð €Gõ 
Œ˜dÐ	#Ñ	#Ô	#ð $ vØ—:’:ÐIÐSZ�:Ñ[Ô[ˆØ×!Ò!Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð �mŠm‰oŒoÐ# €GØ(*€Gð€Gð ð 
ð 
‰
ˆˆUØ—’˜SÑ!Ô!Ð' RˆØ�zŠz˜-Ñ(Ô(ˆØˆ<ØÝ$)¨$¡K¤K°1Ò$4Ð$4�u�T‰{Œ{˜SÑ Ð ½%À¹+¼+ˆØ�ŠÝØØ!Ý" 6§:¢:¨kÑ#:Ô#:Ñ;Ô;ðñ ô ñ	
ô 	
ð 	
ð 	
ð €GØ�KŠK˜Ñ&Ô&Ð,¨"€EØ‡y‚y�ÑÔð Ø—y’y Ñ0Ô0ˆØŸ	š	 /Ñ2Ô2ˆØ—9’9˜ZÑ(Ô(Ð1¨EˆÝ�l¥S­% LÑ1Ô1ð 	µjÀÕQTÕV[ÐP\Ñ6]Ô6]ð 	Ø�NŠNØS ÐSÐSÐS°]ÐSÐSÐSÈÐSÐSñô ð õ  ØØ Ý‘:”:Ý�g‘”Ý�g‘”ðñ ô ð s   Á5,B-Â-B1Â4B1r~   c           	     ó	  — t          d| |¬¦  «        }t          |                     dd¦  «        pd¦  «                             ¦   «         }|sd S t          |                     dd¦  «        pd¦  «                             d¦  «        }|› d�}|› d�}d	|› �d
dœ}t          j        d¬¦  «        5 }|                     ||¬¦  «        }	|	                     ¦   «          |	                     ¦   «         pi                      d¦  «        pi }
	 |                     ||¬¦  «        }|                     ¦   «          |                     ¦   «         pi                      d¦  «        pi }n# t          $ r i }Y nw xY wd d d ¦  «         n# 1 swxY w Y   t          |
                     d¦  «        pd¦  «        }t          |
                     d¦  «        pd¦  «        }dt          d||z
  ¦  «        d›�g}g }|                     d¦  «        }|                     d¦  «        }t          |                     d¦  «        pd¦  «                             ¦   «         }|                     d¦  «        }t          |t          t          f¦  «        ràt          |¦  «        dk    rÍt          |t          t          f¦  «        r±dt          |¦  «        cxk    rt          |¦  «        k    rŠn n‡t          |¦  «        }t          |¦  «        }||z
  |z  dz  }d|d›d|d›d�g}|r|                     d|› �¦  «         |                     t          d|d                      |¦  «        ¬!¦  «        ¦  «         t          |t          t          f¦  «        rßd"t          |¦  «        d›d#�g}|                     d$¦  «        d%f|                     d&¦  «        d'f|                     d(¦  «        d)ffD ]]\  }}t          |t          t          f¦  «        r<t          |¦  «        dk    r)|                     dt          |¦  «        d›d*|› �¦  «         Œ^|                     d                      |¦  «        ¦  «         t#          dd+t%          ¦   «         t'          |¦  «        t'          |¦  «        ¬,¦  «        S )-NÚ
openrouter)Ú	requestedÚexplicit_base_urlÚexplicit_api_keyr~   r6   rr   rt   z/creditsz/keyr}   r   )r€   r�   g      $@r„   r†   ÚdataÚtotal_creditsg        Útotal_usager‘   r’   ÚlimitÚlimit_remainingÚlimit_resetÚusager   rf   ú$z of $z
 remainingzresets zAPI key quotarg   )r   r   r    zAPI key usage: $z totalÚusage_dailyÚtodayÚusage_weeklyz	this weekÚusage_monthlyz
this monthr8   Úcredits_apir´   )r   r   r—   r:   ru   r˜   r™   rš   r›   Ú	ExceptionrE   ri   rC   rD   rh   r   Újoinr&   r   rœ   )rr   r~   Úruntimerµ   rw   Úcredits_urlÚkey_urlr‡   rŸ   Úcredits_resprŽ   Úkey_respÚkey_datarÀ   rÁ   r-   r,   rÂ   rÃ   rÄ   rÅ   Úlimit_valueÚremaining_valuer   Údetail_partsÚusage_partsr4   r   s                               r   Ú_fetch_openrouter_account_usagerØ   ì   sþ  € Ý&ØØ"Ø ðñ ô €Gõ
 �—’˜I rÑ*Ô*Ð0¨bÑ1Ô1×7Ò7Ñ9Ô9€EØð ØˆtÝ�W—[’[ ¨RÑ0Ô0Ð6°BÑ7Ô7×>Ò>¸sÑCÔC€JØÐ)Ð)Ð)€KØÐ!Ð!Ð!€Gà* 5Ð*Ð*Ø$ðð €Gõ 
Œ˜dÐ	#Ñ	#Ô	#ð 	 vØ—z’z +°w�zÑ?Ô?ˆØ×%Ò%Ñ'Ô'Ð'Ø×$Ò$Ñ&Ô&Ð,¨"×1Ò1°&Ñ9Ô9Ð?¸Rˆð	Ø—z’z '°7�zÑ;Ô;ˆHØ×%Ò%Ñ'Ô'Ð'Ø Ÿš™œÐ-¨2×2Ò2°6Ñ:Ô:Ð@¸bˆHˆHøÝð 	ð 	ð 	ØˆHˆHˆHð	øøøð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˜'Ÿ+š+ oÑ6Ô6Ð=¸#Ñ>Ô>€MÝ˜Ÿš MÑ2Ô2Ð9°cÑ:Ô:€KØO¥C¨¨]¸[Ñ-HÑ$IÔ$IÐOÐOÐOÐP€GØ(*€GØ�LŠL˜Ñ!Ô!€EØ—l’lÐ#4Ñ5Ô5€OÝ�h—l’l =Ñ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@€KØ�LŠL˜Ñ!Ô!€Eå�5�3¥˜,Ñ'Ô'ð
å�%‰LŒL˜1ÒÐÝ�­­e¨Ñ5Ô5ð à•�Ñ'Ô'Ð7Ð7Ò7Ð7­5°©<¬<Ò7Ð7Ð7Ð7Ð7å˜E‘l”lˆÝ Ñ0Ô0ˆØ$ Ñ6¸+ÑEÈÑLˆØQ˜OÐQÐQÐQ°kÐQÐQÐQÐQÐRˆØð 	9Ø×ÒÐ 7¨+Ð 7Ð 7Ñ8Ô8Ð8Ø�ŠÝØ%Ø)Ø—|’| LÑ1Ô1ðñ ô ñ	
ô 	
ð 	
õ �%�#�u˜Ñ&Ô&ð 	2ØB­%°©,¬,ÐBÐBÐBÐBÐCˆà�\Š\˜-Ñ(Ô(¨'Ð2Ø�\Š\˜.Ñ)Ô)¨;Ð7Ø�\Š\˜/Ñ*Ô*¨LÐ9ð
ð 	Cð 	C‰LˆE�5õ
 ˜%¥#¥u Ñ.Ô.ð Cµ5¸±<´<À!Ò3CÐ3CØ×"Ò"Ð#A¥u¨U¡|¤|Ð#AÐ#AÐ#A¸%Ð#AÐ#AÑBÔBÐBøØ�Š�w—|’| KÑ0Ô0Ñ1Ô1Ð1ÝØØÝ‘:”:Ý�g‘”Ý�g‘”ðñ ô ð s8   Â-AE:ÄAEÅE:ÅE+Å(E:Å*E+Å+E:Å:E>ÆE>)rr   r~   r'   c               ó  — t          | pd¦  «                             ¦   «                              ¦   «         }|dv rd S 	 |dk    rt          ¦   «         S |dk    rt	          ¦   «         S |dk    rt          ||¦  «        S n# t          $ r Y d S w xY wd S )Nr6   >   r6   ÚautoÚcustomr”   r¥   r»   )r   r:   Úlowerr£   r¹   rØ   rÌ   )r'   rr   r~   rw   s       r   Úfetch_account_usagerÝ   4  s¸   € õ �X�^ Ñ$Ô$×*Ò*Ñ,Ô,×2Ò2Ñ4Ô4€JØÐ+Ð+Ð+ØˆtðØ˜Ò'Ð'Ý-Ñ/Ô/Ð/Ø˜Ò$Ð$Ý1Ñ3Ô3Ð3Ø˜Ò%Ð%Ý2°8¸WÑEÔEÐEð &øåð ð ð Øˆtˆtðøøøàˆ4s   ½A< ÁA< Á%A< Á<
B
Â	B
)r   r   )r4   r   r   r   )r4   r   r   r   )rK   r   r   r   )rb   rc   ra   r/   r   rd   )rr   r   r   r   )r   rc   )rr   r   r~   r   r   rc   )r'   r   rr   r   r~   r   r   rc   )Ú
__future__r   Údataclassesr   r   r   Útypingr   r   r˜   Úagent.anthropic_adapterr	   r
   Úhermes_cli.authr   r   Úhermes_cli.runtime_providerr   r   r   r&   r=   rL   r`   rq   rx   r£   r¹   rØ   rÝ   r   r   r   ú<module>rä      s,  ðØ "Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à €€€à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ @Ð @Ð @Ð @Ð @Ð @ð&ð &ð &ð &ð €�$ÐÑÔð!ð !ð !ð !ð !ñ !ô !ñ Ôð!ð €�$ÐÑÔðRð Rð Rð Rð Rñ Rô Rñ ÔðRð?ð ?ð ?ð ?ðð ð ð ð&?ð ?ð ?ð ?ð( ^cð ð ð ð ð ð ð8+ð +ð +ð +ð-ð -ð -ð -ð`:ð :ð :ð :ðzEð Eð Eð EðV #Ø!ð	ð ð ð ð ð ð ð r   