
    Sg                         d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlZ ej        e          Z G d	 d
e          ZdS )    N)OptionalType)	BaseModel)ActionResult)BrowserContext)
Controller
DoneAction)MainContentExtractor)
ClickElementActionr	   ExtractPageContentActionGoToUrlActionInputTextActionOpenTabActionScrollActionSearchGoogleActionSendKeysActionSwitchTabActionc                   X     e Zd Zg dfdee         deee                  f fdZd Z	 xZ
S )CustomControllerNexclude_actionsoutput_modelc                 v    t                                          ||           |                                  d S )N)r   r   )super__init___register_custom_actions)selfr   r   	__class__s      P/Users/kosar/src/browser-use-projects/web-ui/src/controller/custom_controller.pyr   zCustomController.__init__   s:     	|TTT%%'''''    c                     | j                             d          dt          fd            }| j                             d          dt          fd            }dS )z#Register all custom browser actionszCopy text to clipboardtextc                 J    t          j        |            t          |           S N)extracted_content)	pyperclipcopyr   )r!   s    r   copy_to_clipboardzDCustomController._register_custom_actions.<locals>.copy_to_clipboard%   s#    N4   $7777r   zPaste text from clipboardbrowserc                    K   t          j                    }|                                  d {V }|j                            |           d {V  t          |          S r#   )r%   pasteget_current_pagekeyboardtyper   )r(   r!   pages      r   paste_from_clipboardzGCustomController._register_custom_actions.<locals>.paste_from_clipboard*   so      ?$$D 1133333333D-$$T*********$7777r   N)registryactionstrr   )r   r'   r/   s      r   r   z)CustomController._register_custom_actions"   s~     
		6	7	7	8C 	8 	8 	8 
8	7	8 
		9	:	:	8 	8 	8 	8 
;	:	8 	8 	8r   )__name__
__module____qualname__listr2   r   r   r   r   r   __classcell__)r   s   @r   r   r      ss        46;?( (S	 ('Y8( ( ( ( ( (8 8 8 8 8 8 8r   r   )pdbr%   typingr   r   pydanticr   browser_use.agent.viewsr   browser_use.browser.contextr   browser_use.controller.servicer   r	   main_content_extractorr
   browser_use.controller.viewsr   r   r   r   r   r   r   r   r   logging	getLoggerr3   loggerr    r   r   <module>rD      s[   



     ! ! ! ! ! ! ! !       0 0 0 0 0 0 6 6 6 6 6 6 A A A A A A A A 7 7 7 7 7 7                        		8	$	$8 8 8 8 8z 8 8 8 8 8r   