§
     ’Þj›  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlZ	 d dlZn# e$ r dZY nw xY w	 d dlmZ d dlmZ n# e$ r dZdZY nw xY wd dlmZmZmZ d dlmZ d d	lmZ d d
l m!Z!m"Z#m$Z%  e&edd¦  «        Z'e'€dn e&e'dd¦  «        Z'dZ(dZ)dZ*dZ+dZ,i dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d“d!d!“d"d!“d!d#d#d#d$d$d$d%d%d&d&d'œ¥Z-d2d*„Z. G d+„ d,e!¦  «        Z/d3d0„Z0g d1¢Z1dS )4é    )ÚannotationsN)ÚEventÚThread)ÚAny)ÚPromptSession)ÚKeyBindings)ÚchatÚtool_settingsÚui_settings)Úget_or_create_assistant_session)ÚGallery)ÚGenerationRuntimeÚRuntimeCallbacksÚRuntimeDepsÚwindllÚuser32é   é¢   é£   éS   )z    ____                       z   / __ \___  ___  ____  __  __z  / / / / _ \/ _ \/ __ \/ / / /z / /_/ /  __/  __/ /_/ / /_/ / z/_____/\___/\___/ .___/\__, /  z               /_/    /____/   Ú	gen_imageÚimageÚ	image_genÚgenerate_imageÚ
edit_imageÚeditÚ
image_editÚ	gen_videoÚvideoÚ	media_genÚgenerate_mediaÚgen_video_with_speechÚvideo_with_speechÚtalking_videoÚspeech_videoÚgen_songÚsongÚgen_speech_from_descriptionÚgen_speech_from_sampleÚ	gen_worldÚgen_3d)Úmusicr(   Úspeech_from_descriptionÚvoice_descriptionr)   Úspeech_from_sampleÚvoice_cloner*   Úworldr+   Ú3dÚreturnÚNonec                 ó®   — dD ]Q} t          t          | d ¦  «        }t          |d¦  «        r)	 |                     dd¬¦  «         ŒA# t          $ r Y ŒMw xY wŒRd S )N)ÚstdoutÚstderrÚreconfigurezutf-8Úreplace)ÚencodingÚerrors)ÚgetattrÚsysÚhasattrr8   Ú	Exception)Ústream_nameÚstreams     ú8C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\cli.pyÚ_reconfigure_stdiorC   N   s„   € Ø+ð ð ˆÝ�˜k¨4Ñ0Ô0ˆÝ�6˜=Ñ)Ô)ð 	ðØ×"Ò"¨G¸IÐ"ÑFÔFÐFÐFøÝð ð ð Ø�ðøøøð	ðð s   ¬AÁ
AÁAc                  ó„  — e Zd ZdVd„ZdWdXd	„ZdYd„ZdZd„Zd[d„Zd[d„Zd\d„Z	d]d„Z
ddœd^d„ZdWd_d„ZdYd„ZdYd„Zd`d„Zd]d „Zd]d!„Zdad$„Zdd%d&œdbd)„Zdd%d&œdcd+„Zd]d,„Zddd0„Zded1„Zdfd3„Zdgdhd7„Zd]d8„Zdid9„Zdjd<„Zd]d=„Zdkd>„Zd]d?„ZdldB„Z dmdC„Z!dmdD„Z"dndF„Z#dodH„Z$dpdI„Z%dqdK„Z&d]dL„Z'drdM„Z(dsdN„Z)dXdO„Z*dtdudR„Z+dvdT„Z,dwdU„Z-d4S )xÚDeepyCliSessionÚdepsÚDeepyCliDepsc                ó*  — || _         |                      ¦   «         | _        t          | j        ¦  «        | _        t          || j        ¦  «        | _        d| _        i | _        d| _	        d | _
        d| _        d| _        d | _        d | _        d| _        d S )NÚ F)Ú_depsÚ_build_stateÚ_stater   Ú_sessionÚ_VirtualGalleryÚ_galleryÚ_last_status_textÚ_assistant_live_print_stateÚ_interactiveÚ_prompt_sessionÚ_turn_activeÚ_turn_stop_requestedÚ_turn_hotkey_stopÚ_turn_hotkey_threadÚ_active_generation_client_id)ÚselfrF   s     rB   Ú__init__zDeepyCliSession.__init__Y   sŽ   € ØˆŒ
Ø×'Ò'Ñ)Ô)ˆŒÝ7¸¼ÑDÔDˆŒÝ'¨¨d¬kÑ:Ô:ˆŒØ!#ˆÔØFHˆÔ(Ø!ˆÔØ#ˆÔØ!ˆÔØ$)ˆÔ!Ø/3ˆÔØ26ˆÔ Ø,.ˆÔ)Ð)Ð)ó    rI   ÚtextÚstrr3   r4   c                ó(   — t          |d¬¦  «         d S )NT)Úflush)Úprint©rY   r\   s     rB   Ú_printzDeepyCliSession._printi   s   € Ýˆd˜$ÐÑÔÐÐÐr[   Úboolc                ó|   — t          t          dd ¦  «        }t           t          |dd„ ¦  «        ¦   «         ¦  «        S )Nr6   Úisattyc                 ó   — dS ©NF© rh   r[   rB   ú<lambda>z?DeepyCliSession._supports_terminal_formatting.<locals>.<lambda>n   s   € °e€ r[   )r<   r=   rc   )rY   rA   s     rB   Ú_supports_terminal_formattingz-DeepyCliSession._supports_terminal_formattingl   s8   € Ý�˜h¨Ñ-Ô-ˆÝÐ<•G˜F H¨m¨mÑ<Ô<Ñ>Ô>Ñ?Ô?Ð?r[   Úcodec                óˆ   — t          |pd¦  «        }|                      ¦   «         rt          |¦  «        dk    r|S d|› d|› d�S )NrI   r   z[Úmz[0m)r]   rj   Úlen)rY   r\   rk   Úrendereds       rB   Ú_style_terminal_textz$DeepyCliSession._style_terminal_textp   sS   € Ý�t�z˜r‘?”?ˆØ×1Ò1Ñ3Ô3ð 	µs¸8±}´}ÈÒ7IÐ7IØˆOØ/�tÐ/Ð/˜hÐ/Ð/Ð/Ð/r[   c                óú   — g }t          |pd¦  «                             d¦  «        D ]@}|                     t          |¦  «        dk    r|                      |d¦  «        nd¦  «         ŒAd                     |¦  «        S )NrI   ú
r   Ú3)r]   ÚsplitÚappendrn   rp   Újoin)rY   r\   ÚlinesÚlines       rB   Ú_italicize_terminal_blockz)DeepyCliSession._italicize_terminal_blockv   s{   € ØˆÝ˜˜
 ‘O”O×)Ò)¨$Ñ/Ô/ð 	Xð 	XˆDØ�LŠLÅÀTÁÄÈQÂÀ˜×2Ò2°4¸Ñ=Ô=Ð=ÐTVÑWÔWÐWÐWØ�yŠy˜ÑÔÐr[   c                óì  ‡ — g }d}t          |pd¦  «                             dd¦  «                             dd¦  «                             d¦  «        D �]}|                     ¦   «         }|                     d¦  «        r| }Œ0|r*|                     ‰                      |d¦  «        ¦  «         Œ\|}t          j        d|¦  «        }|�Q| 	                    d	¦  «                             ¦   «         }|                     ‰                      |d
¦  «        ¦  «         ŒÆt          j
        dˆ fd„|¦  «        }t          j
        dˆ fd„|¦  «        }|                     |¦  «         �Œd                     |¦  «        S )NFrI   z
rr   úz```Ú96z^\s{0,3}(#{1,6})\s+(.*)$é   Ú1z\*\*([^*\n]+)\*\*c                óV   •— ‰                      |                      d¦  «        d¦  «        S )Né   r~   ©rp   Úgroup©ÚmatchrY   s    €rB   ri   z;DeepyCliSession._render_terminal_markdown.<locals>.<lambda>�   s(   ø€ ¸d×>WÒ>WÐX]×XcÒXcÐdeÑXfÔXfÐhkÑ>lÔ>l€ r[   z`([^`\n]+)`c                óV   •— ‰                      |                      d¦  «        d¦  «        S )Nr€   r|   r�   rƒ   s    €rB   ri   z;DeepyCliSession._render_terminal_markdown.<locals>.<lambda>Ž   s(   ø€ ¸×8QÒ8QÐRW×R]ÒR]Ð^_ÑR`ÔR`ÐbfÑ8gÔ8g€ r[   )r]   r9   rt   ÚstripÚ
startswithru   rp   Úrer„   r‚   Úsubrv   )	rY   r\   Úrendered_linesÚin_code_blockÚraw_lineÚstrippedrx   Úheading_matchÚheading_texts	   `        rB   Ú_render_terminal_markdownz)DeepyCliSession._render_terminal_markdown|   s}  ø€ ØˆØˆÝ˜D˜J B™œ×/Ò/°¸Ñ=Ô=×EÒEÀdÈDÑQÔQ×WÒWÐX\Ñ]Ô]ð 	(ñ 	(ˆHØ—~’~Ñ'Ô'ˆHØ×"Ò" 5Ñ)Ô)ð Ø$1Ð 1�ØØð Ø×%Ò% d×&?Ò&?ÀÈ$Ñ&OÔ&OÑPÔPÐPØØˆDÝœHÐ%@À$ÑGÔGˆMØÐ(Ø,×2Ò2°1Ñ5Ô5×;Ò;Ñ=Ô=�Ø×%Ò% d×&?Ò&?ÀÈcÑ&RÔ&RÑSÔSÐSØÝ”6Ð.Ð0lÐ0lÐ0lÐ0lÐnrÑsÔsˆDÝ”6˜.Ð*gÐ*gÐ*gÐ*gÐimÑnÔnˆDØ×!Ò! $Ñ'Ô'Ð'Ñ'Ø�yŠy˜Ñ(Ô(Ð(r[   ú
str | Nonec                óÊ   — t          |pd¦  «                             ¦   «         }t          |¦  «        dk    s|| j        k    rd S || _        |                      d|› �¦  «         d S )NrI   r   z[Deepy] )r]   r†   rn   rP   rb   ra   s     rB   Ú_print_statuszDeepyCliSession._print_status’   sg   € Ý�4�:˜2‰Œ×$Ò$Ñ&Ô&ˆÝˆt‰9Œ9˜Š>ˆ>˜T TÔ%;Ò;Ð;ØˆFØ!%ˆÔØ�ŠÐ%˜tÐ%Ð%Ñ&Ô&Ð&Ð&Ð&r[   c                ó   — d| _         d S ©NrI   )rP   ©rY   s    rB   Ú_reset_statuszDeepyCliSession._reset_status™   s   € Ø!#ˆÔÐÐr[   F©ÚfirstÚnamer™   r   c               ó&  — t          | j        j        t          ¦  «        r| j        j        nd }|€|rd ng S 	 |r |j        |g|¢R i |¤Žn |j        |g|¢R i |¤ŽS # t          $ r+}|                      d|› d|› �¦  «         |rd ng cY d }~S d }~ww xY w)Nz[ERROR] Deepy CLI callback 'z
' failed: )Ú
isinstancerJ   Ú	callbacksÚDeepyCliCallbacksÚ
emit_firstÚemitr?   rb   )rY   rš   r™   ÚargsÚkwargsr�   Úexcs          rB   Ú_emit_cli_callbackz"DeepyCliSession._emit_cli_callbackœ   sî   € Ý,6°t´zÔ7KÕM^Ñ,_Ô,_Ði�D”JÔ(Ð(Ðeiˆ	ØÐØ Ð(�4�4 bÐ(ð	)ØBGÐrÐ'�9Ô'¨Ð>¨tÐ>Ð>Ð>°vÐ>Ð>Ð>È^ÈYÌ^Ð\`ÐMrÐcgÐMrÐMrÐMrÐkqÐMrÐMrÐrøÝð 	)ð 	)ð 	)Ø�KŠKÐL°tÐLÐLÀsÐLÐLÑMÔMÐMØ Ð(�4�4 bÐ(Ð(Ð(Ð(Ð(Ð(øøøøð	)øøøs   ·#A Á
BÁ% BÂBÂBÚ	client_idc                ó„   — |                       d| j        t          |pd¦  «                             ¦   «         d¬¦  «         d S )NÚabort_generationrI   Tr˜   )r¤   rL   r]   r†   ©rY   r¥   s     rB   Ú_abort_generationz!DeepyCliSession._abort_generation¦   sB   € Ø×ÒÐ 2°D´KÅÀYÀ_ÐRTÑAUÔAU×A[ÒA[ÑA]ÔA]ÐeiÐÑjÔjÐjÐjÐjr[   c                óÒ  — | j         sdS d| j        _        | j        sYd| _        |                      d¦  «         |                      d| t          | j        pd¦  «                             ¦   «         ¦  «         t          | j        pd¦  «                             ¦   «         }t          |¦  «        dk    s!| j
        d                              dd¦  «        r|                      |¦  «         dS )	NFTz[Deepy] Stop requested.Ústop_requestedrI   r   ÚgenÚin_progress)rT   rM   Úinterrupt_requestedrU   rb   r¤   r]   rX   r†   rn   rL   Úgetr©   r¨   s     rB   Ú_request_stop_current_turnz*DeepyCliSession._request_stop_current_turn©   sà   € ØÔ ð 	Ø�5Ø,0ˆŒÔ)ØÔ(ð 	rØ(,ˆDÔ%Ø�KŠKÐ1Ñ2Ô2Ð2Ø×#Ò#Ð$4°d½CÀÔ@aÐ@gÐegÑ<hÔ<h×<nÒ<nÑ<pÔ<pÑqÔqÐqÝ˜Ô9Ð?¸RÑ@Ô@×FÒFÑHÔHˆ	Ýˆy‰>Œ>˜AÒÐ ¤¨UÔ!3×!7Ò!7¸ÀuÑ!MÔ!MÐØ×"Ò" 9Ñ-Ô-Ð-Øˆtr[   c                óð   — t           €dS 	 t          d„ t          t          t          fD ¦   «         ¦  «        }|o.t          t                                t          ¦  «        dz  ¦  «        S # t          $ r Y dS w xY w)NFc              3  ój   K  — | ].}t          t                               |¦  «        d z  ¦  «        V — Œ/dS )é €  N)rc   Ú_USER32ÚGetAsyncKeyState)Ú.0Úvk_codes     rB   ú	<genexpr>z2DeepyCliSession._ctrl_s_pressed.<locals>.<genexpr>º   sQ   è è € ð ð àõ •W×-Ò-¨gÑ6Ô6¸Ñ?Ñ@Ô@ðð ð ð ð ð r[   r³   )	r´   ÚanyÚ_VK_CONTROLÚ_VK_LCONTROLÚ_VK_RCONTROLrc   rµ   Ú_VK_Sr?   )rY   Ú	ctrl_downs     rB   Ú_ctrl_s_pressedzDeepyCliSession._ctrl_s_pressed¶   s�   € Ýˆ?Ø�5ð	Ýð ð å +­\½<ÐHðñ ô ñ ô ˆIð ÐO¥¥g×&>Ò&>½uÑ&EÔ&EÈÑ&NÑ!OÔ!OÐOøÝð 	ð 	ð 	Ø�5�5ð	øøøs   ‹AA' Á'
A5Á4A5Ú
stop_eventr   c                ó0  — | j         rt          €d S d}|                     ¦   «         sï|                      ¦   «         }|r|sd}|                      ¦   «          n|sd}	 t          j        ¦   «         st          j        d¦  «         Œpt          j        ¦   «         }n# t          $ r Y d S w xY w|dv r:	 t          j        ¦   «         rt          j        ¦   «          n# t          $ r Y d S w xY wŒÓ|dk    r|                      ¦   «          |                     ¦   «         ¯íd S d S )NFTgš™™™™™©?>   õ   Ã ú ú)
rR   ÚmsvcrtÚis_setr¿   r°   ÚkbhitÚtimeÚsleepÚgetwchr?   )rY   rÀ   Úctrl_s_activeÚhotkey_downÚkeys        rB   Ú_monitor_turn_shortcutsz'DeepyCliSession._monitor_turn_shortcutsÂ   s`  € ØÔ ð 	¥F NØˆFØˆØ×#Ò#Ñ%Ô%ð 	2Ø×.Ò.Ñ0Ô0ˆKØð & =ð &Ø $�Ø×/Ò/Ñ1Ô1Ð1Ð1Ø ð &Ø %�ðÝ”|‘~”~ð Ý”J˜tÑ$Ô$Ð$ØÝ”m‘o”o��øÝð ð ð Ø��ðøøøàÐ&Ð&Ð&ðÝ”|‘~”~ð (Ýœ™œ˜øøÝ ð ð ð Ø�F�FðøøøàØ�fŠ}ˆ}Ø×/Ò/Ñ1Ô1Ð1ð- ×#Ò#Ñ%Ô%ð 	2ð 	2ð 	2ð 	2ð 	2s*   Á'B ÂB Â
B%Â$B%Â-&C Ã
C"Ã!C"c                óÔ   — d | _         d | _        | j        rt          €d S t	          ¦   «         }t          | j        |fdd¬¦  «        }|| _         || _        |                     ¦   «          d S )NTÚDeepyCliStopHotkey)Útargetr¡   Údaemonrš   )rV   rW   rR   rÅ   r   r   rÎ   Ústart©rY   rÀ   Úthreads      rB   Ú_start_turn_shortcut_monitorz,DeepyCliSession._start_turn_shortcut_monitorÞ   sm   € Ø!%ˆÔØ#'ˆÔ ØÔ ð 	¥F NØˆFÝ‘W”Wˆ
Ý˜tÔ;À:À-ÐX\ÐcwÐxÑxÔxˆØ!+ˆÔØ#)ˆÔ Ø�Š‰Œˆˆˆr[   c                óž   — | j         }| j        }d | _         d | _        |�|                     ¦   «          |�|                     d¬¦  «         d S d S )Ngš™™™™™É?)Útimeout)rV   rW   Úsetrv   rÔ   s      rB   Ú_stop_turn_shortcut_monitorz+DeepyCliSession._stop_turn_shortcut_monitoré   s`   € ØÔ+ˆ
ØÔ)ˆØ!%ˆÔØ#'ˆÔ ØÐ!Ø�NŠNÑÔÐØÐØ�KŠK ˆKÑ$Ô$Ð$Ð$Ð$ð Ðr[   Ú
message_idúdict[str, str]c                ó€   — | j                              t          |pd¦  «                             ¦   «         dddœ¦  «        S )NrI   )Ú	reasoningÚcontent)rQ   Ú
setdefaultr]   r†   )rY   rÛ   s     rB   Ú_assistant_print_statez&DeepyCliSession._assistant_print_stateó   s>   € ØÔ/×:Ò:½3¸zÐ?OÈRÑ;PÔ;P×;VÒ;VÑ;XÔ;XÐhjÐwyÐZzÐZzÑ{Ô{Ð{r[   T©ÚitalicÚshow_prefixrã   rä   c               ó   — |                       |¦  «        }|r|                      |¦  «        }|s|                      |¦  «         d S d|vr|                      d|› �¦  «         d S |                      d¦  «         |                      |¦  «         d S )Nrr   úDeepy> zDeepy>)r�   ry   rb   )rY   r\   rã   rä   ro   s        rB   Ú_print_assistant_blockz&DeepyCliSession._print_assistant_blockö   s§   € Ø×1Ò1°$Ñ7Ô7ˆØð 	@Ø×5Ò5°hÑ?Ô?ˆHØð 	"Ø�KŠK˜Ñ!Ô!Ð!Ð!Ð!Ø˜Ð!Ð!Ø�KŠKÐ, (Ð,Ð,Ñ-Ô-Ð-Ð-Ð-à�KŠK˜Ñ!Ô!Ð!Ø�KŠK˜Ñ!Ô!Ð!Ð!Ð!r[   Úfieldc               ó,  — t          |pd¦  «                             ¦   «         }t          |¦  «        dk    rdS |                      |¦  «        }t          |                     |d¦  «        pd¦  «        }||k    rdS t          |¦  «        dk    r@|                     |¦  «        r+|t          |¦  «        d …                              d¦  «        }	n|}	|||<   t          |	                     ¦   «         ¦  «        dk    rdS |                      |	||¬¦  «         dS )NrI   r   Frr   râ   T)r]   r†   rn   rá   r¯   r‡   Úlstriprç   )
rY   rÛ   r\   rè   rã   rä   Únormalized_textÚstateÚpreviousÚdeltas
             rB   Ú_print_assistant_deltaz&DeepyCliSession._print_assistant_delta  s  € Ý˜d˜j b™/œ/×/Ò/Ñ1Ô1ˆÝˆÑÔ 1Ò$Ð$Ø�5Ø×+Ò+¨JÑ7Ô7ˆÝ�u—y’y ¨Ñ+Ô+Ð1¨rÑ2Ô2ˆØ˜hÒ&Ð&Ø�5Ýˆx‰=Œ=˜1ÒÐ ×!;Ò!;¸HÑ!EÔ!EÐØ#¥C¨¡M¤M N NÔ3×:Ò:¸4Ñ@Ô@ˆEˆEà#ˆEØ&ˆˆe‰Ýˆu�{Š{‰}Œ}ÑÔ Ò"Ð"Ø�5Ø×#Ò# E°&ÀkÐ#ÑRÔRÐRØˆtr[   c                ó  — t           t          | j        j        dd„ ¦  «        ¦   «         pd¦  «        dk    rd S | j        j        D ]¹}t          |                     dd¦  «        ¦  «                             ¦   «         dk    rŒ<t          |                     dd¦  «        pd¦  «                             ¦   «         }t          j
        | j        |¦  «                             ¦   «         }|                      ||d	d
d¬¦  «         Œºd S )NÚget_verbose_levelc                 ó   — dS ©Nr   rh   rh   r[   rB   ri   zADeepyCliSession._flush_live_assistant_reasoning.<locals>.<lambda>  s   € È1€ r[   r   r€   ÚrolerI   Ú	assistantÚidrÞ   TF©rè   rã   rä   )Úintr<   rJ   Ú
controllerrM   Úchat_transcriptr]   r¯   r†   Úassistant_chatÚget_message_reasoning_contentrï   )rY   ÚrecordrÛ   Úreasoning_texts       rB   Ú_flush_live_assistant_reasoningz/DeepyCliSession._flush_live_assistant_reasoning  s  € ÝÐM�w�t”zÔ,Ð.AÀ9À9ÑMÔMÑOÔOÐTÐSTÑUÔUÐXYÒYÐYØˆFØ”mÔ3ð 	wð 	wˆFÝ�6—:’:˜f bÑ)Ô)Ñ*Ô*×0Ò0Ñ2Ô2°kÒAÐAØÝ˜VŸZšZ¨¨bÑ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ˆJÝ+ÔIÈ$Ì-ÐYcÑdÔd×jÒjÑlÔlˆNØ×'Ò'¨
°NÈ+Ð^bÐpuÐ'ÑvÔvÐvÐvð	wð 	wr[   rý   údict[str, Any]úlist[dict[str, Any]]c                óâ   — |                      dd ¦  «        }t          |t          ¦  «        rd„ |D ¦   «         S |                      dd ¦  «        }t          |t          ¦  «        rd„ |D ¦   «         S g S )NÚblocksc                óÒ   — g | ]d}t          |t          ¦  «        ¯t          |                     d d¦  «        ¦  «                             ¦   «                              ¦   «         dk    ¯b|‘ŒeS )ÚtyperI   Útool)rœ   Údictr]   r¯   r†   Úlower©r¶   Úblocks     rB   ú
<listcomp>z5DeepyCliSession._iter_tool_blocks.<locals>.<listcomp>!  s‰   € ð  Cð  Cð  C˜eµ¸EÅ4Ñ1HÔ1Hð  CÍSÐQV×QZÒQZÐ[aÐceÑQfÔQfÑMgÔMg×MmÒMmÑMoÔMo×MuÒMuÑMwÔMwð  |Bò  NBð  NB�Eð  NBð  NBð  NBr[   Útoolsc                ó^   — g | ]*}t          |t          ¦  «        ¯t          |pi d ¬¦  «        ‘Œ+S )r  )r  )rœ   r  r	  s     rB   r  z5DeepyCliSession._iter_tool_blocks.<locals>.<listcomp>$  s;   € ÐhÐhÐh°uÕPZÐ[`ÕbfÑPgÔPgÐh•D˜˜ "¨6Ð2Ñ2Ô2ÐhÐhÐhr[   )r¯   rœ   Úlist)rY   rý   r  Úlegacy_toolss       rB   Ú_iter_tool_blocksz!DeepyCliSession._iter_tool_blocks  s�   € Ø—’˜H dÑ+Ô+ˆÝ�f�dÑ#Ô#ð 	Cð Cð  C vð  Cñ  Cô  Cð  CØ—z’z '¨4Ñ0Ô0ˆÝ�l¥DÑ)Ô)ð 	iØhÐhÀÐhÑhÔhÐhØˆ	r[   c           	     óà  — d}|                       |¦  «        D �]T}|                     dd ¦  «        }t          |t          ¦  «        sŒ/t	          |                     dd¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    rŒzt	          |                     dd¦  «        p|                     dd¦  «        pd¦  «                             ¦   «         }t	          |                     d	d¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    r|› d
|› �n|}|                      d|› dt          j	         
                    |¦  «        › �¦  «         d}�ŒV|S )NFÚresultÚoutput_filerI   r   Úlabelrš   ÚToolÚmedia_idz -> ræ   ú: T)r  r¯   rœ   r  r]   r†   rn   rb   ÚosÚpathÚabspath)	rY   rý   Úprinted_anyr
  r  r  Ú
tool_labelr  Úprefixs	            rB   Ú_print_tool_outputsz#DeepyCliSession._print_tool_outputs'  s`  € ØˆØ×+Ò+¨FÑ3Ô3ð 	ñ 	ˆEØ—Y’Y˜x¨Ñ.Ô.ˆFÝ˜f¥dÑ+Ô+ð ØÝ˜fŸjšj¨¸Ñ;Ô;ÐA¸rÑBÔB×HÒHÑJÔJˆKÝ�;ÑÔ 1Ò$Ð$ØÝ˜UŸYšY w°Ñ3Ô3ÐV°u·y²yÀÈÑ7LÔ7LÐVÐPVÑWÔW×]Ò]Ñ_Ô_ˆJÝ˜6Ÿ:š: j°"Ñ5Ô5Ð;¸Ñ<Ô<×BÒBÑDÔDˆHÝ69¸(±m´mÀaÒ6GÐ6G˜
Ð2Ð2¨Ð2Ð2Ð2ÈZˆFØ�KŠKÐJ &ÐJÐJ­B¬G¯OªO¸KÑ,HÔ,HÐJÐJÑKÔKÐKØˆK‰KØÐr[   Úpayloadc                óT  — t          |pd¦  «                             ¦   «         }t          |¦  «        dk    rd S 	 t          j        |¦  «        }n# t
          $ r Y d S w xY w|                     dd ¦  «        }t          |t          ¦  «        r0|D ]+}|  	                    t          j
        |d¬¦  «        ¦  «         Œ,d S |                     d|¦  «        }t          |t          ¦  «        sd S |                     d¦  «        dk    �r&|                     dd ¦  «        }t          |t          ¦  «        rå|                     d	d¦  «        rÏt          t          |                     d
d¦  «        ¦  «                             ¦   «         ¦  «        dk    r‰t          |                     d
d¦  «        ¦  «                             ¦   «         }|                     d¦  «        r|                      ¦   «          |                      |                     d
d¦  «        ¦  «         d S |                      ¦   «          d S d S )NrI   r   ÚbatchF)Úensure_asciiÚeventr  ÚstatusÚvisibler\   zUsing )r]   r†   rn   ÚjsonÚloadsr?   r¯   rœ   r  Ú_consume_chat_payloadÚdumpsr  r‡   rÿ   r“   r—   )	rY   r  Úpayload_textÚenveloper!  Úitemr#  r$  Ústatus_texts	            rB   r(  z%DeepyCliSession._consume_chat_payload7  s  € Ý˜7˜= bÑ)Ô)×/Ò/Ñ1Ô1ˆÝˆ|ÑÔ Ò!Ð!ØˆFð	Ý”z ,Ñ/Ô/ˆHˆHøÝð 	ð 	ð 	ØˆFˆFð	øøøà—’˜W dÑ+Ô+ˆÝ�e�TÑ"Ô"ð 	Øð Qð Q�Ø×*Ò*­4¬:°dÈÐ+OÑ+OÔ+OÑPÔPÐPÐPØˆFØ—’˜W hÑ/Ô/ˆÝ˜%¥Ñ&Ô&ð 	ØˆFØ�9Š9�VÑÔ Ò(Ñ(Ø—Y’Y˜x¨Ñ.Ô.ˆFÝ˜&¥$Ñ'Ô'ð %¨F¯JªJ°yÀ%Ñ,HÔ,Hð %ÍSÕQTÐU[×U_ÒU_Ð`fÐhjÑUkÔUkÑQlÔQl×QrÒQrÑQtÔQtÑMuÔMuÐxyÒMyÐMyÝ! &§*¢*¨V°RÑ"8Ô"8Ñ9Ô9×?Ò?ÑAÔA�Ø×)Ò)¨(Ñ3Ô3ð ;Ø×8Ò8Ñ:Ô:Ð:Ø×"Ò" 6§:¢:¨f°bÑ#9Ô#9Ñ:Ô:Ð:Ð:Ð:à×"Ò"Ñ$Ô$Ð$Ð$Ð$ð )Ð(s   ºA Á
AÁANÚcmdÚdatac                ót  — |dk    r&|                       t          |pd¦  «        ¦  «         d S |dk    r|                      |¦  «         d S |dk    r| j                             |¦  «         d S |dk    r&|                      t          |pd¦  «        ¦  «         d S |dk    r|                      d|› �¦  «         d S d S )NÚchat_outputrI   Úload_queue_triggerÚrefresh_galleryÚabort_client_idÚerrorú[ERROR] )r(  r]   Ú_process_inline_queuerO   Úsync_refresh_pathr©   rb   )rY   r.  r/  s      rB   Ú	_send_cmdzDeepyCliSession._send_cmdT  sà   € Ø�-ÒÐØ×&Ò&¥s¨4¨:°2¡¤Ñ7Ô7Ð7Ð7Ð7ØÐ(Ò(Ð(Ø×&Ò& tÑ,Ô,Ð,Ð,Ð,ØÐ%Ò%Ð%ØŒM×+Ò+¨DÑ1Ô1Ð1Ð1Ð1ØÐ%Ò%Ð%Ø×"Ò"¥3 t z¨r¡?¤?Ñ3Ô3Ð3Ð3Ð3Ø�GŠ^ˆ^Ø�KŠKÐ) 4Ð)Ð)Ñ*Ô*Ð*Ð*Ð*ð ˆ^r[   c                ó¨   — | j         j                             | j        ¦  «         | j                             ¦   «          |                      ¦   «          d S ©N)rJ   rù   Úreset_airL   rQ   Úclearr—   r–   s    rB   Ú_reset_conversationz#DeepyCliSession._reset_conversation`  sJ   € ØŒ
Ô×&Ò& t¤{Ñ3Ô3Ð3ØÔ(×.Ò.Ñ0Ô0Ð0Ø×ÒÑÔÐÐÐr[   c                ó\   — t          | j        j                             ¦   «         pg ¦  «        S r;  )r  rJ   rù   Úlist_saved_sessionsr–   s    rB   Ú_saved_sessionszDeepyCliSession._saved_sessionse  s&   € Ý�D”JÔ)×=Ò=Ñ?Ô?ÐEÀ2ÑFÔFÐFr[   Ú	referenceúdict[str, Any] | Nonec                óî  ‡— |                       ¦   «         }t          |pd¦  «                             ¦   «         }|                     ¦   «         rBdt	          |¦  «        cxk    rt          |¦  «        k    rn n|t	          |¦  «        dz
           S |                     ¦   «         Šˆfd„|D ¦   «         }t          |¦  «        dk    r|d         S ˆfd„|D ¦   «         }t          |¦  «        dk    r|d         nd S )NrI   r€   c                óø   •— g | ]v}t          |                     d d¦  «        ¦  «                             ¦   «         ‰k    s9t          |                     dd¦  «        ¦  «                             ¦   «         ‰k    ¯t|‘ŒwS )rö   rI   Útitle©r]   r¯   Úcasefold©r¶   r,  Úfoldeds     €rB   r  z:DeepyCliSession._resolve_saved_session.<locals>.<listcomp>n  sª   ø€ ð  Oð  Oð  O˜$­c°$·(²(¸4ÀÑ2DÔ2DÑ.EÔ.E×.NÒ.NÑ.PÔ.PÐTZÒ.ZÐ.ZÕ^aÐbf×bjÒbjÐkrÐtvÑbwÔbwÑ^xÔ^x÷  _Bò  _Bñ  _Dô  _Dð  HNò  _Nð  _N�ð  _Nð  _Nð  _Nr[   r   c           	     ó†   •— g | ]=}‰¯‰t          |                     d d¦  «        ¦  «                             ¦   «         v ¯;|‘Œ>S )rF  rI   rG  rI  s     €rB   r  z:DeepyCliSession._resolve_saved_session.<locals>.<listcomp>q  sL   ø€ ÐkÐkÐk˜D°Ðk¸6ÅSÈÏÊÐRYÐ[]ÑI^ÔI^ÑE_ÔE_×EhÒEhÑEjÔEjÐ;jÐ;j�4Ð;jÐ;jÐ;jr[   )rA  r]   r†   Úisdigitrø   rn   rH  )rY   rB  ÚsessionsÚvalueÚexactÚpartialrJ  s         @rB   Ú_resolve_saved_sessionz&DeepyCliSession._resolve_saved_sessionh  s  ø€ Ø×'Ò'Ñ)Ô)ˆÝ�I�O Ñ$Ô$×*Ò*Ñ,Ô,ˆØ�=Š=‰?Œ?ð 	,˜q¥C¨¡J¤JÐ?Ð?Ò?Ð?µ#°h±-´-Ò?Ð?Ð?Ð?Ð?Ø�C ™JœJ¨™NÔ+Ð+Ø—’Ñ!Ô!ˆð Oð  Oð  Oð  O (ð  Oñ  Oô  OˆÝˆu‰:Œ:˜Š?ˆ?Ø˜”8ˆOØkÐkÐkÐk HÐkÑkÔkˆÝ  ™\œ\¨QÒ.Ð.ˆw�qŒzˆz°DÐ8r[   c                óª  — |                       ¦   «         }|s|                      d¦  «         d S t          | j        j        pd¦  «        }t          |d¦  «        D ]y\  }}t          |                     dd¦  «        ¦  «        |k    rdnd}|                      d|› d|                     dd	¦  «        › d
|                     dd¦  «        › d|› �¦  «         Œzd S )NzNo saved Deepy sessions.rI   r€   rö   z *z  z. rF  úDeepy sessionz [ú])rA  rb   r]   rM   Ústorage_session_idÚ	enumerater¯   )rY   rM  Ú	active_idÚindexr,  Úmarkers         rB   Ú_list_saved_sessionsz$DeepyCliSession._list_saved_sessionst  só   € Ø×'Ò'Ñ)Ô)ˆØð 	Ø�KŠKÐ2Ñ3Ô3Ð3ØˆFÝ˜œÔ8Ð>¸BÑ?Ô?ˆ	Ý$ X¨qÑ1Ô1ð 	kð 	k‰KˆE�4Ý  §¢¨$°Ñ!3Ô!3Ñ4Ô4¸	ÒAÐA�T�TÀrˆFØ�KŠKÐi˜UÐiÐi d§h¢h¨w¸Ñ&HÔ&HÐiÐiÈDÏHÊHÐUYÐ[]ÑL^ÔL^ÐiÐiÐagÐiÐiÑjÔjÐjÐjð	kð 	kr[   c           	     óö  — | j         j                             ¦   «         s|                      d¦  «         d S |                      |¦  «        }|€|                      d¦  «         d S 	 | j         j                             | j        t          |                     dd¦  «        ¦  «        ¦  «        }n0# t          $ r#}|                      d|› �¦  «         Y d }~d S d }~ww xY w| j
                             ¦   «          |                      ¦   «          |                      d|                     dd¦  «        › d	|d
         d›d|d         › d�¦  «         |                     dg ¦  «        D ]}|                      d|› �¦  «         Œ| j        j        �st          | j        j        ¦  «        }|                      d¦  «         | j         j                             | j        | j        ¬¦  «        D ]}Œ|                      |¦  «         d S d S )NúL[ERROR] Enable multi-session mode in Deepy Settings and restart WanGP first.zb[ERROR] Select a unique session by number, exact title, or session id. Use /sessions to list them.rö   rI   r6  zResumed rF  rS  z (Úprefill_tokensú,z context tokens; Úinjectedz Gallery item(s) injected).Úwarningsz[WARN] z6Replaying the interrupted action from its beginning...)Úcommand_callback)rJ   rù   Úmulti_session_enabledrb   rQ  Úresume_saved_sessionrL   r]   r¯   r?   rQ   r=  r—   rM   Úpending_action_replayrn   rú   Úresume_restored_actionr9  Ú_print_new_assistant_messages)rY   rB  Úselectedr  r£   ÚwarningÚtranscript_startÚ_updates           rB   Ú_resume_saved_sessionz%DeepyCliSession._resume_saved_session~  sI  € ØŒzÔ$×:Ò:Ñ<Ô<ð 	Ø�KŠKÐfÑgÔgÐgØˆFØ×.Ò.¨yÑ9Ô9ˆØÐØ�KŠKÐ|Ñ}Ô}Ð}ØˆFð	Ø”ZÔ*×?Ò?ÀÄÍSÐQY×Q]ÒQ]Ð^bÐdfÑQgÔQgÑMhÔMhÑiÔiˆFˆFøÝð 	ð 	ð 	Ø�KŠKÐ( 3Ð(Ð(Ñ)Ô)Ð)ØˆFˆFˆFˆFˆFøøøøð	øøøð 	Ô(×.Ò.Ñ0Ô0Ð0Ø×ÒÑÔÐØ�Šð  f˜xŸ|š|¨G°_ÑEÔEð  fð  fÈÐP`ÔIað  fð  fð  fÐv|ð  ~Hô  wIð  fð  fð  fñ  	gô  	gð  	gØ—z’z *¨bÑ1Ô1ð 	-ð 	-ˆGØ�KŠKÐ+ 'Ð+Ð+Ñ,Ô,Ð,Ð,ØŒ=Ô.Ð:Ý" 4¤=Ô#@ÑAÔAÐØ�KŠKÐPÑQÔQÐQØœ:Ô0×GÒGÈÌÐfjÔftÐGÑuÔuð ð �ØØ×.Ò.Ð/?Ñ@Ô@Ð@Ð@Ð@ð ;Ð:s   Á%AB, Â,
CÂ6CÃCc                ó   — | j         j                             ¦   «         s|                      d¦  «         d S 	 | j         j                             | j        ¦  «         n0# t          $ r#}|                      d|› �¦  «         Y d }~d S d }~ww xY w| j                             ¦   «          |  	                    ¦   «          |                      d¦  «         d S )Nr\  r6  zKNew Deepy session ready. Its folder will be created with the first request.)
rJ   rù   rb  rb   Ústart_new_sessionrL   r?   rQ   r=  r—   )rY   r£   s     rB   Ú_start_new_saved_sessionz(DeepyCliSession._start_new_saved_session—  sß   € ØŒzÔ$×:Ò:Ñ<Ô<ð 	Ø�KŠKÐfÑgÔgÐgØˆFð	ØŒJÔ!×3Ò3°D´KÑ@Ô@Ð@Ð@øÝð 	ð 	ð 	Ø�KŠKÐ( 3Ð(Ð(Ñ)Ô)Ð)ØˆFˆFˆFˆFˆFøøøøð	øøøð 	Ô(×.Ò.Ñ0Ô0Ð0Ø×ÒÑÔÐØ�ŠÐaÑbÔbÐbÐbÐbs   ·$A Á
B	Á&BÂB	ri  rø   c                ó`  — d}t           t          | j        j        dd„ ¦  «        ¦   «         pd¦  «        dk    }| j        j        |d …         D �]E}t          |                     dd¦  «        ¦  «                             ¦   «         dk    rŒ=t          |                     d	d¦  «        pd¦  «                             ¦   «         }|r,t          j
        | j        |¦  «                             ¦   «         nd}t          j        | j        |¦  «                             ¦   «         }|                      ||d
dd¬¦  «        r)d}t          |¦  «        dk    r|                      ¦   «          |                      ||dd¬¦  «        rd}|                      |¦  «        rd}�ŒG|s|                      d¦  «         d S d S )NFrñ   c                 ó   — dS ró   rh   rh   r[   rB   ri   z?DeepyCliSession._print_new_assistant_messages.<locals>.<lambda>¦  s   € ÐYZ€ r[   r   r€   rô   rI   rõ   rö   rÞ   Tr÷   rß   )rè   rã   zDeepy> (no final response))rø   r<   rJ   rù   rM   rú   r]   r¯   r†   rû   rü   Úget_message_contentrï   rn   rb   r  )rY   ri  r  Úshow_reasoningrý   rÛ   rþ   r\   s           rB   rf  z-DeepyCliSession._print_new_assistant_messages¤  s¾  € ØˆÝÐ[�W T¤ZÔ%:Ð<OÐQZÐQZÑ[Ô[Ñ]Ô]ÐbÐabÑcÔcÐghÒhˆØ”mÔ3Ð4DÐ4EÐ4EÔFð 	#ñ 	#ˆFÝ�6—:’:˜f bÑ)Ô)Ñ*Ô*×0Ò0Ñ2Ô2°kÒAÐAØÝ˜VŸZšZ¨¨bÑ1Ô1Ð7°RÑ8Ô8×>Ò>Ñ@Ô@ˆJØp~ð  G�^ÔIÈ$Ì-ÐYcÑdÔd×jÒjÑlÔlÐlð  EGˆNÝ!Ô5°d´mÀZÑPÔP×VÒVÑXÔXˆDØ×*Ò*¨:°~È[ÐaeÐsxÐ*ÑyÔyð "Ø"�Ý�t‘9”9˜q’=�=Ø—K’K‘M”M�MØ×*Ò*¨:°tÀ9ÐUZÐ*Ñ[Ô[ð #Ø"�Ø×'Ò'¨Ñ/Ô/ð #Ø"�ùØð 	6Ø�KŠKÐ4Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6r[   c                óÖ   — t          | j        j        t          ¦  «        r8t	          | j        j        ¦  «        dk    rt          j        di | j        j        ¤ŽS t          j        ¦   «         S )Nr   rh   )rœ   rM   Útool_ui_settingsr  rn   Údeepy_ui_settingsÚ$normalize_assistant_tool_ui_settingsr–   s    rB   Ú_get_tool_ui_settingsz%DeepyCliSession._get_tool_ui_settings¸  s]   € Ý�d”mÔ4µdÑ;Ô;ð 	lÅÀDÄMÔDbÑ@cÔ@cÐfgÒ@gÐ@gÝ$ÔIÐkÐkÈDÌMÔLjÐkÐkÐkÝ ÔEÑGÔGÐGr[   c                ó¶   — |                       ¦   «         }|                     |¦  «          | j        j        j        | j        fi |¤Ž |                       ¦   «         S r;  )rw  ÚupdaterJ   rù   Úupdate_tool_ui_settingsrL   )rY   ÚchangesÚsettingss      rB   Ú_update_tool_ui_settingsz(DeepyCliSession._update_tool_ui_settings½  sY   € Ø×-Ò-Ñ/Ô/ˆØ�Š˜Ñ Ô Ð Ø5ˆŒ
ÔÔ5°d´kÐNÐNÀXÐNÐNÐNØ×)Ò)Ñ+Ô+Ð+r[   rN  c                óœ   — t                                t          |pd¦  «                             ¦   «                              ¦   «         ¦  «        S r•   )Ú_TOOL_ALIASESr¯   r]   r†   r  )rY   rN  s     rB   Ú_resolve_tool_namez"DeepyCliSession._resolve_tool_nameÃ  s:   € Ý× Ò ¥ U [¨bÑ!1Ô!1×!7Ò!7Ñ!9Ô!9×!?Ò!?Ñ!AÔ!AÑBÔBÐBr[   útuple[int, int] | Nonec                óš  — t          |pd¦  «                             ¦   «                              ¦   «                              dd¦  «                             dd¦  «        }d„ |                     ¦   «         D ¦   «         }t          |¦  «        dk    rd S 	 t          |d         ¦  «        t          |d         ¦  «        fS # t          $ r Y d S w xY w)	NrI   r^  ú Úxc                ó8   — g | ]}t          |¦  «        d k    ¯|‘ŒS )r   )rn   )r¶   Úparts     rB   r  z5DeepyCliSession._parse_dimensions.<locals>.<listcomp>È  s#   € ÐCÐCÐC˜$µS¸±Y´YÀ²]°]�°]°]°]r[   r}   r   r€   )r]   r†   r  r9   rt   rn   rø   r?   )rY   r\   ÚcleanedÚpartss       rB   Ú_parse_dimensionsz!DeepyCliSession._parse_dimensionsÆ  s¿   € Ý�d�j˜b‘/”/×'Ò'Ñ)Ô)×/Ò/Ñ1Ô1×9Ò9¸#¸sÑCÔC×KÒKÈCÐQTÑUÔUˆØCÐC '§-¢-¡/¤/ÐCÑCÔCˆÝˆu‰:Œ:˜Š?ˆ?Ø�4ð	Ý�u˜Q”x‘=”=¥# e¨A¤h¡-¤-Ð/Ð/øÝð 	ð 	ð 	Ø�4�4ð	øøøs   Â)B< Â<
C
Ã	C
c                óò   — t          |pd¦  «                             ¦   «         }t          |¦  «        dk    rdS t          j                             |¦  «        rt          j                             |¦  «        S |S )NrI   r   z(unset))r]   r†   rn   r  r  Úisfiler  )rY   rN  Úresolveds      rB   Ú_format_template_valuez&DeepyCliSession._format_template_valueÐ  sd   € Ý�u�{ Ñ#Ô#×)Ò)Ñ+Ô+ˆÝˆx‰=Œ=˜AÒÐØ�9ÝŒ7�>Š>˜(Ñ#Ô#ð 	-Ý”7—?’? 8Ñ,Ô,Ð,Øˆr[   ú	list[str]c                ó  ‡ ‡— ‰                       ¦   «         Šd‰d         rdnd› �d‰d         › d‰d         › �d	‰d
         › �d‰d         › d�d‰d         › �gˆ ˆfd„t          j                             ¦   «         D ¦   «         ¢S )NzTemplate properties: Úuse_template_propertiesÚonÚoffúDefault size: Úwidthr„  ÚheightúVideo frames: Ú
num_framesúAudio duration: Úaudio_durationz secondsúSeed: Úseedc              3  ó^   •K  — | ]'\  }}|› d ‰                      ‰|         ¦  «        › �V — Œ(dS )z template: N)r�  )r¶   r  rÍ   rY   r|  s      €€rB   r¸   z7DeepyCliSession._tool_settings_lines.<locals>.<genexpr>à  sb   øè è € ð  Pð  PÑS\ÐSWÐY\�ÐNÐN $×"=Ò"=¸hÀs¼mÑ"LÔ"LÐNÐNð  Pð  Pð  Pð  Pð  Pð  Pr[   )rw  ru  ÚTEMPLATE_TOOL_UI_KEYÚitems)rY   r|  s   `@rB   Ú_tool_settings_linesz$DeepyCliSession._tool_settings_linesØ  sæ   øø€ Ø×-Ò-Ñ/Ô/ˆà\¨HÐ5NÔ,OÐ$Z D DÐUZÐ\Ð\ØE˜X gÔ.ÐEÐE°¸(Ô1CÐEÐEØ5˜X lÔ3Ð5Ð5ØC˜xÐ(8Ô9ÐCÐCÐCØ'�X˜fÔ%Ð'Ð'ð
ð Pð  Pð  Pð  Pð  PÕ`qô  aG÷  aMò  aMñ  aOô  aOð  Pñ  Pô  Pð
ð 	
r[   c                ó^   — |                       ¦   «         D ]}|                      |¦  «         Œd S r;  )rŸ  rb   )rY   rx   s     rB   Ú_print_tool_settingsz$DeepyCliSession._print_tool_settingsã  s<   € Ø×-Ò-Ñ/Ô/ð 	ð 	ˆDØ�KŠK˜ÑÔÐÐð	ð 	r[   c                ó\  — t           �t          €d S t          ¦   «         }|                     d¦  «        d„ ¦   «         }|                     d¦  «        d„ ¦   «         }|                     dd¦  «        d„ ¦   «         }|                     dd¦  «        d„ ¦   «         }t          ||d|d	„ ¬
¦  «        S )NÚenterc                ó8   — | j                              ¦   «          d S r;  )Úcurrent_bufferÚvalidate_and_handle©r#  s    rB   Ú_submitz6DeepyCliSession._build_prompt_session.<locals>._submitì  s   € àÔ ×4Ò4Ñ6Ô6Ð6Ð6Ð6r[   zc-jc                ó:   — | j                              d¦  «         d S ©Nrr   ©r¥  Úinsert_textr§  s    rB   Ú_newline_ctrl_jz>DeepyCliSession._build_prompt_session.<locals>._newline_ctrl_jð  ó   € àÔ ×,Ò,¨TÑ2Ô2Ð2Ð2Ð2r[   Úescapec                ó:   — | j                              d¦  «         d S rª  r«  r§  s    rB   Ú_newline_ctrl_enter_windowszJDeepyCliSession._build_prompt_session.<locals>._newline_ctrl_enter_windowsô  r®  r[   c                ó:   — | j                              d¦  «         d S rª  r«  r§  s    rB   Ú_newline_escape_enterzDDeepyCliSession._build_prompt_session.<locals>._newline_escape_enterø  r®  r[   Tc                ó,   — d                      | ¦  «        S )Nz... )Úrjust)r”  Ú_line_noÚ_wrap_counts      rB   ri   z7DeepyCliSession._build_prompt_session.<locals>.<lambda>  s   € ÀVÇ\Â\ÐRWÑEXÔEX€ r[   )ÚinputÚoutputÚ	multilineÚkey_bindingsÚprompt_continuation)r   r   Úadd)rY   r¸  r¹  Úbindingsr¨  r­  r±  r³  s           rB   Ú_build_prompt_sessionz%DeepyCliSession._build_prompt_sessionç  sè   € ÝÐ ¥KÐ$7Ø�4Ý‘=”=ˆà	�Š�gÑ	Ô	ð	7ð 	7ñ 
Ô	ð	7ð 
�Š�eÑ	Ô	ð	3ð 	3ñ 
Ô	ð	3ð 
�Š�h Ñ	&Ô	&ð	3ð 	3ñ 
'Ô	&ð	3ð 
�Š�h Ñ	(Ô	(ð	3ð 	3ñ 
)Ô	(ð	3õ ØØØØ!Ø XÐ Xð
ñ 
ô 
ð 	
r[   c                óÎ   — | j         st          d¦  «        S | j        €|                      ¦   «         | _        | j        €t          d¦  «        S | j                             d¦  «        S )NrI   zdeepy> )rR   r¸  rS   r¿  Úpromptr–   s    rB   Ú
_read_linezDeepyCliSession._read_line  sd   € ØÔ ð 	Ý˜‘9”9ÐØÔÐ'Ø#'×#=Ò#=Ñ#?Ô#?ˆDÔ ØÔÐ'Ý˜Ñ#Ô#Ð#ØÔ#×*Ò*¨9Ñ5Ô5Ð5r[   c           
     ó’  — t          |pd¦  «                             ¦   «         }t          |¦  «        dk    rd S | j        j                             ¦   «         s3|                      | j        j                             ¦   «         ¦  «         d S t          | j        j	        ¦  «        }| j        j         
                    | j        |¦  «         |                      ¦   «          | j        j                             | j        | j        | j        ¬¦  «        }d}d| _        d| _        d| _        d| j        _        d| j        _        |                      d| |¦  «         |                      ¦   «          	 | j        j                             | j        d d|gdd| j        |¬	¦  «         d}n/# t.          $ r"}|                      d
|› �¦  «         Y d }~nd }~ww xY w|                      ¦   «          d| _        d| _        d| _        d| j        _        d| j        _        |                      ¦   «          |                      d| ||¬¦  «         ns# |                      ¦   «          d| _        d| _        d| _        d| j        _        d| j        _        |                      ¦   «          |                      d| ||¬¦  «         w xY w|r|                      |¦  «         d S d S )NrI   r   )ÚsessionFTÚturn_startedÚAKç      @)Úoverride_profileÚsend_cmdr  r6  Úturn_finished)Ú	completed)r]   r†   rn   rJ   rù   Úis_availablerb   Úrequirement_error_textrM   rú   Úbegin_direct_requestrL   r—   Úcreate_toolsr9  rT   rU   rX   Úworker_activer®   r¤   rÖ   Úrun_assistant_prompt_turnr?   rÚ   rf  )rY   r\   rÁ  ri  r  rË  r£   s          rB   ÚaskzDeepyCliSession.ask  sò  € Ý�T�Z˜R‘”×&Ò&Ñ(Ô(ˆÝˆv‰;Œ;˜!ÒÐØˆFØŒzÔ$×1Ò1Ñ3Ô3ð 	Ø�KŠK˜œ
Ô-×DÒDÑFÔFÑGÔGÐGØˆFÝ˜tœ}Ô<Ñ=Ô=ÐØŒ
Ô×2Ò2°4´;ÀÑGÔGÐGØ×ÒÑÔÐØ”
Ô%×2Ò2°4´;ÀÄÐX\ÔXeÐ2ÑfÔfˆØˆ	Ø ˆÔØ$)ˆÔ!Ø,.ˆÔ)Ø&*ˆŒÔ#Ø,1ˆŒÔ)Ø×Ò °°fÑ=Ô=Ð=Ø×)Ò)Ñ+Ô+Ð+ð	XØŒJÔ!×;Ò;¸D¼KÈÈtÐV\ÐU]Ð_`Ðsvð  BFô  BPð  X]Ð;ñ  ^ô  ^ð  ^ØˆIˆIøÝð 	*ð 	*ð 	*Ø�KŠKÐ( 3Ð(Ð(Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)øøøøð	*øøøð ×,Ò,Ñ.Ô.Ð.Ø %ˆDÔØ(-ˆDÔ%Ø02ˆDÔ-Ø*/ˆDŒMÔ'Ø05ˆDŒMÔ-Ø×ÒÑ Ô Ð Ø×#Ò# O°T¸6ÈYÐ#ÑWÔWÐWÐWøð ×,Ò,Ñ.Ô.Ð.Ø %ˆDÔØ(-ˆDÔ%Ø02ˆDÔ-Ø*/ˆDŒMÔ'Ø05ˆDŒMÔ-Ø×ÒÑ Ô Ð Ø×#Ò# O°T¸6ÈYÐ#ÑWÔWÐWÐWøøøØð 	AØ×.Ò.Ð/?Ñ@Ô@Ð@Ð@Ð@ð	Að 	As1   Å(4F ÆH; Æ
G	Æ'GÆ?H; ÇG	Ç	H; È;A0J+r¹   Úpreferred_typec           
     óè  — 	 | j                              ||¬¦  «        }n0# t          $ r#}|                      d|› �¦  «         Y d }~d S d }~ww xY w|                     dd ¦  «        }|                     dd¦  «        rdnd}t          |t          ¦  «        rF|                      |› d|                     d	¦  «        › d
|                     dd¦  «        › �¦  «         d S |                      |› d�¦  «         d S )N)rÓ  r6  rý   ÚaddedFÚAddedÚSelectedrƒ  r  r  r  rI   z file.)rO   Úadd_pathr?   rb   r¯   rœ   r  )rY   rN  rÓ  r  r£   rý   Úactions          rB   Ú_handle_add_commandz#DeepyCliSession._handle_add_command1  s  € ð	Ø”]×+Ò+¨EÀ.Ð+ÑQÔQˆFˆFøÝð 	ð 	ð 	Ø�KŠKÐ( 3Ð(Ð(Ñ)Ô)Ð)ØˆFˆFˆFˆFˆFøøøøð	øøøð —’˜H dÑ+Ô+ˆØ"ŸJšJ w°Ñ6Ô6ÐF��¸JˆÝ�f�dÑ#Ô#ð 	+Ø�KŠK˜6ÐWÐW F§J¢J¨zÑ$:Ô$:ÐWÐW¸f¿jºjÈÐRTÑ>UÔ>UÐWÐWÑXÔXÐXÐXÐXà�KŠK˜6Ð)Ð)Ð)Ñ*Ô*Ð*Ð*Ð*s   ‚ Ÿ
A©AÁArx   c           	     ó²  — t          |pd¦  «                             ¦   «                              d¦  «        \  }}}|                     ¦   «         }|                     ¦   «         }|dv rdS |dk    �rÓ|                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d	¦  «         |                      d
¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d¦  «         |                      d ¦  «         | j        r“|                      d!¦  «         |                      d"¦  «         |                      d#¦  «         |                      d$¦  «         |                      d%¦  «         |                      d&¦  «         |                      d'¦  «         d(S |d)k    r|                      |d*¦  «         d(S |d+k    r|                      |d,¦  «         d(S |d-k    r|                      |d.¦  «         d(S |d/k    r|                      |d0¦  «         d(S |d1v r6| j                             |pd2¦  «        D ]}|                      |¦  «         Œd(S |d3k    rv| j         	                    |¦  «        }|€|                      d4¦  «         nB|                      d5| 
                    d6¦  «        › d7| 
                    d8d¦  «        › �¦  «         d(S |d9k    rx| j         	                    |d.¬:¦  «        }|€|                      d;¦  «         nB|                      d<| 
                    d6¦  «        › d7| 
                    d8d¦  «        › �¦  «         d(S |d=k    re	 t          |¦  «        }|                      | j                             |¦  «        ¦  «         n%# t          $ r |                      d>¦  «         Y nw xY wd(S |d?k    r¦t          |¦  «        d@k    r.|                      | j                             ¦   «         ¦  «         d(S 	 t!          |¦  «        }	|                      | j                             |	¦  «        ¦  «         n%# t          $ r |                      dA¦  «         Y nw xY wd(S |dBk    r.|                      | j                             ¦   «         ¦  «         d(S |dCk    r.|                      | j                             ¦   «         ¦  «         d(S |dDk    r|                      ¦   «          d(S |dEv �rt          |¦  «        d@k    rK|                      ¦   «         }
|                      dF|
dG         › dH|
dI         › dJ|
dK         rdLndM› dN�¦  «         d(S |                      |¦  «        }|€|                      dO¦  «         d(S 	 |                      |d@         |dP         d¬Q¦  «        }
|                      dR|
dG         › dH|
dI         › dS�¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |dUk    rõt          |¦  «        d@k    rB|                      ¦   «         }
|                      dV|
dW         › dJ|
dK         rdLndM› dN�¦  «         d(S 	 t!          |¦  «        }n&# t          $ r |                      dX¦  «         Y d(S w xY w	 |                      |d¬Y¦  «        }
|                      dZ|
dW         › dS�¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |d[v rõt          |¦  «        d@k    rB|                      ¦   «         }
|                      d\|
d]         › d^|
dK         rdLndM› dN�¦  «         d(S 	 t!          |¦  «        }n&# t          $ r |                      d_¦  «         Y d(S w xY w	 |                      |d¬`¦  «        }
|                      da|
d]         › db�¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |dck    rõt          |¦  «        d@k    rB|                      ¦   «         }
|                      dd|
de         › dJ|
dK         rdLndM› dN�¦  «         d(S 	 t!          |¦  «        }n&# t          $ r |                      df¦  «         Y d(S w xY w	 |                      |d¬g¦  «        }
|                      dh|
de         › dS�¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |div �r&|                     d¦  «        \  }}}|                      |¦  «        }|�%t          |                     ¦   «         ¦  «        d@k    r8|                      djdk                     t4          j        ¦  «        › dl�¦  «         d(S 	 t8          j        |         } | j        d‰i ||                     ¦   «         i¤Ž|         }|                      |› dm|                      |¦  «        › �¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |dnk    �rt          |¦  «        d@k    rXt4          j        D ]I}t5          j        |¦  «        }|rdo                     |¦  «        ndp}|                      |› d7|› �¦  «         ŒJd(S |                      |¦  «        }|€8|                      dqdk                     t4          j        ¦  «        › dr�¦  «         d(S t5          j        |¦  «        }|                      |› d7|rdo                     |¦  «        ndp› �¦  «         d(S |dsk    rýt          |¦  «        d@k    r9|                      ¦   «         }
|                      dt|
dK         rdLndM› du�¦  «         d(S |                     ¦   «                              ¦   «         }|dvvr|                      dw¦  «         d(S 	 |                      |dLk    ¬x¦  «        }
|                      dy|
dK         rdznd{› du�¦  «         n/# t          $ r"}|                      dT|› �¦  «         Y d }~nd }~ww xY wd(S |d|k    r|                       ¦   «          d(S |d}k    r|  !                    |¦  «         d(S |d~k    r|  "                    ¦   «          d(S |dk    rn|  #                    ¦   «          | j$        j%         &                    ¦   «         }
tO          |
d€         o|
d�         d‚k    ¦  «        }|                      |rdƒnd„¦  «         d(S |d…k    r0| j         (                    ¦   «          |                      d†¦  «         d(S |                      d‡|› dˆ�¦  «         d(S )ŠNrI   rƒ  >   ú/exitú/quitFz/helpz	Commands:z?  /add <path>     Add and select an image, video, or audio filez.  /image <path>   Add and select an image filez-  /video <path>   Add and select a video filez.  /audio <path>   Add and select an audio filezJ  /list [scope]   List known media; scope: all, media, image, video, audioz!  /media [scope]  Alias for /listz=  /select <ref>   Select media by id, index, or name fragmentz6  /select-video <media_id>  Select a video by media idz6  /time <secs>    Set the selected video playback timez@  /frame [index]  Show or set the selected video frame (0-based)z)  /selected       Show the selected mediaz2  /selected-video Show the selected video media idz6  /settings       Show current CLI generation settingszU  /size [WxH]     Show or set default generation size and disable template propertiesz[  /frames [count] Show or set default gen_video frame count and disable template propertieszY  /duration [seconds]  Show or set default audio duration and disable template propertieszU  /seed [value]   Show or set default generation seed and disable template propertieszJ  /template <tool> <variant>  Set the preset for any Deepy generation toolz3  /templates [tool]  List available preset variantszO  /template-props [on|off]  Show or toggle template resolution/frame propertieszB  /sessions       List saved sessions (* marks the active session)z@  /resume <ref>   Resume a saved session by number, title, or idz0  /new            Start a new persistent sessionz=  /reset          Clear the Deepy conversation but keep mediaz2  /clear-media    Remove all virtual gallery mediaz"  /quit           Exit the sessionzPrompt entry:z)  Enter           Send the current promptzF  Ctrl+Enter      Insert a newline on Windows terminals that expose itz+  Ctrl+J          Insert a newline fallbackz"  Alt+Enter       Insert a newlinezA  Ctrl+S          Stop the current Deepy turn while it is runningzK  Shift+Enter     Not available here; the console reports it as plain EnterTz/addr¹   z/imager   z/videor   z/audioÚaudio>   ú/listú/mediaÚallz/selectz"Unable to resolve media selection.z	Selected r  r  r  z/select-video)Ú
media_typez"Unable to resolve video selection.zSelected video z/timez"Provide a numeric time in seconds.z/framer   zProvide a numeric frame index.z	/selectedz/selected-videoz	/settings>   ú/sizeú/resolutionr“  r”  r„  r•  z (template properties r�  r‘  r’  ú)zUse /size <width>x<height>.r€   )r”  r•  r�  zDefault size set to z. Template properties disabled.r6  z/framesr–  r—  zUse /frames <count>.)r—  r�  z%Default gen_video frame count set to >   ú	/durationú/audio-durationr˜  r™  z seconds (template properties zUse /duration <seconds>.)r™  r�  zDefault audio duration set to z' seconds. Template properties disabled.z/seedrš  r›  z%Use /seed <value>. Use -1 for random.)r›  r�  zDefault seed set to >   ú/presetú	/templatezUse /template <ú|z> <variant>.z template set to z
/templatesz, z(none)zUse /templates [z].z/template-propszTemplate properties are ú.>   r‘  r’  zUse /template-props on|off.)r�  zTemplate properties ÚenabledÚdisabledz	/sessionsz/resumez/newz/resetÚeffective_multi_sessionÚ
reset_modeÚnew_sessionzNew Deepy session ready.zDeepy conversation reset.z/clear-mediazVirtual galleries cleared.zUnknown command: z. Use /help.rh   ))r]   r†   Ú	partitionr  rb   rR   rÚ  rO   Ú
list_linesÚselectr¯   ÚfloatÚset_selected_timer?   rn   Úselected_frame_summaryrø   Úset_selected_frameÚselected_summaryÚselected_video_summaryr¡  rw  r‰  r}  r€  rv   Údeepy_tool_settingsÚGENERATION_TOOL_IDSru  r�  r�  Úlist_tool_variantsrZ  rk  rn  r>  rJ   rù   Úget_session_ui_settingsrc   Úclear_media)rY   rx   ÚcommandÚ_ÚrestÚargumentÚone_linerý   ÚsecondsÚframe_nor|  Ú
dimensionsr£   Úframe_countÚdurationr›  Ú	tool_nameÚ
tool_valueÚresolved_toolrÍ   rN  ÚvariantsÚsuffixÚ
normalizedÚstarted_news                            rB   Ú_handle_commandzDeepyCliSession._handle_command>  s²  € Ý˜t˜z r™?œ?×0Ò0Ñ2Ô2×<Ò<¸SÑAÔAÑˆ��DØ—:’:‘<”<ˆØ—-’-‘/”/ˆØÐ(Ð(Ð(Ø�5Ø�gÒÑØ�KŠK˜Ñ$Ô$Ð$Ø�KŠKÐYÑZÔZÐZØ�KŠKÐHÑIÔIÐIØ�KŠKÐGÑHÔHÐHØ�KŠKÐHÑIÔIÐIØ�KŠKÐdÑeÔeÐeØ�KŠKÐ;Ñ<Ô<Ð<Ø�KŠKÐWÑXÔXÐXØ�KŠKÐPÑQÔQÐQØ�KŠKÐPÑQÔQÐQØ�KŠKÐZÑ[Ô[Ð[Ø�KŠKÐCÑDÔDÐDØ�KŠKÐLÑMÔMÐMØ�KŠKÐPÑQÔQÐQØ�KŠKÐoÑpÔpÐpØ�KŠKÐuÑvÔvÐvØ�KŠKÐsÑtÔtÐtØ�KŠKÐoÑpÔpÐpØ�KŠKÐdÑeÔeÐeØ�KŠKÐMÑNÔNÐNØ�KŠKÐiÑjÔjÐjØ�KŠKÐ\Ñ]Ô]Ð]Ø�KŠKÐZÑ[Ô[Ð[Ø�KŠKÐJÑKÔKÐKØ�KŠKÐWÑXÔXÐXØ�KŠKÐLÑMÔMÐMØ�KŠKÐ<Ñ=Ô=Ð=ØÔ ð kØ—’˜OÑ,Ô,Ð,Ø—’ÐGÑHÔHÐHØ—’ÐdÑeÔeÐeØ—’ÐIÑJÔJÐJØ—’Ð@ÑAÔAÐAØ—’Ð_Ñ`Ô`Ð`Ø—’ÐiÑjÔjÐjØ�4Ø�fÒÐØ×$Ò$ X¨uÑ5Ô5Ð5Ø�4Ø�hÒÐØ×$Ò$ X¨wÑ7Ô7Ð7Ø�4Ø�hÒÐØ×$Ò$ X¨wÑ7Ô7Ð7Ø�4Ø�hÒÐØ×$Ò$ X¨wÑ7Ô7Ð7Ø�4ØÐ)Ð)Ð)Ø œM×4Ò4°XÐ5FÀÑGÔGð &ð &�Ø—’˜HÑ%Ô%Ð%Ð%Ø�4Ø�iÒÐØ”]×)Ò)¨(Ñ3Ô3ˆFØˆ~Ø—’Ð@ÑAÔAÐAÐAà—’Ð[¨¯
ª
°:Ñ(>Ô(>Ð[Ð[À&Ç*Â*ÈWÐVXÑBYÔBYÐ[Ð[Ñ\Ô\Ð\Ø�4Ø�oÒ%Ð%Ø”]×)Ò)¨(¸wÐ)ÑGÔGˆFØˆ~Ø—’Ð@ÑAÔAÐAÐAà—’Ða¨f¯jªj¸Ñ.DÔ.DÐaÐaÈÏ
Ê
ÐSZÐ\^ÑH_ÔH_ÐaÐaÑbÔbÐbØ�4Ø�gÒÐðFÝ ™/œ/�ð —’˜DœM×;Ò;¸GÑDÔDÑEÔEÐEÐEøõ ð Bð Bð BØ—’Ð@ÑAÔAÐAÐAÐAðBøøøð �4Ø�hÒÐÝ�8‰}Œ} Ò!Ð!Ø—’˜DœM×@Ò@ÑBÔBÑCÔCÐCØ�tðHÝ˜x™=œ=�ð —’˜DœM×<Ò<¸XÑFÔFÑGÔGÐGÐGøõ ð >ð >ð >Ø—’Ð<Ñ=Ô=Ð=Ð=Ð=ð>øøøð �4Ø�kÒ!Ð!Ø�KŠK˜œ×6Ò6Ñ8Ô8Ñ9Ô9Ð9Ø�4ØÐ'Ò'Ð'Ø�KŠK˜œ×<Ò<Ñ>Ô>Ñ?Ô?Ð?Ø�4Ø�kÒ!Ð!Ø×%Ò%Ñ'Ô'Ð'Ø�4ØÐ.Ð.Ñ.Ý�8‰}Œ} Ò!Ð!Ø×5Ò5Ñ7Ô7�Ø—’ð  e¨X°gÔ->ð  eð  eÀÈ(ÔASð  eð  eÐs{ð  }Vô  tWð  lbÐkoÐkoð  ]bð  eð  eð  eñ  fô  fð  fØ�tØ×/Ò/°Ñ9Ô9ˆJØÐ!Ø—’Ð9Ñ:Ô:Ð:Ø�tð|Ø×8Ò8¸zÈ!¼}ÐU_Ð`aÔUbð  }BÐ8ñ  Cô  C�ð —’Ðz°8¸GÔ3DÐzÐzÀxÐPXÔGYÐzÐzÐzÑ{Ô{Ð{Ð{øõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4Ø�iÒÐÝ�8‰}Œ} Ò!Ð!Ø×5Ò5Ñ7Ô7�Ø—’ð  U¨X°lÔ-Cð  Uð  UÐckð  mFô  dGð  \RÐ[_Ð[_ð  MRð  Uð  Uð  Uñ  Vô  Vð  VØ�tðÝ! (™mœm��øÝð ð ð Ø—’Ð2Ñ3Ô3Ð3Ø�t�tðøøøð}Ø×8Ò8ÀKÐinÐ8ÑoÔo�ð —’Ð{ÀHÈ\ÔDZÐ{Ð{Ð{Ñ|Ô|Ð|Ð|øõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4ØÐ6Ð6Ð6Ý�8‰}Œ} Ò!Ð!Ø×5Ò5Ñ7Ô7�Ø—’ð  c¨xÐ8HÔ/Ið  cð  cÐqyð  {Tô  rUð  j`ÐimÐimð  [`ð  cð  cð  cñ  dô  dð  dØ�tðÝ˜x™=œ=��øÝð ð ð Ø—’Ð6Ñ7Ô7Ð7Ø�t�tðøøøðBØ×8Ò8ÈÐjoÐ8ÑpÔp�ð —’ð  A¸XÐFVÔ=Wð  Að  Að  Añ  Bô  Bð  Bð  Bøõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4Ø�gÒÐÝ�8‰}Œ} Ò!Ð!Ø×5Ò5Ñ7Ô7�Ø—’ð  G X¨fÔ%5ð  Gð  GÐU]Ð^wÔUxð  NDÈTÈTð  Dð  Gð  Gð  Gñ  Hô  Hð  HØ�tðÝ˜8‘}”}��øÝð ð ð Ø—’ÐCÑDÔDÐDØ�t�tðøøøðfØ×8Ò8¸dÐ\aÐ8ÑbÔb�ð —’Ðd°8¸FÔ3CÐdÐdÐdÑeÔeÐeÐeøõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4ØÐ.Ð.Ñ.Ø'/×'9Ò'9¸#Ñ'>Ô'>Ñ$ˆI�q˜*Ø ×3Ò3°IÑ>Ô>ˆMØÐ$­¨J×,<Ò,<Ñ,>Ô,>Ñ(?Ô(?À1Ò(DÐ(DØ—’Ðm¨c¯hªhÕ7JÔ7^Ñ._Ô._ÐmÐmÐmÑnÔnÐnØ�tðeÝ'Ô<¸]ÔK�Ø5˜Ô5ÐRÐR¸¸j×>NÒ>NÑ>PÔ>PÐ8QÐRÐRÐSVÔW�ð —’˜}ÐcÐc¸t×?ZÒ?ZÐ[`Ñ?aÔ?aÐcÐcÑdÔdÐdÐdøõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4Ø�lÒ"Ñ"Ý�8‰}Œ} Ò!Ð!Ý!4Ô!Hð :ð :�IÝ2ÔEÀiÑPÔP�HØ4<ÐJ˜TŸYšY xÑ0Ô0Ð0À(�FØ—K’K 9Ð 8Ð 8°Ð 8Ð 8Ñ9Ô9Ð9Ð9Ø�tØ ×3Ò3°HÑ=Ô=ˆMØÐ$Ø—’Ðd¨s¯xªxÕ8KÔ8_Ñ/`Ô/`ÐdÐdÐdÑeÔeÐeØ�tÝ*Ô=¸mÑLÔLˆHØ�KŠK˜=Ð[Ð[À8Ð,Y¨D¯IªI°hÑ,?Ô,?Ð,?ÐQYÐ[Ð[Ñ\Ô\Ð\Ø�4ØÐ'Ò'Ð'Ý�8‰}Œ} Ò!Ð!Ø×5Ò5Ñ7Ô7�Ø—’Ðp¸xÐHaÔ?bÐ7m°t°tÐhmÐpÐpÐpÑqÔqÐqØ�tØ!ŸšÑ)Ô)×/Ò/Ñ1Ô1ˆJØ Ð.Ð.Ø—’Ð9Ñ:Ô:Ð:Ø�tðxØ×8Ò8ÐQ[Ð_cÒQcÐ8ÑdÔd�ð —’ÐvÀÐIbÔ@cÐ3s°9°9ÐisÐvÐvÐvÑwÔwÐwÐwøõ ð .ð .ð .Ø—’Ð, sÐ,Ð,Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð.øøøð �4Ø�kÒ!Ð!Ø×%Ò%Ñ'Ô'Ð'Ø�4Ø�iÒÐØ×&Ò& xÑ0Ô0Ð0Ø�4Ø�fÒÐØ×)Ò)Ñ+Ô+Ð+Ø�4Ø�hÒÐØ×$Ò$Ñ&Ô&Ð&Ø”zÔ,×DÒDÑFÔFˆHÝ˜xÐ(AÔBÐnÀxÐP\ÔG]ÐanÒGnÑoÔoˆKØ�KŠK°kÐbÐ2Ð2ÐGbÑcÔcÐcØ�4Ø�nÒ$Ð$ØŒM×%Ò%Ñ'Ô'Ð'Ø�KŠKÐ4Ñ5Ô5Ð5Ø�4Ø�ŠÐ=¨Ð=Ð=Ð=Ñ>Ô>Ð>Øˆtsê   Ó6T3 Ô3UÕUÖ"W ×XØ XÜ$]) Ý)
^Ý3^Þ^ß6` à`)à(`)à-a$ á$
bá.bâbã/c? ã?d"ä!d"ä&e å
f	å'fæf	ç*g: ç:hèhè!i é
jé"i?é?jì9n î
n/în*î*n/õv ö
v:öv5ö5v:c                ó*  — | j         j                             ¦   «         s3|                      | j         j                             ¦   «         ¦  «         dS t           t          t          d¦  «        j        dd„ ¦  «        ¦   «         ¦  «        | _	        t          D ]}|                      |¦  «         Œt          | j         j        dd ¦  «        }t          |¦  «        r®|                      d¦  «         	  || j        d¬¦  «        }n0# t          $ r#}|                      d	|› �¦  «         Y d }~dS d }~ww xY wt          |t          ¦  «        r%t          |pi                      d
d¦  «        ¦  «        nd}|                      |rdnd¦  «         |                      d¦  «         | j	        rt"          �|                      d¦  «         	 	 |                      ¦   «         }nE# t&          $ r |                      ¦   «          Y dS t(          $ r |                      ¦   «          Y dS w xY wt+          |pd¦  «                             ¦   «         }t/          |¦  «        dk    rŒ“|                     d¦  «        r|                      |¦  «        sdS ŒÀ|                      |¦  «         ŒÕ)Nr€   r=   re   c                 ó   — dS rg   rh   rh   r[   rB   ri   z%DeepyCliSession.run.<locals>.<lambda>,  s   € ÐTY€ r[   Úpreload_cli_runtimez[Deepy] Preloading runtime...rÇ  )rÈ  z[ERROR] Deepy preload failed: Úwarmed_vllmFz+[Deepy] Prompt enhancer and vLLM are ready.z![Deepy] Prompt enhancer is ready.z*Deepy CLI session. Use /help for commands.zfMultiline input: Enter sends, Ctrl+Enter or Alt+Enter inserts a newline, Ctrl+S stops the active turn.Tr   é‚   rI   ú/)rJ   rù   rÌ  rb   rÍ  rc   r<   Ú
__import__ÚstdinrR   Ú_DEEPY_LOGOÚcallablerL   r?   rœ   r  r¯   r   rÂ  ÚEOFErrorÚKeyboardInterruptr]   r†   rn   r‡   r  rÒ  )rY   rx   Úpreload_runtimeÚpreload_resultr£   r  s         rB   ÚrunzDeepyCliSession.run(  s¼  € ØŒzÔ$×1Ò1Ñ3Ô3ð 	Ø�KŠK˜œ
Ô-×DÒDÑFÔFÑGÔGÐGØ�1Ý Ð!Z¥­°EÑ):Ô):Ô)@À(ÈMÈMÑ!ZÔ!ZÑ!\Ô!\Ñ]Ô]ˆÔÝð 	ð 	ˆDØ�KŠK˜ÑÔÐÐÝ! $¤*Ô"7Ð9NÐPTÑUÔUˆÝ�OÑ$Ô$ð 	Ø�KŠKÐ7Ñ8Ô8Ð8ðØ!0 °´ÈsÐ!SÑ!SÔ!S��øÝð ð ð Ø—’ÐB¸SÐBÐBÑCÔCÐCØ�q�q�q�q�qøøøøðøøøõ U_Ð_mÕosÑTtÔTtÐ�$ Ð 4°"×9Ò9¸-ÈÑOÔOÑPÔPÐPÐzˆKØ�KŠKÈÐ}ÐEÐEÐZ}Ñ~Ô~Ð~Ø�ŠÐ@ÑAÔAÐAØÔð 	B¥Ð!:Ø�KŠKð  Añ  Bô  Bð  Bð	ðØ—’Ñ(Ô(��øÝð ð ð Ø—’‘”�Ø�q�qÝ$ð ð ð Ø—’‘”�Ø�s�sðøøøõ �t�z˜r‘?”?×(Ò(Ñ*Ô*ˆDÝ�4‰yŒy˜AŠ~ˆ~ØØ�Š˜sÑ#Ô#ð Ø×+Ò+¨DÑ1Ô1ð Ø˜1ØØ�HŠH�T‰NŒNˆNð!	s0   Ã/D Ä
D/ÄD*Ä*D/ÇG ÇHÇ7HÈH)rF   rG   )rI   )r\   r]   r3   r4   )r3   rc   )r\   r]   rk   r]   r3   r]   )r\   r]   r3   r]   )r\   r‘   r3   r4   ©r3   r4   )rš   r]   r™   rc   r3   r   )r¥   r]   r3   r4   )rÀ   r   r3   r4   )rÛ   r]   r3   rÜ   )r\   r]   rã   rc   rä   rc   r3   r4   )rÛ   r]   r\   r]   rè   r]   rã   rc   rä   rc   r3   rc   )rý   r   r3   r  )rý   r   r3   rc   )r  r]   r3   r4   r;  )r.  r]   r/  r   r3   r4   )r3   r  )rB  r]   r3   rC  )rB  r]   r3   r4   )ri  rø   r3   r4   )r3   r   )rN  r]   r3   r‘   )r\   r]   r3   r�  )rN  r]   r3   r]   )r3   rŽ  )NN)r3   r]   )r¹   )rN  r]   rÓ  r]   r3   r4   )rx   r]   r3   rc   )r3   rø   ).Ú__name__Ú
__module__Ú__qualname__rZ   rb   rj   rp   ry   r�   r“   r—   r¤   r©   r°   r¿   rÎ   rÖ   rÚ   rá   rç   rï   rÿ   r  r  r(  r9  r>  rA  rQ  rZ  rk  rn  rf  rw  r}  r€  r‰  r�  rŸ  r¡  r¿  rÂ  rÒ  rÚ  r  r  rh   r[   rB   rE   rE   X   sð  € € € € € ð/ð /ð /ð /ð  ð  ð  ð  ð  ð@ð @ð @ð @ð0ð 0ð 0ð 0ð ð  ð  ð  ð)ð )ð )ð )ð,'ð 'ð 'ð 'ð$ð $ð $ð $ð BGð )ð )ð )ð )ð )ð )ðkð kð kð kð kðð ð ð ð
ð 
ð 
ð 
ð2ð 2ð 2ð 2ð8	ð 	ð 	ð 	ð%ð %ð %ð %ð|ð |ð |ð |ð CHÐ]að 
"ð 
"ð 
"ð 
"ð 
"ð 
"ð `eÐz~ð ð ð ð ð ð ð$wð wð wð wðð ð ð ðð ð ð ð %ð %ð %ð %ð:
+ð 
+ð 
+ð 
+ð 
+ðð ð ð ð
Gð Gð Gð Gð
9ð 
9ð 
9ð 
9ðkð kð kð kðAð Að Að Að2cð cð cð cð6ð 6ð 6ð 6ð(Hð Hð Hð Hð
,ð ,ð ,ð ,ðCð Cð Cð Cðð ð ð ðð ð ð ð	
ð 	
ð 	
ð 	
ðð ð ð ð
ð 
ð 
ð 
ð:6ð 6ð 6ð 6ð"Að "Að "Að "AðH+ð +ð +ð +ð +ðhð hð hð hðT$ð $ð $ð $ð $ð $r[   rE   rF   rG   rø   c                ó`   — t          ¦   «          t          | ¦  «                             ¦   «         S r;  )rC   rE   r  )rF   s    rB   Úrun_deepy_cli_sessionr%  O  s(   € ÝÑÔÐÝ˜4Ñ Ô ×$Ò$Ñ&Ô&Ð&r[   )rž   rG   rE   r%  r   )rF   rG   r3   rø   )2Ú
__future__r   r&  r  rˆ   r=   rÈ   Ú	tracebackÚ	threadingr   r   Útypingr   ÚctypesrÅ   r?   Úprompt_toolkitr   Úprompt_toolkit.key_bindingr   Úshared.deepyr	   rû   r
   rú  r   ru  Úshared.deepy.enginer   Úshared.deepy.galleryr   rN   Úshared.deepy.runtimer   r   rž   r   rG   r<   r´   rº   r»   r¼   r½   r  r  rC   rE   r%  Ú__all__rh   r[   rB   ú<module>r2     s.  ðà "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø €€€ðØ€M€M€M€MøØð ð ð Ø€F€F€FðøøøðØ,Ð,Ð,Ð,Ð,Ð,Ø6Ð6Ð6Ð6Ð6Ð6Ð6øØð ð ð Ø€MØ€K€K€Kðøøøð xÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wÐ wØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø vÐ vÐ vÐ vÐ vÐ vÐ vÐ vÐ vÐ vð ˆ'�&˜( DÑ
)Ô
)€Ø�/ˆ$ˆ$ w w¨w¸À$Ñ'GÔ'G€Ø€Ø€Ø€Ø€ð€ðØ�ðàˆ[ðð �ðð �kð	ð
 �,ðð ˆLðð �,ðð �ðð ˆ[ðð �ðð �kðð Ð4ðð Ð0ðð Ð,ðð Ð+ðð  �
ð!ð" ˆJð#ð$ Ø#@Ø<Ø6Ø6Ø2Ø+ØØØØ
ð9ð ð €ð@ð ð ð ðtð tð tð tð tÐ'ñ tô tð tðn'ð 'ð 'ð 'ð
 \Ð
[Ð
[€€€s!   ²7 ·AÁ AÁA Á	AÁA