§
    ‰eî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!Firecrawl cloud browser provider.é    N)ÚDict)ÚCloudBrowserProviderzhttps://api.firecrawl.devc                   ó’   — e Zd ZdZdef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 )ÚFirecrawlProviderz8Firecrawl (https://firecrawl.dev) cloud browser backend.Úreturnc                 ó   — dS )NÚ	Firecrawl© ©Úselfs    úC/home/div/.hermes/hermes-agent/tools/browser_providers/firecrawl.pyÚprovider_namezFirecrawlProvider.provider_name   s   € Øˆ{ó    c                 óZ   — t          t          j                             d¦  «        ¦  «        S )NÚFIRECRAWL_API_KEY)ÚboolÚosÚenvironÚgetr   s    r   Úis_configuredzFirecrawlProvider.is_configured   s   € Ý•B”J—N’NÐ#6Ñ7Ô7Ñ8Ô8Ð8r   c                 óL   — t           j                             dt          ¦  «        S )NÚFIRECRAWL_API_URL)r   r   r   Ú	_BASE_URLr   s    r   Ú_api_urlzFirecrawlProvider._api_url   s   € ÝŒz�~Š~Ð1µ9Ñ=Ô=Ð=r   c                 ór   — t           j                             d¦  «        }|st          d¦  «        ‚dd|› �dœS )Nr   zYFIRECRAWL_API_KEY environment variable is required. Get your key at https://firecrawl.devzapplication/jsonzBearer )zContent-TypeÚAuthorization)r   r   r   Ú
ValueError)r   Úapi_keys     r   Ú_headerszFirecrawlProvider._headers!   sT   € Ý”*—.’.Ð!4Ñ5Ô5ˆØð 	Ýð8ñô ð ð
 /Ø0 wÐ0Ð0ð
ð 
ð 	
r   Útask_idc                 ó  — t          t          j                             dd¦  «        ¦  «        }d|i}t	          j        |                      ¦   «         › d�|                      ¦   «         |d¬¦  «        }|j        st          d|j
        › d|j        › �¦  «        ‚|                     ¦   «         }d	|› d
t          j        ¦   «         j        d d…         › �}t                                d|¦  «         ||d         |d         ddidœS )NÚFIRECRAWL_BROWSER_TTLÚ300Úttlz/v2/browseré   )ÚheadersÚjsonÚtimeoutz,Failed to create Firecrawl browser session: Ú Úhermes_Ú_é   z$Created Firecrawl browser session %sÚidÚcdpUrlÚ	firecrawlT)Úsession_nameÚbb_session_idÚcdp_urlÚfeatures)Úintr   r   r   ÚrequestsÚpostr   r   ÚokÚRuntimeErrorÚstatus_codeÚtextr'   ÚuuidÚuuid4ÚhexÚloggerÚinfo)r   r    r$   ÚbodyÚresponseÚdatar0   s          r   Úcreate_sessionz FirecrawlProvider.create_session-   s  € Ý•"”*—.’.Ð!8¸%Ñ@Ô@ÑAÔAˆà#(¨# ,ˆå”=Ø�}Š}‰ŒÐ+Ð+Ð+Ø—M’M‘O”OØØð	
ñ 
ô 
ˆð Œ{ð 	Ýð:ØÔ'ð:ð :Ø*2¬-ð:ð :ñô ð ð
 �}Š}‰ŒˆØA ÐAÐA­4¬:©<¬<Ô+;¸B¸Q¸BÔ+?ÐAÐAˆå�ŠÐ:¸LÑIÔIÐIð )Ø! $œZØ˜H”~Ø$ dÐ+ð	
ð 
ð 	
r   Ú
session_idc                 óš  — 	 t          j        |                      ¦   «         › d|› �|                      ¦   «         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ú/v2/browser/é
   ©r&   r(   )éÈ   éÉ   éÌ   z(Successfully closed Firecrawl session %sTz2Failed to close Firecrawl session %s: HTTP %s - %srI   Fz*Exception closing Firecrawl session %s: %s)r5   Údeleter   r   r9   r>   ÚdebugÚwarningr:   Ú	ExceptionÚerror)r   rD   rA   Úes       r   Úclose_sessionzFirecrawlProvider.close_sessionK   sé   € ð	Ý”Ø—=’=‘?”?Ð<Ð<°
Ð<Ð<ØŸš™œØðñ ô ˆHð
 Ô# Ð6Ð6Ý—’ÐGÈÑTÔTÐTØ�tå—’ØHØØÔ(Ø”M $ 3 $Ô'ñ	ô ð ð �uøÝð 	ð 	ð 	Ý�LŠLÐEÀzÐSTÑUÔUÐUØ�5�5�5�5�5øøøøð	øøøs   ‚A$B Á(/B Â
C
Â#CÃC
Nc                 ó>  — 	 t          j        |                      ¦   «         › d|› �|                      ¦   «         d¬¦  «         d S # t          $ r t
                               d|¦  «         Y d S t          $ r'}t
                               d||¦  «         Y d }~d S d }~ww xY w)NrF   é   rH   uE   Cannot emergency-cleanup Firecrawl session %s â€” missing credentialsz5Emergency cleanup failed for Firecrawl session %s: %s)	r5   rL   r   r   r   r>   rN   rO   rM   )r   rD   rQ   s      r   Úemergency_cleanupz#FirecrawlProvider.emergency_cleanupa   sÖ   € ð		aÝŒOØ—=’=‘?”?Ð<Ð<°
Ð<Ð<ØŸš™œØðñ ô ð ð ð øõ
 ð 	pð 	pð 	pÝ�NŠNÐbÐdnÑoÔoÐoÐoÐoÐoÝð 	að 	að 	aÝ�LŠLÐPÐR\Ð^_Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`Ð`øøøøð	aøøøs   ‚A A Á%BÁ,	BÁ5BÂB)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   r   r   ÚobjectrC   rR   rU   r
   r   r   r   r      s  € € € € € ØBÐBð˜sð ð ð ð ð9˜tð 9ð 9ð 9ð 9ð>˜#ð >ð >ð >ð >ð

˜$˜s C˜xœ.ð 

ð 

ð 

ð 

ð
 cð 
¨d°3¸°;Ô.?ð 
ð 
ð 
ð 
ð<¨ð °ð ð ð ð ð,
a¨Cð 
a°Dð 
að 
að 
að 
að 
að 
ar   r   )rY   Úloggingr   r;   Útypingr   r5   Útools.browser_providers.baser   Ú	getLoggerrV   r>   r   r   r
   r   r   ú<module>r`      s³   ðØ 'Ð 'à €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð à €€€à =Ð =Ð =Ð =Ð =Ð =à	ˆÔ	˜8Ñ	$Ô	$€à'€	ðZað Zað Zað Zað ZaÐ,ñ Zaô Zað Zað Zað Zar   