Ë
    :vžjx  ã                  ó¢   — d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 ddl
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  G d„ de«      Zy)úA terminals extension app.é    )ÚannotationsN)Úwhich)Úensure_async)ÚExtensionApp)Útrans)ÚTypeé   )Úapi_handlersÚhandlers)ÚTerminalManagerc                  óˆ   — e Zd ZU dZdZ eed¬«      j                  d¬«      Zde	d<   d	Z
dd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚTerminalsExtensionAppr   Újupyter_server_terminalsz"The terminal manager class to use.)Údefault_valueÚhelpT)Úconfigztype[TerminalManager]Úterminal_manager_classFc                óô   — | j                   r| j                   j                  s| j                  j                  ddi«       y| j	                  «        | j                  j                  d| j
                  dœ«       y)zInitialize settings.Úterminals_availableFNT)r   Úterminal_manager)Ú	serverappÚterminals_enabledÚsettingsÚupdateÚinitialize_configurablesr   ©Úselfs    úm/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyter_server_terminals/app.pyÚinitialize_settingsz)TerminalsExtensionApp.initialize_settings%   s\   € à�~Š~ T§^¡^×%EÒ%EØ�M‰M× Ñ Ð"7¸Ð!?Ô@ØØ×%Ñ%Ô'Ø�‰×ÑØ$(¸d×>SÑ>SÑTõ	
ó    c                ó²  — t         j                  dk(  rdn
t        d«      }| j                  €J ‚| j                  j                  j                  d«      }t        |t        «      rt        j                  |«      }|€$t         j                  j                  d«      xs |gn|}t         j                  dk7  r1|€/t        j                  j                  «       s|j                  d«       | j                  || j                  j                   | j                  j"                  dœ| j                  ¬	«      | _        | j                  j&                  | j$                  _        y)
zInitialize configurables.Úntzpowershell.exeÚshNÚshell_commandÚSHELLz-l)ÚJUPYTER_SERVER_ROOTÚJUPYTER_SERVER_URL)r%   Ú	extra_envÚparent)ÚosÚnamer   r   Úterminado_settingsÚgetÚ
isinstanceÚstrÚshlexÚsplitÚenvironÚsysÚstdoutÚisattyÚappendr   Úroot_dirÚconnection_urlr   Úlog)r   Údefault_shellÚshell_overrideÚshells       r   r   z.TerminalsExtensionApp.initialize_configurables/   s	  € ä,.¯G©G°tªOÑ(ÄÀtÃˆØ�~‰~Ð)Ð)Ð)ØŸ™×:Ñ:×>Ñ>¸ÓOˆÜ�n¤cÔ*Ü"Ÿ[™[¨Ó8ˆNà:HÐ:PŒR�Z‰Z�^‰^˜GÓ$Ò5¨Ñ6ÐVdð 	ô �7‰7�dŠ?˜~Ð5¼c¿j¹j×>OÑ>OÔ>QØ�L‰L˜Ôà $× ;Ñ ;Øà'+§~¡~×'>Ñ'>Ø&*§n¡n×&CÑ&Cñð —>‘>ð !<ó !
ˆÔð %)§N¡N×$6Ñ$6ˆ×ÑÕ!r!   c                óD  — | j                   sy| j                   j                  s1| j                  d   | j                   j                  j                  d<   y| j                  j                  dt        j                  d| j                  if«       | j                  j                  t        j                  «       | j                   €J ‚| j                  | j                   j                  j                  d<   | j                  d   | j                   j                  j                  d<   y)zInitialize handlers.Nr   z/terminals/websocket/(\w+)Úterm_managerr   )r   r   r   Úweb_appr   r7   Ú
TermSocketr   Úextendr   Údefault_handlersr   s    r   Úinitialize_handlersz)TerminalsExtensionApp.initialize_handlersK   sê   € à�~Š~àà�~‰~×/Ò/àEIÇ]Á]Ø%ñFˆD�N‰N×"Ñ"×+Ñ+Ð,AÑBð Ø�‰×Ñà-Ü×#Ñ#Ø ×!6Ñ!6Ð7ðô	
ð 	�‰×Ñœ\×:Ñ:Ô;Ø�~‰~Ð)Ð)Ð)Ø>B×>SÑ>Sˆ�‰×Ñ×'Ñ'Ð(:Ñ;ØAEÇÁØ!ñB
ˆ�‰×Ñ×'Ñ'Ð(=Ò>r!   c                óP   — | j                   r| j                  j                  }|r|S y)zGet current activity info.N)r   r   Ú	terminals)r   rF   s     r   Úcurrent_activityz&TerminalsExtensionApp.current_activitye   s(   € à×#Ò#Ø×-Ñ-×7Ñ7ˆIÙØ Ð Ør!   c              ƒ  ó  K  — | j                   sy| j                  }t        |j                  «       «      }t	        j
                  dd|«      }| j                  j                  d||«       t        |j                  «       «      ƒ d{  –—†  y7 Œ­w)z¹Shutdown all terminals.

        The terminals will shutdown themselves when this process no longer exists,
        but explicit shutdown allows the TerminalManager to cleanup.
        NzShutting down %d terminalzShutting down %d terminalsz%s %% %s)
r   r   ÚlenÚlistr   Úngettextr:   Úinfor   Úterminate_all)r   r   Ún_terminalsÚterminal_msgs       r   Úcleanup_terminalsz'TerminalsExtensionApp.cleanup_terminalsm   sx   è ø€ ð ×'Ò'Øà×0Ñ0ÐÜÐ*×/Ñ/Ó1Ó2ˆÜ—~‘~Ø'Ð)EÀ{ó
ˆð 	�‰�‰�j ,°Ô<ÜÐ+×9Ñ9Ó;Ó<×<Ò<ús   ‚BBÂBÂBc              ƒ  ó@   K  — | j                  «       ƒ d{  –—†  y7 Œ­w)zStop the extension.N)rP   r   s    r   Ústop_extensionz$TerminalsExtensionApp.stop_extension~   s   è ø€ à×$Ñ$Ó&×&Ò&ús   ‚–—N)ÚreturnÚNone)rS   zdict[str, t.Any] | None)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r,   r	   r   Útagr   Ú__annotations__r   r    r   rD   rG   rP   rR   © r!   r   r   r      sW   … Ù$à%€Dá48Ø%Ð,Pô5ç	�c�€cÓð Ð1ó ð  Ðó
ó7ó8
ó4ó=ô"'r!   r   )rX   Ú
__future__r   r+   r1   r4   ÚtypingÚtÚshutilr   Újupyter_core.utilsr   Ú$jupyter_server.extension.applicationr   Újupyter_server.transutilsr   Ú	traitletsr	   Ú r   r   Úterminalmanagerr   r   r[   r!   r   Ú<module>rf      s:   ðÙ  Ý "ã 	Û Û 
Û Ý å +Ý =Ý +Ý ç $Ý ,ôm'˜Lõ m'r!   