§
    ®eîiR  ã                   ó  — d Z ddlmZmZmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ deeef         deeef         fd	„Zdeeef         deeef         fd
„Zdddddœdedee         dee         dee         deeeef                  defd„Zdeeef         deeef         fd„Zdddœdedededed         dee         de	fd„Zdeeef         deeef         fd„Zdedede
fd„Zddœdedeed                   defd!„ZdS )"z|
Browser session methods for Firecrawl v2 API.

Provides create, execute, delete, and list operations for browser sessions.
é    )ÚAnyÚDictÚListÚLiteralÚOptionalé   )ÚBrowserCreateResponseÚBrowserExecuteResponseÚBrowserDeleteResponseÚBrowserListResponse)Ú
HttpClient)Úhandle_response_errorÚpayloadÚreturnc                 ó¼   — t          | ¦  «        }d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   |S )	NÚcdpUrlÚcdp_urlÚliveViewUrlÚlive_view_urlÚinteractiveLiveViewUrlÚinteractive_live_view_urlÚ	expiresAtÚ
expires_at©Údict©r   Úouts     ú`/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/methods/browser.pyÚ"_normalize_browser_create_responser      s¡   € Ý
ˆw‰-Œ-€CØ�3€€˜9¨CÐ/Ð/Ø˜XœˆˆI‰Ø˜ÐÐ °sÐ :Ð :Ø" =Ô1ˆˆOÑØ 3Ð&Ð&Ð+FÈcÐ+QÐ+QØ+.Ð/GÔ+HˆÐ'Ñ(Ø�cÐÐ˜l°#Ð5Ð5Ø Ô,ˆˆLÑØ€Jó    c                 ó²  — t          | ¦  «        }d|v rÃt          |d         t          ¦  «        r¨g }|d         D ]˜}t          |¦  «        }d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   d|v rd	|vr|d         |d	<   d
|v rd|vr|d
         |d<   d|v rd|vr|d         |d<   |                     |¦  «         Œ™||d<   |S )NÚsessionsr   r   r   r   r   r   ÚstreamWebViewÚstream_web_viewÚ	createdAtÚ
created_atÚlastActivityÚlast_activity)r   Ú
isinstanceÚlistÚappend)r   r   Únormalized_sessionsÚsÚnss        r   Ú _normalize_browser_list_responser/       sM  € Ý
ˆw‰-Œ-€CØ�SÐÐ�Z¨¨J¬½Ñ>Ô>ÐØ ÐØ�Z”ð 	+ð 	+ˆAÝ�a‘”ˆBØ˜2ˆ~ˆ~ )°2Ð"5Ð"5Ø " 8¤��9‘Ø Ð"Ð" ¸bÐ'@Ð'@Ø&(¨Ô&7��?Ñ#Ø'¨2Ð-Ð-Ð2MÐUWÐ2WÐ2WØ24Ð5MÔ2N�Ð.Ñ/Ø "Ð$Ð$Ð):À"Ð)DÐ)DØ(*¨?Ô(;�Ð$Ñ%Ø˜bÐ Ð  \¸Ð%;Ð%;Ø#% k¤?��<Ñ Ø Ð#Ð#¨¸rÐ(AÐ(AØ&(¨Ô&8��?Ñ#Ø×&Ò& rÑ*Ô*Ð*Ð*Ø-ˆˆJ‰Ø€Jr    N)ÚttlÚactivity_ttlr$   ÚprofileÚclientr0   r1   r$   r2   c                ó,  — i }|�||d<   |�||d<   |�||d<   |�"|d         |                      dd¦  «        dœ|d	<   |                      d
|¦  «        }|j        st          |d¦  «         t	          |                     ¦   «         ¦  «        }t          di |¤ŽS )aÊ  Create a new browser session.

    Args:
        client: HTTP client instance
        ttl: Total time-to-live in seconds (30-3600, default 300)
        activity_ttl: Inactivity TTL in seconds (10-3600)
        stream_web_view: Whether to enable webview streaming
        profile: Profile config with ``name`` (str) and
            optional ``save_changes`` (bool, default ``True``)

    Returns:
        BrowserCreateResponse with session id and CDP URL
    Nr0   ÚactivityTtlr#   ÚnameÚsave_changesT)r6   ÚsaveChangesr2   ú/v2/browserzcreate browser session© )ÚgetÚpostÚokr   r   Újsonr	   )r3   r0   r1   r$   r2   ÚbodyÚrespr   s           r   ÚbrowserrA   7   s¾   € ð* €DØ
€ØˆˆU‰ØÐØ*ˆˆ]ÑØÐ"Ø /ˆˆ_ÑØÐà˜F”OØ"Ÿ;š; ~°tÑ<Ô<ð
ð 
ˆˆY‰ð
 �;Š;�} dÑ+Ô+€DØŒ7ð >Ý˜dÐ$<Ñ=Ô=Ð=Ý0°·²±´Ñ=Ô=€GÝ Ð+Ð+ 7Ð+Ð+Ð+r    c                 óJ   — t          | ¦  «        }d|v rd|vr|d         |d<   |S )NÚexitCodeÚ	exit_coder   r   s     r   Ú#_normalize_browser_execute_responserE   `   s5   € Ý
ˆw‰-Œ-€CØ�SÐÐ˜[°Ð3Ð3Ø˜zœ?ˆˆKÑØ€Jr    Úbash)ÚlanguageÚtimeoutÚ
session_idÚcoderG   )ÚpythonÚnoderF   rH   c                óÖ   — ||dœ}|�||d<   |                       d|› d�|¦  «        }|j        st          |d¦  «         t          |                     ¦   «         ¦  «        }t          di |¤ŽS )af  Execute code in a browser session.

    Args:
        client: HTTP client instance
        session_id: Browser session ID
        code: Code to execute
        language: Programming language ("python", "node", or "bash")
        timeout: Execution timeout in seconds (1-300, default 30)

    Returns:
        BrowserExecuteResponse with execution result
    )rJ   rG   NrH   ú/v2/browser/z/executezexecute browser coder:   )r<   r=   r   rE   r>   r
   )r3   rI   rJ   rG   rH   r?   r@   r   s           r   Úbrowser_executerO   g   sŠ   € ð* Øðð €Dð ÐØ!ˆˆY‰à�;Š;Ð: jÐ:Ð:Ð:¸DÑAÔA€DØŒ7ð <Ý˜dÐ$:Ñ;Ô;Ð;Ý1°$·)²)±+´+Ñ>Ô>€GÝ!Ð,Ð, GÐ,Ð,Ð,r    c                 óp   — t          | ¦  «        }d|v rd|vr|d         |d<   d|v rd|vr|d         |d<   |S )NÚsessionDurationMsÚsession_duration_msÚcreditsBilledÚcredits_billedr   r   s     r   Ú"_normalize_browser_delete_responserU   ‰   s_   € Ý
ˆw‰-Œ-€CØ˜cÐ!Ð!Ð&;À3Ð&FÐ&FØ%(Ð)<Ô%=ˆÐ!Ñ"Ø˜#ÐÐÐ"2¸#Ð"=Ð"=Ø # OÔ 4ˆÐÑØ€Jr    c                 óº   — |                       d|› �¦  «        }|j        st          |d¦  «         t          |                     ¦   «         ¦  «        }t          di |¤ŽS )z¡Delete a browser session.

    Args:
        client: HTTP client instance
        session_id: Browser session ID

    Returns:
        BrowserDeleteResponse
    rN   zdelete browser sessionr:   )Údeleter=   r   rU   r>   r   )r3   rI   r@   r   s       r   Údelete_browserrX   ’   sb   € ð �=Š=Ð4¨
Ð4Ð4Ñ5Ô5€DØŒ7ð >Ý˜dÐ$<Ñ=Ô=Ð=Ý0°·²±´Ñ=Ô=€GÝ Ð+Ð+ 7Ð+Ð+Ð+r    )ÚstatusrY   )ÚactiveÚ	destroyedc                óÊ   — d}|�|› d|› �}|                       |¦  «        }|j        st          |d¦  «         t          |                     ¦   «         ¦  «        }t          di |¤ŽS )zÎList browser sessions.

    Args:
        client: HTTP client instance
        status: Filter by session status ("active" or "destroyed")

    Returns:
        BrowserListResponse with list of sessions
    r9   Nz?status=zlist browser sessionsr:   )r;   r=   r   r/   r>   r   )r3   rY   Úendpointr@   r   s        r   Úlist_browsersr^   ¦   sw   € ð €HØÐØÐ0Ð0¨Ð0Ð0ˆà�:Š:�hÑÔ€DØŒ7ð =Ý˜dÐ$;Ñ<Ô<Ð<Ý.¨t¯yªy©{¬{Ñ;Ô;€GÝÐ)Ð) Ð)Ð)Ð)r    )Ú__doc__Útypingr   r   r   r   r   Útypesr	   r
   r   r   Úutils.http_clientr   Úutils.error_handlerr   Ústrr   r/   ÚintÚboolrA   rE   rO   rU   rX   r^   r:   r    r   ú<module>rg      sÐ  ððð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð
°°S¸#°X´ð 
À4ÈÈSÈÄ>ð 
ð 
ð 
ð 
ð¨d°3¸°8¬nð ÀÀcÈ3ÀhÄð ð ð ð ð4 Ø"&Ø&*Ø(,ð&,ð &,ð &,Øð&,ð 
�#Œð&,ð ˜3”-ð	&,ð
 ˜d”^ð&,ð �d˜3 ˜8”nÔ%ð&,ð ð&,ð &,ð &,ð &,ðR°°c¸3°h´ð ÀDÈÈcÈÄNð ð ð ð ð 39Ø!ð-ð -ð -Øð-àð-ð ð-ð
 Ð.Ô/ð-ð �cŒ]ð-ð ð-ð -ð -ð -ðD°°S¸#°X´ð À4ÈÈSÈÄ>ð ð ð ð ð,Øð,àð,ð ð,ð ,ð ,ð ,ð. 8<ð*ð *ð *Øð*ð �WÐ2Ô3Ô4ð*ð ð	*ð *ð *ð *ð *ð *r    