+
    kHàj¾"  ã                  óú   € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHtHt ^ RIHtHtHt ^ RIHtHt ]P*                  ! 4       tR R ltRR	 ltR
 R ltR R lt ! R R4      t ! R R4      tR# )zôWorker-local plugin selection and code publication. No application dependency imports.

Requests carry proposed data; discovery, snapshots and publication happen only
while the install lock is held. The stdlib boot journal owns crash recovery.
)ÚannotationsN)ÚPath)Údependency_home_rootÚinstall_state_dirÚruntime_facts_path)Údurable_write_bytesÚfile_digestÚread_bytes_or_none)Úenabled_plugin_dirsÚ_is_member_candidatec               ó    € V ^8„  d   QhRRRR/# )é   Údatazbytes | NoneÚreturnÚdict© )Úformats   "Ú3/home/ubuntu/.hermes/hermes-agent/pm/publication.pyÚ__annotate__r      s   € ÷ 	ñ 	˜Lð 	¨Tñ 	ó    c                óà   € V f   / #  \         P                  ! V 4      p\        T\        4      '       g   \	        R4      hT#   \        \         P                  3 d   p\	        R4      ThR p?ii ; i)NúBPlugin install metadata changed while preparing the update; retry.)ÚjsonÚloadsÚUnicodeDecodeErrorÚJSONDecodeErrorÚ
ValueErrorÚ
isinstancer   )r   ÚrecordsÚexcs   &  r   Ú_metadata_recordsr       sn   € Ø‚|Øˆ	ðhÜ—*’*˜TÓ"ˆô �gœt×$Ò$ÜÐ]Ó^Ð^Ø€Nøô	 ¤× 4Ñ 4Ð5ô hÜÐ]Ó^ÐdgÐgûðhús   ˆA ÁA-ÁA(Á(A-c                ó  € \        R/ VB pV F  p\        V4       K  	  V Uu. uF  p\        V4      '       g   K  VNK  	  ppV  F:  p\        V4      pWT9  g   K  \        V4      '       g   K)  VP	                  V4       K<  	  V# u upi )Nr   )r
   Úvalidate_manifestr   r   Úappend)Ú
extra_dirsÚ	selectionÚselectedÚsourceÚmembersÚ	directorys   &,    r   Úcandidate_membersr*   #   s|   € Ü"Ñ/ YÑ/€HÛˆÜ˜&Ö!ñ á$,ÓM¡H˜&Ô0DÀV×0L�vˆv¡H€GÐMÛˆ	Ü˜“Oˆ	ØÖ#Ô(<¸Y×(GÔ(GØ�N‰N˜9Ö%ñ  ð €Nùò Ns
   ¤B¼Bc               ó   € V ^8„  d   QhRR/# )r   r   zdict[Path, bytes | None]r   )r   s   "r   r   r   /   s   € ÷ kñ kÐ4ñ kr   c                 ót   € ^ RI Hp  V ! 4        Uu/ uF  qR,          \        VR,          4      bK  	  up# u upi )é    )Údependency_homesúconfig.yaml)Úpm.plugins_stater.   r	   )r.   Úhomes     r   Úselection_snapshotr2   /   s5   € Ý1ÙWgÔWiÓjÑWiÈt�=Õ Ô"4°T¸MÕ5IÓ"JÒJÑWiÑjÐjùÒjs   �"5c               ó    € V ^8„  d   QhRRRR/# )r   r'   r   r   r   r   )r   s   "r   r   r   4   s   € ÷ ñ ˜dð  tñ r   c                ó„   € ^ RI HpHp V! V 4      P                  pV! W0P                  4      pV'       d   \        V4      hV# )r-   )Úread_python_declarationÚmanifest_version_error)Úpm.plugin_declarationsr5   r6   ÚmanifestÚnamer   )r'   r5   r6   r8   Úreasons   &    r   r"   r"   4   s6   € ßVá& vÓ.×7Ñ7€HÙ# H¯k©kÓ:€FßÜ˜Ó Ð Ø€Or   c                  ó.   € ] tR t^>tR R ltR R ltRtR# )ÚPluginSelectionc               ó   € V ^8„  d   QhRR/# )r   r%   r   r   )r   s   "r   r   ÚPluginSelection.__annotate__?   s   € ÷ gñ g $ñ gr   c                	óü  € ^ RI Hp \        4       V n        \	        VR,          4      P                  4       V n        V P                  P                  \        4       P                  4       4      '       g   \        R4      hV P                  R,          V n
        \        V P                  4      V n        VP                  R4      pV P                  e/   \        P                  ! V P                  4      P!                  4       MRpVe   W48w  d   \        R4      hV! 4       pV P                  '       d+   VP#                  V P                  P%                  R	4      4      M/ pVf   / p\'        V\(        4      '       g   \        R
V P                   24      hVP+                  R/ 4      p\'        V\(        4      '       g   \        RV P                   24      h\-        VR,          4      VR&   \-        VR,          4      VR&   \.        P0                  ! 4       pVP3                  Wh4       VP5                  4       P7                  R4      V n        \;        VP                  RR4      V P                  VR,          VR,          R7      V n        R# )r-   )Úroundtrip_yamlr1   z#config path is outside Hermes stater/   Úexpected_configNÚmissingzBPlugin configuration changed since this selection was read; retry.z	utf-8-sigz!configuration must be a mapping: Úpluginszplugins must be a mapping in ÚenabledÚdisabledzutf-8r$   )Úproposed_homerD   rE   r   )Úhermes_yamlr@   r2   Úconfigsr   Úresolver1   Úis_relative_tor   r   Úpathr	   ÚpreviousÚgetÚhashlibÚsha256Ú	hexdigestÚloadÚdecoder   r   Ú
setdefaultÚsortedÚioÚStringIOÚdumpÚgetvalueÚencodeÚproposedr*   r(   )	Úselfr%   r@   ÚexpectedÚactualÚyamlÚconfigrC   Úoutputs	   &&       r   Ú__init__ÚPluginSelection.__init__?   sä  € Ý.ä)Ó+ˆŒÜ˜ 6Õ*Ó+×3Ñ3Ó5ˆŒ	Ø�y‰y×'Ñ'Ô(<Ó(>×(FÑ(FÓ(H×IÒIÜÐBÓCÐCØ—I‘I Õ-ˆŒ	Ü*¨4¯9©9Ó5ˆŒØ—=‘=Ð!2Ó3ˆØ>B¿m¹mÒ>W”—’ §¡Ó.×8Ñ8Ô:Ð]fˆØÒ HÔ$6ÜÐaÓbÐbÙÓˆØAEÇÇÀ�—‘˜4Ÿ=™=×/Ñ/°Ó<Ô=ÐTVˆØŠ>ØˆFÜ˜&¤$×'Ò'ÜÐ@ÀÇÁÀÐLÓMÐMØ×#Ñ# I¨rÓ2ˆÜ˜'¤4×(Ò(ÜÐ<¸T¿Y¹Y¸KÐHÓIÐIÜ# I¨iÕ$8Ó9ˆ�	ÑÜ$ Y¨zÕ%:Ó;ˆ�
ÑÜ—’“ˆØ�	‰	�&Ô!ØŸ™Ó)×0Ñ0°Ó9ˆŒÜ(¨¯©°|ÀRÓ)HÐX\×XaÑXaØ1:¸9Õ1EÐPYÐZdÕPeôgˆŽr   c               ó    € V ^8„  d   QhRRRR/# ©r   Úprojectr   r   ÚNoner   )r   s   "r   r   r>   ]   s   € ÷ 6ñ 6˜tð 6¨ñ 6r   c           
     	ó€  € \        4       V P                  8w  g%   \        V P                  4      V P                  8w  d   \        R 4      hR\        V P                  4      RV P                  e/   \        P                  ! V P                  4      P                  4       MRR\        \        V4      4      R\        P                  ! V P                  4      P                  4       /p\!        \#        V4      R,          \$        P&                  ! V4      P)                  4       4       \!        V P                  V P                  4       R# )z?plugin configuration changed while preparing publication; retryr_   rL   NÚfacts_beforeÚconfig_afterúpublication.json)r2   rH   r	   rK   rL   r   ÚstrÚbase64Ú	b64encoderR   r   r   rN   rO   rZ   rP   r   r   r   ÚdumpsrY   )r[   re   Úrows   && r   ÚpublishÚPluginSelection.publish]   sÚ   € ÜÓ 4§<¡<Ô/Ô3EÀdÇiÁiÓ3PÐTX×TaÑTaÔ3aÜÐ^Ó_Ð_Øœ˜TŸY™Y›ØÀtÇ}Á}ÒG`œ6×+Ò+¨D¯M©MÓ:×AÑAÔCÐfjØœ{Ô+=¸gÓ+FÓGØœwŸ~š~¨d¯m©mÓ<×FÑFÓHðJˆô 	Ô-¨gÓ6Ð9KÕKÌTÏZÊZÐX[Ë_×McÑMcÓMeÔfÜ˜DŸI™I t§}¡}Ö5r   )rH   r1   r(   rK   rL   rZ   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ra   rp   Ú__static_attributes__r   r   r   r<   r<   >   s   † õg÷<6ñ 6r   r<   c                  ó.   € ] tR t^htR R ltR R ltRtR# )ÚStagedPluginc               ó   € V ^8„  d   QhRR/# )r   Úpluginr   r   )r   s   "r   r   ÚStagedPlugin.__annotate__i   s   € ÷ #vñ #v˜tñ #vr   c                	ó�  € ^ RI Hp ^ RIHpHp \        4       V n        \        VR,          4      P                  4       V n	        \        VR,          4      P                  4       V n        V P                  P                  4       P                  \        4       P                  4       4      '       dá   V P                  P                  P                  R8w  g¼   V P                  P!                  4       '       gœ   V P                  V P                  P                  4       8X  gs   V P                  P                  V P                  P                  4       4      '       g:   V P                  P                  4       P                  V P                  4      '       d   \#        R4      h\%        V P                  4      pVP'                  RV P                  P                  4      V P                  P                  8w  d   \#        R4      hV! V P                  4      V n        V P                  P                  R	,          V n        \-        V P*                  4      p\/        V4      pVR
,          P'                  V P                  P                  4      V n        VP'                  V P                  P                  4      V P0                  8w  d   \#        R4      hVR,          P'                  V P                  P                  4      V n        V P2                  f   \#        R4      hV P                  P5                  4       '       d   V! V P                  4      MRV n        V P6                  VR,          8w  d   \#        R4      hV! V! V P                  R7      4      pV P                  P                  4       V9   V n        / V n        V P8                  '       d‡   V P                  W€P                  P                  4       &   VP=                  4        F  p	\%        V	4       K  	  VP?                  4        U
U	u/ uF  w  r©\A        V	4      '       g   K  W©bK  	  up	p
V n        R# R# u up	p
i )r-   ©Útree_digest)r
   Úmember_sourcesÚtargetÚstagedrC   z5plugin publication paths escape or overlap their homer9   zGThe updated plugin changed its installed name; reinstall it explicitly.z.install-metadata.jsonÚold_metadatar   Únew_metadataNz7Plugin publication omitted its install metadata record.Útarget_digestú7Plugin files changed while preparing the update; retry.)Ú
installing)!Úpm.storer   Úpm.workspacer
   r€   r2   rH   r   Úabsoluter�   rI   r‚   rJ   r   Úparentr9   Ú
is_symlinkr   r"   rM   Ústaged_digestÚmetadatar	   r    Ú
old_recordÚ
new_recordÚexistsr…   Úactiver(   ÚvaluesÚitemsr   )r[   r{   r   r
   r€   r8   rL   ÚcurrentÚsourcesr'   Úidentitys   &&         r   ra   ÚStagedPlugin.__init__i   s÷  € Ý(ßDä)Ó+ˆŒÜ˜6 (Õ+Ó,×5Ñ5Ó7ˆŒÜ˜6 (Õ+Ó,×4Ñ4Ó6ˆŒØ—‘×#Ñ#Ó%×4Ñ4Ô5IÓ5K×5SÑ5SÓ5U×VÒVØ—;‘;×%Ñ%×*Ñ*¨iÔ7¸4¿;¹;×;QÑ;Q×;SÒ;SØ—;‘; $§+¡+×"5Ñ"5Ó"7Ô7¸4¿;¹;×;UÑ;UÐVZ×VaÑVa×ViÑViÓVk×;lÒ;lØ—;‘;×&Ñ&Ó(×7Ñ7¸¿¹×DÒDÜÐTÓUÐUÜ$ T§[¡[Ó1ˆØ�<‰<˜ §¡× 0Ñ 0Ó1°T·[±[×5EÑ5EÔEÜÐfÓgÐgÙ(¨¯©Ó5ˆÔØŸ™×*Ñ*Ð-EÕEˆŒÜ% d§m¡mÓ4ˆÜ# HÓ-ˆØ  Õ0×4Ñ4°T·[±[×5EÑ5EÓFˆŒØ�;‰;�t—{‘{×'Ñ'Ó(¨D¯O©OÔ;ÜÐaÓbÐbØ  Õ0×4Ñ4°T·[±[×5EÑ5EÓFˆŒØ�?‰?Ò"ÜÐVÓWÐWØ9=¿¹×9KÑ9K×9MÒ9M™[¨¯©Ô5ÐSWˆÔØ×Ñ ¨Õ!8Ô8ÜÐVÓWÐWÙ Ñ!4ÀÇÁÔ!LÓMˆØ—k‘k×)Ñ)Ó+¨wÑ6ˆŒØˆŒØ�;�;ˆ;Ø-1¯[©[ˆG—K‘K×'Ñ'Ó)Ñ*Ø!Ÿ.™.Ö*�Ü! &Ö)ñ +àELÇ]Á]Ä_ÔuÁ_Ñ1A°ÔXlÐms×XtÔ,˜HÒ,Á_ÒuˆDŽLñ	 ùó vs   ÐQÐ/Qc               ó    € V ^8„  d   QhRRRR/# rd   r   )r   s   "r   r   r|   Ž   s   € ÷ !9ñ !9˜tð !9¨ñ !9r   c                	óÜ  € ^ RI p^ RIp^ RIHp ^ RIHp \        4       V P                  8w  d   \        R4      hV! V P                  4      V P                  8w  d   \        R4      hV P                  P                  V P                  P                   R24      pV! V\        RR4      ;_uu_ 4        \        V P                  4      p\!        V4      pVP#                  V P$                  P                  4      V P&                  8w  d   \        R	4      hV P(                  W€P$                  P                  &   \*        P,                  ! V^R
R7      R,           P/                  4       p	V P$                  P1                  4       '       d   V! V P$                  4      MRp
W P2                  8w  d   \        R4      hV P$                  P4                  RVP7                  4       P8                   2,          pRRR\;        V P$                  4      R\;        V4      R\;        V P                  4      RV P$                  P1                  4       R\=        \?        V4      4      RVe%   \@        PB                  ! V4      PE                  4       MRR\@        PB                  ! V	4      PE                  4       /p\G        \I        V4      R,          \*        P,                  ! V4      P/                  4       4       V P$                  P1                  4       '       d   VPK                  V P$                  V4       VPK                  V P                  V P$                  4       \G        V P                  V	4       RRR4       R#   + '       g   i     R# ; i)r-   N)Ú
_file_lockr~   z<Plugin enablement changed while preparing the update; retry.z>Staged plugin files changed while preparing the update; retry.z.lockg      $@z6Timed out waiting for the plugin install metadata lockr   T)ÚindentÚ	sort_keysÚ
r†   z
.previous-Úkindr{   r�   ÚbackuprŽ   Útarget_existedrh   Úmetadata_beforeÚmetadata_afterrj   )&ÚosÚuuidÚhermes_cli.authr›   rˆ   r   r2   rH   r   r‚   r�   rŽ   Ú	with_namer9   Ú_METADATA_LOCK_HOLDERr	   r    rM   r�   r�   r�   r   rn   rY   r‘   r…   r‹   Úuuid4Úhexrk   r   r   rl   rm   rR   r   r   Úreplace)r[   re   r¤   r¥   r›   r   ÚlockrL   rŽ   rZ   r•   r    ro   s   &&           r   rp   ÚStagedPlugin.publishŽ   s…  € ÛÛÝ.Ý(äÓ 4§<¡<Ô/ÜÐ[Ó\Ð\Ù�t—{‘{Ó# t×'9Ñ'9Ô9ÜÐ]Ó^Ð^Ø�}‰}×&Ñ&¨$¯-©-×*<Ñ*<Ð)=¸UÐ'CÓDˆÙ˜Ô3°TØP÷Rõ Rä)¨$¯-©-Ó8ˆHÜ(¨Ó2ˆHØ�|‰|˜DŸK™K×,Ñ,Ó-°·±Ô@Ü Ð!eÓfÐfØ)-¯©ˆH—[‘[×%Ñ%Ñ&ÜŸ
š
 8°AÀÔFÈÕM×UÑUÓWˆHØ26·+±+×2DÑ2D×2FÒ2F‘k $§+¡+Ô.ÈDˆGØ×,Ñ,Ô,Ü Ð!ZÓ[Ð[Ø—[‘[×'Ñ'¨J°t·z±z³|×7GÑ7GÐ6HÐ*IÕIˆFà˜ (¬C°·±Ó,<¸hÌÈFËÐU_ÔadÐei×erÑerÓasØ  $§+¡+×"4Ñ"4Ó"6¸ÌÔTfÐgnÓToÓHpØ!È(ÒJ^¤6×#3Ò#3°HÓ#=×#DÑ#DÔ#FÐdhØ ¤&×"2Ò"2°8Ó"<×"CÑ"CÓ"Eð	ˆCô  Ô 1°'Ó :Ð=OÕ OÔQU×Q[ÒQ[Ð\_ÓQ`×QgÑQgÓQiÔjØ�{‰{×!Ñ!×#Ò#Ø—
‘
˜4Ÿ;™;¨Ô/Ø�J‰J�t—{‘{ D§K¡KÔ0Ü §¡¨xÔ8÷-R÷ R÷ Rò Rús   Â.J"MÍM+	)
r’   rH   r(   rŽ   r�   r�   r‚   r�   r�   r…   Nrr   r   r   r   ry   ry   h   s   † õ#v÷J!9ñ !9r   ry   )r   )Ú__doc__Ú
__future__r   rl   rN   rU   r   Ú	threadingÚpathlibr   Úpm.environmentsr   r   r   Úpm.filesystemr   r   r	   r‰   r
   r   Úlocalr¨   r    r*   r2   r"   r<   ry   r   r   r   Ú<module>rµ      sk   ðñõ
 #ã Û Û 	Û Û Ý ç WÑ Wß NÑ Nß Bð "ŸšÓ)Ð õ	ô	õkõ
÷'6ñ '6÷TG9ó G9r   