§
    øžyjO2  ã                  ó   — 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œZded<   ddddd	d	d	dœZddddd	d	d	dœZddddddddœZ	ddddddddœ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#e	“d$e	“d%e
“d&e
“e
e
i e¥d'di¥d(œ¥Zd)ed*<    ee                     ¦   «         ¦  «        Z	 d6d7d3„Zd8d5„ZdS )9u  Per-platform display/verbosity configuration resolver.

Provides ``resolve_display_setting()`` â€” the single entry-point for reading
display settings with platform-specific overrides and sensible defaults.

Resolution order (first non-None wins):
    1. ``display.platforms.<platform>.<key>``  â€” explicit per-platform user override
    2. ``display.<key>``                       â€” global user setting
    3. ``_PLATFORM_DEFAULTS[<platform>][<key>]``  â€” built-in sensible default
    4. ``_GLOBAL_DEFAULTS[<key>]``              â€” built-in global default

Exception: ``display.streaming`` is CLI-only.  Gateway streaming follows the
top-level ``streaming`` config unless ``display.platforms.<platform>.streaming``
sets an explicit per-platform override.

Backward compatibility: ``display.tool_progress_overrides`` is still read as a
fallback for ``tool_progress`` when no ``display.platforms`` entry exists.  A
config migration (version bump) automatically moves the old format into the new
``display.platforms`` structure.
é    )Úannotations)ÚAnyÚallÚ
accumulateFÚcodeNTÚfull)Útool_progressÚtool_progress_groupingÚshow_reasoningÚreasoning_styleÚtool_preview_lengthÚ	streamingÚinterim_assistant_messagesÚ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   ÚnewÚoffÚtelegram)r	   r   Údiscordr   ÚsubtextÚslack)r	   r   r   Ú
mattermostÚmatrixÚfeishuÚsignalÚwhatsappÚwhatsapp_cloudÚphotonÚbluebubblesÚweixinÚwecomÚwecom_callbackÚdingtalkÚemailÚsmsr   )ÚwebhookÚhomeassistantÚ
api_serverzdict[str, dict[str, Any]]Ú_PLATFORM_DEFAULTSÚuser_configÚdictÚplatform_keyÚstrÚsettingÚfallbackr   Úreturnc                ó²  — |                       d¦  «        pi }|                      d¦  «        pi }|                      |¦  «        }t          |t          ¦  «        r'|                      |¦  «        }|�t          ||¦  «        S |dk    rQ|                      d¦  «        }t          |t          ¦  «        r'|                      |¦  «        }|�t          ||¦  «        S |dk    r'|                      |¦  «        }|�t          ||¦  «        S t                                |¦  «        }	|	r|	                      |¦  «        }|�|S t
                                |¦  «        }|�|S |S )aP  Resolve a display setting with per-platform override support.

    Parameters
    ----------
    user_config : dict
        The full parsed config.yaml dict.
    platform_key : str
        Platform config key (e.g. ``"telegram"``, ``"slack"``).  Use
        ``_platform_config_key(source.platform)`` from gateway/run.py.
    setting : str
        Display setting name (e.g. ``"tool_progress"``, ``"show_reasoning"``).
    fallback : Any
        Fallback value when the setting isn't found anywhere.

    Returns
    -------
    The resolved value, or *fallback* if nothing is configured.
    ÚdisplayÚ	platformsNr	   Útool_progress_overridesr   )ÚgetÚ
isinstancer0   Ú
_normaliser.   r   )
r/   r1   r3   r4   Údisplay_cfgr8   Úplat_overridesÚvalÚlegacyÚplat_defaultss
             ú</home/ragecks/.hermes/hermes-agent/gateway/display_config.pyÚresolve_display_settingrC   »   se  € ð0 —/’/ )Ñ,Ô,Ð2°€Kð —’ Ñ,Ô,Ð2°€IØ—]’] <Ñ0Ô0€NÝ�.¥$Ñ'Ô'ð ,Ø× Ò  Ñ)Ô)ˆØˆ?Ý˜g sÑ+Ô+Ð+ð �/Ò!Ð!Ø—’Ð!:Ñ;Ô;ˆÝ�f�dÑ#Ô#ð 	0Ø—*’*˜\Ñ*Ô*ˆCØˆÝ! '¨3Ñ/Ô/Ð/ð
 �+ÒÐØ�oŠo˜gÑ&Ô&ˆØˆ?Ý˜g sÑ+Ô+Ð+õ '×*Ò*¨<Ñ8Ô8€MØð Ø×Ò Ñ(Ô(ˆØˆ?ØˆJõ ×
Ò
˜wÑ
'Ô
'€CØ
€Øˆ
à€Oó    Úvaluec                óÂ  — | dk    rS|du rdS |du rdS t          |¦  «                             ¦   «                              ¦   «         }|dv rdS |dv rdS |dv r|ndS | d	v r\t          |t           ¦  «        r8|                     ¦   «                              ¦   «         }|d
k    r| dk    rd
S |dv S t	          |¦  «        S | dk    r:t          |t           ¦  «        r|                     ¦   «         dv S t	          |¦  «        S | dk    rS|du rdS |du rdS t          |¦  «                             ¦   «                              ¦   «         }|dv rdS |dv rdS |dv r|ndS | dk    r)t          |¦  «                             ¦   «         }|dv r|ndS | dk    r)t          |¦  «                             ¦   «         }|dv r|ndS | dk    r(	 t          |¦  «        S # t          t          f$ r Y dS w xY w|S )u;   Normalise YAML quirks (bare ``off`` â†’ False in YAML 1.1).r	   Fr   Tr   >   Ú0ÚnoÚfalse>   Ú1ÚonÚyesÚtrue>   r   Úlogr   r   Úverbose>   r   r   r   Úthinking_progressr   r   r   Úgenericr   >   rJ   rK   ÚrawrL   rM   rO   r   r   r   >   rJ   rK   r   rL   rM   >   r   r   Úverbr
   )r   Úseparater   r   )r   Ú
blockquoter   r   r   r   )r2   ÚstripÚlowerr;   ÚboolÚintÚ	TypeErrorÚ
ValueError)r3   rE   r?   s      rB   r<   r<      sn  € à�/Ò!Ð!Ø�Eˆ>ˆ>Ø�5Ø�Dˆ=ˆ=Ø�5Ý�%‰jŒj×ÒÑ Ô ×&Ò&Ñ(Ô(ˆØÐ&Ð&Ð&Ø�5ØÐ,Ð,Ð,Ø�5ØÐDÐDÐDˆsˆsÈ%ÐOØð ð ð õ �e�SÑ!Ô!ð 	GØ—+’+‘-”-×%Ò%Ñ'Ô'ˆCØ�iÒÐ GÐ/KÒ$KÐ$KØ �yØÐFÐFÐFÝ�E‰{Œ{ÐØÐ$Ò$Ð$Ý�e�SÑ!Ô!ð 	?Ø—;’;‘=”=Ð$>Ð>Ð>Ý�E‰{Œ{ÐØ�-ÒÐà�Dˆ=ˆ=Ø�6Ø�Eˆ>ˆ>Ø�5Ý�%‰jŒj×ÒÑ Ô ×&Ò&Ñ(Ô(ˆØÐ3Ð3Ð3Ø�6ØÐ&Ð&Ð&Ø�5ØÐ4Ð4Ð4ˆsˆs¸&Ð@ØÐ*Ò*Ð*Ý�%‰jŒj×ÒÑ Ô ˆØÐ7Ð7Ð7ˆsˆs¸\ÐIØÐ#Ò#Ð#Ý�%‰jŒj×ÒÑ Ô ˆØÐ>Ð>Ð>ˆsˆsÀFÐJØÐ'Ò'Ð'ð	Ý�u‘:”:ÐøÝ�:Ð&ð 	ð 	ð 	Ø�1�1ð	øøøà€Ls   Æ8G ÇGÇG)N)
r/   r0   r1   r2   r3   r2   r4   r   r5   r   )r3   r2   rE   r   r5   r   )Ú__doc__Ú
__future__r   Útypingr   r   Ú__annotations__Ú
_TIER_HIGHÚ_TIER_MEDIUMÚ	_TIER_LOWÚ_TIER_MINIMALr.   Ú	frozensetÚkeysÚOVERRIDEABLE_KEYSrC   r<   © rD   rB   ú<module>rh      sô  ððð ð ð* #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ð Ø*Øð ØØð #'Ø"&Øð
 #ð ð ðK&$ð &$Ð ð &ð &ð &ñ &ðb ØØØØ"&Ø"&Øðð €
ð ØØØØ"&Ø"&Øðð €ð ØØØØ"'Ø"'Øðð €	ð ØØØØ"'Ø"'Øðð €ð<1ð ð Ø
ðàØ ðð ð ð<1ð" Ð?�jÐ?Ð"3°YÐ?Ð?ð#<1ð, ð Ø
ðàØ&+Ø ð	ð ð ð-<1ð8 �|ð9<1ð: �|ð;<1ð< �|ð=<1ðB �yðC<1ðD �|ðE<1ðP �yðQ<1ð^ �yð_<1ð` �yða<1ðb �yðc<1ðd �yðe<1ðf �yðg<1ðh �yði<1ðn �}ðo<1ðp 
�}ðq<1ðr %Ø$Ø?˜*Ð?Ð&;¸QÐ?Ð?ðw<1ð <1ð <1Ð ð <ð <ð <ñ <ð~ �IÐ.×3Ò3Ñ5Ô5Ñ6Ô6Ð ð ð	>ð >ð >ð >ð >ðJ7ð 7ð 7ð 7ð 7ð 7rD   