+
    lHàjDk  ã                   óÜ  € R t ^ RIt^ RIHt ^RIHtHt ]! 4       t]P                  t]P                  t
RRRRZ/R R lltR R	 ltR
 R ltR R ltR R ltR tR tR[R ltR tR t]R 4       tRRRRRRRRRRRRRRRR/tR tR tR  tR! tR" t]R# 4       tR$R0R$R%R&/R'R&3R(R0R(R%R)/R*R)3R+R,0R+R-R&/R'R30 R\mR.R-R)/R/R33t]R0 4       tR1 R2 ltR3 t R4 t!R5 R6 lt"R7 t#R8 t$]R9 4       t%]R: 4       t&]R; 4       t'R< t(/ R=]bR]bR>]bR?]bR@]bRA]bRB] bRC]bRD]bRE] bRF] bRG]#bRH]#bRI]#bRJ] bRK]#bRL]#bRM] RN] RO]$RP]$RQ]$RR]%RS]&RT]'/Ct)]*! 0 R]m4      t+]! RU4      ]
RV RW l4       4       t,RX RY lt-R# )^uu  ``config.set`` â€” one JSON-RPC method, dispatched on ``key`` through ``_CONFIG_SETTERS``. Bodies
are rebound onto server.py's globals (method_ctx.bind_module) and reference them bare. Each
``_set_*`` takes ``(rid, params, key, value, session)`` and returns the JSON-RPC envelope.
Keys match exactly except ``details_mode.<section>`` (prefix) and ``_DISPLAY_TOGGLE_KEYS``.
N)ÚINDICATOR_STYLES)ÚHandlerRegistryÚbind_moduleÚsectionsÚdrop_sectionsc                ó   € V ^8„  d   QhRR/# ©é   ÚreturnN© )Úformats   "ÚC/home/ubuntu/.hermes/hermes-agent/tui_gateway/methods_config_set.pyÚ__annotate__r      s   € ÷ ñ ÐUYñ ó    c                ó®  € \        4       p\        VP                  R4      \        4      '       d   VP                  R4      M/ p\        VP                  R4      \        4      '       d   VP                  R4      M/ pVP	                  V4       TP	                  T ;'       g    / 4       V F  pVP                  VR4       K  	  WTR&   WCR&   \        V4       R# )z[Persist ``display.<field>`` + ``display.sections`` edits via the raw (uncached) write-back.Údisplayr   N)Ú_load_cfg_rawÚ
isinstanceÚgetÚdictÚupdateÚpopÚ	_save_cfg)r   r   Údisplay_fieldsÚcfgr   ÚcurÚnames   $$,    r   Ú_write_display_sectionsr      s    € ä
‹/€CÜ$.¨s¯w©w°yÓ/AÄ4×$HÒ$Hˆc�g‰g�iÔ Èb€GÜ%/°·±¸JÓ0GÌ×%NÒ%Nˆ'�+‰+�jÔ
!ÐTV€CØ‡N�N�>Ô"Ø‡J�Jˆx�~ˆ~˜2ÔÛˆØ�‰��dÖñ àˆJÑØˆ	�NÜˆc†Nr   c                ó4   € V ^8„  d   QhR\         R\        RR/# )r	   ÚsidÚsessionr
   N)Ústrr   )r   s   "r   r   r   "   s&   € ÷ Bñ BœCð B¬$ð B°4ñ Br   c                 ó`   € VP                  R 4      pVe   \        RV \        W!4      4       R# R# )ÚagentNzsession.info)r   Ú_emitÚ_session_info)r   r    r#   s   && r   Ú_emit_session_infor&   "   s,   € Ø�K‰K˜Ó €EØÒÜˆn˜c¤=°Ó#@ÖAñ r   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   (   s   € ÷ &ñ & ñ &r   c                  óh   € \        \        P                  4       4       F  w  r\        W4       K  	  R # ©N)ÚlistÚ	_sessionsÚitemsr&   )r   Úsesss     r   Ú_emit_all_session_infor.   (   s"   € Üœ)Ÿ/™/Ó+Ö,‰	ˆÜ˜3Ö%ó -r   c                ó$   € V ^8„  d   QhR\         /# ©r	   r
   ©r!   )r   s   "r   r   r   -   s   € ÷ ,ñ ,”Cñ ,r   c                 ód   € \        T ;'       g    R 4      P                  4       P                  4       # )Ú ©r!   ÚstripÚlower©Úvalues   &r   Ú_wordr9   -   s%   € Üˆu�{ˆ{˜Ó×!Ñ!Ó#×)Ñ)Ó+Ð+r   c                ó$   € V ^8„  d   QhR\         /# r0   r1   )r   s   "r   r   r   1   s   € ÷ Añ Aœñ Ar   c                ó\   € V f   RM
\        V 4      P                  4       P                  4       # )zXLike ``_word`` but only None is blank: falsy non-strings (0, False, []) keep their text.r3   r4   r7   s   &r   Ú	_raw_wordr<   1   s$   € à’-‰B¤S¨£Z×6Ñ6Ó8×>Ñ>Ó@Ð@r   c                 ó&   € \        V R VRV/VC4      # )Úkeyr8   )Ú_ok)Úridr>   r8   Úextras   &&&,r   Ú_kvrB   6   s   € Üˆs�U˜C ¨%Ð9°5Ð9Ó:Ð:r   c                óp   € \        W4      pV'       d   V# V P                  R4      f   \        VRR4      # R# )zPWait for an in-progress agent build; the error envelope if it failed, else None.r#   Né¨  úagent initialization failed)Ú_wait_agentr   Ú_err)r    r@   Úinit_errs   && r   Ú_cfgset_await_agentrI   :   s8   € ä˜7Ó(€HßØˆØ=D¿[¹[ÈÓ=QÒ=YŒ4��TÐ8Ó9ÐcÐ_cÐcr   c                ó>   € \        WV3RVR\        V4      RVRV/VB # )zŠModel-switch envelope; ``confirm_required`` follows ``confirm_message`` (canonical; ``warning``
is its legacy alias on the deferred path).ÚwarningÚconfirm_requiredÚconfirm_messageÚscope)rB   Úbool)r@   r>   r8   rK   rM   rN   rA   s   &&&&&&,r   Ú_cfgset_model_okrP   B   sG   € ô ˆs˜ñ F¨ð FÄ$ÀÓBWð FØ.ðFØ6;ðFØ?DñFð Fr   c           	     ó¢  €  VP                   p\        VRR4      ;'       g    RP	                  4       pV'       g`   VP                  R4      pT;'       g&    \        VRR4      ;'       g    RP	                  4       p	\        WiV4      p
V
e   \        WWjV
RR7      # RVRVR	VR
V/VR&   \        WVRR7      #   \         d    \        T4      p L¿i ; i)u@  No live swap while a turn streams (agent.switch_model() mutates fields the worker thread
reads every iteration): stash the pick for the NEXT turn start. Selection guards run HERE (the
only moment a confirm round-trip is possible; an unconfirmed stashed pick is dropped at turn
start) â€” on a warning nothing is stashed.Úexplicit_providerr3   r#   ÚproviderF)ÚdeferredÚrawÚconfirm_expensive_modelÚdisplay_modelÚdisplay_providerÚpending_model_switchT)Úmodel_inputÚ	Exceptionr!   Úgetattrr5   r   Ú!_pending_switch_selection_warningrP   )r@   r>   r8   r    Ú	confirmedÚparsedÚpending_modelÚpending_providerr#   Úguard_providerÚpending_warnings   &&&&&&     r   Ú_stash_pending_model_switchrd   I   så   € ð
#Ø×*Ñ*ˆô   Ð(;¸RÓ@×FÐFÀB×MÑMÓOÐßð —‘˜GÓ$ˆØ)×[Ð[¬g°e¸ZÈÓ.L×.RÐ.RÐPR×-YÑ-YÓ-[ˆÜ;¸MÐ[`ÓaˆØÒ&Ü# C¨mÈoÐhmÔnÐnð 	ˆuÐ/°Ø˜Ð(:Ð<Lð'N€GÐ"Ñ#ô ˜C m¸dÔCÐCøô ô #Ü˜E›
Šð#ús   ‚B5 Â5CÃCc                ó   a € V 3R lpV# )zDSetter whose uncaught exception becomes ``_err(rid, 5001, str(e))``.c                 óv   <€  S! WW#V4      #   \          d!   p\        T R \        T4      4      u Rp?# Rp?ii ; i)i‰  N)r[   rG   r!   )r@   Úparamsr>   r8   r    ÚeÚfns   &&&&& €r   ÚsetterÚ_cfgset_guarded.<locals>.setterd   s:   ø€ ð	+Ù�c 3¨wÓ7Ð7øÜô 	+Ü˜˜T¤3 q£6Ó*Õ*ûð	+ús   ƒ	 �8˜3­8³8r   )ri   rj   s   f r   Ú_cfgset_guardedrl   b   s   ø€ õ+ð
 €Mr   c                óž  € V'       g   \        V RR4      # \        VP                  RR4      4      pV'       Ed[   ^ RIHp VP                  RR4      pV! V4      pVP                  R4      '       g   VP                  R	4      '       d   \        WW4WX4      # VP                  p	VP                  R
4      RJ ;'       d    VP                  R4      RJp
V
'       d   VP                  R4      MRpV
'       dT   Vf'   \        T RVP                  R4      ;'       g    R4      # VP                  RR7      '       g   \        V R\        4      # T
;'       db    VP                  R
4      RJ ;'       dG    VP                  R4      RJ;'       d,    VP                  R4      VJ ;'       d    VP                  4       p
VP                  R
4      f?   V	P                  4       '       g)   V
'       g!   \        Wt4       \        W@4      ;p'       d   V# \        V4      ;_uu_ 4        \        WtW5VR7      pRRR4       V
'       da   XP                  R4      '       gJ   \        WtV4       \        W@4      ;p'       d   V# \        V4      ;_uu_ 4        \!        V4       RRR4       MFME^ RIHp V! \#        V4      4      P$                  '       d   \        RR
R/W5R7      pM\        V RR4      # \'        WXR,          VR,          VP                  RR4      VP                  RR4      VP                  RR4      R7      #   + '       g   i     EL; i  + '       g   i     Ls; i)zTLive/deferred model switch; see _apply_model_switch and _apply_pending_model_switch.é¢  zmodel value requiredrV   F)Úparse_model_switch_argsÚ
session_idr3   ÚrunningÚ_compute_host_activer#   NÚagent_errorÚagent_readyrD   rE   g      >@)Útimeout)rV   Úparsed_flagsrL   )rV   i¡  z•config.set model requires a live session; to change the profile default run /setup, or use the Models page (dashboard) / Settings -> Models (Desktop)r8   rK   rM   rN   r    )rK   rL   rM   rN   )rG   rO   r   Úhermes_cli.model_switchro   rd   rR   ÚwaitÚAGENT_STILL_STARTINGÚis_setr5   Ú_start_agent_buildrI   Ú_session_profile_runtime_scopeÚ_apply_model_switchÚ%_restart_completed_failed_agent_buildÚ_persist_live_session_runtimer!   Úis_oncerB   )r@   rg   r>   r8   r    r^   ro   r   rv   rR   Úfailed_agent_initÚfailed_readyrH   Úresults   &&&&&         r   Ú
_set_modelr„   n   sã  € ÷ Ü�C˜Ð5Ó6Ð6Ü�V—Z‘ZÐ 9¸5ÓAÓB€Iß€wÝCØ�j‰j˜ rÓ*ˆÙ.¨uÓ5ˆð �;‰;�y×!Ò! W§[¡[Ð1G×%HÒ%HÜ.¨s¸ÈÓaÐaØ(×:Ñ:ÐØ#ŸK™K¨Ó0°DÐ8×cÐc¸W¿[¹[ÈÓ=WÐ_cÐ=cÐß5F�w—{‘{ =Ô1ÈDˆßØÒ#Ü˜C  w§{¡{°=Ó'A×'bÐ'bÐEbÓcÐcØ×$Ñ$¨TÐ$×2Ò2Ü˜C Ô';Ó<Ð<à÷ Uð U '§+¡+¨gÓ"6¸$Ð">÷ Uð UÀ7Ç;Á;È}ÓC]ÐeiÐCi÷ Uð UØ—‘˜MÓ*¨lÐ:÷Uð UØ?K×?RÑ?RÓ?Tð 	ð �;‰;�wÓÒ'Ð0A×0GÑ0G×0IÒ0I×RcÜ˜sÔ,Ü.¨wÓ<Ð<ˆxÖ<Ø�Ü+¨G×4Õ4Ü(¨°uØ6BôDˆF÷ 5÷  V§Z¡ZÐ0B×%CÒ%CÜ1°#ÀÔMÜ.¨wÓ<Ð<ˆxÖ<Ø�Ü/°×8Õ8Ü-¨gÔ6÷ 9Ð8øõ 	DÙ"¤3 u£:Ó.×6×6Ð6Ü(¨¨g°t¨_¸eÔg‰Fô ˜˜Tð $7ó 8ð 8ô ˆs˜ �°&¸Õ2CØ &§
¡
Ð+=¸uÓ EØ%Ÿz™zÐ*;¸RÓ@ÈÏ
É
ÐSZÐ\eÓHfôhð h÷- 5×4Ð4ú÷ 9×8ús   ÈL(É>L<Ì(L9	Ì<M	ÚfastÚonÚnormalÚoffÚautoÚcoldÚ	ultrafastÚultrac           
      óz  € \        V4      pV'       d   VP                  R 4      MRpVe   \        VRR4      pM5Ve(   VP                  R4      e   VR,          ;'       g    RpM
\        4       p^ RIHpHp	 VR8X  d   \        WV	! V4      4      # \        P                  YUR9   d   Wx9   d   RMRMR4      p
V
f   \        V R	R
V 24      # RpV
R9   Ed   ^ RI
Hp Ve   \        VRR4      pM`T;'       g    / P                  R4      ;'       g    / p\        V\        4      ;'       d    VP                  R4      ;'       g    \        4       pV'       g   \        V R	R4      # T! T\        VRR4      \        VRR4      V
R8X  d   RMRR7      pVeC   V
R8X  d<   ^ RIHp V! V\        VRR4      \        VRR4      \        VRR4      R7      '       g   RpVf   \        V R	V
 R24      # Ve   RRRR/P                  Wª4      VR&   M\#        RV
4       Veš   RRRR/P                  Wª4      Vn        \        VR/ 4      ;'       g    / P'                  4        UUu/ uF  w  ppVR9  g   K  VVbK  	  ppp/ VCT;'       g    / CVn        \+        V4       \-        VP                  RR4      V4       \        WV
4      # u uppi )r#   NÚservice_tierÚcreate_service_tier_override)ÚSTATIC_TIERSÚservice_tier_wordÚstatusr3   r‡   r…   rn   zunknown fast mode: r‹   )Úresolve_fast_mode_overridesÚmodelÚmodel_overridez3fast mode is not available without a selected modelrS   Úbase_url)rS   r–   Útier)Úultrafast_offeredÚapi_key)rS   r–   Úaccess_tokenz% mode is not available for this modelÚpriorityzagent.service_tierÚrequest_overridesrp   >   r3   Útoggle)r…   r‹   )rŽ   Úspeed)r9   r   r\   Ú_load_service_tierÚagent.fast_moder�   r‘   rB   Ú_FAST_WORDSrG   Úhermes_cli.modelsr“   r   r   Ú_resolve_modelÚagent.codex_service_tiersr˜   Ú_write_config_keyrŽ   r,   rœ   r   r&   )r@   rg   r>   r8   r    rU   r#   Úcurrent_tierr�   r‘   ÚnvÚ	overridesr“   Útarget_modelÚsession_overrider˜   ÚkÚvÚcurrent_overridess   &&&&&              r   Ú	_set_fastr®   ®   sÎ  € Ü
�‹,€Cß$+ˆG�K‰K˜Ô °€EØÒÜ˜u n°dÓ;‰Ø	Ò	 §¡Ð-KÓ!LÒ!XØÐ=Õ>×FÐFÀ$‰ä)Ó+ˆß?Ø
ˆh„Ü�3Ñ.¨|Ó<Ó=Ð=Ü	�‰˜Ð_mÔXm¨<Ô+G™xÉVÐswÓ	x€BØ	‚zÜ�C˜Ð!4°U°GÐ<Ó=Ð=Ø€IØ	Ð"Õ"ÝAØÒÜ" 5¨'°4Ó8‰Là '§ ¨2×2Ñ2Ð3CÓD×JÐJÈÐÜ&Ð'7¼Ó>×`Ð`ÐCS×CWÑCWÐX_ÓC`×uÐuÔesÓeuˆLßÜ˜˜TÐ#XÓYÐYÙ/°ÄwÈuÐV`ÐbfÓGgÜ9@ÀÈ
ÐTXÓ9YØDFÈ+ÔDU±[Ð[_ôaˆ	ð Ò  R¨;Ô%6ÝCÙ$ \¼GÀEÈ:ÐW[Ó<\Ü.5°e¸ZÈÓ.NÜ29¸%ÀÈDÓ2Q÷Só Sð !�	ØÒÜ˜˜T b TÐ)NÐ#OÓPÐPØÒð 4:¸:ÀxÐQSÐ2T×2XÑ2XÐY[Ó2`ˆÐ.Ò/äÐ.°Ô3ØÒØ$ j°(¸DÐA×EÑEÀbÓMˆÔÜ/6°uÐ>QÐSUÓ/V×/\Ð/\ÐZ\×.cÑ.cÔ.eô DÑ.e¡d a¨Ø !Ð)BÑ Bô "˜Q šTÑ.eÐñ Dà"LÐ%6Ð"L¸9¿?¸?ÈÐ"LˆÔÜ% gÔ.Ü˜6Ÿ:™: l°BÓ7¸ÔAÜˆs˜ÓÐùóDs   ÉJ7É%J7c                 ód   € \        V4      R9   d   \        W\        4       4      # \        WW#V4      # )r3   >   r3   r’   )r9   rB   Ú_load_busy_input_modeÚ	_set_word©r@   rg   r>   r8   r    s   &&&&&r   Ú	_set_busyr³   â   s.   € ÜˆUƒ|�~Ô%Ü�3Ô2Ó4Ó5Ð5Ü�S #¨gÓ6Ð6r   c                 óú  € . ROpV'       dF   VR8w  d?   \        V4      P                  4       P                  4       pWe9  d   \        V RRV 24      # McV'       d   VP	                  R\        4       4      M	\        4       pYWV9   d   VP                  V4      M^^,           \        V4      ,          ,          p\        RV4       V'       d)   WdR&   VP	                  R4      e   VR8H  VR,          n	        \        WV4      # )	rˆ   ÚverboseÚcyclern   zunknown verbose mode: Útool_progress_modeúdisplay.tool_progressr#   )rˆ   ÚnewÚallrµ   )r!   r5   r6   rG   r   Ú_load_tool_progress_modeÚindexÚlenr¥   Úverbose_loggingrB   )r@   rg   r>   r8   r    r¶   r§   r   s   &&&&&   r   Ú_set_verboser¿   è   sÙ   € Ú,€Eß�˜'Ô!Ü�‹Z×ÑÓ×%Ñ%Ó'ˆØŒ?Ü˜˜TÐ%;¸E¸7Ð#CÓDÐDð ÷ PWˆg�k‰kÐ.Ô0HÓ0JÔKÔ\tÓ\vˆØ°¬�U—[‘[ Ô%¸1ÀÕAÄSÈÃZÕOÕPˆÜÐ-¨rÔ2ßØ(*Ð$Ñ%Ø�;‰;�wÓÒ+Ø/1°Y©ˆG�GÕÔ,Üˆs˜ÓÐr   c                 ód  € ^ RI HpHpHp \	        4       p\        VP                  RR4      4      p	T! \        T;'       g    R4      V	4      w  r«V
R8X  d   \        V RRV R24      # V
R	8X  g   Vf!   \        YV	'       d   RMR\        4       R7      # V'       dC   T	;'       d    VP                  R4      ;'       g    \        4       p\        RV! V4      4       TpM!T! VP                  R4      ;'       g    R4      p\        RV4       \        R\        V4      4       V'       d]   \        V4      VR&   WÔR&   VP                  R4      e8   \        P                  \        4      ;_uu_ 4        WÔR,          n        R
R
R
4       \        YV'       d	   RVR7      # RVR7      #   + '       g   i     L.; i)é    )ÚFOCUS_TOOL_PROGRESS_MODEÚnormalize_tool_progress_modeÚresolve_focus_argÚ
focus_viewFr3   Úusagern   zunknown focus value: z (use on|off|status)r’   Nr†   rˆ   )Útool_progressÚfocus_saved_tool_progressz!display.focus_saved_tool_progressrº   r¸   zdisplay.focus_viewr·   r#   )Úhermes_cli.focus_viewrÂ   rÃ   rÄ   Ú_display_cfgrO   r   r!   rG   rB   r»   r¥   Ú
contextlibÚsuppressr[   r·   )r@   rg   r>   r8   r    rÂ   rÃ   rÄ   Úd_fÚ	cur_focusÚactionÚtargetÚsavedÚ	effectives   &&&&&         r   Ú
_set_focusrÓ   ù   sd  € çoÑoÜ
‹.€CÜ�S—W‘W˜\¨5Ó1Ó2€IÙ&¤s¨5¯;¨;°BÓ'7¸ÓC�N€FØ�ÔÜ�C˜Ð!6°u°gÐ=QÐRÓSÐSØ�Ô˜Vš^Ü�3§Y™T°EÔIaÓIcÔdÐdßØ×CÐC˜sŸw™wÐ'BÓC×bÐbÔH`ÓHbˆÜÐ=Ñ?[Ð\aÓ?bÔcØ,‰	á0°·±Ð9TÓ1U×1^Ð1^ÐY^Ó_ˆ	ÜÐ-¨yÔ9ÜÐ*¬D°«LÔ9ßÜ $ V£ˆ�ÑØ(1Ð$Ñ%Ø�;‰;�wÓÒ+Ü×$Ñ$¤Y×/Õ/Ø6?˜Õ Ô3÷ 0äˆs§˜À)ÔLÐL¨UÀ)ÔLÐL÷ 0×/ús   Å+FÆF/	c                 ó   € \        WR W44      # ©úapprovals.mode)r±   r²   s   &&&&&r   Ú_set_approval_moder×     s   € Ü�SÐ"2°EÓCÐCr   c           	      óÒ  aa€ \        VP                  R 4      ;'       g    R4      p\        V4      pVR8X  dŠ   ^ RIHp \	        4       P                  R4      p\        V\        4      '       d   TM/ p\        P                  Wg! VP                  RR4      4      R8g  4      p	\        RV	'       d   RMR4       \        4        EMS'       d}   ^ R	I
Hp
 \        SP                  R
4      RR4      ;'       g
    SR,          oVV3R lpV
! SR,          \        P                  V4      VR7      p	\        VP                  RR4      S4       M}\        P                  V\        \        P                   P                  R4      4      '       * 4      p	V	'       d   R\        P                   R&   M \        P                   P#                  RR4       \%        YV	'       d   RMRVR8X  d   VR7      # RR7      # )rN   r    Úglobal)Ú_normalize_approval_modeÚ	approvalsÚmodeÚmanualrˆ   rÖ   )Útoggle_session_yolor#   rp   NÚsession_keyc                 ó”   <€ \        S4      ;_uu_ 4       pVe   VP                  SV 4       R R R 4       R #   + '       g   i     R # ; ir)   )Ú_session_dbÚset_session_yolo)r†   ÚdbÚrow_idr    s   & €€r   ÚpersistÚ_set_yolo.<locals>.persist*  s4   ø€ Ü˜W×%Ô%¨Ø’>Ø×'Ñ'¨°Ô3÷ &×%×%Ò%ús	   •6¶A	)rå   r3   ÚHERMES_YOLO_MODEÚ1Ú0)rN   )r9   r   Útools.approval_contextrÚ   Ú	_load_cfgr   r   Ú_BOOL_WORDSr¥   r.   Útools.approval_yolorÞ   r\   r&   Úis_truthy_valueÚosÚenvironr   rB   )r@   rg   r>   r8   r    rN   rU   rÚ   ÚapprÚenablerÞ   rå   rä   s   &&&&f       @r   Ú	_set_yoloró     se  ù€ ô �&—*‘*˜WÓ%×2Ð2¨Ó3€EÜ
�‹,€CØ�ÔÝCÜ‹{�‰˜{Ó+ˆÜ! $¬×-Ò-‰t°2ˆÜ—‘ Ð&>¸t¿x¹xÈÐPXÓ?YÓ&ZÐ^cÑ&cÓdˆÜÐ*·V©EÀÔJÜÖ ß	Ý;ä˜Ÿ™ WÓ-¨|¸TÓB×\Ð\ÀgÈmÕF\ˆö	4ñ % W¨]Õ%;¼[¿_¹_ÈSÓ=QÐ[bÔcˆÜ˜6Ÿ:™: l°BÓ7¸ÕAä—‘ ¬/¼"¿*¹*¿.¹.ÐI[Ó:\Ó*]Ô&]Ó^ˆßØ-0ŒB�J‰JÐ)Ò*ä�J‰J�N‰NÐ-¨tÔ4Üˆs§™¨CÀÈÔ@Q°uÔaÐaÐW`ÔaÐar   ÚshowÚshow_reasoningTÚexpandedÚhideFÚhiddenÚfullrº   Úreasoning_fullÚclampÚ	collapsedc                 ó2  € ^ RI Hp \        V4      p\        VP                  R4      4      p\         F:  w  r‰r«pWh9   g   K  \        RRRV//V
B  Ve   V'       d   WÄR&   \        WV	4      u # 	  V! V4      pVf   \        V RRV 24      # VR	8X  g   Vf$   \        R
V4       Ve   VP                  RR4       MWÔR&   V'       dH   VP                  R4      e5   WÔR,          n
        \        V4       \        VP                  RR4      V4       \        WV4      # )rÁ   )Úparse_reasoning_effortrN   r   ÚthinkingNrõ   rn   zunknown reasoning value: rÙ   zagent.reasoning_effortÚcreate_reasoning_overrider#   rp   r3   r   )Úhermes_constantsrþ   r9   r   Ú_REASONING_DISPLAY_WORDSr   rB   rG   r¥   r   Úreasoning_configr   r&   )r@   rg   r>   r8   r    rþ   ÚargrN   ÚwordsÚreportedÚfieldsrÿ   rô   r_   s   &&&&&         r   Ú_set_reasoningr  B  s  € å7Ü
�‹,€CÜ�&—*‘*˜WÓ%Ó&€Eß3KÑ/ˆ˜¨4ØŽ<Ü#ÑN¨j¸(Ð-CÐNÀvÒNØÒ§GØ,0Ð(Ñ)Ü�s Ó*Ò*ñ 4Lñ $ CÓ(€FØ‚~Ü�C˜Ð!:¸5¸'ÐBÓCÐCØ�Ô˜GšOÜÐ2°CÔ8ØÒð �K‰KÐ3°TÔ:øà/5Ð+Ñ,ß�7—;‘;˜wÓ'Ò3Ø,2�ÕÔ)Ü% gÔ.Ü˜6Ÿ:™: l°BÓ7¸ÔAÜˆs˜ÓÐr   c                ó$   € V ^8„  d   QhR\         /# r0   ©r   )r   s   "r   r   r   b  s   € ÷ \ñ \”tñ \r   c                 óü   € R\         0 RmRR 3R\         \        RR 3R\         \        RR	 3R
\         0 RmRR 3R\         0 RmRR 3R\        \        RRP                  \        4      ,           R 3R\         RR0RR 3/# )z¶key -> (normaliser, accepted words, error template, apply(word)); the reported value is the
accepted word. Built per call: the specs reference server.py globals (rebound at install).Úbusyzunknown busy mode: {value}c                 ó   € \        R V 4      # )zdisplay.busy_input_mode©r¥   ©Úws   &r   Ú<lambda>Ú_word_setters.<locals>.<lambda>g  s   € Ô,Ð-FÈÔJr   rÖ   z<unknown approval mode: {value}; pick one of manual|smart|offc                 ó.   € \        R V 4      \        4       3# rÕ   )r¥   r.   r  s   &r   r  r  i  s   € Ô&7Ð8HÈ!Ó&LÔNdÓNfÑ%gr   Údetails_modezunknown details_mode: {value}c                 óN   € \        \         Uu/ uF  qV bK  	  upV R 7      # u upi ))r   r  )r   Ú_DETAIL_SECTION_NAMES)r  Úsections   & r   r  r  j  s(   € ÔZqÝ0EÓFÑ0E W˜q’jÑ0EÑFÐUVõ[XùÚFs   Ž"Úthinking_modezunknown thinking_mode: {value}c                 óN   € \        R V 4      \        RV R8X  d   R4      3# R4      3# )zdisplay.thinking_modezdisplay.details_moderù   rö   rü   r  r  s   &r   r  r  m  s2   € ÜÐ5°qÓ9ÜÐ4ÀAÈÄK°jÓañrcàU`Óañrcr   Úthemez2unknown theme value: {value} (use auto|light|dark)c                 ó   € \        R V 4      # )zdisplay.tui_themer  r  s   &r   r  r  r  s   € Ô-Ð.AÀ1ÔEr   Ú	indicatorz(unknown indicator: {raw!r}; pick one of Ú|c                 ó   € \        R V 4      # )zdisplay.tui_status_indicatorr  r  s   &r   r  r  u  s   € Ô 1Ð2PÐRSÔ Tr   úvoice.voice_chat_modeÚchainedzgpt-livez7unknown voice chat mode: {value}; pick chained|gpt-livec                 ó   € \        R V 4      # )r  r  r  s   &r   r  r  x  s   € Ô,=Ð>UÐWXÔ,Yr   >   ÚqueueÚsteerÚ	interrupt>   rù   rü   Ú	truncated>   r‰   ÚdarkÚlight)r9   Ú_APPROVAL_MODESÚ_DETAIL_MODESr<   r   Újoinr   r   r   Ú_word_settersr+  b  sÀ   € ð 	”Ò7Ð9UÙJðLàœ5¤/Ð3qÙgðiàœ¤Ð/Nñ QXð Yð 	œ%Ò!CÐEeñ hcð dð 	”%Ò2Ð4hÙEðGð 	”iÔ!1Ð3]Ð`c×`hÑ`hÔiyÓ`zÕ3zÙTðVð 	 ¤%¨)°ZÐ)@ÐB{Ù"Yð"[ð%\ð \r   c           	      ó¨   € \        4       V,          w  rVrxV! V4      p	W–9  d   \        V R VP                  W9R7      4      # V! V	4       \        WV	4      # )rn   )r8   rU   )r+  rG   r   rB   )
r@   rg   r>   r8   r    ÚnormÚallowedÚerrÚapplyrU   s
   &&&&&     r   r±   r±   {  sP   € Ü -£°Õ 4Ñ€D�3Ù
ˆu‹+€CØ
ÔÜ�C˜˜sŸz™z°˜zÓ?Ó@Ð@Ù	ˆ#„JÜˆs˜ÓÐr   c                 ó$  € VP                  R ^4      ^,          pV\        9  d   \        V RRV 24      # \        V4      pV'       d   V\        9  d   \        V RRV 24      # \        V'       d   WV/MRV'       d   RMV3R7       \        WV4      # )Ú.rn   zunknown section: zunknown details_mode: N)r   r   r   )Úsplitr  rG   r9   r)  r   rB   )r@   rg   r>   r8   r    r  r§   s   &&&&&  r   Ú_set_details_sectionr4  „  sŠ   € ð �i‰i˜˜QÓ Õ"€GØÔ+Ô+Ü�C˜Ð!2°7°)Ð<Ó=Ð=Ü	ˆu‹€Bß	ˆbœÔ%Ü�C˜Ð!7¸°wÐ?Ó@Ð@Ü·b g¡]¸d×XZÑRTÐahÐ`jÕkÜˆs˜ÓÐr   c                ó$   € V ^8„  d   QhR\         /# r0   r
  )r   s   "r   r   r   ‘  s   € ÷ nñ nœñ nr   c                 óò   € R p R\         RRRRR/R V 3R	\         R
RRRRRRRRRRRR/R V 3R\         R\        R V 3R\         RRR/\         Uu/ uF  qVbK  	  upCR R 3R\        R\        R R 3/# u upi )z÷key -> (normaliser, cfg key, alias word -> value, flipped(current), report). ``""``/``toggle``
flips the current value; an alias word maps directly; anything else is 4002. Built per call:
the specs reference server.py globals (rebound at install).c                 ó   € V '       d   R # R# )r†   rˆ   r   ©r¬   s   &r   Úon_offÚ_toggle_setters.<locals>.on_off•  s   € ßˆtÐ#˜eÐ#r   Údensityzdisplay.tui_compactr†   Trˆ   Fc                  óR   € \        \        4       P                  R R4      4      '       * # )Útui_compactF©rO   rÊ   r   r   r   r   r  Ú!_toggle_setters.<locals>.<lambda>š  s   € ¤¤\£^×%7Ñ%7¸ÀuÓ%MÓ NÕNr   Úbatteryzdisplay.batteryÚtrueÚyesÚfalseÚnoc                  óR   € \        \        4       P                  R R4      4      '       * # )r@  Fr>  r   r   r   r  r?  �  s   € ¤¤\£^×%7Ñ%7¸	À5Ó%IÓ JÕJr   Ú
timestampszdisplay.timestampsc                  óR   € \        \        4       P                  R R4      4      '       * # )rF  Fr>  r   r   r   r  r?     s   € ¤4¬«×(:Ñ(:¸<ÈÓ(OÓ#PÕPr   Ú	statusbarzdisplay.tui_statusbarÚtopc                  óZ   € \        \        4       P                  R R4      4      R8X  d   R# R# )Útui_statusbarrI  rˆ   )Ú_coerce_statusbarrÊ   r   r   r   r   r  r?  ¢  s+   € Ô'8¼»×9KÑ9KÈOÐ]bÓ9cÓ'dÐhmÔ'm˜eÐxÐsxÐxr   c                 ó   € V # r)   r   r8  s   &r   r  r?  £  s   € ¡r   Úmousezdisplay.mouse_trackingc                  ó:   € \        \        4       4      R 8X  d   R# R # )rˆ   rº   )Ú_display_mouse_trackingrÊ   r   r   r   r  r?  ¦  s   € Ô#:¼<»>Ó#JÈeÔ#S˜%Ð^ÐY^Ð^r   c                 ó   € V # r)   r   r8  s   &r   r  r?  ¦  s   € Ñjkr   )r9   rì   Ú_STATUSBAR_MODESr<   Ú_MOUSE_TRACKING_ALIASES)r9  Úms     r   Ú_toggle_settersrU  ‘  sÒ   € ò$ð 	”EÐ0°4¸¸uÀeÐ2LÙNÐPVðXà”EÐ,Ø˜4 ¨¨u°d¸EÀ5È'ÐSXÐZ^Ð`eÐfÙJÈFðTð 	”uÐ2´KÙPÐRXðZà”eÐ4°t¸UÐ6gÕUeÓFfÑUeÐPQÈ!ÂtÑUeÑFfÐ6gÙxÙ!ð#ð 	”)Ð5Ô7NÙ^Ñ`kðmðnð nùò Ggs   ÁA4c                 óâ   € \        4       V,          w  rVrxp	V! V4      p
V
R9   d   V! 4       MVP                  V
4      pVf   \        V RRV RV 24      # \        Wk4       \	        WV	! V4      4      # )r3   rn   zunknown z value: >   r3   r�   )rU  r   rG   r¥   rB   )r@   rg   r>   r8   r    r-  Úcfg_keyÚaliasesÚflippedÚreportrU   r§   s   &&&&&       r   Ú_set_toggler[  ©  sr   € Ü.=Ó.?ÀÕ.DÑ+€D�7 VÙ
ˆu‹+€CØ˜^Ô+‰Œ°·±¸SÓ1A€BØ	‚zÜ�C˜ ¨#¨¨h°u°gÐ>Ó?Ð?Ü�gÔ"Üˆs™ ›Ó$Ð$r   c           	      óX  € \        T;'       g    R 4      P                  4       pV'       g   \        V RR4      # \        P                  P                  \        P                  P                  V4      4      p\        P                  P                  V4      '       g   \        V RRV 24      # \        RV4       \        \        4       4      P                  4       \        \        4      P                  4       8X  d   V\        P                  R&   \        V RWf\        P!                  V4      R7      # )r3   rn   zcwd requiredz"working directory does not exist: úterminal.cwdÚTERMINAL_CWD)ÚcwdÚbranch)r!   r5   rG   rï   ÚpathÚabspathÚ
expanduserÚisdirr¥   ÚPathÚget_hermes_homeÚresolveÚ_hermes_homerð   rB   Ú	git_prober`  )r@   rg   r>   r8   r    rU   r_  s   &&&&&  r   Ú_set_cwdrj  ³  sÕ   € Ü
ˆe�kˆk�rÓ
×
 Ñ
 Ó
"€CßÜ�C˜˜~Ó.Ð.Ü
�'‰'�/‰/œ"Ÿ'™'×,Ñ,¨SÓ1Ó
2€CÜ�7‰7�=‰=˜×ÒÜ�C˜Ð!CÀCÀ5ÐIÓJÐJÜ�n cÔ*ô ŒOÓÓ×&Ñ&Ó(¬D´Ó,>×,FÑ,FÓ,HÔHØ%(Œ�
‰
�>Ñ"Üˆs�N C¼×9IÑ9IÈ#Ó9NÔOÐOr   c                 óš   € \        4       pVR 8X  d   VP                  RR4       MW5R&   \        V4       \        YVR 8X  d   R4      # T4      # )ÚclearÚcustom_promptNr3   )r   r   r   rB   )r@   rg   r>   r8   r    r   s   &&&&& r   Ú_set_promptrn  Â  sJ   € ä
‹/€CØ�ÔØ�‰� Õ&à$ˆOÑÜˆc„NÜˆs˜u¨Ô/˜Ó;Ð;°UÓ;Ð;r   c                 ó  € \        \        T;'       g    R 4      \        4       4      w  rV^ RIHp V! V4       \        VP                  RR 4      WFV4      w  r‰\        Y\        T;'       g    R4      3RV/V	e   RV	/B # / B # )r3   )Úpersist_personalityrp   ÚnoneÚhistory_resetÚinfo)Ú_validate_personalityr!   r   Úhermes_cli.personalityrp  Ú_apply_personality_to_sessionr   rB   )
r@   rg   r>   r8   r    ÚpnameÚ
new_promptrp  rr  rs  s
   &&&&&     r   Ú_set_personalityry  Í  s‰   € ä-¬c°%·+°+¸2Ó.>ÄÃÓPÑ€Eå:Ù˜ÔÜ7¸¿
¹
À<ÐQSÓ8TÐV]ÐkpÓqÑ€MÜˆsœ˜UŸ_˜_ fÓ-ñ ?¸]ð ?Ø$(Ò$4�6˜4�.ñ?ð ?Ø:<ñ?ð ?r   c                 ón   € \        R V4       \        R\        4       4       \        4        \	        WV4      # )zdisplay.skinzskin.changed)r¥   Ú_broadcast_global_eventÚresolve_skinÚ_note_skin_broadcastrB   r²   s   &&&&&r   Ú	_set_skinr~  Ø  s+   € ä�n eÔ,ä˜N¬L«NÔ;ÜÔÜˆs˜ÓÐr   c                 óÌ   € \         P                  \        V4      P                  4       P	                  4       4      pVf   \        V RV R24      # \        W%4       \        WV4      # )Nrn   z takes true or false)rì   r   r!   r5   r6   rG   r¥   rB   )r@   rg   r>   r8   r    r†   s   &&&&& r   Ú_set_display_toggler€  á  sW   € Ü	�‰œ˜U›×)Ñ)Ó+×1Ñ1Ó3Ó	4€BØ	‚zÜ�C˜ # Ð&:Ð;Ó<Ð<Ü�cÔÜˆs˜ÓÐr   r”   r  rµ   ÚfocusÚapproval_moderÖ   ÚyoloÚ	reasoningr  r  r;  r@  rF  r  rH  rN  r  r  r_  r]  ÚworkdirÚpromptÚpersonalityÚskinz
config.setc                ó0   € V ^8„  d   QhR\         R\         /# )r	   rg   r
   r
  )r   s   "r   r   r   ý  s   € ÷ 5ñ 5”4ð 5œDñ 5r   c                 ó  € VP                  R R4      VP                  RR4      r2\        P                  VP                  RR4      4      pVfT   VP                  R4      '       d=   V\        9   d2   \        VP                  R4      4      R8w  d   \	        W4      ^,          # \
        P                  V4      pVf   VP                  R4      '       d   \        pMVf   V\        9   d   \        pVf   \        V RRV 24      # V! WW#V4      # )	r>   r3   r8   rp   rN   rÙ   zdetails_mode.rn   zunknown config key: )r   r+   Ú_SESSION_SCOPED_KEYSr9   Ú_sess_nowaitÚ_CONFIG_SETTERSÚ
startswithr4  Ú_DISPLAY_TOGGLE_KEYSr€  rG   )r@   rg   r>   r8   r    Úhandlers   &&    r   Ú_r‘  û  sà   € ð —‘˜E 2Ó&¨¯
©
°7¸BÓ(?ˆÜ�m‰m˜FŸJ™J |°RÓ8Ó9€GØ‚˜6Ÿ:™: l×3Ò3¸Ô?SÔ8SÜ�f—j‘j Ó)Ó*¨hÔ6Ü˜FÓ(¨Õ+Ð+Ü×!Ñ! #Ó&€GØ‚˜3Ÿ>™>¨/×:Ò:Ü&‰Ø	Š˜SÔ$8Ô8Ü%ˆØ‚Ü�C˜Ð!5°c°UÐ;Ó<Ð<Ù�3 ¨GÓ4Ð4r   c                ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r     s   € ÷ 0ñ 0˜ñ 0r   c                 ó2   € \        \        4       V RR7       R# )r‘  )ÚskipN)r‘  )r   Úglobals)Úservers   &r   Úregisterr—    s   € Ü”“	˜6¨×/r   r   )r3   r3   r    >   rû   ÚshortÚcollapse>   r…   rƒ  r”   r„  ).Ú__doc__rï   r  r   Ú
method_ctxr   r   Ú	_registryÚmethodÚprofile_scopedÚ_profile_scopedr   r&   r.   r9   r<   rB   rI   rP   rd   rl   r„   r¡   r®   r³   r¿   rÓ   r×   ró   r  r  r+  r±   r4  rU  r[  rj  rn  ry  r~  r€  r�  Ú	frozensetr‹  r‘  r—  r   r   r   Ú<module>r¡     s  ðñó 
å -ç 4áÓ€	Ø	×	Ñ	€Ø×*Ñ*€ð
¨ð ¸B÷ õBõ&õ
,õAò
;òdôFòDò2ð ñ8hó ð8hðv �v˜t V¨X°xÀÈØ�v˜v v¨{¸KÈÐR]ð_€ò1òh7òò"Mò6Dð ñbó ðbðF ˆd€^�VÐ.°Ð5°zÀ4ÐHØˆe€_�fÐ/°Ð7¸À5ÐIØˆe€_�fÐ/°Ð6¸
ÀDÐIÚ# WÐ/?ÀÐ.GÈÐVZÐ[ð	]Ð ð ñó ðõ>\ò2ò
õnò0%òPð ñ<ó ð<ð ñ?ó ð?ð ñ ó ð òðOØˆZðOØ ðOØ,2°IðOØ?HÈ,ðOØX_ÐakðOàÐ'ðOà)9¸9ðOàFLÈiðOð �ðOð "0°ðOð =LÈYðOð ˆ{ð	Oð & {ð	Oð 5AÀ+ð	Oð PWÐXað	Oð
 �ðOð
 & {ðOð
 5@ÀÐLcÐenØ	ˆ8�^ X¨y¸(Øˆk˜=Ð*:¸FÀIñO€ñ !Ò!GÓHÐ ñ ˆÓØô5ó ó ð5÷ 0r   