§
    ‰eîi‘  ã                  óJ  — U d Z ddlmZ ddlmZ dddddœZded	<   ddd
ddœZddd
ddœZddd
ddœZ	dddddœZ
i 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
“de
“de
“de
“di e¥ddi¥i¥Zd ed!<    ee                     ¦   «         ¦  «        Z	 d-d.d*„Zd/d,„ZdS )0u  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ÚallFN)Útool_progressÚshow_reasoningÚtool_preview_lengthÚ	streamingzdict[str, Any]Ú_GLOBAL_DEFAULTSé(   ÚnewÚoffÚtelegramÚdiscordÚslackÚ
mattermostÚmatrixÚfeishuÚsignalÚwhatsappÚbluebubblesÚweixinÚwecomÚwecom_callbackÚdingtalkÚemailÚsmsÚwebhookÚhomeassistantÚ
api_serverr   z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Ú
isinstancer"   Ú
_normaliser    r
   )
r!   r#   r%   r&   Údisplay_cfgr*   Úplat_overridesÚvalÚlegacyÚplat_defaultss
             ú8/home/div/.hermes/hermes-agent/gateway/display_config.pyÚresolve_display_settingr5   l   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  — | dk    r-|du rdS |du rdS t          |¦  «                             ¦   «         S | dv r:t          |t           ¦  «        r|                     ¦   «         dv S t          |¦  «        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   )r   r	   )ÚtrueÚ1ÚyesÚonr   r   )r$   Úlowerr-   ÚboolÚintÚ	TypeErrorÚ
ValueError)r%   r7   s     r4   r.   r.   ±   sÈ   € à�/Ò!Ð!Ø�Eˆ>ˆ>Ø�5Ø�Dˆ=ˆ=Ø�5Ý�5‰zŒz×ÒÑ!Ô!Ð!ØÐ1Ð1Ð1Ý�e�SÑ!Ô!ð 	?Ø—;’;‘=”=Ð$>Ð>Ð>Ý�E‰{Œ{ÐØÐ'Ò'Ð'ð	Ý�u‘:”:ÐøÝ�:Ð&ð 	ð 	ð 	Ø�1�1ð	øøøà€Ls   Á9B ÂBÂB)N)
r!   r"   r#   r$   r%   r$   r&   r   r'   r   )r%   r$   r7   r   r'   r   )Ú__doc__Ú
__future__r   Útypingr   r
   Ú__annotations__Ú
_TIER_HIGHÚ_TIER_MEDIUMÚ	_TIER_LOWÚ_TIER_MINIMALr    Ú	frozensetÚkeysÚOVERRIDEABLE_KEYSr5   r.   © r6   r4   ú<module>rN      s5  ððð ð ð* #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ð ØØØð	$ð $Ð ð ð ð ñ ð  ØØØð	ð €
ð ØØØð	ð €ð ØØØð	ð €	ð ØØØð	ð €ð1à�:ð1ð �:ð1ð �|ð1ð �|ð1ð �|ð1ð �|ð1ð �yð1ð �|ð1ð �yð1ð �yð1ð  �yð!1ð" �yð#1ð$ �yð%1ð* �}ð+1ð, 
�}ð-1ð. �}ð/1ð0 �}ð11ð2 Ð?˜*Ð?Ð&;¸QÐ?Ð?ð31ð 1Ð ð ð ð ñ ð: �IÐ.×3Ò3Ñ5Ô5Ñ6Ô6Ð ð ð	>ð >ð >ð >ð >ðJð ð ð ð ð r6   