§
    ‰eîið  ã                   óØ   — U d Z ddlmZmZ ddlmZ d ed¦  «        iZeeef         e	d<   dZ
ee	d<   d	Zee	d
<   dZee	d<    ed¬¦  «         G d„ d¦  «        ¦   «         Z e¦   «         ZdS )zÊConfigurable budget constants for tool result persistence.

Overridable at the RL environment level via HermesAgentEnvConfig fields.
Per-tool resolution: pinned > config overrides > registry > default.
é    )Ú	dataclassÚfield)ÚDictÚ	read_fileÚinfÚPINNED_THRESHOLDSi † ÚDEFAULT_RESULT_SIZE_CHARSi@ ÚDEFAULT_TURN_BUDGET_CHARSiÜ  ÚDEFAULT_PREVIEW_SIZE_CHARST)Úfrozenc                   ó†   — e Zd ZU dZeZeed<   eZ	eed<   e
Zeed<    ee¬¦  «        Zeeef         ed<   dedeez  fd	„Zd
S )ÚBudgetConfiga|  Immutable budget constants for the 3-layer tool result persistence system.

    Layer 2 (per-result): resolve_threshold(tool_name) -> threshold in chars.
    Layer 3 (per-turn):   turn_budget -> aggregate char budget across all tool
                          results in a single assistant turn.
    Preview:              preview_size -> inline snippet size after persistence.
    Údefault_result_sizeÚturn_budgetÚpreview_size)Údefault_factoryÚtool_overridesÚ	tool_nameÚreturnc                 óž   — |t           v rt           |         S || j        v r| j        |         S ddlm} |                     || j        ¬¦  «        S )zƒResolve the persistence threshold for a tool.

        Priority: pinned -> tool_overrides -> registry per-tool -> default.
        r   )Úregistry)Údefault)r   r   Útools.registryr   Úget_max_result_sizer   )Úselfr   r   s      ú5/home/div/.hermes/hermes-agent/tools/budget_config.pyÚresolve_thresholdzBudgetConfig.resolve_threshold&   se   € ð
 Õ)Ð)Ð)Ý$ YÔ/Ð/Ø˜Ô+Ð+Ð+ØÔ& yÔ1Ð1Ø+Ð+Ð+Ð+Ð+Ð+Ø×+Ò+¨I¸tÔ?WÐ+ÑXÔXÐXó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   ÚintÚ__annotations__r
   r   r   r   r   Údictr   r   ÚstrÚfloatr   © r   r   r   r      s¦   € € € € € € ðð ð  9Ð˜Ð8Ð8Ñ8Ø0€K�Ð0Ð0Ñ0Ø2€L�#Ð2Ð2Ñ2Ø%* U¸4Ð%@Ñ%@Ô%@€N�D˜˜c˜”NÐ@Ð@Ñ@ð
Y¨3ð 
Y°3¸±;ð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yr   r   N)r"   Údataclassesr   r   Útypingr   r'   r   r&   r$   r	   r#   r
   r   r   ÚDEFAULT_BUDGETr(   r   r   ú<module>r,      s  ððð ð ð )Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð ð
 ���u‘”ð'Ð �4˜˜U˜
Ô#ð ð ñ ð ")Ð ˜3Ð (Ð (Ñ (Ø!(Ð ˜3Ð (Ð (Ñ (Ø"'Ð ˜CÐ 'Ð 'Ñ 'ð €�$ÐÑÔðYð Yð Yð Yð Yñ Yô Yñ ÔðYð8 �‘”€€€r   