§
    ®eîiD  ã                   óø  — d Z ddl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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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dede	fd„Zd
dœdedeed                  de
fd „Zd
S )!zˆ
Async browser session methods for Firecrawl v2 API.

Provides async create, execute, delete, and list operations for browser sessions.
é    )ÚAnyÚDictÚLiteralÚOptionalé   )ÚBrowserCreateResponseÚBrowserExecuteResponseÚBrowserDeleteResponseÚBrowserListResponse)ÚAsyncHttpClientÚ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     úd/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/methods/aio/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Úclientr.   r/   r"   r0   c             ƒ   ó  K  — i }|�||d<   |�||d<   |�||d<   |�"|d         |                      dd¦  «        dœ|d	<   |                      d
|¦  «        ƒ d{V —†}t          |                     ¦   «         ¦  «        }t	          di |¤ŽS )aÐ  Create a new browser session.

    Args:
        client: Async 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
    Nr.   ÚactivityTtlr!   ÚnameÚsave_changesT)r4   ÚsaveChangesr0   ú/v2/browser© )ÚgetÚpostr   Újsonr   )r1   r.   r/   r"   r0   ÚbodyÚrespr   s           r   Úbrowserr>   6   s¹   è è € ð* €DØ
€ØˆˆU‰ØÐØ*ˆˆ]ÑØÐ"Ø /ˆˆ_ÑØÐà˜F”OØ"Ÿ;š; ~°tÑ<Ô<ð
ð 
ˆˆY‰ð
 —’˜]¨DÑ1Ô1Ð1Ð1Ð1Ð1Ð1Ð1€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_responserB   ]   s5   € Ý
ˆw‰-Œ-€CØ�SÐÐ˜[°Ð3Ð3Ø˜zœ?ˆˆKÑØ€Jr   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_responserH   d   s_   € Ý
ˆw‰-Œ-€CØ˜cÐ!Ð!Ð&;À3Ð&FÐ&FØ%(Ð)<Ô%=ˆÐ!Ñ"Ø˜#ÐÐÐ"2¸#Ð"=Ð"=Ø # OÔ 4ˆÐÑØ€Jr   Úbash)ÚlanguageÚtimeoutÚ
session_idÚcoderJ   )ÚpythonÚnoderI   rK   c             ƒ   ó¸   K  — ||dœ}|�||d<   |                       d|› d�|¦  «        ƒ d{V —†}t          |                     ¦   «         ¦  «        }t          di |¤ŽS )al  Execute code in a browser session.

    Args:
        client: Async 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
    )rM   rJ   NrK   ú/v2/browser/z/executer8   )r:   rB   r;   r	   )r1   rL   rM   rJ   rK   r<   r=   r   s           r   Úbrowser_executerR   m   s…   è è € ð* Øðð €Dð ÐØ!ˆˆY‰à—’Ð@¨JÐ@Ð@Ð@À$ÑGÔGÐGÐGÐGÐGÐGÐG€DÝ1°$·)²)±+´+Ñ>Ô>€GÝ!Ð,Ð, GÐ,Ð,Ð,r   c              ƒ   óœ   K  — |                       d|› �¦  «        ƒ d{V —†}t          |                     ¦   «         ¦  «        }t          di |¤ŽS )z§Delete a browser session.

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

    Returns:
        BrowserDeleteResponse
    rQ   Nr8   )ÚdeleterH   r;   r
   )r1   rL   r=   r   s       r   Údelete_browserrU   �   s]   è è € ð —’Ð:¨jÐ:Ð:Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;€DÝ0°·²±´Ñ=Ô=€GÝ Ð+Ð+ 7Ð+Ð+Ð+r   )ÚstatusrV   )ÚactiveÚ	destroyedc             ƒ   ó¬   K  — d}|�|› d|› �}|                       |¦  «        ƒ d{V —†}t          |                     ¦   «         ¦  «        }t          di |¤ŽS )zÔList browser sessions.

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

    Returns:
        BrowserListResponse with list of sessions
    r7   Nz?status=r8   )r9   r-   r;   r   )r1   rV   Úendpointr=   r   s        r   Úlist_browsersr[   Ÿ   sr   è è € ð €HØÐØÐ0Ð0¨Ð0Ð0ˆà—’˜HÑ%Ô%Ð%Ð%Ð%Ð%Ð%Ð%€DÝ.¨t¯yªy©{¬{Ñ;Ô;€GÝÐ)Ð) Ð)Ð)Ð)r   )Ú__doc__Útypingr   r   r   r   Útypesr   r	   r
   r   Úutils.http_client_asyncr   Ústrr   r-   ÚintÚboolr>   rB   rH   rR   rU   r[   r8   r   r   ú<module>rc      s¸  ððð ð 0Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6ð
°°S¸#°X´ð 
À4ÈÈSÈÄ>ð 
ð 
ð 
ð 
ð¨d°3¸°8¬nð ÀÀcÈ3ÀhÄð ð ð ð ð4 Ø"&Ø&*Ø(,ð$,ð $,ð $,Øð$,ð 
�#Œð$,ð ˜3”-ð	$,ð
 ˜d”^ð$,ð �d˜3 ˜8”nÔ%ð$,ð ð$,ð $,ð $,ð $,ðN°°c¸3°h´ð ÀDÈÈcÈÄNð ð ð ð ð°°S¸#°X´ð À4ÈÈSÈÄ>ð ð ð ð ð 39Ø!ð-ð -ð -Øð-àð-ð ð-ð
 Ð.Ô/ð-ð �cŒ]ð-ð ð-ð -ð -ð -ð@,Øð,àð,ð ð,ð ,ð ,ð ,ð* 8<ð*ð *ð *Øð*ð �WÐ2Ô3Ô4ð*ð ð	*ð *ð *ð *ð *ð *r   