o
    Zh                     @  sx   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZmZ G dd de	ZG d	d
 d
eZdS )    )annotations)OptionalType)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)	BaseModel)BaseBrowserTool)aget_current_pageget_current_pagec                   @  s   e Zd ZdZdS )NavigateBackToolInputz,Explicit no-args input for NavigateBackTool.N)__name__
__module____qualname____doc__ r   r   i/var/www/html/lang_env/lib/python3.10/site-packages/langchain_community/tools/playwright/navigate_back.pyr      s    r   c                   @  sP   e Zd ZU dZdZded< dZded< eZded< ddddZ			ddddZ
d	S )NavigateBackToolz:Navigate back to the previous page in the browser history.Zprevious_webpagestrnamez9Navigate back to the previous page in the browser historydescriptionzType[BaseModel]args_schemaNrun_manager#Optional[CallbackManagerForToolRun]returnc                 C  sH   | j du rtd| j t| j }| }|r"d|j d|j S dS )Use the tool.Nz$Synchronous browser not provided to .Navigated back to the previous page with URL ''. Status code 8Unable to navigate back; no previous page in the history)Zsync_browser
ValueErrorr   r
   go_backurlstatusselfr   pageresponser   r   r   _run   s   


zNavigateBackTool._run(Optional[AsyncCallbackManagerForToolRun]c                   sV   | j du rtd| j t| j I dH }| I dH }|r)d|j d|j S dS )r   Nz%Asynchronous browser not provided to r   r   r   )Zasync_browserr   r   r	   r   r    r!   r"   r   r   r   _arun,   s   

zNavigateBackTool._arun)N)r   r   r   r   )r   r'   r   r   )r   r   r   r   r   __annotations__r   r   r   r&   r(   r   r   r   r   r      s   
 r   N)
__future__r   typingr   r   Zlangchain_core.callbacksr   r   Zpydanticr   Z)langchain_community.tools.playwright.baser   Z*langchain_community.tools.playwright.utilsr	   r
   r   r   r   r   r   r   <module>   s    