+
    ViR                         R t ^ RIHtHtHtHtHt ^RIHtH	t	H
t
Ht ^RIHt ^RIHt R R ltR R ltR	R
RR
RR
RR
/R R lltR R ltRRRR
/R R lltR R ltR R ltRR
/R R lltR
# )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_errorc                t    V ^8  d   QhR\         \        \        3,          R\         \        \        3,          /#    payloadreturnr   strr   )formats   "[/home/ubuntu/hermes-agent/venv/lib/python3.14/site-packages/firecrawl/v2/methods/browser.py__annotate__r      s*     
 
S#X 
4S> 
    c                     \        V 4      pR V9   d   RV9  d   VR ,          VR&   RV9   d   RV9  d   VR,          VR&   RV9   d   RV9  d   VR,          VR&   RV9   d   RV9  d   VR,          VR&   V# )cdpUrlcdp_urlliveViewUrllive_view_urlinteractiveLiveViewUrlinteractive_live_view_url	expiresAt
expires_atdictr   outs   & r   "_normalize_browser_create_responser%      s    
w-C39C/XIs :"=1O3&+Fc+Q+./G+H'(cl#5,LJr   c                t    V ^8  d   QhR\         \        \        3,          R\         \        \        3,          /# r   r   )r   s   "r   r   r       s*      d38n c3h r   c                     \        V 4      pR V9   d   \        VR ,          \        4      '       d   . pVR ,           F  p\        V4      pRV9   d   RV9  d   VR,          VR&   RV9   d   RV9  d   VR,          VR&   RV9   d   RV9  d   VR,          VR&   RV9   d   RV9  d   VR,          VR&   R	V9   d   R
V9  d   VR	,          VR
&   RV9   d   RV9  d   VR,          VR&   VP                  V4       K  	  W!R &   V# )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_responser5       s   
w-CSZJ>> ZAaB2~)2"5 "89"b'@&(&7?#'2-2MUW2W245M2N./"$):")D(*?(;$%b \%;#%k?< #r(A&(&8?#&&r* ! .JJr   ttlNactivity_ttlr*   profilec                    V ^8  d   QhR\         R\        \        ,          R\        \        ,          R\        \        ,          R\        \        \
        \        3,          ,          R\        /# )r   clientr6   r7   r*   r8   r   )r   r   intboolr   r   r   r   )r   s   "r   r   r   7   s_     &, &,&, 
#&, 3-	&,
 d^&, d38n%&, &,r   c               &   / pVe   WR&   Ve   W%R&   Ve   W5R&   Ve!   RVR,          RVP                  RR4      /VR&   V P                  R	V4      pVP                  '       g   \        VR
4       \	        VP                  4       4      p\        R/ VB # )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
r6   activityTtlr)   namesaveChangessave_changesTr8   /v2/browserzcreate browser session )getpostokr   r%   jsonr   )r:   r6   r7   r*   r8   bodyrespr   s   &$$$$   r   browserrJ   7   s    * D
U*]" /_GFO7;;~t<
Y
 ;;}d+D777d$<=0=G +7++r   c                t    V ^8  d   QhR\         \        \        3,          R\         \        \        3,          /# r   r   )r   s   "r   r   r   `   s*      c3h DcN r   c                 P    \        V 4      pR V9   d   RV9  d   VR ,          VR&   V# )exitCode	exit_coder!   r#   s   & r   #_normalize_browser_execute_responserO   `   s-    
w-CS[3z?KJr   languagebashtimeoutc                    V ^8  d   QhR\         R\        R\        R\        R,          R\        \        ,          R\
        /# )r   r:   
session_idcoderP   rR   r   )pythonnoderQ   )r   r   r   r   r;   r   )r   s   "r   r   r   g   sN     - --- -
 ./- c]- -r   c                   RVRV/pVe   WER&   V P                  RV R2V4      pVP                  '       g   \        VR4       \        VP	                  4       4      p\        R/ VB # )aB  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
rU   rP   rR   /v2/browser/z/executezexecute browser coderC   )rE   rF   r   rO   rG   r   )r:   rT   rU   rP   rR   rH   rI   r   s   &&&$$   r   browser_executerZ   g   so    * 	HD !Y;;j\:DAD777d$:;1$))+>G!,G,,r   c                t    V ^8  d   QhR\         \        \        3,          R\         \        \        3,          /# r   r   )r   s   "r   r   r      s*      S#X 4S> r   c                     \        V 4      pR V9   d   RV9  d   VR ,          VR&   RV9   d   RV9  d   VR,          VR&   V# )sessionDurationMssession_duration_mscreditsBilledcredits_billedr!   r#   s   & r   "_normalize_browser_delete_responsera      sQ    
w-Cc!&;3&F%()<%=!"#"2#"= #O 4Jr   c                <    V ^8  d   QhR\         R\        R\        /# )r   r:   rT   r   )r   r   r	   )r   s   "r   r   r      s&     , ,,, ,r   c                    V P                  RV 24      pVP                  '       g   \        VR4       \        VP	                  4       4      p\        R/ VB # )zDelete a browser session.

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

Returns:
    BrowserDeleteResponse
rY   zdelete browser sessionrC   )deleterF   r   ra   rG   r	   )r:   rT   rI   r   s   &&  r   delete_browserre      sK     ==<
|45D777d$<=0=G +7++r   statusc                `    V ^8  d   QhR\         R\        \        R,          ,          R\        /# )r   r:   rf   r   )active	destroyed)r   r   r   r
   )r   s   "r   r   r      s3     * ** W234* 	*r   c                   RpVe   V RV 2pV P                  V4      pVP                  '       g   \        VR4       \        VP	                  4       4      p\        R/ VB # )zList browser sessions.

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

Returns:
    BrowserListResponse with list of sessions
rB   z?status=zlist browser sessionsrC   )rD   rF   r   r5   rG   r
   )r:   rf   endpointrI   r   s   &$   r   list_browsersrl      s_     HZxx0::hD777d$;<.tyy{;G)))r   )__doc__typingr   r   r   r   r   typesr   r   r	   r
   utils.http_clientr   utils.error_handlerr   r%   r5   rJ   rO   rZ   ra   re   rl   rC   r   r   <module>rr      s    6 5  + 7
.&, &, #'	&,
 '+&, )-&,R-
 39- "-D,(* 8<* *r   