§
    ÷žyj8  ã                  ón   — d Z ddlmZ ddlZddlmZ  eddh¦  «        Z eh d£¦  «        Zdd„Z	dd„Z
dS )z4Shared helpers for classifying tool result payloads.é    )ÚannotationsN)ÚAnyÚ
write_fileÚpatch>   Ú	read_fileÚ
skill_viewÚ
web_searchÚskills_listÚweb_extractÚsearch_filesÚread_terminalÚsession_searchÚvision_analyzeÚbrowser_consoleÚbrowser_snapshotÚbrowser_get_imagesÚ	tool_nameÚstrÚreturnÚboolc                ó   — | t           vS )N)ÚNO_EFFECT_TOOL_NAMES)r   s    úF/home/ragecks/.hermes/hermes-agent/agent/tool_result_classification.pyÚtool_may_have_side_effectr      s   € ØÕ0Ð0Ð0ó    Úresultr   c                ó^  — | t           vst          |t          ¦  «        sdS 	 t          j        |                     ¦   «         ¦  «        }n# t          $ r Y dS w xY wt          |t          ¦  «        r|                     d¦  «        rdS | dk    rd|v S | dk    r|                     d¦  «        du S dS )z@Return True when a file mutation result proves the write landed.FÚerrorr   Úbytes_writtenr   ÚsuccessT)	ÚFILE_MUTATING_TOOL_NAMESÚ
isinstancer   ÚjsonÚloadsÚstripÚ	ExceptionÚdictÚget)r   r   Údatas      r   Úfile_mutation_result_landedr*      sÉ   € àÕ0Ð0Ð0½
À6Í3Ñ8OÔ8OÐ0ØˆuðÝŒz˜&Ÿ,š,™.œ.Ñ)Ô)ˆˆøÝð ð ð Øˆuˆuðøøøå�d�DÑ!Ô!ð  T§X¢X¨gÑ%6Ô%6ð ØˆuØ�LÒ Ð Ø $Ð&Ð&Ø�GÒÐØ�xŠx˜	Ñ"Ô" dÐ*Ð*Øˆ5s   ¢&A	 Á	
AÁA)r   r   r   r   )r   r   r   r   r   r   )Ú__doc__Ú
__future__r   r#   Útypingr   Ú	frozensetr!   r   r   r*   © r   r   ú<module>r0      s¤   ðØ :Ð :à "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð ð %˜9 l°GÐ%<Ñ=Ô=Ð ð !�yð "ð "ð "ñ ô Ð ð1ð 1ð 1ð 1ðð ð ð ð ð r   