+
    iHàj@  ã                  ó”   € R t ^ RIHt ^ RIt^ RIHt ^ RIHtHtH	t	H
t
 ]
'       d   ^ RIHt R R lt ! R R	]4      t ! R
 R4      tR# )z<Locked credential-pool administration and target resolution.)ÚannotationsN)Úreplace)ÚAnyÚOptionalÚTupleÚTYPE_CHECKING)ÚPooledCredentialc               ó    € V ^8„  d   QhRRRR/# ©é   Úentryr   Úreturn© )Úformats   "Ú@/home/ubuntu/.hermes/hermes-agent/agent/credential_pool_admin.pyÚ__annotate__r      s    € ÷ Zñ ZÐ 0ð ZÐ5Eñ Zó    c                óÒ   € ^ RI Hp \        V 3/ VBRRR\        P                  ! 4       RV P                  P                  4        UUu/ uF  w  r#VR8w  g   K  W#bK  	  upp/B # u uppi )é    ©Ú_CLEAR_STATUSÚmodel_cooldownsNÚstatus_cleared_atÚextraÚfailure_reason)Úagent.credential_poolr   r   Útimer   Úitems)r   r   ÚkÚvs   &   r   Ú_cleared_status_copyr       sr   € Ý3ô �5ñ Z˜Mñ Z¸4ð ZÔSW×S\ÒS\ÓS^ð ZØ+0¯;©;×+<Ñ+<Ô+>ÔXÑ+>¡4 1À!ÐGWÑBWœ$˜!š$Ñ+>ÒXòZð ZùÛXs   ÁA#ÁA#c                  ó   € ] tR t^tRtRtR# )ÚCredentialNotSavedErrorzE``add_entry`` wrote the pool but the store does not hold the new row.r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   r   r   r"   r"      s   † ÝOr   r"   c                  ó^   € ] tR t^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t
R# )ÚCredentialPoolAdminMixinc               ó    € V ^8„  d   QhRRRR/# )r   Úcredential_idÚstrr   úOptional[PooledCredential]r   )r   s   "r   r   Ú%CredentialPoolAdminMixin.__annotate__   s   € ÷ 	ñ 	¨#ð 	Ð2Lñ 	r   c                ó(  a€ V P                   ;_uu_ 4        V P                  V3R l4      pVf    RRR4       R# \        V4      pV P                  W#4       V P	                  VP
                  .R7       VuuRRR4       #   + '       g   i     R# ; i)zHClear only the target's local error state, preserving sibling cooldowns.c                ó"   <€ V P                   S8H  # ©N©Úid©Úer,   s   &€r   Ú<lambda>Ú7CredentialPoolAdminMixin.reset_status.<locals>.<lambda>   ó   ø€ ¨¯©°Ò)>r   N©Ústatus_cleared_ids)Ú_lockÚ_findr    Ú_replace_entryÚ_persistr4   )Úselfr,   r   Úcleareds   &f  r   Úreset_statusÚ%CredentialPoolAdminMixin.reset_status   sg   ø€ à�Z�Z‹ZØ—J‘JÔ>Ó?ˆEØŠ}Ø÷ ‰Zô +¨5Ó1ˆGØ×Ñ Ô/Ø�M‰M¨g¯j©j¨\ˆMÔ:Ø÷ �Z�Z‹Zús   –B »:B Â B	c               ó   € V ^8„  d   QhRR/# )r   r   Úintr   )r   s   "r   r   r/   $   s   € ÷ ñ  ñ r   c                óŠ  € ^ RI Hp V P                  ;_uu_ 4        V P                   Uu. uFa  pVP                  '       gK   VP
                  '       g9   VP                  '       g'   VP                  '       g   VP                  '       g   K_  VNKc  	  ppV'       ds   V Uu0 uF  q"P                  kK  	  ppV P                   Uu. uF!  pVP                  V9   d   \        V4      MTNK#  	  upV n        V P                  \        V4      R7       \        V4      uuRRR4       # u upi u upi u upi   + '       g   i     R# ; i)a^  Clear exhaustion state on every entry. Returns how many were cleared.

``failure_reason`` lives in ``extra``, not a dataclass field, so it is
stripped explicitly. The persist declares the cleared ids because the
disk-recency merge reads a cleared ``last_status_at`` (None -> epoch 0)
as a stale snapshot and would copy a still-binding cooldown back.
r   r:   N)r   r   r<   Ú_entriesÚlast_statusÚlast_status_atÚlast_error_coder   r   r4   r    r?   ÚlistÚlen)r@   r   r6   ÚstaleÚ	stale_idss   &    r   Úreset_statusesÚ'CredentialPoolAdminMixin.reset_statuses$   sù   € õ 	8à�Z�Z‹ZàŸ=š=óÙ(�aØ—=—=�= A×$4×$4Ð$4¸×8I×8IÐ8IÈQ×M]×M]ÐM]Ðab×arÕar÷ �™=ð ð ÷ Ù+0Ó1©5 aŸTœT©5�	Ð1ð "Ÿ]š]ó!á*˜ð 01¯t©t°yÔ/@Ô(¨Ô+ÀaÒGÙ*ñ!�”ð —‘´°i³�ÔAÜ�u“:÷ ŠZùòùò
 2ùò!÷ �ZˆZúsR   ›D1ªD"ÁD"ÁD"Á%D"Á7D"ÂD"ÂD1ÂD'Â3D1Ã'D,Ã*-D1Ä"D1Ä1E	c               ó    € V ^8„  d   QhRRRR/# )r   ÚindexrE   r   r.   r   )r   s   "r   r   r/   <   s   € ÷ 	ñ 	 #ð 	Ð*Dñ 	r   c                	ó  € V P                   ;_uu_ 4        V^8  g   V\        V P                  4      8”  d    RRR4       R# V P                  P                  V^,
          4      p\	        V P                  4       UUu. uF  w  r4\        WCR7      NK  	  uppV n        V P                  VP                  .R7       V P                  VP                  8X  d   RV n        VuuRRR4       # u uppi   + '       g   i     R# ; i)é   N©Úpriority)Úremoved_ids)	r<   rL   rG   ÚpopÚ	enumerater   r?   r4   Ú_current_id)r@   rR   ÚremovedÚpr6   s   &&   r   Úremove_indexÚ%CredentialPoolAdminMixin.remove_index<   s¶   € Ø�Z�Z‹ZØ�qŒy˜E¤C¨¯©Ó$6Ô6Ø÷ ‰Zð —m‘m×'Ñ'¨°­	Ó2ˆGÜ@IÈ$Ï-É-Ô@XÔYÑ@X¹¸œW Q×3Ñ@XÒYˆDŒMØ�M‰M w§z¡z lˆMÔ3Ø×Ñ 7§:¡:Ô-Ø#'�Ô Ø÷ ŠZùó Z÷	 �ZˆZús$   •#C-Á:C-Á<C'
ÂA	C-Ã'C-Ã-C>	c               ó$   € V ^8„  d   QhRRRRRR/# )r   r,   r-   rV   rE   r   r.   r   )r   s   "r   r   r/   G   s"   € ÷ ?ñ ?¨ð ?°sð ?Ð?Yñ ?r   c                ó„  a€ ^ RI Hp V P                  ;_uu_ 4        V P                  V3R l4      pVf    RRR4       R# V P                   Uu. uF  qUP
                  S8w  g   K  VNK  	  ppVP                  \        ^ \        \        V4      \        V4      4      4      V4       \        V4       UUu. uF  w  ru\        WWR7      NK  	  pppV! V P                  V4       \        VR R7      V n        V P                  4        V P                  V3R l4      uuRRR4       # u upi u uppi   + '       g   i     R# ; i)zRPlace an entry at a clamped zero-based position and persist contiguous priorities.)Ú_normalize_pool_prioritiesc                ó"   <€ V P                   S8H  # r2   r3   r5   s   &€r   r7   Ú5CredentialPoolAdminMixin.move_entry.<locals>.<lambda>L   r9   r   NrU   c                ó   € V P                   # r2   rU   )r6   s   &r   r7   rc   T   s   € ¸!¿*º*r   )Úkeyc                ó"   <€ V P                   S8H  # r2   r3   r5   s   &€r   r7   rc   V   s   ø€ ¨¯©°Ò(=r   )r   ra   r<   r=   rG   r4   ÚinsertÚmaxÚminrE   rL   rY   r   ÚproviderÚsortedr?   )	r@   r,   rV   ra   r   r6   Úothersr\   Úentriess	   &f&      r   Ú
move_entryÚ#CredentialPoolAdminMixin.move_entryG   så   ø€ åDà�Z�Z‹ZØ—J‘JÔ>Ó?ˆEØŠ}Ø÷ ‰Zð "&§¢ÓH¡˜A·$±$¸-Ñ2G—a�a¡ˆFÐHØ�M‰Mœ#˜a¤¤S¨£]´C¸³KÓ!@ÓAÀ5ÔIÜ:CÀFÔ:KÔLÑ:K±$°!”w˜q×-Ñ:KˆGÑLá& t§}¡}°gÔ>Ü" 7Ñ0DÔEˆDŒMØ�M‰MŒOØ—:‘:Ô=Ó>÷ ŠZùò IùãL÷ �ZˆZús7   œD.ÁD.ÁD#Á&D#Á,AD.Â4D(
ÃAD.Ä#D.Ä.D?	c               ó    € V ^8„  d   QhRRRR/# )r   Útargetr   r   z?tuple[Optional[int], Optional[PooledCredential], Optional[str]]r   )r   s   "r   r   r/   X   s   € ÷ Bñ B Sð BÐ-lñ Br   c           	     	óì  € \        T;'       g    R 4      P                  4       pV'       g   R	# V P                  ;_uu_ 4        \        V P                  ^R7       F&  w  r4VP
                  V8X  g   K  W4R3u uuRRR4       # 	  \        V P                  ^R7       UUu. uFE  w  r4VP                  P                  4       P                  4       VP                  4       8X  g   KB  W43NKG  	  ppp\        V4      ^8X  d,   V^ ,          ^ ,          V^ ,          ^,          R3uuRRR4       # \        V4      ^8”  d   RRRV R23uuRRR4       # VP                  4       '       dj   \        V4      p^Tu;8:  d   \        V P                  4      8:  d*   M M&W`P                  V^,
          ,          R3uuRRR4       # RRRV R23uuRRR4       # RRRV R23uuRRR4       # u uppi   + '       g   i     R# ; i)
Ú N)ÚstartzAmbiguous credential label "z-". Use the numeric index or entry id instead.zNo credential #Ú.zNo credential matching "z".)NNzNo credential target provided.)r-   Ústripr<   rY   rG   r4   ÚlabelÚlowerrL   ÚisdigitrE   )r@   rq   ÚrawÚidxr   Úlabel_matchesrR   s   &&     r   Úresolve_targetÚ'CredentialPoolAdminMixin.resolve_targetX   s¥  € Ü�&—,�,˜BÓ×%Ñ%Ó'ˆßØ?Ð?à�Z�Z‹ZÜ'¨¯©¸Q×?‘
�Ø—8‘8˜s–?Ø tÐ+Ñ+÷ ŠZÙ?ô #,¨D¯M©MÀÕ"Côá"C‘J�CØ—;‘;×$Ñ$Ó&×,Ñ,Ó.°#·)±)³+Ñ=ô �“Ù"Cð ñ ô
 �=Ó! QÔ&Ø$ QÕ'¨Õ*¨M¸!Õ,<¸QÕ,?ÀÐE÷ ŠZô �=Ó! AÔ%Ø˜TÐ%AÀ#ÀÐFsÐ#tÐt÷ ŠZð �{‰{�}Š}Ü˜C›�Ø˜Ö3¤ T§]¡]Ó!3×3Ø §-¡-°¸µ	Õ":¸DÐ@÷# ŠZð$ ˜T _°U°G¸1Ð#=Ð=÷% ŠZð& ˜Ð!9¸#¸¸bÐAÐA÷' ŠZùó
÷ �ZˆZúsO   Á+G"Á2G"ÂG"Â?G
Ã"G
Ã)3G"Ä'G"Å
G"Å AG"Æ6G"Ç	G"ÇG"Ç"G3	c               ó    € V ^8„  d   QhRRRR/# r
   r   )r   s   "r   r   r/   r   s   € ÷ 2ñ 2Ð/ð 2Ð4Dñ 2r   c           	     	óX  a€ ^ RI HpHpHpHp ^ RIHp ^ RIHp V P                  ;_uu_ 4        \        SV! V P                  4      R7      oV P                  P                  S4       V P                  pV P                  V9   ;'       d)    V! V P                  4      '       * ;'       d
    V! 4       RJp	V'       g	   V	'       d]   S.V n        V! V P                  SP                  4       .V P                   R7      p
VP#                  V
4      V n        \%        4       V n        MV P'                  4        \(        ;QJ d8    V3R lVP+                  V P                  4       4       F  '       g   K   RM-	  R	M)! V3R lVP+                  V P                  4       4       4      '       gh   V P                   Uu. uF!  q»P,                  SP,                  8w  g   K  VNK#  	  upV n        \/        R
V P                   RVP1                  4        R24      hSuuRRR4       # u upi   + '       g   i     R# ; i)r   )Ú_borrowed_single_use_pool_rootÚ_next_priorityÚ_profile_owns_pool_providerÚwrite_credential_pool)Úauth)Ú!SINGLE_USE_REFRESH_POOL_PROVIDERSrU   N)Útoken_basesc              3  ó�   <"  € T F;  p\        V\        4      ;'       d    VP                  R 4      SP                  8H  x € K=  	  R# 5i)r4   N)Ú
isinstanceÚdictÚgetr4   )Ú.0Úrowr   s   & €r   Ú	<genexpr>Ú5CredentialPoolAdminMixin.add_entry.<locals>.<genexpr>œ   s<   øé € ð PÙ"N˜3ô " #¤tÓ,×JÐJ°·±¸³À%Ç(Á(Ñ1JÔJÛ"Nùs
   ƒAŸ'ATFzThe z credential was not saved: zx does not contain it after the write, so nothing was added. Check that the file is writable, then run the command again.)r   r�   r‚   rƒ   r„   Ú
hermes_clir…   Úhermes_cli.auth_oauth_grantsr†   r<   r   rG   ÚappendÚ_borrowed_root_idsrj   Úto_dictÚ_persisted_token_pairsÚ_token_pairs_by_idÚsetr?   ÚanyÚread_credential_poolr4   r"   Ú_auth_file_path)r@   r   r�   r‚   rƒ   r„   Úauth_modr†   Úborrowed_idsÚprofile_borrowsÚwrittenr6   s   &f          r   Ú	add_entryÚ"CredentialPoolAdminMixin.add_entryr   sÇ  ø€ ÷	
ó 	
õ 	0ÝRà�Z�Z‹ZÜ˜E©N¸4¿=¹=Ó,IÔJˆEØ�M‰M× Ñ  Ô'Ø×2Ñ2ˆLð —‘Ð!BÑB÷ Að AÙ3°D·M±MÓBÔB÷Að Aá2Ó4¸DÐ@ð ÷
 Ÿð "' �”Ù/Ø—M‘M E§M¡M£OÐ#4Ø $× ;Ñ ;ô�ð /7×.IÑ.IÈ'Ó.R�Ô+Ü*-«%�Õ'à—‘”÷ “3ô PØ"*×"?Ñ"?ÀÇÁÔ"NóP—3—3’3ô PØ"*×"?Ñ"?ÀÇÁÔ"NóP÷ Pò Pà,0¯MªMÓ N©M q¿T¹TÀUÇXÁXÑ=M§ ©MÑ N�”Ü-Ø˜4Ÿ=™=˜/Ð)DÀX×E]ÑE]ÓE_ÐD`ð a?ð @óð ð
 ÷U ŠZùòH !O÷I �ZˆZúsI   ®A9HÂ(HÂ:HÃA6HÄ9-HÅ)6HÆ HÆ.HÇHÇ3HÈHÈH)	)r“   rZ   rG   r•   N)r#   r$   r%   r&   rB   rO   r]   rn   r}   rŸ   r(   r   r   r   r*   r*      s&   † õ	õõ0	õ?õ"B÷42ñ 2r   r*   )r'   Ú
__future__r   r   Údataclassesr   Útypingr   r   r   r   r   r   r    ÚRuntimeErrorr"   r*   r   r   r   Ú<module>r¥      s=   ðÙ BÝ "ã Ý ß 6Ó 6çÝ6õZôP˜lô P÷Kó Kr   