+
    „WÝj'  ã                   ój   € R t ^ RIt^ RIt^ RIHt ^ RIHt RtRR/R R lltR R	 lt	RR/R
 R llt
R# )z@Source import-integrity checks for update and stash restoration.N)ÚPath)Úruntime_commandÚreport_runtime_errorsFc                ót   € V ^8„  d   QhR\         R\        \        \        \        \        3,          3,          /# )é   r   Úreturn)ÚboolÚdictÚstrÚtuple)Úformats   "ÚTC:\Users\johnn\AppData\Local\hermes\hermes-agent\hermes_cli\update_cmd_validation.pyÚ__annotate__r      s2   € ÷ ;[ñ ;[Ü$(ð;[Ü59¼#¼uÄSÌ#ÀX½Ð:NÕ5Oñ;[ó    c               óÞ  € ^ RI Hp ^ RIHp ^ RIpRVP                  ^4       R2pRV: R\        \        V4      4      : RV: R	V: R
V R2p \        P                  ! \        \        V 4      VR7      \        V 4      RRRR^xRR7      pTP"                  ;'       g    RpYX9  d   \        RRTP$                   R24      #  \&        P(                  ! TP+                  T^4      ^,          4      p	\-        T	\.        4      '       d;   \0        ;QJ d    R T	 4       F  '       g   K   RM	  RM! R T	 4       4      '       d   \3        R4      hT	 U
UUu/ uF&  w  r«p\        T
4      \        T4      \        T4      3bK(  	  uppp
#   \        P                   d    \        RR4      u # \        \        P                   3 d    / u # i ; iu uppp
i   \4        \2        3 d    \        RR4      u # i ; i)až  Import each ``_UPDATE_CRITICAL_MODULES`` entry in a subprocess; return failures in probe order.

Syntax validation only *parses*: a partially-updated tree (Windows ZIP copy loop) parses yet
dies with ``ImportError: cannot import name``. The boot-selected subprocess
keeps import side effects out of the updater's ``sys.modules``.
Generic import-time exceptions are tolerated unless ``report_runtime_errors=True``.
)Ú_UPDATE_CRITICAL_MODULES)ÚFIRST_PARTY_MODULE_ROOTSNÚ__HERMES_IMPORT_HEALTH_Ú__zVimport importlib, json, sys
sys.argv = ['hermes', 'update']
failures = []
for name in z¯:
    try:
        importlib.import_module(name)
    except ModuleNotFoundError as exc:
        missing = (getattr(exc, 'name', '') or '').split('.')[0]
        if missing in z% or missing.startswith('hermes_') or zÉ:
            failures.append((name, type(exc).__name__, str(exc)))
    except ImportError as exc:
        failures.append((name, type(exc).__name__, str(exc)))
    except Exception as exc:
        if z·:
            failures.append((name, type(exc).__name__, str(exc)))
    except BaseException as exc:
        failures.append((name, type(exc).__name__, str(exc)))
sys.stdout.write('\nz' + json.dumps(failures))
)ÚcodeTzutf-8ÚreplaceF)ÚcwdÚcapture_outputÚtextÚencodingÚerrorsÚtimeoutÚcheckÚTimeoutExpiredz(timed out before reporting import healthÚ ÚProbeTerminatedz5terminated before reporting import health (exit code Ú)c              3   óú   "  € T Fq  p\        V\        4      '       * ;'       gP    \        V4      ^8g  ;'       g:    \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       * x € Ks  	  R# 5i)é   c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5i)N)Ú
isinstancer
   )Ú.0Úvs   & r   Ú	<genexpr>Ú=_critical_module_import_failures.<locals>.<genexpr>.<genexpr>C   s   é € ÐCeÑ`dÐ[\ÄJÈqÔRU×DVÐDVÓ`dùs   ‚FTN)r%   ÚlistÚlenÚall)r&   Úitems   & r   r(   Ú3_critical_module_import_failures.<locals>.<genexpr>B   s\   é € ð 1"á �ô ˜4¤Ó&Ô&×eÐe¬#¨d«)°q©.×eÐeÇÃÑCeÑ`dÓCeÇÇÂÑCeÑ`dÓCeÓ@eÔ<eÔeÛ ùs   ‚ A;£A;¹A;ÁA;Á"A;zinvalid import-health payloadÚMalformedPayloadz%reported malformed import health data)Úhermes_cli.update_cmdr   Úhermes_constantsr   ÚsecretsÚ	token_hexr   ÚsortedÚ
subprocessÚrunr   r   r
   r   Ú_probe_failureÚOSErrorÚSubprocessErrorÚstdoutÚ
returncodeÚjsonÚloadsÚrsplitr%   r*   ÚanyÚ
ValueErrorÚ	TypeError)Úrootr   r   r   r2   ÚmarkerÚprobeÚresultÚoutputÚfailuresÚmoduleÚkindÚdetails   &$           r   Ú _critical_module_import_failuresrK      s  € õ ?Ý9ÛØ& w×'8Ñ'8¸Ó'<Ð&=¸RÐ@€Fð	ð 0Ñ2ð 3!ô "'¤vÐ.FÓ'GÓ!HÑ KÐKpð  rGñ  qJð Jð
 ,Ñ.ð / ð !'˜xÐ'Bð-	Dð 
ð0Ü—’ÜœD ›J¨UÔ3¼¸T»ÐSWÐ^bØ Y¸À5ôJˆð �]‰]× Ð ˜b€FØÔÜØØCÀF×DUÑDUÐCVÐVWÐXóZð 	Zð[Ü—:’:˜fŸm™m¨F°AÓ6°qÕ9Ó:ˆÜ˜(¤D×)Ò)¯S«Sñ 1"á ó1"¯S¯SªSñ 1"á ó1"÷ ."ò ."ô Ð<Ó=Ð=ÙRZÕ[ÑRZÑ:N¸&È”�F“œc $›i¬¨V«Ð5Ò5ÑRZÓ[Ð[øô! ×$Ñ$ô \ÜÐ.Ð0ZÓ[Ò[Ü”Z×/Ñ/Ð0ô àŠ	ðüô \øÜ”zÐ"ô [ÜÐ0Ð2YÓZÒZð[úsU   Á;F  ÃAG ÄG Ä#G Ä>G Å,GÅ;G Æ !GÆ#GÆ<GÇGÇG ÇG,Ç+G,c          
      ó€   € V ^8„  d   QhR\         R\         R\        \         \        \         \         3,          3,          /# )r   rI   rJ   r   )r
   r	   r   )r   s   "r   r   r   K   s3   € ÷ 5ñ 5œð 5¤cð 5¬d´3¼¼cÄ3¸h½Ð3GÕ.Hñ 5r   c                ó   € RW3/# )zFFailure row for the probe itself (as opposed to a module it imported).zcritical-module probe© )rI   rJ   s   &&r   r7   r7   K   s   € à# d ^Ð4Ð4r   c                óx   € V ^8„  d   QhR\         R\        \         \        R,          \        R,          3,          /# )r   r   r   N)r   r   r
   )r   s   "r   r   r   P   s1   € ÷ ñ Ü$(ðÜ5:¼4ÄÀtÅÌSÐSWÍZÐ;WÕ5Xñr   c               óz   € \        WR7      pV'       d'   \        \        V4      4      pRW2V,          ^,          3# R# )z8Return the first critical-module import failure, if any.)r   F)TNN)rK   ÚnextÚiter)rB   r   rG   rH   s   &$  r   Ú!_validate_critical_modules_importrS   P   s:   € ô 0°Ôb€HßÜ”d˜8“nÓ%ˆØ�f vÕ.¨qÕ1Ð1Ð1ØÐr   )zhermes_cli.mainÚ	run_agentÚmodel_toolsÚtoolsets)Ú__doc__r<   r5   Úpathlibr   Úhermes_cli._launchersr   r   rK   r7   rS   rN   r   r   Ú<module>rZ      sD   ðÙ Fã Û Ý Ý 1ð UÐ ð;[Ø+0÷;[õ|5ð
Ø+0÷ñ r   