§
    KÿÎiø  ã                   ó‚   — d Z ddlZddlZddlZddlmZ ddlZddlmZ  ej	        e
¦  «        ZdZ G d„ de¦  «        ZdS )z#Browser Use cloud browser provider.é    N)ÚDict)ÚCloudBrowserProviderz"https://api.browser-use.com/api/v2c                   ó†   — e Zd ZdZdefd„Zdefd„Zdeeef         fd„Z	dedeee
f         fd„Zdedefd	„Zdedd
fd„Zd
S )ÚBrowserUseProviderz<Browser Use (https://browser-use.com) cloud browser backend.Úreturnc                 ó   — dS )NzBrowser Use© ©Úselfs    ú@/home/ubuntu/hermes-agent/tools/browser_providers/browser_use.pyÚprovider_namez BrowserUseProvider.provider_name   s   € Øˆ}ó    c                 óZ   — t          t          j                             d¦  «        ¦  «        S )NÚBROWSER_USE_API_KEY)ÚboolÚosÚenvironÚgetr
   s    r   Úis_configuredz BrowserUseProvider.is_configured   s   € Ý•B”J—N’NÐ#8Ñ9Ô9Ñ:Ô:Ð:r   c                 ól   — t           j                             d¦  «        }|st          d¦  «        ‚d|dœS )Nr   z]BROWSER_USE_API_KEY environment variable is required. Get your key at https://browser-use.comúapplication/json©zContent-TypezX-Browser-Use-API-Key)r   r   r   Ú
ValueError)r   Úapi_keys     r   Ú_headerszBrowserUseProvider._headers   sL   € Ý”*—.’.Ð!6Ñ7Ô7ˆØð 	Ýð:ñô ð ð
 /Ø%,ð
ð 
ð 	
r   Útask_idc                 ó†  — t          j        t          › d|                      ¦   «         i d¬¦  «        }|j        st          d|j        › d|j        › ¦  «        ‚|                     ¦   «         }d|› dt          j
        ¦   «         j        d d…         › }t                               d	|¦  «         ||d
         |d         ddidœS )Nz	/browsersé   ©ÚheadersÚjsonÚtimeoutz&Failed to create Browser Use session: Ú Úhermes_Ú_é   zCreated Browser Use session %sÚidÚcdpUrlÚbrowser_useT)Úsession_nameÚbb_session_idÚcdp_urlÚfeatures)ÚrequestsÚpostÚ	_BASE_URLr   ÚokÚRuntimeErrorÚstatus_codeÚtextr!   ÚuuidÚuuid4ÚhexÚloggerÚinfo)r   r   ÚresponseÚsession_datar*   s        r   Úcreate_sessionz!BrowserUseProvider.create_session*   sî   € Ý”=ÝÐ#Ð#Ð#Ø—M’M‘O”OØØð	
ñ 
ô 
ˆð Œ{ð 	Ýð:ØÔ'ð:ð :Ø*2¬-ð:ð :ñô ð ð
  —}’}‘”ˆØA ÐAÐA­4¬:©<¬<Ô+;¸B¸Q¸BÔ+?ÐAÐAˆåŠÐ4°lÑCÔCÐCð )Ø)¨$Ô/Ø# HÔ-Ø&¨Ð-ð	
ð 
ð 	
r   Ú
session_idc                 ó†  — 	 t          j        t          › d|› |                      ¦   «         ddid¬¦  «        }|j        dv rt
                               d|¦  «         dS t
                               d	||j        |j        d d
…         ¦  «         dS # t          $ r'}t
           
                    d||¦  «         Y d }~dS d }~ww xY w)Nú
/browsers/ÚactionÚstopé
   r   )éÈ   éÉ   éÌ   z*Successfully closed Browser Use session %sTz4Failed to close Browser Use session %s: HTTP %s - %srC   Fz,Exception closing Browser Use session %s: %s)r.   Úpatchr0   r   r3   r8   ÚdebugÚwarningr4   Ú	ExceptionÚerror)r   r=   r:   Úes       r   Úclose_sessionz BrowserUseProvider.close_sessionD   sé   € ð	Ý”~ÝÐ4Ð4¨
Ð4Ð4ØŸš™œØ Ð'Øð	ñ ô ˆHð Ô# Ð6Ð6Ý—’ÐIÈ:ÑVÔVÐVØtå—’ØJØØÔ(Ø”M $ 3 $Ô'ñ	ô ð ð uøÝð 	ð 	ð 	ÝLŠLÐGÈÐUVÑWÔWÐWØ55555øøøøð	øøøs   ‚AB Á/B Â
C ÂB;Â;C Nc                 ó:  — t           j                             d¦  «        }|st                               d|¦  «         d S 	 t          j        t          › d|› d|dœddid¬	¦  «         d S # t          $ r'}t           	                    d
||¦  «         Y d }~d S d }~ww xY w)Nr   uG   Cannot emergency-cleanup Browser Use session %s â€” missing credentialsr?   r   r   r@   rA   é   r   z7Emergency cleanup failed for Browser Use session %s: %s)
r   r   r   r8   rH   r.   rF   r0   rI   rG   )r   r=   r   rK   s       r   Úemergency_cleanupz$BrowserUseProvider.emergency_cleanup[   sà   € Ý”*—.’.Ð!6Ñ7Ô7ˆØð 	ÝNŠNÐdÐfpÑqÔqÐqØˆFð	cÝŒNÝÐ4Ð4¨
Ð4Ð4à$6Ø-4ðð ð  Ð'Øðñ ô ð ð ð øõ ð 	cð 	cð 	cÝLŠLÐRÐT^Ð`aÑbÔbÐbÐbÐbÐbÐbÐbÐbøøøøð	cøøøs   Á 'A) Á)
BÁ3BÂB)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   r   Úobjectr<   rL   rO   r	   r   r   r   r      sê   € € € € € ØFÐFð˜sð ð ð ð ð;˜tð ;ð ;ð ;ð ;ð

˜$˜s C˜xœ.ð 

ð 

ð 

ð 

ð
 cð 
¨d°3¸°;Ô.?ð 
ð 
ð 
ð 
ð4¨ð °ð ð ð ð ð.c¨Cð c°Dð cð cð cð cð cð cr   r   )rS   Úloggingr   r5   Útypingr   r.   Útools.browser_providers.baser   Ú	getLoggerrP   r8   r0   r   r	   r   r   ú<module>rZ      s³   ðØ )Ð )à €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à €€€à =Ð =Ð =Ð =Ð =Ð =à	ˆÔ	˜8Ñ	$Ô	$€à0€	ðZcð Zcð Zcð Zcð ZcÐ-ñ Zcô Zcð Zcð Zcð Zcr   