
    `gj8                    `    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
y)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_imagesc                    | t         vS )N)NO_EFFECT_TOOL_NAMES)	tool_names    S/root/.hermes/venv/lib/python3.12/site-packages/agent/tool_result_classification.pytool_may_have_side_effectr      s    000    c                "   | t         vst        |t              sy	 t        j                  |j                               }t        |t              r|j                  d      ry| dk(  rd|v S | dk(  r|j                  d      du S y# t        $ r Y yw xY w)z@Return True when a file mutation result proves the write landed.Ferrorr   bytes_writtenr   successT)	FILE_MUTATING_TOOL_NAMES
isinstancestrjsonloadsstrip	Exceptiondictget)r   resultdatas      r   file_mutation_result_landedr(      s    00
638Ozz&,,.) dD!TXXg%6L $&&Gxx	"d**  s   #B 	BB)r   r   returnbool)r   r   r&   r   r)   r*   )__doc__
__future__r   r    typingr   	frozensetr   r   r   r(    r   r   <module>r0      s?    : "   %lG%<=  ! "  1r   