§
    ¬eîi@  ã                   ó&  — d Z ddlmZmZmZmZmZ ddlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ  ej        d	¦  «        Z G d
„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZeZeZdS )a¦  
Firecrawl Client

A Firecrawl client that enables you to scrape content from websites, crawl entire sites, search the web, and extract structured data using AI.

The client supports both v1 and v2 API versions, providing access to features like:
- Web scraping with advanced options (screenshots, markdown conversion, etc.)
- Site crawling with configurable depth and limits
- Web search with content extraction
- Structured data extraction using AI models
- Deep research capabilities

Usage:
    from firecrawl import Firecrawl
    firecrawl = Firecrawl(api_key="your-api-key")
    result = firecrawl.scrape("https://example.com")

Check example.py for other usage examples.
é    )ÚAnyÚDictÚOptionalÚListÚUnionNé   )ÚV1FirecrawlAppÚAsyncV1FirecrawlApp)ÚFirecrawlClient)ÚAsyncFirecrawlClient)ÚDocumentÚ	firecrawlc                   óB   — e Zd ZU dZee         ed<   dee         fd„ZdS )ÚV1Proxyú+Type-annotated proxy for v1 client methods.Ú_clientÚclient_instancec                 ó  — || _         |rz|j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        d S d S ©N©r   Ú
scrape_urlÚ	crawl_urlÚbatch_scrape_urlsÚasync_batch_scrape_urlsÚasync_crawl_urlÚcheck_crawl_statusÚmap_urlÚextractÚdeep_researchÚgenerate_llms_text©Úselfr   s     úT/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/client.pyÚ__init__zV1Proxy.__init__$   óŽ   € Ø&ˆŒàð 
	IØ-Ô8ˆDŒOØ,Ô6ˆDŒNØ%4Ô%FˆDÔ"Ø+:Ô+RˆDÔ(Ø#2Ô#BˆDÔ Ø&5Ô&HˆDÔ#Ø*Ô2ˆDŒLØ*Ô2ˆDŒLØ!0Ô!>ˆDÔØ&5Ô&HˆDÔ#Ð#Ð#ð
	Ið 
	Ió    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   Ú__annotations__r$   © r&   r#   r   r       sT   € € € € € € Ø5Ð5Ø�nÔ%Ð%Ð%Ñ%ðI¨°Ô(@ð Ið Ið Ið Ið Ið Ir&   r   c                   óH   — e Zd ZU dZee         ed<   dee         fd„Zd„ ZdS )ÚV2ProxyúIProxy class that forwards method calls to the appropriate version client.r   r   c                 óÆ  — || _         |�rÖ|j        | _        |j        | _        |j        | _        |j        | _        | j        | _        | j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j         | _         |j!        | _!        |j"        | _"        |j#        | _#        |j$        | _$        |j%        | _%        |j&        | _&        |j'        | _'        d S d S r   )(r   ÚscrapeÚinteractÚstop_interactionÚstop_interactive_browserÚscrape_executeÚdelete_scrape_browserÚsearchÚcrawlÚstart_crawlÚget_crawl_statusÚget_crawl_status_pageÚcancel_crawlÚget_crawl_errorsÚget_active_crawlsÚactive_crawlsÚcrawl_params_previewr   Ústart_extractÚget_extract_statusÚagentÚstart_agentÚget_agent_statusÚcancel_agentÚstart_batch_scrapeÚget_batch_scrape_statusÚget_batch_scrape_status_pageÚcancel_batch_scrapeÚbatch_scrapeÚget_batch_scrape_errorsÚmapÚget_concurrencyÚget_credit_usageÚget_token_usageÚget_queue_statusÚbrowserÚbrowser_executeÚdelete_browserÚlist_browsersÚwatcherr!   s     r#   r$   zV2Proxy.__init__7   sÃ  € Ø&ˆŒàñ -	3Ø)Ô0ˆDŒKØ+Ô4ˆDŒMØ$3Ô$DˆDÔ!Ø,;Ô,TˆDÔ)Ø"&¤-ˆDÔØ)-Ô)>ˆDÔ&Ø)Ô0ˆDŒKØ(Ô.ˆDŒJØ.Ô:ˆDÔØ$3Ô$DˆDÔ!Ø)8Ô)NˆDÔ&Ø /Ô <ˆDÔØ$3Ô$DˆDÔ!Ø%4Ô%FˆDÔ"Ø!0Ô!>ˆDÔØ(7Ô(LˆDÔ%à*Ô2ˆDŒLØ!0Ô!>ˆDÔØ&5Ô&HˆDÔ#à(Ô.ˆDŒJØ.Ô:ˆDÔØ$3Ô$DˆDÔ!Ø /Ô <ˆDÔà&5Ô&HˆDÔ#Ø+:Ô+RˆDÔ(Ø0?Ô0\ˆDÔ-Ø'6Ô'JˆDÔ$Ø /Ô <ˆDÔØ+:Ô+RˆDÔ(à&Ô*ˆDŒHØ#2Ô#BˆDÔ Ø$3Ô$DˆDÔ!Ø#2Ô#BˆDÔ Ø$3Ô$DˆDÔ!à*Ô2ˆDŒLØ#2Ô#BˆDÔ Ø"1Ô"@ˆDÔØ!0Ô!>ˆDÔà*Ô2ˆDŒLˆLˆLð[-	3ð -	3r&   c                 ó,   — t          | j        |¦  «        S )ú2Forward attribute access to the underlying client.)Úgetattrr   ©r"   Únames     r#   Ú__getattr__zV2Proxy.__getattr__i   s   € å�t”| TÑ*Ô*Ð*r&   N)	r'   r(   r)   r*   r   ÚV2FirecrawlClientr+   r$   r\   r,   r&   r#   r.   r.   3   s_   € € € € € € ØSÐSØÐ'Ô(Ð(Ð(Ñ(ð03¨Ð1BÔ(Cð 03ð 03ð 03ð 03ðd+ð +ð +ð +ð +r&   r.   c                   óB   — e Zd ZU dZee         ed<   dee         fd„ZdS )ÚAsyncV1Proxyr   r   r   c                 ó  — || _         |rz|j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        d S d S r   r   r!   s     r#   r$   zAsyncV1Proxy.__init__q   r%   r&   N)r'   r(   r)   r*   r   r
   r+   r$   r,   r&   r#   r_   r_   m   sV   € € € € € € Ø5Ð5ØÐ)Ô*Ð*Ð*Ñ*ðI¨Ð1DÔ(Eð Ið Ið Ið Ið Ið Ir&   r_   c                   óN   — e Zd ZU dZdZee         ed<   ddee         fd„Zd„ Z	dS )ÚAsyncV2Proxyr/   Nr   r   c                 óö  — || _         |�rî|j        | _        |j        | _        |j        | _        |j        | _        | j        | _        | j        | _        |j        | _        |j        | _        |j	        | _	        |j
        | _
        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j         | _         |j!        | _!        |j"        | _"        |j#        | _#        |j$        | _$        |j%        | _%        |j&        | _&        |j'        | _'        |j(        | _(        |j)        | _)        d S d S r   )*r   r1   r2   r3   r4   r5   r6   r7   r8   r9   Ú
wait_crawlr:   r;   r<   r=   r>   r?   r@   r   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   Úwait_batch_scraperK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   r!   s     r#   r$   zAsyncV2Proxy.__init__„   sØ  € Ø&ˆŒàñ /	3Ø)Ô0ˆDŒKØ+Ô4ˆDŒMØ$3Ô$DˆDÔ!Ø,;Ô,TˆDÔ)Ø"&¤-ˆDÔØ)-Ô)>ˆDÔ&Ø)Ô0ˆDŒKØ(Ô.ˆDŒJØ.Ô:ˆDÔØ-Ô8ˆDŒOØ$3Ô$DˆDÔ!Ø)8Ô)NˆDÔ&Ø /Ô <ˆDÔØ$3Ô$DˆDÔ!Ø%4Ô%FˆDÔ"Ø!0Ô!>ˆDÔØ(7Ô(LˆDÔ%à*Ô2ˆDŒLØ!0Ô!>ˆDÔØ&5Ô&HˆDÔ#à(Ô.ˆDŒJØ.Ô:ˆDÔØ$3Ô$DˆDÔ!Ø /Ô <ˆDÔà&5Ô&HˆDÔ#Ø+:Ô+RˆDÔ(Ø0?Ô0\ˆDÔ-Ø'6Ô'JˆDÔ$Ø%4Ô%FˆDÔ"Ø /Ô <ˆDÔØ+:Ô+RˆDÔ(à&Ô*ˆDŒHØ#2Ô#BˆDÔ Ø$3Ô$DˆDÔ!Ø#2Ô#BˆDÔ Ø$3Ô$DˆDÔ!à*Ô2ˆDŒLØ#2Ô#BˆDÔ Ø"1Ô"@ˆDÔØ!0Ô!>ˆDÔà*Ô2ˆDŒLˆLˆLð_/	3ð /	3r&   c                 ó^   — | j         rt          | j         |¦  «        S t          d|› �¦  «        ‚)rX   z%Async v2 client not implemented yet: )r   rY   ÚAttributeErrorrZ   s     r#   r\   zAsyncV2Proxy.__getattr__¸   s5   € àŒ<ð 	/Ý˜4œ<¨Ñ.Ô.Ð.ÝÐKÀTÐKÐKÑLÔLÐLr&   r   )
r'   r(   r)   r*   r   r   r   r+   r$   r\   r,   r&   r#   rb   rb   €   sm   € € € € € € ØSÐSØ.2€GˆXÐ*Ô+Ð2Ð2Ñ2ð23ð 23¨Ð1EÔ(Fð 23ð 23ð 23ð 23ðhMð Mð Mð Mð Mr&   rb   c                   ó:   — e Zd ZdZ	 	 	 	 	 ddededed	ed
ef
d„ZdS )Ú	Firecrawlz×
    Unified Firecrawl client (v2 by default, v1 under ``.v1``).

    Provides a single entrypoint that exposes the latest API directly while
    keeping a feature-frozen v1 available for incremental migration.
    Núhttps://api.firecrawl.devé   ç      à?Úapi_keyÚapi_urlÚtimeoutÚmax_retriesÚbackoff_factorc                 ó4  — || _         || _        t          rt          ||¬¦  «        nd| _        t          rt	          |||||¬¦  «        nd| _        | j        rt          | j        ¦  «        nd| _        t          | j        ¦  «        | _	        | j        j
        | _
        | j        j        | _        | j        j        | _        | j        j        | _        | j        | _        | j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j         | _         | j        j!        | _!        | j        j"        | _"        | j        j#        | _#        | j        j$        | _$        | j        j%        | _%        | j        j&        | _&        | j        j'        | _'        | j        j(        | _(        | j        j)        | _)        | j        j*        | _*        | j        j+        | _+        | j        j,        | _,        | j        j-        | _-        | j        j.        | _.        | j        j/        | _/        | j        j0        | _0        dS )a«  Initialize the unified client.

        Args:
            api_key: Firecrawl API key (or set ``FIRECRAWL_API_KEY``)
            api_url: Base API URL (defaults to production)
            timeout: Default request timeout in seconds for all HTTP requests
            max_retries: Maximum number of retries for failed requests (default: 3)
            backoff_factor: Exponential backoff factor for retries (default: 0.5)
        ©rm   rn   N©rm   rn   ro   rp   rq   )1rm   rn   r	   Ú
_v1_clientr]   Ú
_v2_clientr   Úv1r.   Úv2r1   r2   r3   r4   r5   r6   r7   rM   r8   r9   r@   r:   r;   r<   r=   r>   r?   rG   rH   rI   rJ   rK   rL   rA   rB   r   rD   rE   rF   rC   rN   rO   rP   rQ   rR   rS   rT   rU   rV   ©r"   rm   rn   ro   rp   rq   s         r#   r$   zFirecrawl.__init__Ç   s’  € ð" ˆŒØˆŒõ O]Ðf�.°À'ÐJÑJÔJÐJÐbfˆŒõ ð)Õ+ØØØØ#Ø)ð
ñ 
ô 
ð 
ð %)ð 	Œð /3¬oÐG•'˜$œ/Ñ*Ô*Ð*À4ˆŒÝ˜$œ/Ñ*Ô*ˆŒà”oÔ,ˆŒØœÔ0ˆŒØ $¤Ô @ˆÔØ(,¬Ô(PˆÔ%Ø"œmˆÔØ%)Ô%:ˆÔ"Ø”oÔ,ˆŒØ”?Ô&ˆŒà”_Ô*ˆŒ
Øœ?Ô6ˆÔØ$(¤OÔ$HˆÔ!Ø $¤Ô @ˆÔØ%)¤_Ô%JˆÔ"Ø œOÔ8ˆÔØ $¤Ô @ˆÔØ!%¤Ô!BˆÔØ!œ_Ô:ˆÔà"&¤/Ô"DˆÔØ'+¤Ô'NˆÔ$Ø,0¬OÔ,XˆÔ)Ø#'¤?Ô#FˆÔ Ø œOÔ8ˆÔØ'+¤Ô'NˆÔ$à!œ_Ô:ˆÔØ"&¤/Ô"DˆÔØ”Ô.ˆŒàœ?Ô6ˆÔØ $¤Ô @ˆÔØ œOÔ8ˆÔØ”_Ô*ˆŒ
à#œÔ>ˆÔØ $¤Ô @ˆÔØ#œÔ>ˆÔØ $¤Ô @ˆÔà”Ô.ˆŒØ#œÔ>ˆÔØ"œoÔ<ˆÔØ!œ_Ô:ˆÔà”Ô.ˆŒˆˆr&   ©Nrj   Nrk   rl   ©r'   r(   r)   r*   ÚstrÚfloatÚintr$   r,   r&   r#   ri   ri   ¿   s„   € € € € € ðð ð Ø2ØØØ #ðO/ð O/àðO/ð ðO/ð ð	O/ð
 ðO/ð ðO/ð O/ð O/ð O/ð O/ð O/r&   ri   c                   ó:   — e Zd ZdZ	 	 	 	 	 ddededed	ed
ef
d„ZdS )ÚAsyncFirecrawlzAAsync unified Firecrawl client (v2 by default, v1 under ``.v1``).Nrj   rk   rl   rm   rn   ro   rp   rq   c                 ó  — || _         || _        t          rt          ||¬¦  «        nd | _        t          rt	          |||||¬¦  «        nd | _        | j        rt          | j        ¦  «        nd | _        t          | j        ¦  «        | _	        | j        j
        | _
        | j        j        | _        | j        j        | _        | j        j        | _        | j        | _        | j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j         | _         | j        j!        | _!        | j        j"        | _"        | j        j#        | _#        | j        j$        | _$        | j        j%        | _%        | j        j&        | _&        | j        j'        | _'        | j        j(        | _(        | j        j)        | _)        | j        j*        | _*        | j        j+        | _+        | j        j,        | _,        | j        j-        | _-        | j        j.        | _.        | j        j/        | _/        d S )Nrs   rt   )0rm   rn   r
   ru   r   rv   r_   rw   rb   rx   r1   r2   r3   r4   r5   r6   r7   rM   r9   r:   r;   r<   r8   r=   r?   r@   rG   rH   rI   rJ   rK   rL   rA   rB   r   rD   rE   rF   rC   rN   rO   rP   rQ   rR   rS   rT   rU   rV   ry   s         r#   r$   zAsyncFirecrawl.__init__  sˆ  € ð ˆŒØˆŒõ TgÐpÕ-°gÀwÐOÑOÔOÐOÐlpˆŒõ "ð,Õ.ØØØØ#Ø)ð
ñ 
ô 
ð 
ð (,ð 	Œð 48´?ÐL•,˜tœÑ/Ô/Ð/ÈˆŒÝ˜tœÑ/Ô/ˆŒð ”oÔ,ˆŒØœÔ0ˆŒØ $¤Ô @ˆÔØ(,¬Ô(PˆÔ%Ø"œmˆÔØ%)Ô%:ˆÔ"Ø”oÔ,ˆŒØ”?Ô&ˆŒàœ?Ô6ˆÔØ $¤Ô @ˆÔØ%)¤_Ô%JˆÔ"Ø œOÔ8ˆÔØ”_Ô*ˆŒ
Ø $¤Ô @ˆÔØ!œ_Ô:ˆÔØ$(¤OÔ$HˆÔ!à"&¤/Ô"DˆÔØ'+¤Ô'NˆÔ$Ø,0¬OÔ,XˆÔ)Ø#'¤?Ô#FˆÔ Ø œOÔ8ˆÔØ'+¤Ô'NˆÔ$à!œ_Ô:ˆÔØ"&¤/Ô"DˆÔØ”Ô.ˆŒàœ?Ô6ˆÔØ $¤Ô @ˆÔØ œOÔ8ˆÔØ”_Ô*ˆŒ
à#œÔ>ˆÔØ $¤Ô @ˆÔØ#œÔ>ˆÔØ $¤Ô @ˆÔà”Ô.ˆŒØ#œÔ>ˆÔØ"œoÔ<ˆÔØ!œ_Ô:ˆÔà”Ô.ˆŒˆˆr&   rz   r{   r,   r&   r#   r€   r€     s€   € € € € € ØKÐKð Ø2ØØØ #ðG/ð G/àðG/ð ðG/ð ð	G/ð
 ðG/ð ðG/ð G/ð G/ð G/ð G/ð G/r&   r€   )r*   Útypingr   r   r   r   r   Úloggingrw   r	   r
   rx   r   r]   Úv2.client_asyncr   Úv2.typesr   Ú	getLoggerÚloggerr   r.   r_   rb   ri   r€   ÚFirecrawlAppÚAsyncFirecrawlAppr,   r&   r#   ú<module>rŠ      sÕ  ððð ð( 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø €€€ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð à	ˆÔ	˜;Ñ	'Ô	'€ðIð Ið Ið Ið Iñ Iô Ið Ið&8+ð 8+ð 8+ð 8+ð 8+ñ 8+ô 8+ð 8+ðtIð Ið Ið Ið Iñ Iô Ið Ið&<Mð <Mð <Mð <Mð <Mñ <Mô <Mð <Mð~W/ð W/ð W/ð W/ð W/ñ W/ô W/ð W/ðrJ/ð J/ð J/ð J/ð J/ñ J/ô J/ð J/ðZ €Ø"Ð Ð Ð r&   