
    .iiX                     N   d Z ddlZddlZddlmZmZmZ ddlmZ  ej                  d      Z
e G d d             Ze G d d	             Ze G d
 d             Z	 	 	 	 	 ddedededededeeef   fdZ	 	 	 ddedededeeef   fdZ	 	 ddededee   dee   deeef   f
dZy)za
Genesis V2 Extension API
========================
API surface for Chrome extension integration.
    N)DictAnyOptional)	dataclasszgenesis_v2.extension.apic                   N    e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   y)	PageAnalysiszResult of page analysis.urltitletext_contentlinksformsinteractive_elementsN)__name__
__module____qualname____doc__str__annotations__list     1/mnt/e/genesis-system/genesis_v2/extension/api.pyr   r      s%    "	HJKKr   r   c                   >    e Zd ZU dZeed<   eed<   eed<   dZeed<   y)ScreenCapturezResult of screen capture.image_base64widthheightpngformatN)r   r   r   r   r   r   intr   r   r   r   r   r      s    #JKFCr   r   c                   :    e Zd ZU dZeed<   eed<   eed<   eed<   y)ActionResultzResult of executing an action.successaction_typetargetmessageN)r   r   r   r   boolr   r   r   r   r   r"   r"   #   s    (MKLr   r"   htmlr	   include_textinclude_linksinclude_formsreturnc                 b    t         j                  d|xs d        |xs dd| r| dd ndg g g dS )	a#  
    Analyze a web page.
    
    Args:
        html: Raw HTML content (from content script)
        url: Page URL
        include_text: Extract text content
        include_links: Extract links
        include_forms: Extract form data
        
    Returns:
        PageAnalysis as dict
    zanalyze_page: zinline HTMLunknownz[STUB] Page TitleNi  z[STUB] Page text content)r	   r
   r   r   r   r   loggerinfo)r(   r	   r)   r*   r+   s        r   analyze_pager2   ,   sK    ( KK.!5 678 i$&*Tc
0J " r   regionr   qualityc                     t         j                  d|  d|        t        j                  t	        g d            j                  d      }|dd|dddS )	z
    Capture screen/viewport.
    
    Args:
        region: "viewport", "full", or CSS selector
        format: "png" or "jpeg"
        quality: JPEG quality (1-100)
        
    Returns:
        ScreenCapture as dict
    zcapture_screen: region=z	, format=)C   P   N   G      
      r;   r   r   r   r:   I   H   D   R   r   r   r      r   r   r   rA         r   r   r            r6   r   r   r   r;   r=   r?   A   T   x      c   r   rA   r   r      r   rA   r:   r;   -      r   r   r   r   r=   E   r8   r?      B   `      asciirA   Tz?Stub capture - connect to actual extension for real screenshots)r   r   r   r   stubr&   )r0   r1   base64	b64encodebytesdecode)r3   r   r4   stub_pngs       r   capture_screenr[   M   sh      KK)&6(CD  
' 
! 
 	w  !T r   r$   r%   valueoptionsc                 V    t         j                  d|  d|        d| ||d|  d| ddS )a?  
    Execute an action on the page.
    
    Args:
        action_type: "click", "type", "scroll", "navigate", "wait"
        target: CSS selector or URL (for navigate)
        value: Text to type or scroll amount
        options: Additional options (delay, etc.)
        
    Returns:
        ActionResult as dict
    zexecute_action: z -> Tz[STUB] Would execute z on )r#   r$   r%   r\   r&   rU   r/   )r$   r%   r\   r]   s       r   execute_actionr_   w   sI    $ KK";-tF8<= "*;-tF8D r   )NNTTT)viewportr   Z   )NN)r   rV   loggingtypingr   r   r   dataclassesr   	getLoggerr0   r   r   r"   r   r'   r2   r    r[   r_   r   r   r   <module>rf      sX     & & !			5	6          
	  	
  
#s(^D ''' ' 
#s(^	'Z  "	 C= d^	
 
#s(^r   