
    nSj8                    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    B/home/ice/.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
638O8O0uz&,,..))   uudD!! TXXg%6%6 uL  $&&Gxx	""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    : : " " " " " "        %9lG%<==  !y " " "   1 1 1 1     r   