+
    iHàjK%  ã            
      óœ  € R t ^ RIHt ^ RIt^ RItRRRRRR/tR	R
RRRRR/3R 3RRRRRRR/3R 3RRRRR/3R 3RRRRRRR/3R 3R R!RR" 3R#R$RRR%/3R& 3.t] U UUu/ uF	  w  p  rWbK  	  uppp tR' R( ltR) R* lt	R+ R, lt
R- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: ltR;R<R=R>R?R@RARB/tRC RD ltRE RF ltR# u uppp i )Gz´``hermes lsp`` CLI subcommand: status / list / install / install-all / restart / which.

Handlers live here (not in ``hermes_cli/main.py``) so the LSP module ships self-contained.
)ÚannotationsNÚ	installedu   âœ“Úmissingô   Â·úmanual-onlyÚ?ÚstatuszShow LSP service statusz--jsonÚactionÚ
store_trueÚhelpzEmit machine-readable JSONc                ó.   € \        \        V R R4      4      # )ÚjsonF)Ú_cmd_statusÚgetattr©Úas   &Ú2/home/ubuntu/.hermes/hermes-agent/agent/lsp/cli.pyÚ<lambda>r      s   € Œ{œ7 1 f¨eÓ4Ô5ó    ÚlistzList supported language serversz--installed-onlyz5Only show servers whose binary is currently availablec                ó.   € \        \        V R R4      4      # )Úinstalled_onlyF)Ú	_cmd_listr   r   s   &r   r   r      s   € Œyœ Ð$4°eÓ<Ô=r   ÚinstallzInstall a server binaryÚserverzServer id (e.g. pyright, gopls)c                ó,   € \        V P                  4      # ©N)Ú_cmd_installr   r   s   &r   r   r      s   € Œ|˜AŸH™HÔ%r   zinstall-allz5Install every server with a known auto-install recipez--include-manualz8Even attempt servers marked manual-install (best effort)c                ó.   € \        \        V R R4      4      # )Úinclude_manualF)Ú_cmd_install_allr   r   s   &r   r   r      s   € Ô¤¨Ð+;¸UÓ CÔDr   Úrestartz3Tear down running LSP clients (next edit re-spawns)c                ó   € \        4       # r   )Ú_cmd_restartr   s   &r   r   r      s   € ÔWcÔWer   ÚwhichzPrint binary path for a serverz	Server idc                ó,   € \        V P                  4      # r   )Ú
_cmd_whichr   r   s   &r   r   r      s   € Ô]gÐhi×hpÑhpÔ]qr   c               ó    € V ^8„  d   QhRRRR/# )é   Ú
subparserszargparse._SubParsersActionÚreturnÚNone© )Úformats   "r   Ú__annotate__r.      s   € ÷ .ñ .Ð#=ð .À$ñ .r   c                ó  € V P                  RRRR7      pVP                  RR7      p\         F?  w  r4rVVP                  W4R7      pVf   K  VP                  ! V^ ,          3/ V^,          B  KA  	  VP	                  \
        R	7       R# )
z?Wire the ``hermes lsp`` subcommand tree into the main argparse.Úlspz#Language Server Protocol managementzUManage the LSP layer that powers post-write semantic diagnostics in write_file/patch.)r   ÚdescriptionÚlsp_command)Údest)r   N)Úfunc)Ú
add_parserÚadd_subparsersÚ_SUBCOMMANDSÚadd_argumentÚset_defaultsÚrun_lsp_command)r)   ÚparserÚsubÚnameÚ	help_textÚargÚ_handlerÚps   &       r   Úregister_subparserrB      s…   € à×"Ñ"ØØ2Økð #ó €Fð
 ×
Ñ
 ]Ð
Ó
3€Cß*6Ñ&ˆ˜Ø�N‰N˜4ˆNÓ0ˆØŒ?Ø�NŠN˜3˜q�6Ñ, S¨¥VÔ,ñ +7ð ×Ñœ_ÐÖ-r   c               ó    € V ^8„  d   QhRRRR/# )r(   Úargszargparse.Namespacer*   Úintr,   )r-   s   "r   r.   r.   .   s   € ÷ 
ñ 
Ð,ð 
°ñ 
r   c                óâ   € \        V RR4      ;'       g    Rp \        P                  V4      pVf&   \        P                  P                  RV R24       ^# V! V 4      #   \         d     ^‚# i ; i)z5Top-level dispatcher for ``hermes lsp <subcommand>``.r2   Nr   zunknown lsp subcommand: Ú
)r   Ú	_COMMANDSÚgetÚsysÚstderrÚwriteÚKeyboardInterrupt)rD   r<   Úhandlers   &  r   r:   r:   .   sk   € ä
�$˜ tÓ
,×
8Ð
8°€CðÜ—-‘- Ó$ˆØŠ?Ü�J‰J×ÑÐ7¸°u¸BÐ?Ô@ÙÙ�t‹}ÐøÜô Úðús   ™<A ÁA ÁA.Á-A.c               ó   € V ^8„  d   QhRR/# ©r(   r*   r   r,   )r-   s   "r   r.   r.   ;   s   € ÷ fñ f�dñ fr   c                 óì   € ^ RI Hp Hp ^ RIHp  V! 4       P                  R4      ;'       g    / p. T! \        V\        4      '       d   VP                  R4      MR4      OV O#   \         d    / p LBi ; i)zYConfig-declared servers (``lsp.servers.<id>.extensions``) ahead of the built-in registry.)ÚSERVERSÚcustom_servers)Úload_config_readonlyr0   ÚserversN)	Úagent.lsp.serversrR   rS   Úhermes_cli.configrT   rI   Ú	ExceptionÚ
isinstanceÚdict)rR   rS   rT   Úlsp_cfgs       r   Ú_all_serversr\   ;   so   € ç9Ý6ðÙ&Ó(×,Ñ,¨UÓ3×9Ð9°rˆð f‰^´jÀÌ$×6OÒ6O˜GŸK™K¨	Ô2ÐUYÓZÐeÐ]dÐeÐeøô ô ØŠðús   �A# ­A# Á#A3Á2A3c               ó    € V ^8„  d   QhRRRR/# ©r(   Ú	server_idÚstrr*   r,   )r-   s   "r   r.   r.   F   s   € ÷ 5ñ 5˜3ð 5 3ñ 5r   c                óø   a a€ ^ RI p^ RIHp ^ RIHoHp \        VV 3R l\        4        4       R4      pVe4   VP                  4       pVP                  WS! VRR7      4      '       d   R# R# V! \        S 4      4      # )	é    N)Údetect_status)rR   ÚServerContextc              3  ó^   <"  € T F"  qP                   S8X  g   K  VS9  g   K  Vx € K$  	  R # 5ir   ©r_   )Ú.0ÚsrR   r_   s   & €€r   Ú	<genexpr>Ú_status_for.<locals>.<genexpr>J   s&   øé € Ð^™n˜·±¸yÑ0H”1ÈQÐV]ÑM]—1’1›nùs   ƒ-š-£
-Úmanual)Úinstall_strategyr   r   )ÚosÚagent.lsp.installrc   rV   rR   rd   Únextr\   ÚgetcwdÚbuild_spawnÚ_recipe_pkg_for)r_   rm   rc   rd   ÚcustomÚcwdrR   s   f     @r   Ú_status_forru   F   sh   ù€ ÛÝ/ß8ÜÕ^œlœnÓ^Ð`dÓe€FØÒØ�i‰i‹kˆØ$×0Ñ0°°mÀCÐZbÔ6c×dÒdˆ{ÐwÐjwÐwÙœ¨Ó3Ó4Ð4r   c               ó    € V ^8„  d   QhRRRR/# )r(   Ú	emit_jsonÚboolr*   rE   r,   )r-   s   "r   r.   r.   Q   s   € ÷ ,ñ ,˜4ð , Cñ ,r   c                ó†  € ^ RI Hp ^ RIHp \	        4       pV! 4       pVe   VP                  4       MRR/pV '       d•   ^ RIpV Uu. uFG  pRVP                  R\        VP                  4      RVP                  R	\        VP                  4      /NKI  	  pp\        P                  P                  VP                  R
VRV/^R7      R,           4       ^ # RRRVP!                  RR4       2.p	VEe°   V	RVP!                  R4       2RVP!                  R4       R2RVP!                  R4       2.,          p	VP!                  R4      ;'       g    . p
T	P#                  V
'       d   R\%        V
4       2MR4       Yš Uu. uF%  pRVR,          R RVR,          R R VR!,           2NK'  	  up,          p	VP!                  R"4      ;'       g    . pV'       d9   V	P#                  R#\%        V4       24       Yœ Uu. uF  pRV 2NK
  	  up,          p	VP!                  R$4      ;p'       d$   V	P#                  R%R&P'                  V4       24       VP!                  R'4      ;p'       dC   V	P#                  R(\%        V4       R)24       YŸ UUu. uF  w  ppRVR R V 2NK  	  upp,          p	\)        4       ;p'       d&   T	. R7OV Uu. uF  pR+V 2NK
  	  up,           ,          p	V	. R8O,          p	V EF  p\        VP                  4      pR&P'                  \        VP                  4      R,,          4      p\%        VP                  4      ^8”  d(   VR-\%        VP                  4      ^,
           R.2,          pV	P#                  R/\*        P!                  VR04       R0VP                  R1 R2VR3 R4V 24       VP                  '       g   KÖ  VP                  V9   d   R*MR5pV	P#                  R6VP                   V 24       EK  	  \        P                  P                  RP'                  V	4      R,           4       ^ # u upi u upi u upi u uppi u upi )9rb   )Úget_service)ÚUNTRUSTED_SAFE_SERVERSNÚenabledFr_   Ú
extensionsr1   Úbinary_statusÚserviceÚregistry)ÚindentrG   zLSP Servicez===========z  enabled:         z  wait_mode:       Ú	wait_modez  wait_timeout:    Úwait_timeoutrh   z  install_strategy:rl   Úclientsz  active clients:  z  active clients:  nonez    - Ú20sz state=ÚstateÚ10sz root=Úworkspace_rootÚbrokenz  broken pairs:    Údisabled_serversz  disabled in cfg: z, Úuntrusted_skippedz  untrusted skips: z. (add the workspace to lsp.trusted_workspaces)Ú z  ! :Né   Nu   , â€¦ (+Ú)ú  Ú Ú24sú [Ú11sú] z  [trusted workspaces only]z      )rŒ   zBackend warningsz================)rŒ   zRegistered Serversz==================)Ú	agent.lsprz   rV   r{   r\   Ú
get_statusr   r_   r   r}   r1   ru   rJ   ÚstdoutrL   ÚdumpsrI   ÚappendÚlenÚjoinÚ_backend_warningsÚ_STATUS_MARKERS)rw   rz   r{   rU   ÚsvcÚinfor   rh   r€   Úoutr„   Úcr‰   ÚbÚdisabledÚ	untrustedÚsidÚrootÚbackend_warningsÚliner   Úext_summaryÚgates   &                      r   r   r   Q   sî  € Ý%Ý8Ü‹n€GÙ
‹-€CØ"šˆ3�>‰>Ô°YÀÐ4F€DßÛáIPóRÙIPÀAð ! !§+¡+¨|¼TÀ!Ç,Á,Ó=OÐQ^Ð`a×`mÑ`mØ$¤k°!·+±+Ó&>ó@ÙIPð 	ð Rä�
‰
×Ñ˜Ÿ™ Y°°jÀ(Ð$KÐTU˜ÓVÐY]Õ]Ô^Ùà˜-Ð+>¸t¿x¹xÈ	ÐSXÓ?YÐ>ZÐ)[Ð
\€CØ
ƒØÐ% d§h¡h¨{Ó&;Ð%<Ð=Ø% d§h¡h¨~Ó&>Ð%?¸qÐAØ% d§h¡hÐ/AÓ&BÐ%CÐDðFõ 	Fˆð —(‘(˜9Ó%×+Ð+¨ˆØ�
‰
¿7Ð(¬¨W«¨Ñ7ÐHaÔbØÐipÓqÑipÐde�&˜˜;�¨Ð,¨G°A°gµJ¸sÐ3CÀ6È!ÐL\ÕJ]ÐI^Ó_ÑipÑqÕqˆØ—‘˜(Ó#×)Ð) rˆßØ�J‰JÐ,¬S°«[¨MÐ:Ô;Ø¨&Ó1©& Q�f˜Q˜C“L©&Ñ1Õ1ˆCØ—x‘xÐ 2Ó3Ð3ˆ8Ö3Ø�J‰JÐ,¨T¯Y©Y°xÓ-@Ð,AÐBÔCØŸ™Ð!4Ó5Ð5ˆ9Ö5Ø�J‰JÐ,¬S°«^Ð,<Ð<jÐkÔlØÀIÔNÁI±y°s¸D�f˜S ˜I V¨D¨6Ó2ÁIÒNÕNˆCä,Ó.Ð.ÐÖ.ØÒ;ÑYiÓ>jÑYiÐQUÀÀdÀV»}ÑYiÑ>jÕjÕjˆØÒ;Õ;€CÜˆÜ˜QŸ[™[Ó)ˆØ—i‘i¤ Q§\¡\Ó 2°2Õ 6Ó7ˆÜˆq�|‰|Ó˜qÔ Ø˜X¤c¨!¯,©,Ó&7¸!Õ&;Ð%<¸AÐ>Õ>ˆKØ�
‰
�Rœ×+Ñ+¨F°CÓ8Ð9¸¸1¿;¹;ÀsÐ:KÈ2ÈfÐUXÈ\ÐY[Ð\gÐ[hÐiÔjØ�=�=Š=ØŸ™Ð(>Ô>‘2ÐDaˆDØ�J‰J˜ §¡˜¨t¨fÐ5×6ñ ô ‡J�J×Ñ�T—Y‘Y˜s“^ dÕ*Ô+ÙùòIRùò rùò 2ùó
 Oùò ?ks   ÁAP)Å8+P.Ç0P3É?P8Ê8P>c               ó    € V ^8„  d   QhRRRR/# )r(   r   rx   r*   rE   r,   )r-   s   "r   r.   r.   €   s   € ÷ ñ ˜dð  sñ r   c           
     ó  € \        4        Fv  p\        VP                  4      pV '       d
   VR 8w  d   K)  \        P                  P                  VP                  R RVR RRP                  VP                  4       R24       Kx  	  ^ # )r   r‘   r’   r“   r”   Ú,rG   )r\   ru   r_   rJ   r—   rL   r›   r}   )r   rh   r   s   &  r   r   r   €   sh   € ÜŽ^ˆÜ˜QŸ[™[Ó)ˆß 6¨[Ö#8Ü�J‰J×Ñ §¡¨CÐ0°°6¸#°,¸bÀÇÁÈ!Ï,É,ÓAWÐ@XÐXZÐ[Ö\ñ ñ r   c               ó    € V ^8„  d   QhRRRR/# ©r(   r_   r`   r*   rE   r,   )r-   s   "r   r.   r.   ˆ   s   € ÷ ñ ˜Cð  Cñ r   c                ó8  € ^ RI HpHp \        V 4      p\	        V 4      R8X  d%   \
        P                  P                  V  R24       ^ # \
        P                  P                  RV  RV R24       \
        P                  P                  4        V! VR4      pVe&   \
        P                  P                  RV R	24       ^ # VP                  V4      ;'       g    / P                  R
4      R8H  p\
        P                  P                  V'       d   V  R2MV  R24       ^# )rb   ©Útry_installÚINSTALL_RECIPESr   ú already installed
zinstalling ú (pkg=z) ...
Úautozinstalled: rG   Ústrategyrk   z<: this server requires a manual install. See documentation.
z: install failed (see logs).
)rn   r²   r³   rr   ru   rJ   r—   rL   ÚflushrI   rK   )r_   r²   r³   ÚpkgÚbin_pathrk   s   &     r   r   r   ˆ   sð   € ß>Ü
˜)Ó
$€CÜ�9Ó Ô,Ü�
‰
×Ñ˜I˜;Ð&:Ð;Ô<ÙÜ‡J�J×Ñ�{ 9 +¨V°C°5¸Ð@ÔAÜ‡J�J×ÑÔÙ˜3 Ó'€HØÒÜ�
‰
×Ñ˜; x j°Ð3Ô4ÙØ×!Ñ! #Ó&×,Ð,¨"×1Ñ1°*Ó=ÀÑI€FÜ‡J�J×Ñ×dj˜	�{Ð"_Ñ`Ø&˜KÐ'EÐFôHár   c               ó    € V ^8„  d   QhRRRR/# )r(   r   rx   r*   rE   r,   )r-   s   "r   r.   r.   š   s   € ÷ ñ  Tð ¨cñ r   c                ó„  € ^ RI Hp ^ RIHpHp ^ pV EF(  p\        VP                  4      pVP                  V4      pVe   VP                  R4      R8X  d   V '       g   KN  \        VP                  4      R8X  d1   \        P                  P                  RVP                  R R24       K˜  \        P                  P                  R	VP                   R
V R24       \        P                  P                  4        V! VR4      p\        P                  P                  V'       d   RV R2MR4       V'       d   TM^pEK+  	  V# )rb   )rR   r±   r·   rk   r   r�   r‘   r´   z  installing rµ   z) ... r¶   zok (z)
zFAILED
)rV   rR   rn   r²   r³   rr   r_   rI   ru   rJ   r—   rL   r¸   )	r   rR   r²   r³   Úrcrh   r¹   ÚrecipeÚpaths	   &        r   r    r    š   sö   € Ý)ß>Ø	
€BÜˆÜ˜aŸk™kÓ*ˆØ ×$Ñ$ SÓ)ˆØŠ>˜fŸj™j¨Ó4¸Ô@ÏÙÜ�q—{‘{Ó# {Ô2Ü�J‰J×Ñ˜r !§+¡+¨cÐ!2Ð2FÐGÔHÙÜ�
‰
×Ñ˜=¨¯©¨°V¸C¸5ÀÐGÔHÜ�
‰
×ÑÔÙ˜3 Ó'ˆÜ�
‰
×Ñ¯T˜4 ˜v SÑ)°zÔBß‰R˜Q‹ñ ð €Ir   c               ó   € V ^8„  d   QhRR/# )r(   r*   rE   r,   )r-   s   "r   r.   r.   ®   s   € ÷ ñ �cñ r   c                 ó^   € ^ RI Hp  V ! 4        \        P                  P	                  R4       ^ # )rb   ©Úshutdown_servicez7LSP service shut down. Next edit will respawn clients.
)r•   rÃ   rJ   r—   rL   rÂ   s    r   r#   r#   ®   s!   € Ý*ÙÔÜ‡J�J×ÑÐOÔPÙr   c               ó    € V ^8„  d   QhRRRR/# r¯   r,   )r-   s   "r   r.   r.   µ   s   € ÷ ñ ˜#ð  #ñ r   c                ó  € ^ RI HpHp T! VP                  V 4      ;'       g    / P                  RV 4      4      pV'       d)   \        P
                  P                  VR,           4       ^ # \        P                  P                  V  R24       ^# )rb   )r³   Ú_existing_binaryÚbinrG   z: not installed
)rn   r³   rÆ   rI   rJ   r—   rL   rK   )r_   r³   rÆ   Úresolveds   &   r   r&   r&   µ   si   € ßCÙ ×!4Ñ!4°YÓ!?×!EÐ!EÀ2× JÑ JÈ5ÐR[Ó \Ó]€HßÜ�
‰
×Ñ˜ D�Ô)ÙÜ‡J�J×Ñ˜	�{Ð"3Ð4Ô5Ùr   zvue-language-serverz@vue/language-serverzastro-language-serverz@astrojs/language-serverzdockerfile-lsz!dockerfile-language-server-nodejsÚ
typescriptztypescript-language-serverc               ó    € V ^8„  d   QhRRRR/# r^   r,   )r-   s   "r   r.   r.   È   s   € ÷ 5ñ 5˜sð 5 sñ 5r   c                ó,   € \         P                  W 4      # )z?Map a registry ``server_id`` to its install-recipe package key.)Ú_RECIPE_ALIASESrI   rf   s   &r   rr   rr   È   s   € ä×Ñ˜yÓ4Ð4r   c               ó   € V ^8„  d   QhRR/# rP   r,   )r-   s   "r   r.   r.   Í   s   € ÷ ñ ˜4ñ r   c                 óZ   € ^ RI p ^ RIHp V! R4      e   V P                  R4      f   R.# . # )zcNotes about missing sidecar tools that make a server spawn fine but emit nothing (e.g. shellcheck).N)rÆ   zbash-language-serverÚ
shellchecku‘   bash-language-server is installed but shellcheck is missing â€” diagnostics will be empty (apt: shellcheck, brew: shellcheck, scoop: shellcheck).)Úshutilrn   rÆ   r$   )rÐ   rÆ   s     r   rœ   rœ   Í   s9   € ãÝ2ÙÐ.Ó/Ò;ÀÇÁÈ\Ó@ZÒ@bðdð eð 	eà€Ir   )Ú__doc__Ú
__future__r   ÚargparserJ   r�   r7   rH   rB   r:   r\   ru   r   r   r   r    r#   r&   rÌ   rr   rœ   )r=   Ú_rN   s   000r   Ú<module>rÕ      s^  ðñõ #ã Û 
à  y°$¸ÀsÐK€ð Ð(Ø�˜<¨Ð1MÐNÐOÙ5ð7ð Ð.Ø˜8 \°6Ð;rÐsÐtÙ=ð?ð Ð)¨H°vÐ?`Ð6aÐ+bÙ%ð'àÐKØ˜8 \°6Ð;uÐvÐwÙDðFð ÐEÀtÑMeÐfØÐ.°¸FÀKÐ;PÐ0QÑSqÐrð€ñ 7CÕC±lÑ2˜t Q¨ˆTŠ]±lÓC€	õ.õ
õfõ5õ,õ^õõ$õ(õð Ð1ØÐ7ØÐ8ØÐ.ð	€õ5÷
ùôc Ds   ÁC