
    lKj                        d dl mZmZ d dlmZmZmZ d dlZd dlZdZ	dZ
erd dlmZ e G d d             Ze G d	 d
             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Zeez  ez  Zy)    )	dataclassfield)TYPE_CHECKINGOptionalAnyNz\The desktop UI services are temporarily unavailable. Please wait a few seconds and continue.zNo elements found)Rectc                       e Zd ZU dZeed<   dZed   ed<   dZed   ed<    e	e
      Ze
d   dz  ed	<    e	e
      Ze
d   dz  ed
<    e	e
      Ze
d   dz  ed<   defdZdefdZy)	TreeStateTstatusNTreeElementNode	root_nodeScrollElementNodedom_nodedefault_factoryinteractive_nodesscrollable_nodesTextElementNodedom_informative_nodesreturnc                 z   g }| j                   s&|j                  t               dj                  |      S | j                  s2| j                   r&|j                  t
               dj                  |      S d}|g}t        | j                        D ]|  \  }}| d|j                   d|j                   d|j                   d|j                  j                          dt        j                  |j                         }|j                  |       ~ |j                  dj                  |             dj                  |      S N
z-# id|window|control_type|name|coords|metadata|)r   appendWARNING_MESSAGEjoinr   EMPTY_MESSAGE	enumeratewindow_namecontrol_typenamecenter	to_stringjsondumpsmetadata)selfpartsheaderrowsidxnoderows          e/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/macos_mcp/tree/views.pyinteractive_elements_to_stringz(TreeState.interactive_elements_to_string   s   {{LL)99U##%%$++LL'99U## Ax"4#9#9:ICE4++,Ad.?.?-@$))AdkkNcNcNeMffghlhrhrsw  tA  tA  iB  hC  DCKK ; 	TYYt_%yy    c                    g }| j                   s&|j                  t               dj                  |      S | j                  s2| j                   r&|j                  t
               dj                  |      S d}|g}t        | j                        }t        | j                        D ]  \  }}||z    d|j                   d|j                   d|j                   d|j                  j                          dt        j                  |j                          }|j                  |        |j                  dj                  |             dj                  |      S r   )r   r   r   r   r   r   lenr   r   r    r!   r"   r#   r$   r%   r&   r'   )r(   r)   r*   r+   
base_indexr,   r-   r.   s           r/   scrollable_elements_to_stringz'TreeState.scrollable_elements_to_string(   s   {{LL)99U##$$LL'99U##@x//0
"4#8#89IC#$Ad&6&6%7q9J9J8K1TYYKWX;;((*+1TZZ-F,GI  KK : 	TYYt_%yyr1   )__name__
__module____qualname__r   bool__annotations__r   r   r   r   listr   r   r   strr0   r5    r1   r/   r
   r
      s    FD-1Ix)*1.2Hh*+28=d8St-.5S9>t9Td./$6T<ARV<W4 12T9W   $ s  r1   r
   c                       e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   edd       Zdd	Zd
 Zd Z	de
eeeef   fdZdd defdZy)BoundingBoxlefttoprightbottomwidthheightr   c           
          dt         dt        fd} |  ||j                         ||j                         ||j                         ||j
                         ||j                         ||j                              S )Nvr   c                 p    t        j                  |       st        j                  |       rdS t        |       S )Nr   )mathisinfisnanint)rG   s    r/   	_safe_intz6BoundingBox.from_bounding_rectangle.<locals>._safe_intI   s%    A$**Q-1Dc!fDr1   )r@   rA   rB   rC   rD   rE   )floatrL   r@   rA   rB   rC   rD   rE   )clsbounding_rectanglerM   s      r/   from_bounding_rectanglez#BoundingBox.from_bounding_rectangleG   s    	E 	E3 	E-223,001.445/667.445/667
 	
r1   c                     t        | j                  | j                  dz  z   | j                  | j                  dz  z         S )N   xy)Centerr@   rD   rA   rE   r(   s    r/   
get_centerzBoundingBox.get_centerT   s3    		DJJ!O3txx$++QRBR7RSSr1   c           	      p    d| j                    d| j                   d| j                   d| j                   d	S N(,)r@   rA   rD   rE   rX   s    r/   xywh_to_stringzBoundingBox.xywh_to_stringW   s3    499+Qtxxj$**Qt{{m1EEr1   c           	      J    | j                         \  }}}}d| d| d| d| d	S r[   )convert_xywh_to_xyxyr(   x1y1x2y2s        r/   xyxy_to_stringzBoundingBox.xyxy_to_stringZ   s9    224BB2$at1RD"Q''r1   c                     | j                   | j                  }}| j                   | j                  z   | j                  | j                  z   }}||||fS Nr_   rc   s        r/   rb   z BoundingBox.convert_xywh_to_xyxy^   sD    DHHBTZZ'DKK)?B2r2~r1   otherc                     | j                   |j                   k  xrO | j                  |j                  k\  xr4 | j                  |j                  k  xr | j                  |j                  k\  S rj   )r@   rB   rA   rC   )r(   rk   s     r/   containszBoundingBox.containsc   sX    II# ,

ekk),EII%, u||+		
r1   N)rP   r   r   r?   )r   rW   )r6   r7   r8   rL   r:   classmethodrQ   rY   r`   rh   tuplerb   r9   rm   r=   r1   r/   r?   r?   >   sp    
I	HJKJK

 

TF(eCc3,>&? 

m 
 
r1   r?   c                   .    e Zd ZU eed<   eed<   defdZy)rW   rU   rV   r   c                 <    d| j                    d| j                   dS r[   rT   rX   s    r/   r$   zCenter.to_stringq   s    466(!DFF81%%r1   N)r6   r7   r8   rL   r:   r<   r$   r=   r1   r/   rW   rW   l   s    
F
F&3 &r1   rW   c                       e Zd ZU eed<   eed<   dZeed<   dZeed<   dZ	eed<    e
e      Zeeef   ed<   dd	Zd
efdZy)r   bounding_boxr#    r"   r!   r    r   r'   c                    |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        y rj   )r"   r!   r    valueshortcutrs   r#   r'   )r(   r-   s     r/   update_from_nodez TreeElementNode.update_from_node~   sc    II	 --++ZZ
 --kkr1   indexc                     || j                   | j                  | j                  | j                  | j                  | j
                  j                         | j                  gS rj   )r    r!   r"   rv   rw   r#   r$   
is_focused)r(   ry   s     r/   to_rowzTreeElementNode.to_row   sM    IIJJMMKK!!#OO	
 		
r1   N)r-   r   )r6   r7   r8   r?   r:   rW   r"   r<   r!   r    r   dictr'   r   rx   rL   r|   r=   r1   r/   r   r   u   sR    ND#NL#K$T:Hd38n:&

C 

r1   r   c                   v    e Zd ZU eed<   eed<   eed<   eed<   eed<    ee      Z	eee
f   ed<   ded	efd
Zy)r   r"   r!   r    rs   r#   r   r'   ry   r4   c                     ||z   | j                   | j                  | j                  | j                  j	                         t        j                  | j                        gS rj   )r    r!   r"   r#   r$   r%   r&   r'   )r(   ry   r4   s      r/   r|   zScrollElementNode.to_row   sM    IIKK!!#JJt}}%
 	
r1   N)r6   r7   r8   r<   r:   r?   rW   r   r}   r'   r   rL   r|   r=   r1   r/   r   r      sH    
IN$T:Hd38n:
C 
S 
r1   r   c                       e Zd ZU eed<   y)r   textN)r6   r7   r8   r<   r:   r=   r1   r/   r   r      s    
Ir1   r   )dataclassesr   r   typingr   r   r   rI   r%   r   r   macos_mcp.ax.corer   r
   r?   rW   r   r   r   ElementNoder=   r1   r/   <module>r      s    ( / /  p#& -  -  - ` *
 *
 *
Z & & & 
 
 
@ 
 
 
(     11OCr1   