Ë
    âß²j¦#  ã                  ót  — U d Z ddlmZ ddlmZ ddddddd	dd	d	d	dd
dœZded<   ddddd	d	d	dœZi e¥ddi¥Zi e¥ddddddœ¥Z	i e	¥ddi¥Z
i di e¥dddœ¥“di e¥ddi¥“di e¥ddddœ¥“de“de“de“de“d e	“d!e“d"e	“d#e	“d$e	“d%e	“d&i e	¥d'd	i¥“d(e	“d)e	“d*e
“e
e
e
i e¥ddi¥d+œ¥Zd,ed-<    eej                  «       «      ZdBdCd.„ZdDd/„ZdBdEd0„Zh d1£Zh d2£Z e«       fdFd3„ZdGd4„ZdHd5„ZdGd6„ZdGd7„ZdId8„ZdJd9„Z eddh d:£«      eeeeeeeee ed
dh d;£dh¬<«       ed=«       ed>«      ed?œZded@<   dKdA„Zy)Luâ  Per-platform display/verbosity resolver (``resolve_display_setting``).

Resolution order, first non-None wins: ``display.platforms.<platform>.<key>`` â†’
``display.<key>`` â†’ ``_PLATFORM_DEFAULTS[platform][key]`` â†’ ``_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ÚallÚ
accumulateFÚcodeNTÚfull)Útool_progressÚtool_progress_groupingÚshow_reasoningÚreasoning_styleÚtool_preview_lengthÚ	streamingÚinterim_assistant_messagesÚsuppress_warning_notificationsÚlong_running_notificationsÚbusy_ack_detailÚbusy_steer_ack_enabledÚcleanup_progressÚlive_statuszdict[str, Any]Ú_GLOBAL_DEFAULTSé(   )r	   r   r   r   r   r   r   r	   ÚnewÚoff)r	   r   r   r   r   r   Útelegram)r	   r   Údiscordr   ÚsubtextÚslack)r	   r   r   Ú
mattermostÚmatrixÚfeishuÚbuzzÚsignalÚwhatsappÚwhatsapp_cloudÚphotonÚbluebubblesÚweixinÚwecomr   Úwecom_callbackÚdingtalkÚemail)ÚsmsÚwebhookÚhomeassistantÚ
api_serverzdict[str, dict[str, Any]]Ú_PLATFORM_DEFAULTSc                ó¼   — t        | ||«      }|�t        ||«      S t        j                  |i «      j                  |«      }|€t        j                  |«      }|€|S |S )a	  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Ú
_normaliser0   Úgetr   )Úuser_configÚplatform_keyÚsettingÚfallbackÚ
configuredÚvals         ú;/home/ubuntu/.hermes/hermes-agent/gateway/display_config.pyÚresolve_display_settingr<   R   sf   € ô +¨;¸ÀgÓN€JØÐÜ˜' :Ó.Ð.Ü
×
 Ñ
  ¨rÓ
2×
6Ñ
6°wÓ
?€CØ
€{Ü×"Ñ" 7Ó+ˆØ�{ˆ8Ð+¨Ð+ó    c                ó   — | j                  d«      }t        |t        «      sy|j                  d«      }t        |t        «      r|j                  |«      nd}t        |t        «      r|j                  |«      �||   S |dk(  r7|j                  d«      }t        |t        «      r|j                  |«      �||   S |dk7  r|j                  |«      S y)zAFirst non-None operator value, without introducing tier defaults.ÚdisplayNÚ	platformsr	   Útool_progress_overridesr   )r4   Ú
isinstanceÚdict)r5   r6   r7   Údisplay_cfgr@   Úplat_overridesÚlegacys          r;   r2   r2   a   s¾   € à—/‘/ )Ó,€KÜ�k¤4Ô(ØØ—‘ Ó,€IÜ4>¸yÌ$Ô4O�Y—]‘] <Ô0ÐUY€NÜ�.¤$Ô'¨N×,>Ñ,>¸wÓ,GÐ,SØ˜gÑ&Ð&Ø�/Ò!Ø—‘Ð!:Ó;ˆÜ�fœdÔ#¨¯
©
°<Ó(@Ð(LØ˜,Ñ'Ð'Ø�+ÒØ�‰˜wÓ'Ð'Ør=   c                óz   — t        | |d«      }|�t        d|«      dfS |rt        d|«      dfS t        | |d«      dfS )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)r2   r3   r<   )r5   r6   Úenv_moder9   s       r;   Úresolve_tool_progressrI   s   sT   € ô +¨;¸ÀoÓV€JØÐÜ˜/¨:Ó6¸Ð<Ð<ÙÜ˜/¨8Ó4°dÐ:Ð:Ü" ;°¸oÓNÐPUÐUÐUr=   >   Ú1ÚonÚyesÚtrue>   Ú0ÚnoÚfalsec                ó    ‡ ‡‡‡— dˆˆˆˆ fd„}|S )ut   Normaliser for bool-or-keyword settings: bools/truthy tokens â†’ *on*, falsy â†’ *off*, else a known choice or *on*.c                ó¼   •— t        | t        «      r| r‰S ‰S t        | «      j                  «       j	                  «       }|t
        v r‰S |t        ‰z  v r‰S |‰v r|S ‰S ©N)rB   ÚboolÚstrÚstripÚlowerÚ_FALSYÚ_TRUTHY)Úvaluer:   ÚchoicesÚextra_truthyr   rK   s     €€€€r;   Únormz_norm_tristate.<locals>.norm‰   sd   ø€ Ü�eœTÔ"Ù�2Ð' CÐ'Ü�%‹j×ÑÓ ×&Ñ&Ó(ˆØ”&‰=ØˆJØ”'˜LÑ(Ñ(ØˆIØ˜W‘nˆsÐ,¨"Ð,r=   ©rZ   r   ÚreturnrU   © )rK   r   r[   r\   r]   s   ```` r;   Ú_norm_tristatera   ‡   s   û€ ÷-ð -ð €Kr=   c                óŠ   — t        | t        «      r)| j                  «       j                  «       t        ddhz  v S t        | «      S )NÚrawÚverbose)rB   rU   rV   rW   rY   rT   ©rZ   s    r;   Ú
_norm_boolrf   •   s<   € ÜDNÈuÔVYÔDZˆ5�;‰;‹=×ÑÓ ¤G¨u°iÐ.@Ñ$@Ð@ÐkÔ`dÐejÓ`kÐkr=   c                ó~   — t        | t        «      r#| j                  «       j                  «       dk(  rdS t	        | «      S )NÚgeneric)rB   rU   rV   rW   rf   re   s    r;   Ú_norm_long_runningri   ™   s3   € Ü" 5¬#Ô.°5·;±;³=×3FÑ3FÓ3HÈIÒ3Uˆ9ÐlÔ[eÐfkÓ[lÐlr=   c                ó�   — t        | t        «      r| S t        | t        «      r$| j                  «       j	                  «       t
        v S y)NF)rB   rT   rU   rV   rW   rY   re   s    r;   Ú$_norm_suppress_warning_notificationsrk   �   s8   € ä�%œÔØˆÜ�%œÔØ�{‰{‹}×"Ñ"Ó$¬Ð/Ð/Ør=   c                ód   — t        | t        «      r| j                  «       t        v S t	        | «      S rS   )rB   rU   rW   rY   rT   re   s    r;   Ú_norm_cleanup_progressrm   ¦   s%   € Ü'1°%¼Ô'=ˆ5�;‰;‹=œGÐ#ÐNÄ4ÈÃ;ÐNr=   c                ó   ‡ — dˆ fd„}|S )Nc                óL   •— t        | «      j                  «       }|‰v r|S ‰d   S ©Nr   )rU   rW   )rZ   r:   r[   s     €r;   r]   z_norm_choice.<locals>.norm«   s*   ø€ Ü�%‹j×ÑÓ ˆØ˜W‘nˆsÐ4¨'°!©*Ð4r=   r^   r`   )r[   r]   s   ` r;   Ú_norm_choicerq   ª   s   ø€ õ5ð €Kr=   c                óD   — 	 t        | «      S # t        t        f$ r Y yw xY wrp   )ÚintÚ	TypeErrorÚ
ValueErrorre   s    r;   Ú	_norm_intrv   ²   s(   € ðÜ�5‹zÐøÜ”zÐ"ò Ùðús   ‚
 �ž>   r   Úlogr   r   rd   >   r   r   Úverb)r\   )r   Úseparate)r   Ú
blockquoter   )r	   r   r   r   r   r   r   r   Úthinking_progressr   r   r
   r   r   Ú_NORMALISERSc                óD   — t         j                  | «      }|r ||«      S |S )zMNormalise a user-supplied value for *setting*; unknown settings pass through.)r|   r4   )r7   rZ   r]   s      r;   r3   r3   Ë   s#   € ä×Ñ˜GÓ$€DÙ‰4�‹;Ð) EÐ)r=   rS   )
r5   rC   r6   rU   r7   rU   r8   r   r_   r   )r5   rC   r6   rU   r7   rU   r_   r   )r5   rC   r6   rU   rH   z
str | Noner_   ztuple[str, bool])rK   rU   r   rU   r[   Úsetr\   r~   )rZ   r   r_   rT   )rZ   r   r_   r   )r[   ztuple[str, ...]r_   r   )rZ   r   r_   rs   )r7   rU   rZ   r   r_   r   )Ú__doc__Ú
__future__r   Útypingr   r   Ú__annotations__Ú
_TIER_HIGHÚ_TIER_MEDIUMÚ	_TIER_LOWÚ_TIER_MINIMALr0   Ú	frozensetÚkeysÚOVERRIDEABLE_KEYSr<   r2   rI   rY   rX   ra   rf   ri   rk   rm   rq   rv   r|   r3   r`   r=   r;   ú<module>rŠ      s­  ðòõ #å ð Ø*ØØØØà"&Ø&+Ø"&ØØ"ð ð ñ%$Ð �.ó ð0 ¨eÈBØØ"&ÀdÐ_cñ€
ð
 6�*Ð5˜o¨uÑ5€ðØðØ#(°uØ"'ÀuÐafò€	ð 8�9Ð7Ð3°QÑ7€ð1ð ÐP�:ÐP°È%ÒPð1ð Ð;�*Ð;Ð/°Ñ;ð	1ð Ðt�Ðt¨uÐTYÐnsÒtð1ð �,ð1ð ˆlð1ð ˆlð1ð ˆLð1ð ˆið1ð �ð1ð �ið1ð ˆið1ð �9ð1ð  ˆið!1ð$ Ð-�	Ð-˜;¨Ñ-ð%1ð& �ið'1ð( �	ð)1ð* ˆ]ð+1ð, ØØ"Ø:�ZÐ:Ð!6¸Ñ:ò31Ð Ð-ó ñ: Ð.×3Ñ3Ó5Ó6Ð ô,óô$Vò  %€Ú	€ñ IRËô ólómóóOóóñ $ E¨5Ò2YÓZØ ØØ",Ø&JØ"4Ø!Ø(Ø#Ø.Ù! &¨%Ò1HÐX]ÐW^Ô_Ù*Ð+EÓFÙ#Ð$EÓFØ$ñ €ˆnó ô$*r=   