�
ې�i� � �@ � d dl mZ d dlmZ ddlmZmZ G d� d� Zy)� )�annotations)�async_playwright� )�default_browser_path�profile_dirc �$ � e Zd Zdd�Zdd�Zdd�Zy)�BrowserSessionLifecyclec � � K � | j r| j � � d { ��� S t � j � � d { ��� | _ |xs
t � }| j j j t t � � ||dg�� � d { ��� | _ | j j d| j � | j j D ] }| j |� � | j j r| j j d n!| j j � � d { ��� | _ | j | j � | j � � d { ��� S 7 ��[7 ��>7 ��7 �D7 ��w)Nz--no-sandbox)�executable_path�headless�args�pager )�context�snapshotr �start�
playwrightr �chromium�launch_persistent_context�strr �on�_attach_page�pages�new_pager )�selfr r �browser_pathr s �R/home/riley/A2A-Server-MCP/codetether-agent/script/browserctl/session_lifecycle.pyr zBrowserSessionLifecycle.start s, � �� ��<�<�����(�(� 0� 2� 8� 8� :�:���&�@�*>�*@��!�_�_�5�5�O�O���
���x�We�Vf� P�
�
���
������� 1� 1�2��L�L�&�&� $�D����d�#� $�-1�\�\�-?�-?�D�L�L�&�&�q�)�4�<�<�K`�K`�Kb�Eb�� ����$�)�)�$��]�]�_�$�$� )��:��
�� Fc��$�sY � F �E=�F �F �AF �F�B'F � F�7F �8F�9F � F �F �F �F c � �� K � | j r"| j j � � d { ��� | j r"| j j � � d { ��� d | _ d | _ d | _ ddiS 7 �K7 ��w)N�okT)r �closer �stopr )r s r r zBrowserSessionLifecycle.stop sh � �� ��<�<��,�,�$�$�&�&�&��?�?��/�/�&�&�(�(�(��������� ��d�|��
'��(�s! �*A<�A8�-A<�A:�A<�:A<c � �� K � | j � � d { ��� }|j |j � � d { ��� |j d� j � � d { ��� d d d�S 7 �R7 �17 �
�w)N�bodyi� )�url�title�text)�current_pager# r$ �locator�
inner_text)r r s r r z BrowserSessionLifecycle.snapshot"