
    .cjO2                       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
             8/home/ice/.hermes/hermes-agent/gateway/display_config.pyresolve_display_settingrC      se   0 //),,2K ,,2I]]<00N.$'' ,  ))?gs+++ /!!!:;;fd## 	0**\**C!'3///
 +oog&&?gs+++ '**<88M ((?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%jj  &&((&&&5,,,5DDDss%O    eS!! 	G++--%%''CiG/K$K$K yFFFE{{$$$eS!! 	?;;==$>>>E{{-D==6E>>5%jj  &&((3336&&&5444ss&@***%jj  777ss\I###%jj  >>>ssFJ'''	u:::& 	 	 	11	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?"3Y??#<1,  
&+ 	  -<18 |9<1: |;<1< |=<1B yC<1D |E<1P yQ<1^ y_<1` ya<1b yc<1d ye<1f yg<1h yi<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   