
    `gj/                       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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
e
i ed'did(Zd)ed*<    eej                               Z	 d-	 	 	 	 	 	 	 	 	 d.d+Zd/d,Zy)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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slackr	   
mattermostmatrixfeishusignalwhatsappwhatsapp_cloudbluebubblesweixinwecomwecom_callbackdingtalkemailsmswebhookr   )homeassistant
api_serverzdict[str, dict[str, Any]]_PLATFORM_DEFAULTSc                6   | j                  d      xs i }|j                  d      xs i }|j                  |      }t        |t              r|j                  |      }|t        ||      S |dk(  r@|j                  d      }t        |t              r|j                  |      }|t        ||      S |dk7  r|j                  |      }|t        ||      S t        j                  |      }	|	r|	j                  |      }||S t
        j                  |      }||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	platformsr	   tool_progress_overridesr   )get
isinstancedict
_normaliser-   r   )
user_configplatform_keysettingfallbackdisplay_cfgr0   plat_overridesvallegacyplat_defaultss
             I/root/.hermes/venv/lib/python3.12/site-packages/gateway/display_config.pyresolve_display_settingr@      s#   0 //),2K ,2I]]<0N.$'  )?gs++ /!!:;fd#**\*C!'3//
 +oog&?gs++ '**<8M(?J 

w
'C

O    c                   | dk(  rC|du ry|du ryt        |      j                         j                         }|dv ry|dv ry|dv r|S dS | d	v rHt        |t               r-|j                         j                         }|d
k(  r| dk(  ry
|dv S t	        |      S | dk(  r-t        |t               r|j                         dv S t	        |      S | dk(  rC|du ry|du ryt        |      j                         j                         }|dv ry|dv ry|dv r|S dS | dk(  r!t        |      j                         }|dv r|S dS | dk(  r!t        |      j                         }|dv r|S dS | dk(  r	 t        |      S |S # t        t        f$ r Y yw xY w)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   >   rF   rG   rawrH   rI   rK   r   r   r   >   rF   rG   r   rH   rI   >   r   r   verbr
   )r   separater   r   )r   
blockquoter   r   r   r   )strstriplowerr3   boolint	TypeError
ValueError)r8   valuer<   s      r?   r5   r5      s   /!E>D=%j &&(&&,,DDsO%O   eS!++-%%'CiG/K$K FFFE{$$eS!;;=$>>>E{-D=E>%j &&(33&&44s@&@**%j 77sI\I##%j >>sJFJ''	u: L :& 		s   !
E. .F ?F )N)
r6   r4   r7   rR   r8   rR   r9   r   returnr   )r8   rR   rY   r   rZ   r   )__doc__
__future__r   typingr   r   __annotations__
_TIER_HIGH_TIER_MEDIUM	_TIER_LOW_TIER_MINIMALr-   	frozensetkeysOVERRIDEABLE_KEYSr@   r5    rA   r?   <module>rg      s\  * #  *  #'"&
 #  K&$ . &b "&"&
 "&"& "'"'	 "'"'01  
 01" ?j?"3Y?#01, ?,??-01. |/010 |1012 |3018 y901: |;01F yG01H yI01J yK01L yM01N yO01P yQ01V }W01X 
}Y01Z }[01\ %?*?&;Q?_01 - 0f .3356  	>>> > 	>
 	>J7rA   