
    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j6                  e      Z G d	 d
e      Zy)    N)OptionalType)	BaseModel)ActionResult)BrowserContext)
Controller
DoneAction)MainContentExtractor)
ClickElementActionr	   ExtractPageContentActionGoToUrlActionInputTextActionOpenTabActionScrollActionSearchGoogleActionSendKeysActionSwitchTabActionc                   F     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                 H    t         |   ||       | j                          y )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%%'    c                     | j                   j                  d      dt        fd       }| j                   j                  d      dt        fd       }y)z#Register all custom browser actionszCopy text to clipboardtextc                 D    t        j                  |        t        |       S N)extracted_content)	pyperclipcopyr   )r!   s    r   copy_to_clipboardzDCustomController._register_custom_actions.<locals>.copy_to_clipboard%   s    NN4 $77r   zPaste text from clipboardbrowserc                    K   t        j                         }| j                          d {   }|j                  j	                  |       d {    t        |      S 7 37 w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3D--$$T***$77 4*s!   (A"A"A"A A" A"N)registryactionstrr   )r   r'   r/   s      r   r   z)CustomController._register_custom_actions"   sX     
		6	7	8C 	8 
8	8 
		9	:	8 	8 
;	8r   )__name__
__module____qualname__listr2   r   r   r   r   r   __classcell__)r   s   @r   r   r      s/    46;?(S	 ('Y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      sO    
  !  0 6 A 7   			8	$8z 8r   