+
    jHàj  ã                  ó�   € R t ^ RIHt ^ RIt^ RIt^ RIHtHtHt ^ RI	H
t
 ^ RIHt ]P                  ! ]4      tRt ! R R]4      tR# )	a�  Browserbase cloud browser provider: direct ``BROWSERBASE_API_KEY`` + ``BROWSERBASE_PROJECT_ID``
only (the Nous subscription routes through Browser Use). Config ``browser.cloud_provider:
"browserbase"``; knobs ``BROWSERBASE_BASE_URL``, ``BROWSERBASE_PROXIES`` (true),
``BROWSERBASE_ADVANCED_STEALTH`` (false), ``BROWSERBASE_KEEP_ALIVE`` (true),
``BROWSERBASE_SESSION_TIMEOUT`` (seconds, max 21600).)ÚannotationsN)ÚAnyÚDictÚOptional)Ú
get_secret)ÚCloudBrowserProviderc                  óŽ   € ] tR t^tRtRtRtRtRtRt	Rt
RtR	R
RRRR/R	RRR/.tR R ltR R ltR R ltR R ltR R ltRtR# )ÚBrowserbaseBrowserProviderz<Browserbase (https://browserbase.com) cloud browser backend.ÚbrowserbaseÚBrowserbaseÚpostz/v1/sessions/{session_id}zZBrowserbase requires BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID environment variables.z(Failed to close session %s: HTTP %s - %sz&Cloud browser with stealth and proxiesÚkeyÚBROWSERBASE_API_KEYÚpromptzBrowserbase API keyÚurlzhttps://browserbase.comÚBROWSERBASE_PROJECT_IDzBrowserbase project IDc               ó   € V ^8„  d   QhRR/# )é   ÚreturnzOptional[dict[str, Any]]© )Úformats   "ÚI/home/ubuntu/.hermes/hermes-agent/plugins/browser/browserbase/provider.pyÚ__annotate__Ú'BrowserbaseBrowserProvider.__annotate__+   s   € ÷ 

ñ 

Ð%=ñ 

ó    c           	     	ó¨   € \        R 4      p\        R4      pV'       d	   V'       g   R# RTRTR\        RR4      ;'       g    RP                  R	4      /# )
r   r   NÚapi_keyÚ
project_idÚbase_urlÚBROWSERBASE_BASE_URLÚ zhttps://api.browserbase.comÚ/)r   Úrstrip)Úselfr   r   s   &  r   Ú_get_config_or_noneÚ.BrowserbaseBrowserProvider._get_config_or_none+   sV   € ÜÐ2Ó3ˆÜÐ 8Ó9ˆ
ßŸJÙà�wØ˜*àœÐ$:¸BÓ?×`Ð`ÐC`×hÑhÐilÓmð	
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úconfigúdict[str, Any]r   zdict[str, str]r   )r   s   "r   r   r   7   s   € ÷ Wñ W˜~ð W°.ñ Wr   c                	ó   € R RRVR,          /# )úContent-Typeúapplication/jsonúX-BB-API-Keyr   r   ©r#   r(   s   &&r   Ú_headersÚ#BrowserbaseBrowserProvider._headers7   s   € ØÐ 2°NÀFÈ9ÕDUÐVÐVr   c               ó    € V ^8„  d   QhRRRR/# r'   r   )r   s   "r   r   r   :   s   € ÷ Wñ W ~ð W¸.ñ Wr   c                	ó   € R VR,          RR/# )r-   r   r+   r,   r   r.   s   &&r   Ú_release_headersÚ+BrowserbaseBrowserProvider._release_headers:   s   € Ø  yÕ 1°>ÐCUÐVÐVr   c               ó    € V ^8„  d   QhRRRR/# )r   r(   r)   r   údict[str, object]r   )r   s   "r   r   r   =   s   € ÷ Pñ P Nð PÐ7Hñ Pr   c                	ó   € R VR,          RR/# )Ú	projectIdr   ÚstatusÚREQUEST_RELEASEr   r.   s   &&r   Ú_release_bodyÚ(BrowserbaseBrowserProvider._release_body=   s   € Ø˜V LÕ1°8Ð=NÐOÐOr   c               ó    € V ^8„  d   QhRRRR/# )r   Útask_idÚstrr   r6   r   )r   s   "r   r   r   @   s   € ÷ 4
ñ 4
 cð 4
Ð.?ñ 4
r   c                	óZ  € V P                  4       p\        P                  P                  R R4      P	                  4       R8g  p\        P                  P                  RR4      P	                  4       R8H  p\        P                  P                  RR4      P	                  4       R8g  p\        P                  P                  R4      pRVR,          /pV'       d   RVR	&   V'       d    \        V4      pV^ 8”  d   W‡R
&   V'       d   RVR&   V'       d   RR/VR&   VR,           R2p	V P                  V4      p
V P                  WšV4      p\        4       p\         Fi  w  rÞVP                  R8X  g   K  W×9   g   K   VP                  V4       \        P                  V4       VP                  V4       V P                  WšV4      pKk  	  V P!                  V4       VP#                  4       pV P%                  V4      pRRRT;'       d    RV9  RTRT;'       d    R	V9  R\'        V4      ;'       d    R
V9   /pRP)                  R VP+                  4        4       4      p\        P-                  RVV4       RVRVR,          RVR,          RV/#   \         d    \        P                  RT4        EL¯i ; i)ÚBROWSERBASE_PROXIESÚtrueÚfalseÚBROWSERBASE_ADVANCED_STEALTHÚBROWSERBASE_KEEP_ALIVEÚBROWSERBASE_SESSION_TIMEOUTr8   r   TÚ	keepAliveÚtimeoutz-Invalid BROWSERBASE_SESSION_TIMEOUT value: %sÚproxiesÚadvancedStealthÚbrowserSettingsr   z/v1/sessionsi’  Úbasic_stealthÚadvanced_stealthÚ
keep_aliveÚcustom_timeoutz, c              3  ó>   "  € T F  w  rV'       g   K  Vx € K  	  R # 5i)Nr   )Ú.0ÚkÚvs   &  r   Ú	<genexpr>Ú<BrowserbaseBrowserProvider.create_session.<locals>.<genexpr>m   s   é € ÐLÑ.F¡d aÌ!§¢Ó.Fùs   ‚“
z0Created Browserbase session %s with features: %sÚsession_nameÚbb_session_idÚidÚcdp_urlÚ
connectUrlÚfeatures)Ú_get_configÚosÚenvironÚgetÚlowerÚintÚ
ValueErrorÚloggerÚwarningr/   Ú_post_createÚsetÚ_PAID_FEATURE_FALLBACKSÚstatus_codeÚaddÚpopÚ_check_createdÚjsonÚ_session_nameÚboolÚjoinÚitemsÚinfo)r#   r>   r(   Úenable_proxiesÚenable_advanced_stealthÚenable_keep_aliveÚcustom_timeout_msÚsession_configÚtimeout_valr   ÚheadersÚresponseÚdroppedr   rd   Úsession_datarV   Úfeatures_enabledÚfeature_strs   &&                 r   Úcreate_sessionÚ)BrowserbaseBrowserProvider.create_session@   s€  € Ø×!Ñ!Ó#ˆÜŸ™Ÿ™Ð(=¸vÓF×LÑLÓNÐRYÑYˆÜ"$§*¡*§.¡.Ð1OÐQXÓ"Y×"_Ñ"_Ó"aÐekÑ"kÐÜŸJ™JŸN™NÐ+CÀVÓL×RÑRÓTÐX_Ñ_ÐÜŸJ™JŸN™NÐ+HÓIÐà-8¸&ÀÕ:NÐ,OˆßØ*.ˆN˜;Ñ'ßðcÜ!Ð"3Ó4�Ø ”?Ø0; 9Ñ-÷ Ø(,ˆN˜9Ñ%ß"Ø1BÀDÐ0IˆNÐ,Ñ-à˜
Õ#Ð$ LÐ1ˆØ—-‘- Ó'ˆØ×$Ñ$ S°>ÓBˆô “%ˆß3‰LˆCØ×#Ñ# sÖ*¨sÖ/DØ—‘˜CÔ Ü—‘˜wÔ'Ø×"Ñ" 3Ô'Ø×,Ñ,¨S¸>ÓJ’ñ 4ð 	×Ñ˜HÔ%à—}‘}“ˆØ×)Ñ)¨'Ó2ˆà˜TØ�~×BÐB¨)¸7Ñ*BØÐ 7ØÐ+×JÐJ°À7Ñ0JØœdÐ#4Ó5×UÐU¸)À~Ñ:Uð
Ðð —i‘iÑLÐ.>×.DÑ.DÔ.FÓLÓLˆÜ�‰ÐFÈÐVaÔbà˜LØ˜\¨$Õ/Ø�| LÕ1ØÐ(ð	
ð 	
øôA ô cÜ—‘ÐNÐPa×bðcús   Ã$J Ê!J*Ê)J*r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úprovider_idÚlabelÚrelease_methodÚrelease_pathÚmissing_credentials_errorÚclose_fail_fmtÚ	setup_tagÚsetup_env_varsr$   r/   r3   r;   r~   Ú__static_attributes__r   r   r   r	   r	      sy   † ÙFà€KØ€EØ€NØ.€Lð	!ð ð @€NØ8€Ià	Ð% xÐ1FÈÐOhÐiØ	Ð(¨(Ð4LÐMð€Nõ


õWõWõP÷4
ñ 4
r   r	   ))rG   zhkeepAlive may require paid plan (402), retrying without it. Sessions may timeout during long operations.)rI   zYProxies unavailable (402), retrying without proxies. Bot detection may be less effective.)r„   Ú
__future__r   Úloggingr]   Útypingr   r   r   Úagent.secret_scoper   Úplugins.browser._commonr   Ú	getLoggerr€   rc   rg   r	   r   r   r   Ú<module>r”      sH   ðñ9õ #ã Û 	ß &Ñ &å )Ý 8à	×	Ò	˜8Ó	$€ð9Ð ôZ
Ð!5ö Z
r   