+
    jHàj©'  ã                  ó†  a € 0 t $ R t^ RIHt ^ RIHt RRRRRRR	R
R^ RRRRRRRRRRRRRRRR/tR]R&   RRRRR^(RRRRRRRR/t/ ]CRR/Ct	/ ]CRRRRRRRRRR/Ct
/ ]
CR^ /CtR]R/ ]CR^ /C/tR]R&   R]R ]	R!]
R"]/tR# R$ lt]! ]P!                  4       4      tRAR% R& lltR' R( ltRAR) R* llt0 RBmt0 RCmt]! 4       3R+ R, l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R]! RR0 RDm4      R]R]R]R]R]R]R]R9]R]R]! RR0 REmR0R:7      R]! RF4      R	]! RG4      R]/tR]R;&   R< R= ltR>t RHt!R? R@ lt"R# )Iu/  Per-platform display/verbosity resolver (``resolve_display_setting``).

Resolution order, first non-None wins: ``display.platforms.<platform>.<key>`` â†’
``display.<key>`` â†’ ``_PLATFORM_DEFAULTS[platform][key]`` (a plugin platform: its registered
``display_tier`` + ``display_overrides``) â†’ ``_GLOBAL_DEFAULTS[key]``.
Exception: ``display.streaming`` is CLI-only; gateway streaming follows the top-level
``streaming`` config unless a per-platform override sets it. Legacy
``display.tool_progress_overrides`` is still read as a ``tool_progress`` fallback.
)Úannotations)ÚAnyÚtool_progressÚallÚtool_progress_groupingÚ
accumulateÚshow_reasoningFÚreasoning_styleÚcodeÚtool_preview_lengthÚ	streamingNÚinterim_assistant_messagesTÚsuppress_warning_notificationsÚlong_running_notificationsÚbusy_ack_detailÚbusy_steer_ack_enabledÚcleanup_progressÚlive_statusÚfullúdict[str, Any]Ú_GLOBAL_DEFAULTSÚnewÚoffÚwebhookÚ
api_serverzdict[str, dict[str, Any]]Ú_PLATFORM_DEFAULTSÚhighÚmediumÚlowÚminimalc               ó    € V ^8„  d   QhRRRR/# )é   Úplatform_keyÚstrÚreturnr   © )Úformats   "Ú;/home/ubuntu/.hermes/hermes-agent/gateway/display_config.pyÚ__annotate__r(   =   s   € ÷ 8ñ 8 Sð 8¨^ñ 8ó    c           	     óF  € V \         9   d   \         V ,          #  ^ RIHp VP                  V 4      p\
        P                  \        \        TRR4      ;'       g    R4      P                  4       / 4      p\        TRR4      pT'       d   / TCTC# T#   \         d    / u # i ; i)zµBuilt-in defaults for *platform_key*: the table above, else the ``display_tier`` a plugin
platform registered (``PlatformEntry.display_tier``) with its ``display_overrides`` on top.)Úplatform_registryÚdisplay_tierÚ Údisplay_overridesN)	r   Úgateway.platform_registryr+   ÚgetÚ	ExceptionÚ_TIERSr#   ÚgetattrÚlower)r"   r+   ÚentryÚtierÚ	overridess   &    r'   Ú_platform_defaultsr8   =   sž   € ð Ô)Ô)Ü! ,Õ/Ð/ðÝ?Ø!×%Ñ% lÓ3ˆô �:‰:”cœ' %¨¸Ó<×BÐBÀÓC×IÑIÓKÈRÓP€DÜ˜Ð2°DÓ9€Iß$-Ð ˆdÐ �iÐ Ð7°4Ð7øô	 ô ØŠ	ðús   šB ÂB ÂB c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r!   Úuser_configÚdictr"   r#   ÚsettingÚfallbackr   r$   r%   )r&   s   "r'   r(   r(   P   s1   € ÷ ,ñ ,¨ð ,¸Sð ,È3ð ,ÐZ]ð ,Ðilñ ,r)   c                ó®   € \        WV4      pVe   \        W$4      # \        V4      P                  V4      pVf   \        P                  V4      pVf   V# T# )zýResolve a display setting with per-platform override support (see module docstring for order).

``platform_key`` is the platform config key (``"telegram"``; see ``_platform_config_key`` in
gateway/run.py). Returns *fallback* when nothing is configured.
)Ú_configured_display_valueÚ
_normaliser8   r0   r   )r:   r"   r<   r=   Ú
configuredÚvals   &&&&  r'   Úresolve_display_settingrC   P   sZ   € ô +¨;ÀgÓN€JØÒÜ˜'Ó.Ð.Ü
˜\Ó
*×
.Ñ
.¨wÓ
7€CØ
‚{Ü×"Ñ" 7Ó+ˆØ’{ˆ8Ð+¨Ð+r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r!   r:   r;   r"   r#   r<   r$   r   r%   )r&   s   "r'   r(   r(   _   s)   € ÷ ñ ¨4ð ¸sð ÈSð ÐUXñ r)   c                óð  € V P                  R4      p\        V\        4      '       g   R# VP                  R4      p\        V\        4      '       d   VP                  V4      MRp\        V\        4      '       d   VP                  V4      e	   WR,          # VR8X  dC   VP                  R4      p\        V\        4      '       d   VP                  V4      e	   Wa,          # VR8w  d   VP                  V4      # R# )zAFirst non-None operator value, without introducing tier defaults.ÚdisplayNÚ	platformsr   Útool_progress_overridesr   )r0   Ú
isinstancer;   )r:   r"   r<   Údisplay_cfgrG   Úplat_overridesÚlegacys   &&&    r'   r?   r?   _   sÆ   € à—/‘/ )Ó,€KÜ�k¤4×(Ò(ÙØ—‘ Ó,€IÜ4>¸yÌ$×4OÒ4O�Y—]‘] <Ô0ÐUY€NÜ�.¤$×'Ò'¨N×,>Ñ,>¸wÓ,GÒ,SØÕ&Ð&Ø�/Ô!Ø—‘Ð!:Ó;ˆÜ�fœd×#Ò#¨¯
©
°<Ó(@Ò(LØÕ'Ð'Ø�+ÔØ�‰˜wÓ'Ð'Ùr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r!   r:   r;   r"   r#   Úenv_modez
str | Noner$   ztuple[str, bool]r%   )r&   s   "r'   r(   r(   q   s/   € ÷ Vñ V tð V¸3ð VÈ*ð VÐ`pñ Vr)   c                ó†   € \        WR4      pVe   \        RV4      R3# V'       d   \        RV4      R3# \        WR4      R3# )zÙReturn (mode, explicit intent) from the same winning source.

Non-None YAML wins over the legacy env bridge. Null inherits through to env,
then tier defaults. A tier's off is not an operator request to disable cards.
r   TF)r?   r@   rC   )r:   r"   rN   rA   s   &&& r'   Úresolve_tool_progressrP   q   sP   € ô +¨;ÀoÓV€JØÒÜ˜/¨:Ó6¸Ð<Ð<ßÜ˜/¨8Ó4°dÐ:Ð:Ü" ;¸oÓNÐPUÐUÐUr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r!   Úonr#   r   ÚchoicesÚsetÚextra_truthyr%   )r&   s   "r'   r(   r(   …   s(   € ÷ ñ �sð  ð ¨sð À#ñ r)   c                ó&   a aaa€ R VVVV 3R llpV# )ut   Normaliser for bool-or-keyword settings: bools/truthy tokens â†’ *on*, falsy â†’ *off*, else a known choice or *on*.c               ó    € V ^8„  d   QhRRRR/# ©r!   Úvaluer   r$   r#   r%   )r&   s   "r'   r(   Ú$_norm_tristate.<locals>.__annotate__‡   s   € ÷ -ñ -�Cð -˜Cñ -r)   c                óî   <€ \        V \        4      '       d   V '       d   S# S# \        V 4      P                  4       P	                  4       pV\
        9   d   S# V\        S,          9   d   S# VS9   d   V# S# ©N)rI   Úboolr#   Ústripr4   Ú_FALSYÚ_TRUTHY)rY   rB   rS   rU   r   rR   s   & €€€€r'   ÚnormÚ_norm_tristate.<locals>.norm‡   sg   ø€ Ü�eœT×"Ò"ß�2Ð' CÐ'Ü�%‹j×ÑÓ ×&Ñ&Ó(ˆØ”&Œ=ØˆJØ”'˜LÕ(Ô(ØˆIØ˜W”nˆsÐ,¨"Ð,r)   r%   )rR   r   rS   rU   ra   s   ffff r'   Ú_norm_tristaterc   …   s   û€ ÷-ó -ð €Kr)   c               ó    € V ^8„  d   QhRRRR/# ©r!   rY   r   r$   r]   r%   )r&   s   "r'   r(   r(   “   s   € ÷ lñ l�cð l˜dñ lr)   c                ó    € \        V \        4      '       d/   V P                  4       P                  4       \        R R0,          9   # \        V 4      # )ÚrawÚverbose)rI   r#   r^   r4   r`   r]   ©rY   s   &r'   Ú
_norm_boolrj   “   s?   € ÜDNÈuÔVY×DZÒDZˆ5�;‰;‹=×ÑÓ ¤G¨u°iÐ.@Õ$@Ñ@ÐkÔ`dÐejÓ`kÐkr)   c               ó    € V ^8„  d   QhRRRR/# )r!   rY   r   r$   r%   )r&   s   "r'   r(   r(   —   s   € ÷ mñ m˜cð m cñ mr)   c                óŽ   € \        V \        4      '       d&   V P                  4       P                  4       R 8X  d   R # \	        V 4      # )Úgeneric)rI   r#   r^   r4   rj   ri   s   &r'   Ú_norm_long_runningrn   —   s6   € Ü" 5¬#×.Ò.°5·;±;³=×3FÑ3FÓ3HÈIÔ3Uˆ9ÐlÔ[eÐfkÓ[lÐlr)   c               ó    € V ^8„  d   QhRRRR/# re   r%   )r&   s   "r'   r(   r(   ›   s   € ÷ ñ °ð ¸ñ r)   c                ó¬   € \        V \        4      '       d   V # \        V \        4      '       d&   V P                  4       P	                  4       \
        9   # R # )F)rI   r]   r#   r^   r4   r`   ri   s   &r'   Ú$_norm_suppress_warning_notificationsrq   ›   s>   € ä�%œ×ÒØˆÜ�%œ×ÒØ�{‰{‹}×"Ñ"Ó$¬Ñ/Ð/Ùr)   c               ó    € V ^8„  d   QhRRRR/# re   r%   )r&   s   "r'   r(   r(   ¤   s   € ÷ Oñ O #ð O¨$ñ Or)   c                ór   € \        V \        4      '       d   V P                  4       \        9   # \	        V 4      # r\   )rI   r#   r4   r`   r]   ri   s   &r'   Ú_norm_cleanup_progressrt   ¤   s(   € Ü'1°%¼×'=Ò'=ˆ5�;‰;‹=œGÑ#ÐNÄ4ÈÃ;ÐNr)   c               ó    € V ^8„  d   QhRRRR/# )r!   rS   ztuple[str, ...]r$   r   r%   )r&   s   "r'   r(   r(   ¨   s   € ÷ ñ ˜/ð ¨cñ r)   c                ó   a € R  V 3R llpV# )c               ó    € V ^8„  d   QhRRRR/# rX   r%   )r&   s   "r'   r(   Ú"_norm_choice.<locals>.__annotate__©   s   € ÷ 5ñ 5�Cð 5˜Cñ 5r)   c                óZ   <€ \        V 4      P                  4       pVS9   d   V# S^ ,          # ©é    )r#   r4   )rY   rB   rS   s   & €r'   ra   Ú_norm_choice.<locals>.norm©   s*   ø€ Ü�%‹j×ÑÓ ˆØ˜W”nˆsÐ4¨'°!­*Ð4r)   r%   )rS   ra   s   f r'   Ú_norm_choicer}   ¨   s   ø€ ÷5ð 5ð €Kr)   c               ó    € V ^8„  d   QhRRRR/# )r!   rY   r   r$   Úintr%   )r&   s   "r'   r(   r(   °   s   € ÷ ñ �Sð ˜Sñ r)   c                óJ   €  \        V 4      #   \        \        3 d     ^ # i ; irz   )r   Ú	TypeErrorÚ
ValueErrorri   s   &r'   Ú	_norm_intrƒ   °   s(   € ðÜ�5‹zÐøÜ”zÐ"ô Úðús   ‚
 �"¡"Úthinking_progress)rU   Ú_NORMALISERSc               ó$   € V ^8„  d   QhRRRRRR/# )r!   r<   r#   rY   r   r$   r%   )r&   s   "r'   r(   r(   É   s!   € ÷ *ñ *˜ð * Cð *¨Cñ *r)   c                óP   € \         P                  V 4      pV'       d	   V! V4      # T# )zMNormalise a user-supplied value for *setting*; unknown settings pass through.)r…   r0   )r<   rY   ra   s   && r'   r@   r@   É   s#   € ä×Ñ˜GÓ$€Dß‰4�‹;Ð) EÐ)r)   Úclic               ó    € V ^8„  d   QhRRRR/# )r!   rF   r   r$   r   r%   )r&   s   "r'   r(   r(   Ö   s   € ÷ ñ  #ð ¨.ñ r)   c                óè  € \        V \        4      '       d   \        V 4      M/ p V P                  R4      p\        V\        4      '       d   VP                  \        4      MRp\        V\        4      '       g   V # \         Fn  pVP                  V4      pVf   K  \        V\        4      '       d2   \        V P                  V4      \        4      '       d   / W,          CVCp\        W44      W&   Kp  	  V # )a  *display* (a ``config.yaml`` ``display`` block) as a local surface (classic CLI, Ink, Desktop,
a local turn) resolves it: ``display.platforms.cli.<key>`` over ``display.<key>`` for the settings
the local commands save there. No second key is written; the block is returned copied.rG   N)rI   r;   r0   ÚLOCAL_DISPLAY_KEYÚ_LOCAL_OVERLAY_KEYSr@   )rF   rG   ÚlocalÚkeyrY   s   &    r'   Úlocal_display_configr�   Ö   s¾   € ô  *¨'´4×8Ò8Œd�7Œm¸b€GØ—‘˜KÓ(€IÜ0:¸9Äd×0KÒ0KˆI�M‰MÔ+Ô,ÐQU€EÜ�eœT×"Ò"Øˆß"ˆØ—	‘	˜#“ˆØŠ=ÙÜ�eœT×"Ò"¤z°'·+±+¸cÓ2BÄD×'IÒ'IØ-�w•|Ð- uÐ-ˆEÜ! #Ó-ˆ‹ñ #ð €Nr)   r\   >   Ú1rR   ÚyesÚtrue>   Ú0ÚnoÚfalse>   r   Úlogr   r   rh   >   r   r   Úverb)r   Úseparate)r
   Ú
blockquoteÚsubtext)r   Úruntime_footer)#Ú__conditional_annotations__Ú__doc__Ú
__future__r   Útypingr   r   Ú__annotations__Ú
_TIER_HIGHÚ_TIER_MEDIUMÚ	_TIER_LOWÚ_TIER_MINIMALr   r2   r8   Ú	frozensetÚkeysÚOVERRIDEABLE_KEYSrC   r?   rP   r`   r_   rc   rj   rn   rq   rt   r}   rƒ   r…   r@   r‹   rŒ   r�   )rœ   s   @r'   Ú<module>r¨      s+  øðôõ #å ð �UØ˜lØ�eØ�vØ˜1Ø�à  $Ø$ eØ  $Ø�tØ˜dð ˜ð �6ð%$Ð �.ó ð0 �UÐ,¨eÐ5JÈBØ�Ø  $Ð(DÀdÐL]Ð_cð€
ð
 6�*Ð5˜o¨uÑ5€ðØðØ! 5¨+°uØ  %Ð)EÀuÐN_Ðafñ€	ð 8�9Ð7Ð3°QÑ7€ð
 ˆ}ØÐ:�ZÐ:Ð!6¸Ñ:ð1Ð Ð-ó ð
 �*˜h¨°e¸YÈ	ÐS`Ð	a€õ8ñ  Ð.×3Ñ3Ó5Ó6Ð ÷,õ÷$Vò  %€Ú	€ñ IRË÷ õlõmõõOõõð ‘^ E¨5Ò2YÓZØ�jØ�Ø  *Ø$Ð&JØ Ð"4Ø�zØ˜jØ˜ØÐ.Ø‘> &¨%Ò1HÐX]ÐW^Ô_Ø™lÐ+EÓFØ‘|Ð$EÓFØ˜9ð €ˆnó õ$*ð Ð à:Ð ÷r)   