+
    …WÝjn/  ã                  óh  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RI	t	^ RI
t
^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt R R ltR	 R
 ltRR/R R lltR R ltR R ltR R lt/ tR]R&   R R ltRRRRRRRR/R R lltR  R! ltR" R# ltRRRR/R$ R% lltR*RRRR/R& R' lllt R( R) lt!R# )+zâThe dependency manager's runtime, independent of the application graph.

Only the bootstrap below runs in the caller's interpreter. It never imports
application dependencies or adds the manager's dependencies to that process.
)ÚannotationsN)ÚPath)ÚCallable)Únative)ÚInstallErrorc               ó   € V ^8„  d   QhRR/# )é   Úreturnúdict[str, str]© )Úformats   "Ú>C:\Users\johnn\AppData\Local\hermes\hermes-agent\pm\runtime.pyÚ__annotate__r      s   € ÷ 
ñ 
˜^ñ 
ó    c                 ó„   € ^ RI Hp  ^ RIHp ^ RIHp V! 4       p\        V ! 4       4      VR&   \        V! 4       4      VR&   V# )zGDo not let an activated application or a uv caller select PM's imports.)Úget_hermes_home)Ú
store_root)Ú_base_environmentÚHERMES_HOMEÚHERMES_RUNTIME_DIR)Úhermes_constantsr   Úpm.pathsr   Úpm.environmentr   Ústrr   )r   r   r   Úenvs       r   Úruntime_environmentr      s<   € å0Ý#å0á
Ó
€CÜ™_Ó.Ó/€CˆÑÜ &¡z£|Ó 4€CÐÑØ€Jr   c               ó    € V ^8„  d   QhRRRR/# )r   Úenvironmentr   r	   r   )r   s   "r   r   r   #   s   € ÷ $ñ $˜ð $ $ñ $r   c                ó   € ^ RI Hp V! V 4      # )é    )Úvenv_python)Úpm.environmentsr    )r   r    s   & r   Ú_pythonr"   #   s   € Ý+á�{Ó#Ð#r   Ú
as_spelledFc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úprojectr   Úpythonr#   Úboolr	   r   r   )r   s   "r   r   r   )   s(   € ÷ ñ �Tð  4ð ¸ð Èñ r   c               óÄ  € \         P                  ! 4       pR F9  pVP                  W,          P                  4       4       VP                  R4       K;  	  \	        \        V4      4      P                  4       pTP                  \        V'       d   TM*VP                  P                  4       VP                  ,          4      P                  4       4       VP                  4       # )úpyproject.tomló    )r)   zuv.lock)ÚhashlibÚsha256ÚupdateÚ
read_bytesr   r   Úabsoluter   ÚparentÚresolveÚnameÚencodeÚ	hexdigest)r%   r&   r#   Údigestr2   s   &&$  r   Ú_inputsr6   )   s—   € Ü�^Š^Ó€FÛ-ˆØ�‰�w•~×1Ñ1Ó3Ô4Ø�‰�eÖñ .ô ”&˜“.Ó!×*Ñ*Ó,€FØ
‡M�M”#§
‘f°·±×0EÑ0EÓ0GÈ&Ï+É+Õ0UÓV×]Ñ]Ó_Ô`Ø×ÑÓÐr   c               ó   € V ^8„  d   QhRR/# )r   r	   r'   r   )r   s   "r   r   r   8   s   € ÷ Añ A�Dñ Ar   c                 óà   € \        \        P                  4      R ,          P                  4       '       d   R# \	        4       p V RJ;'       d$    \        V ^,          4      \        P                  9   # )úpm-runtime.jsonTN)r   ÚsysÚprefixÚis_fileÚ_resident_runtimer   Úpath)Úresidents    r   Ú
is_runtimer@   8   sP   € ÜŒS�Z‰ZÓÐ,Õ,×5Ñ5×7Ò7ÙÜ Ó"€HØ˜4Ð×@Ð@¤C¨°­Ó$4¼¿¹Ñ$@Ð@r   c               ó   € V ^8„  d   QhRR/# )r   r	   ztuple[Path, Path] | Noner   )r   s   "r   r   r   ?   s   € ÷ "ñ "Ð3ñ "r   c                 ón  € ^ RI Hp  V ! 4       pVP                  R,          P                  4       '       d   VP                  MRpVe   VR,          pM«^ RI Hp V! V4      p \
        P                  ! VP                  RR7      4      pTP                  R
4      R9  d   R# TP                  R4      p\        T\        4      '       d    \        T4      P!                  4       '       g   \        RRR	4      h\        T4      p \
        P                  ! VR,          P                  RR7      4      p	W9R,          ,          P#                  4       p
W9R,          ,          P#                  4       pT
P                  4       '       dI   TP)                  4       '       d3   Te<   T
P+                  T4      '       d   TP+                  T4      '       g   \        RRR	4      hY«3#   \         d     R# \        \        3 d   p\        RRR	4      ThRp?ii ; i  \        \        \$        \&        3 d   p\        RRR	4      ThRp?ii ; i)r   ©Ú	repo_rootzmanifest.jsonNú
pm-runtime)Úinstall_stamp_pathú	utf-8-sig©Úencodingzinvalid package install stampzreinstall this applicationÚdistributionÚ	pmRuntimezpackaged PM runtime is missingr9   úutf-8r&   ÚsitePackagesz)packaged PM runtime is missing or invalidz3packaged PM paths are missing or escape the payload)ÚnixÚdocker)r   rD   r0   r<   rF   ÚjsonÚloadsÚ	read_textÚFileNotFoundErrorÚOSErrorÚ
ValueErrorr   ÚgetÚ
isinstancer   r   Úis_absoluter1   ÚKeyErrorÚ	TypeErrorÚis_dirÚis_relative_to)rD   r%   ÚpayloadÚruntimerF   Ú
stamp_pathÚstampÚexcÚvalueÚmarkerr&   Úsites               r   r=   r=   ?   sâ  € Ý"á‹k€GØ!(§¡°/Õ!A× JÑ J× LÒ Lˆg�nŠnÐRV€GØÒØ˜LÕ(‰å/á'¨Ó0ˆ
ð	uÜ—J’J˜z×3Ñ3¸[Ð3ÓIÓJˆEð
 �9‰9�^Ó$Ð,=Ô=ÙØ—	‘	˜+Ó&ˆÜ˜%¤×%Ò%¬T°%«[×-DÑ-D×-FÒ-FÜ˜|Ð-MÐOkÓlÐlÜ�u“+ˆð}Ü—’˜WÐ'8Õ8×CÑCÈWÐCÓUÓVˆØ 8Õ,Õ,×5Ñ5Ó7ˆØ Õ0Õ0×9Ñ9Ó;ˆð
 �N‰N×Ò D§K¡K§M¢MØÒ#¨V×-BÑ-BÀ7×-KÒ-KÐSW×SfÑSfÐgn×SoÒSoÜ˜<Ð)^Ð`|Ó}Ð}Øˆ<Ðøô+ !ô 	ÚÜœÐ$ô 	uÜ˜|Ð-LÐNjÓkÐqtÐtûð	uûô ”Z¤¬9Ð5ô }Ü˜<Ð)TÐVrÓsÐy|Ð|ûð}ús=   Á &G Ã=A'H ÇHÇ HÇ/HÇ0G>Ç>HÈH4È!H/È/H4c               ó$   € V ^8„  d   QhRRRRRR/# )r   r&   r   r   r
   r	   r   r   )r   s   "r   r   r   d   s&   € ÷ 
`ñ 
`�dð 
` ð 
`°Cñ 
`r   c           	     óH  €  \         P                  ! \        V 4      R RRR.VRR^RR7      pTP
                  '       d2   TP                  P                  4       ;'       g    RTP
                   2# R	#   \        \         P                  3 d   p\        T4      u Rp?# Rp?ii ; i)
ú-Iú-Bú-czCimport packaging, tomli_w, truststore; from ruamel.yaml import YAMLTF)r   Úcapture_outputÚtextÚtimeoutÚcheckNzexit Ú )Ú
subprocessÚrunr   rT   ÚTimeoutExpiredÚ
returncodeÚstderrÚstrip)r&   r   Úcheckedra   s   &&  r   Ú	_validaterv   d   s›   € ðÜ—.’.Ü�‹[˜$  dØRðTà D¨t¸RØô	
ˆð FM×EW×EWÐEWˆ7�>‰>×ÑÓ!×AÐA u¨W×-?Ñ-?Ð,@Ð%AÐ_Ð]_Ð_øô ”Z×.Ñ.Ð/ô Ü�3‹x�ûðús   ‚*A1 Á1B!Â
BÂB!ÂB!zdict[Path, Callable[[], None]]Ú_HELDc               ó    € V ^8„  d   QhRRRR/# )r   r   r   r	   ÚNoner   )r   s   "r   r   r   z   s   € ÷ :ñ : Dð :¨Tñ :r   c                óJ   € ^ RI Hp V \        9  d   V! V 4      \        V &   R# R# )r   ©Úlease_directoryN)Úhermes_cli.runtime_stater|   rw   )r   r|   s   & r   Ú_hold_for_childrenr~   z   s!   € Ý8àœ%ÔÙ,¨[Ó9ŒˆkÓñ  r   Úoffliner%   Ú	bootstrapTÚcachec               ó8   € V ^8„  d   QhRRRRRRRRRRR	RR
RRR/# )r   Úuvr   r&   Úrootr   r'   r%   úPath | Noner€   r�   r	   r   )r   s   "r   r   r   �   sH   € ÷ -ñ -˜ð - dð -°$ð -ÀDð -Ø(ð-Ø<@ð-à&ð-à26ñ-r   c               óþ  € ^ RI Hp ^ RIHp ^ RIHp	 T;'       g(    \        \        4      P                  4       P                  p\        WA4      p
\        4       pVP                  RRR7       VR,          P                  R4      ;_uu_ 4       pV! VP                  4       RR7       VR	,          p \        P                   ! VP#                  R
R7      4      pVP'                  R4      V
\        WARR7      39   dh   W.R,          ,          pVR,          P)                  4       '       d<   \+        \-        V4      V4      '       g!   \/        V4       \-        V4      uuRRR4       # V'       g   \1        RRR4      h\        R4      \2        P4                  ! 4       P6                  ,          pVV,          p \9        R\:        P<                  RR7       V	! WWôW6R7      pVR,          P?                  4        V! VR,          RV
/4       V! VRV
RVPA                  4       /4       \/        T4       TuuRRR4       #   \$         d    / p ELji ; i  \B         d    \D        PF                  ! TRR7       h i ; i  + '       g   i     R# ; i)zÚPublish a locked PM environment without resolving the application.

Generations are immutable after publication. Failed preparation leaves the
previous generation intact, including when an old worker is still running.
©Úlock_fd)Ú_write)Ústage_runtimeT)ÚparentsÚexist_okú.prepare.lockúa+b©Úwaitúselected.jsonrL   rH   Úinputs)r#   Ú
generationr9   NrE   z8not installed or outdated and lazy installs are disabledú=run `hermes pm install` to prepare the independent PM runtimeÚgenerationsu(   Preparing the isolated Hermes runtimeâ€¦)ÚfileÚflush)r%   r   r�   ú.lease-managed)Úignore_errors)$Úpm.filesystemrˆ   Úpm.lockr‰   Úpm.runtime_stagerŠ   r   Ú__file__r1   r0   r6   r   ÚmkdirÚopenÚfilenorP   rQ   rR   rS   rV   r<   rv   r"   r~   r   ÚuuidÚuuid4ÚhexÚprintr:   rs   ÚtouchÚas_posixÚBaseExceptionÚshutilÚrmtree)rƒ   r&   r„   r   r%   r€   r�   rˆ   r‰   rŠ   Úidentityr   ÚlockÚselectedÚfactr   r“   Ú
executables   &&&$$$$           r   Úprepare_runtimer¯   �   s  € õ &ÝÝ.à×8Ð8œœh›×/Ñ/Ó1×8Ñ8€GÜ�wÓ'€HÜ
Ó
€CØ‡J�J�t d€JÔ+Ø
�Õ
 ×	&Ñ	& u×	-Ô	-°Ù�—‘“ DÕ)Ø˜/Õ)ˆð	Ü—:’:˜h×0Ñ0¸'Ð0ÓBÓCˆDð
 �8‰8�HÓ (¬G°GÐPTÔ,UÐ!VÔVØ lÕ!3Õ3ˆKØÐ/Õ/×8Ñ8×:Ò:Ä9ÌWÐU`ÓMaÐcf×CgÒCgÜ" ;Ô/Ü˜{Ó+÷ 
.Ò	-÷ Ü˜|Ð-gØ^ó`ð `ä˜-Ó(¬4¯:ª:«<×+;Ñ+;Õ;ˆ
Ø˜ZÕ'ˆð	ÜÐ<Ä3Ç:Á:ÐUYÕZÙ& r°;ÐY`ÔnˆJØÐ+Õ+×2Ñ2Ô4Ù�;Ð!2Õ2°X¸xÐ4HÔIÙ�8˜h¨°,À
×@SÑ@SÓ@UÐVÔWô 	˜;Ô'Ø÷; 
.Ò	-øô
 !ô 	Ø‹Dð	ûô( ô 	Ü�MŠM˜+°TÕ:Øð	ú÷3 
.×	-Ð	-úsW   Â"I+Â/&H/ÃA?I+ÅI+Å'AI+Æ-A+IÈI+È/I È<I+È?I É I+É%I(É(I+É+I<	c               ó   € V ^8„  d   QhRR/# )r   r	   ry   r   )r   s   "r   r   r   ±   s   € ÷ *ñ *˜tñ *r   c                 ó¼   € \        \        P                  4      R,          P                  4       '       d(   ^ RIHp  V ! \        \        P                  4      4       R# R# )zKPin the PM runtime this process runs from so the collector leaves it alone.r9   r{   N)r   r:   r;   r<   r}   r|   r{   s    r   Úlease_current_runtimer²   ±   s9   € äŒS�Z‰ZÓÐ,Õ,×5Ñ5×7Ò7Ý<áœœSŸZ™ZÓ(Ö)ñ 8r   c               ó    € V ^8„  d   QhRRRR/# )r   r„   r   r	   z
list[Path]r   )r   s   "r   r   r   ¹   s   € ÷ ñ  dð ¨zñ r   c                óp  € ^ RI Hp ^ RIHp V R,          p. pVP	                  4       '       g   V# V R,          P                  R4      ;_uu_ 4       pV! VP                  4       RR7      '       g   VuuRRR4       #  \        P                  ! V R	,          P                  R
R7      4      P                  RR4      p\        VP                  4       4       F±  pVP	                  4       '       d$   VP                  4       '       g   WpV,          8X  d   K>  VR,          P                  4       pV'       d.   VR,          P                  4       '       d   V! V4      '       d   KŠ  \         P"                  ! V4       VP%                  V4       K³  	  RRR4       V#   \         d    Rp Lçi ; i  + '       g   i     T# ; i)as  Remove PM runtime generations nothing can run from any more.

Staging happens under ``.prepare.lock``, so with it held an unpublished generation
(no ``pm-runtime.json``) is an aborted stage. A superseded published generation goes
once every worker launched from it has exited; generations published before leases
existed stay, as the application collector keeps its own.
r‡   )Úleases_heldr•   r�   rŽ   Fr�   Nr‘   rG   rH   r“   rn   r9   r˜   )rš   rˆ   r}   rµ   r[   rŸ   r    rP   rQ   rR   rV   rS   ÚsortedÚiterdirÚ
is_symlinkr<   r¨   r©   Úappend)	r„   rˆ   rµ   r•   Úremovedr«   r¬   r“   Ú	publisheds	   &        r   Úcollect_runtime_generationsr¼   ¹   s`  € õ &Ý4à˜Õ&€KØ€GØ×Ñ×ÒØˆØ
�Õ
 ×	&Ñ	& u×	-Ô	-°Ù�t—{‘{“}¨5×1Ó1Ø÷ 
.Ò	-ð	Ü—z’z 4¨/Õ#9×"DÑ"DÈkÐ"DÓ"ZÓ[×_Ñ_Ð`lÐnpÓqˆHô ! ×!4Ñ!4Ó!6Ö7ˆJØ×$Ñ$×&Ò&¨*×*?Ñ*?×*AÒ*AÀZÐZbÕSbÔEbÙØ#Ð&7Õ7×@Ñ@ÓBˆIß :Ð0@Õ#@×"IÑ"I×"KÒ"KÉ{Ð[e×OfÒOfÙÜ�MŠM˜*Ô%Ø�N‰N˜:Ö&ñ 8÷ 
.ð €Nøô !ô 	ØŠHð	ú÷ 
.Ö	-ð €NúsI   Á F$Á<=FÂ9AF$Ä-F$Ä/F$ÅF$Å-F$ÆF!ÆF$Æ F!Æ!F$Æ$F5	c               ó$   € V ^8„  d   QhRRRRRR/# )r   r€   r'   r�   r…   r	   r   r   )r   s   "r   r   r   Û   s!   € ÷ %=ñ %= ð %=°[ð %=ÈDñ %=r   c                óÐ  € \        4       '       d   \        \        P                  4      # ^ RIHp ^ RIHp ^ RIH	p V! 4       p\        4       pVe
   V^ ,          # V! RR7      pVfÑ   V '       g   \        RRR	4      h^ R
IHp ^ RIHp	Hp
 ^ RIHp ^ RIHp V! R4      pV! V	! 4       4      P)                  R4      pV! 4       pV'       d.   VP+                  V
! 4       VP-                  Wï4      ,          V4      MRpVe3   VP/                  4       '       d   V\        \        P                  4      3pM	V! RR7      pVf   \        RR4      hVw  pp\1        VVV! V4      R,          WR7      # )zJResolve PM without selecting, repairing, or importing the app environment.)Úinstall_state_dir)Ú
_toolchainrC   NF)ÚrealizerE   z,not installed and lazy installs are disabledr”   )ÚLockfile)Úlockfile_pathr   )Úget_package)Úcurrent_targetrƒ   T)Úexplicitz$pinned uv and Python are unavailable©r€   r�   )r@   r   r:   r®   r!   r¿   Úpm._uvrÀ   r   rD   r=   r   r›   rÂ   rÃ   r   Úpm.registryrÄ   Úpm.storerÅ   ÚversionÚbinaryÚstore_entryr<   r¯   )r€   r�   r¿   rÀ   rD   r%   r?   ÚtoolsrÂ   rÃ   r   rÄ   rÅ   ÚpackagerË   ÚtargetÚstagedrƒ   r&   s   $$                 r   Úruntime_pythonrÒ   Û   s6  € ä‡|‚|Ü”C—N‘NÓ#Ð#Ý1Ý!Ý"á‹k€GÜ Ó"€HØÒØ˜�{ÐÙ˜uÔ%€EØ‚}ßÜ˜|Ð-[Ø^ó`ð `å$ß6Ý+Ý+ñ ˜dÓ#ˆÙ™=›?Ó+×3Ñ3°DÓ9ˆÙÓ!ˆß`g�—‘¡
£¨w×/BÑ/BÀ7Ó/SÕ SÐU[Ô\ÐmqˆØÒ &§.¡.×"2Ò"2ØœD¤§¡Ó0Ð0‰Eñ ¨Ô-ˆEØ‚}Ü˜<Ð)OÓPÐPØ�J€BˆÜ˜2˜vÑ'8¸Ó'AÀLÕ'PØ%.ô=ð =r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Úscriptr   Úargsztuple[str, ...] | list[str]r€   r'   r�   r…   r	   ú	list[str]r   )r   s   "r   r   r     s:   € ÷ Zñ Z˜Dð ZÐ(Cð ZØ#ðZØ3>ðZØJSñZr   c          
     óÄ   € \        4       pVf'   \        W#R7      p\        V4      RR\        V 4      .VO# Vw  rVRp\        V4      RRRRV\        V4      \        V 4      .VO# )zCOne launch contract for mutable venvs and resident signed payloads.rÇ   rg   rh   zŒimport runpy,sys; sys.path.insert(0,sys.argv.pop(1)); script=sys.argv.pop(1); sys.argv[0]=script; runpy.run_path(script,run_name='__main__')z-Sri   )r=   rÒ   r   )rÔ   rÕ   r€   r�   r?   r&   rd   Úlaunchers   &&$$    r   Úruntime_commandrÙ     su   € ô !Ó"€HØÒÜ¨)ÔAˆÜ�F“˜T 4¬¨V«Ð<°tÐ<Ð<Ø�L€Fð	að ô �‹K˜˜t T¨4°¼3¸t»9ÄcÈ&ÃkÐYÐTXÐYÐYr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚargvrÖ   r	   Úintr   )r   s   "r   r   r     s   € ÷ ñ �)ð  ñ r   c                ó¨   € \         P                  ! \        \        \        4      P                  R 4      V 4      \        4       RR7      pVP                  # )z	launch.pyF)r   rm   )ro   rp   rÙ   r   r�   Ú	with_namer   rr   )rÛ   Úresults   & r   Úrun_clirà     s>   € Ü�^Š^œO¬D´«N×,DÑ,DÀ[Ó,QÐSWÓXÜ 3Ó 5¸UôD€Fà×ÑÐr   )r   )"Ú__conditional_annotations__Ú__doc__Ú
__future__r   r+   rP   ÚosÚpathlibr   r¨   ro   r:   Útypingr   r¡   rš   r   Ú
pm.packager   r   r"   r6   r@   r=   rv   rw   Ú__annotations__r~   r¯   r²   r¼   rÒ   rÙ   rà   )rá   s   @r   Ú<module>ré      sÒ   øðôõ
 #ã Û Û 	Ý Û Û Û 
Ý Û å  Ý #õ
õ$ð¸u÷ õAõ"õJ
`ð& )+€Ð%Ó *õ:ð-È5ð -Ø+/ð-ØCGð-à)-÷-õ`*õðD%=¨ð %=À4÷ %=ñPZØ&*ðZØAE÷Zð Z÷r   