+
    i                         R t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIHt ]P                  ! ]
4      tRt ! R R]4      tR# )z#Browser Use cloud browser provider.N)Dict)CloudBrowserProviderz"https://api.browser-use.com/api/v2c                      a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
RtV tR# )BrowserUseProviderz<Browser Use (https://browser-use.com) cloud browser backend.c                    < V ^8  d   QhRS[ /#    returnstr)format__classdict__s   "@/home/ubuntu/hermes-agent/tools/browser_providers/browser_use.py__annotate__BrowserUseProvider.__annotate__   s      s     c                    R # )zBrowser Use selfs   &r   provider_name BrowserUseProvider.provider_name   s    r   c                    < V ^8  d   QhRS[ /# r   )bool)r   r   s   "r   r   r      s     ; ;t ;r   c                R    \        \        P                  P                  R 4      4      # )BROWSER_USE_API_KEY)r   osenvirongetr   s   &r   is_configured BrowserUseProvider.is_configured   s    BJJNN#89::r   c                6   < V ^8  d   QhRS[ S[S[3,          /# r   )r   r   )r   r   s   "r   r   r      s     

 

$sCx. 

r   c                r    \         P                  P                  R 4      pV'       g   \        R4      hRRRV/# )r   z]BROWSER_USE_API_KEY environment variable is required. Get your key at https://browser-use.comContent-Typeapplication/jsonX-Browser-Use-API-Key)r   r   r   
ValueError)r   api_keys   & r   _headersBrowserUseProvider._headers   sA    **..!67: 
 .#W
 	
r   c                <   < V ^8  d   QhRS[ RS[S[ S[3,          /# )r   task_idr	   )r   r   object)r   r   s   "r   r   r   *   s$     
 
c 
d3;.? 
r   c           	        \         P                  ! \         R 2V P                  4       / ^R7      pVP                  '       g&   \        RVP                   RVP                   24      hVP                  4       pRV R\        P                  ! 4       P                  R,           2p\        P                  RV4       RVR	VR
,          RVR,          RRR//# )z	/browsersheadersjsontimeoutz&Failed to create Browser Use session:  hermes__:N   NzCreated Browser Use session %ssession_namebb_session_ididcdp_urlcdpUrlfeaturesbrowser_useT)requestspost	_BASE_URLr(   okRuntimeErrorstatus_codetextr0   uuiduuid4hexloggerinfo)r   r+   responsesession_datar6   s   &&   r   create_session!BrowserUseProvider.create_session*   s    ==k#MMO	
 {{{8''((--: 
  }} 	4::<+;+;B+?*@A4lC L\$/|H--	
 	
r   c                &   < V ^8  d   QhRS[ RS[/# )r   
session_idr	   )r   r   )r   r   s   "r   r   r   D   s        r   c                    \         P                  ! \         R V 2V P                  4       RR/^
R7      pVP                  R9   d   \
        P                  RV4       R# \
        P                  RVVP                  VP                  R,          4       R#   \         d"   p\
        P                  R	Y4        R
p?R# R
p?ii ; i)
/browsers/actionstopr.   z*Successfully closed Browser Use session %sTz4Failed to close Browser Use session %s: HTTP %s - %s:N   NFz,Exception closing Browser Use session %s: %sN)rS         )r=   patchr?   r(   rB   rG   debugwarningrC   	Exceptionerror)r   rN   rI   es   &&  r   close_session BrowserUseProvider.close_sessionD   s    	~~+Z
|4'	H ##6I:VJ((MM$'	  	LLGW	s   AB 3B B?B::B?c                $   < V ^8  d   QhRS[ RR/# )r   rN   r	   Nr
   )r   r   s   "r   r   r   [   s     c cC cD cr   c                6   \         P                  P                  R 4      pV'       g   \        P	                  RV4       R#  \
        P                  ! \         RV 2RRRV/RR/^R	7       R#   \         d"   p\        P                  R
Y4        Rp?R# Rp?ii ; i)r   uG   Cannot emergency-cleanup Browser Use session %s — missing credentialsNrP   r#   r$   r%   rQ   rR   r.   z7Emergency cleanup failed for Browser Use session %s: %s)
r   r   r   rG   rX   r=   rV   r?   rY   rW   )r   rN   r'   r[   s   &&  r   emergency_cleanup$BrowserUseProvider.emergency_cleanup[   s    **..!67NNdfpq	cNN+Z
|4"$6+W '  	cLLRT^bb	cs   )A, ,B7BBr   N)__name__
__module____qualname____firstlineno____doc__r   r   r(   rK   r\   r`   __static_attributes____classdictcell__)r   s   @r   r   r      sF     F ; ;

 


 
4 .c cr   r   )rf   loggingr   rD   typingr   r=   tools.browser_providers.baser   	getLoggerrb   rG   r?   r   r   r   r   <module>rm      s@    )  	    =			8	$0	Zc- Zcr   