§
     ’ÞjùC  ã                   ó˜   — d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	 ddl
mZmZmZmZ ddlmZ ddlmZmZmZmZmZ  G d	„ d
¦  «        ZdS )zFWorkspace lifecycle shared by native Gradio and standalone Web access.é    N)Únullcontext)ÚchatÚmedia_registryÚsession_store)Ú	DeepyBusy)ÚARCHIVE_AFTER_DAYS_KEYÚWorkspaceStoreÚcapture_galleryÚload_gallery)ÚMediaSettingsCache)ÚSTORAGE_KEYÚbackground_galleryÚregister_hostÚoutput_configÚexecution_workspacec                   ó–   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dd„Z
d	d
œd„Zd„ Zd„ Zd„ Zd„ Zd„ Zddœd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚWorkspaceSupportNTc                 ó  ‡ — ‰ j         5  t          |‰ j                             ¦   «                              t
          d¦  «        ¦  «        ‰ _        t          ‰ ¦  «         ‰                      ¦   «          ‰ ‰ j        j	        _
        t          ˆ fd„¦  «        ‰ _        d ‰ _        t          di i‰ j        ¦  «        ‰ _        d‰ _        ‰ j                             ¦   «                              d¦  «        }|‰ j        j        v r|n$‰ j                             ¦   «         d         d         ‰ _        ‰                      ‰ j        ¦  «         ‰ j        j                             d‰ j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚsharedc                 óV   •— ‰j                              ‰j        | ddd¦  «        d         S )NFr   )Ú_depsÚget_settings_from_fileÚ_state)ÚpathÚselfs    €ú?C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\workspaces.pyú<lambda>z7WorkspaceSupport.configure_workspaces.<locals>.<lambda>   sI   ø€ ÀtÄz×GhÒGhÐimÔitÐvzð  }Bð  DIð  KPñ  HQô  HQð  RSô  HT€ ó    Úgalleryr   Úlast_workspace_idÚidÚsave_workspace_choice)Ú_mutation_lockr	   r   Úget_server_configÚgetr   Ú
workspacesr   Ú_archive_old_workspacesÚ
controllerÚworkspace_hostr   Ú_workspace_settingsÚ_web_gallery_cacher   Ú_empty_galleryÚworkspace_revisionÚrecordsÚcatalogÚworkspace_idÚ_apply_workspaceÚ	callbacksÚemit)r   ÚrootÚsaved_ids   `  r   Úconfigure_workspacesz%WorkspaceSupport.configure_workspaces   sÆ  ø€ ØÔ ð 	Rð 	RÝ,¨T°4´:×3OÒ3OÑ3QÔ3Q×3UÒ3UÕVaÐckÑ3lÔ3lÑmÔmˆDŒOÝ˜$ÑÔÐØ×(Ò(Ñ*Ô*Ð*Ø37ˆDŒJÔ!Ô0Ý'9ð  ;Tð  ;Tð  ;Tð  ;Tñ  (Uô  (UˆDÔ$Ø&*ˆDÔ#Ý".°	¸2¨ÀÔ@XÑ"YÔ"YˆDÔØ&'ˆDÔ#Ø”z×3Ò3Ñ5Ô5×9Ò9Ð:MÑNÔNˆHØ,4¸¼Ô8OÐ,OÐ,O  ÐUYÔUd×UlÒUlÑUnÔUnÐopÔUqÐrvÔUwˆDÔØ×!Ò! $Ô"3Ñ4Ô4Ð4ØŒJÔ ×%Ò%Ð&=¸tÔ?PÑQÔQÐQð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rs   ‰E E6Å6E:Å=E:c                 óð  — t          j        d¦  «        }	 | j                             | j                             ¦   «                              t          d¦  «        ¦  «        }n.# t          $ r!}| 	                    d|¦  «         Y d }~d S d }~ww xY w|D ]¼}| j                             |¦  «        }|                     d¦  «        }	 |rt          j        |¦  «        nt          ¦   «         5  | j                             |¦  «         d d d ¦  «         n# 1 swxY w Y   Œ‰# t          $ r'}| 	                    d|d         |¦  «         Y d }~Œµd }~ww xY w| j        j        s| j                             d¦  «         d S d S )Nzwangp.workspacesr   z"Workspace auto-archive skipped: %sÚdeepy_session_idz"Could not archive workspace %r: %sÚnameÚDefault)ÚloggingÚ	getLoggerr&   Úexpiredr   r$   r%   r   Ú
ValueErrorÚwarningr   Úarchiving_sessionr   ÚarchiveÚ	Exceptionr.   Úcreate)r   Úloggerr=   Úerrorr0   ÚrecordÚowners          r   r'   z(WorkspaceSupport._archive_old_workspaces    sÞ  € õ Ô"Ð#5Ñ6Ô6ˆð	Ø”o×-Ò-¨d¬j×.JÒ.JÑ.LÔ.L×.PÒ.PÕQgÐijÑ.kÔ.kÑlÔlˆGˆGøÝð 	ð 	ð 	Ø�NŠNÐ?ÀÑGÔGÐGØˆFˆFˆFˆFˆFøøøøð	øøøð $ð 	\ð 	\ˆLØ”_×(Ò(¨Ñ6Ô6ˆFØ—J’JÐ1Ñ2Ô2ˆEð\Ø?DÐW•]Ô4°UÑ;Ô;Ð;Í+É-Ì-ð :ð :Ø”O×+Ò+¨LÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :øøåð \ð \ð \Ø—’ÐCÀVÈFÄ^ÐUZÑ[Ô[Ð[Ð[Ð[Ð[Ð[Ð[øøøøð\øøøàŒÔ&ð 	.ØŒO×"Ò" 9Ñ-Ô-Ð-Ð-Ð-ð	.ð 	.sT   –A
A! Á!
BÁ+BÂBÃ$DÃ'DÄDÄD	ÄDÄD	ÄDÄ
EÄ$EÅEc                 ón  — | j         €d S | j        5  | j                              | j        j        ¦  «        }|                      ¦   «         }| j        | j        | j                              ¦   «         |r|d         nd ||r|r|d         nd n|  	                    ¦   «         dœcd d d ¦  «         S # 1 swxY w Y   d S )Nr!   )ÚrevisionÚselectedÚitemsÚsession_workspace_idÚdeepy_lockedÚdeepy_selected)
r&   r#   Úfor_sessionÚ_sessionÚstorage_session_idÚ_deepy_workspace_lockedr-   r0   r/   Údeepy_workspace_id)r   ÚownedÚlockeds      r   Úworkspace_snapshotz#WorkspaceSupport.workspace_snapshot4   s…  € ØŒ?Ð"Ø�4ØÔ ð 	ið 	iØ”O×/Ò/°´Ô0PÑQÔQˆEØ×1Ò1Ñ3Ô3ˆFØ $Ô 7ÀTÔEVÐaeÔap×axÒaxÑazÔazð  dið  Usð  UZð  [_ô  U`ð  U`ð  osð  EKð  CIð  _hð  otð  `~ð  `eð  fjô  `kð  `kð  z~ð  z~ð  OS÷  Ofò  Ofñ  Ohô  Ohð  ið  ið	ið 	ið 	ið 	iñ 	iô 	ið 	ið 	ið 	ið 	ið 	ið 	iøøøð 	ið 	ið 	ið 	ið 	ið 	is   ‘BB*Â*B.Â1B.c                 ó„   — | j                              | j        j        ¦  «        }|r|d         n| j        j        p| j        S )Nr!   )r&   rO   rP   rQ   Úgallery_workspace_idr0   )r   rT   s     r   rS   z#WorkspaceSupport.deepy_workspace_id<   s<   € Ø”×+Ò+¨D¬MÔ,LÑMÔMˆØ#Ð`ˆu�TŒ{ˆ{¨¬Ô)KÐ)`ÈtÔO`Ð`r   c                 óè   — | j                              |t          |¦  «        ¦  «        r|                      ¦   «          || j        k    r*|                      d|                      ¦   «         ¦  «         d S d S )Nr   )r&   Úsaver
   Úpublish_workspacesr0   ÚpublishÚgallery_snapshot)r   r0   r   s      r   Úsave_backgroundz WorkspaceSupport.save_background@   sr   € ØŒ?×Ò ­o¸gÑ.FÔ.FÑGÔGð 	&Ø×#Ò#Ñ%Ô%Ð%Ø˜4Ô,Ò,Ð,Ø�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<Ð<Ð<ð -Ð,r   c                 ód   — t          | j                             ¦   «         | |p| j        f¬¦  «        S )N)Úbinding)r   r   r$   r0   ©r   r0   s     r   Úworkspace_output_configz(WorkspaceSupport.workspace_output_configF   s1   € Ý˜TœZ×9Ò9Ñ;Ô;ÀdÈLÐLmÐ\`Ô\mÐEnÐoÑoÔoÐor   F©Ú	executionc                ó.  — | j         5  | j                             |¦  «         || j        k    r	 ddd¦  «         dS |s|                      ¦   «          |                      ¦   «          |                      |d¬¦  «         | j        j         	                    d|¦  «         |  
                    ¦   «          |                      d|                      ¦   «         ¦  «         t          | d¦  «        r|                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )zDActivate a bound operation without reassigning Deepy's conversation.NF©Ú	associater"   r   Úhost_changed)r#   r&   r%   r0   Úrequire_idleÚsave_workspacer1   r   r2   r3   r[   r\   r]   Úhasattrrh   )r   r0   rd   s      r   Úactivate_workspacez#WorkspaceSupport.activate_workspaceI   sw  € àÔ ð 	$ð 	$ØŒO×Ò Ñ-Ô-Ð-Ø˜tÔ0Ò0Ð0Øð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð ð $Ø×!Ò!Ñ#Ô#Ð#Ø×ÒÑ!Ô!Ð!Ø×!Ò! ,¸%Ð!Ñ@Ô@Ð@ØŒJÔ ×%Ò%Ð&=¸|ÑLÔLÐLØ×#Ò#Ñ%Ô%Ð%Ø�LŠL˜ D×$9Ò$9Ñ$;Ô$;Ñ<Ô<Ð<Ý�t˜^Ñ,Ô,ð $Ø×!Ò!Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   ˆ'D
¼CD
Ä
DÄDc                 ó®  — | j         5  | j        €%| j                             ¦   «         cd d d ¦  «         S | j                             | j        j        ¦  «        }|                      ¦   «         s•|                      ¦   «         }|| j	        k    r%| j                             ¦   «         cd d d ¦  «         S | j                             t          | j                             |¦  «        | j        ¦  «        ¦  «        cd d d ¦  «         S |€+| j                             | j        ¦  «        cd d d ¦  «         S |d         | j	        k    r%| j                             ¦   «         cd d d ¦  «         S | j        �| j        d         |k    r|t          || j        ¦  «        f| _        | j                             | j        d         ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr!   r   é   )r#   r&   r   ÚsnapshotrO   rP   rQ   rR   rS   r0   r   r%   r*   r,   r+   )r   rT   r0   s      r   r]   z!WorkspaceSupport.gallery_snapshotY   sµ  € ØÔ ð 	Eð 	EØŒÐ&Ø”|×,Ò,Ñ.Ô.ð	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð ”O×/Ò/°´Ô0PÑQÔQˆEØ×/Ò/Ñ1Ô1ð xØ#×6Ò6Ñ8Ô8�Ø 4Ô#4Ò4Ð4Øœ<×0Ò0Ñ2Ô2ð	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð ”|×,Ò,­\¸$¼/×:MÒ:MÈlÑ:[Ô:[Ð]aÔ]uÑ-vÔ-vÑwÔwð	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð ˆ}Ø”|×,Ò,¨TÔ-@ÑAÔAð	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð �TŒ{˜dÔ/Ò/Ð/Ø”|×,Ò,Ñ.Ô.ð	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð Ô&Ð.°$Ô2IÈ!Ô2LÐPUÒ2UÐ2UØ+0µ,¸uÀdÔF^Ñ2_Ô2_Ð*`�Ô'Ø”<×(Ò(¨Ô)@ÀÔ)CÑDÔDð#	Eð 	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	Eð 	Es1   ˆ G
µA/G
Â1AG
Ä G
Ä/)G
Å%AG
Ç
GÇGc                 óx  — | j         €d S |                      ¦   «         s)|                      |                      ¦   «         ¦  «         d S | j        j        | j        }}| j                              |j        ¦  «        }|�|d         | j	        k    rd S |  
                    ¦   «          |€#|                     ¦   «         st          d¦  «        ‚|j        sXt          j        |d|                     ¦   «         |j        d¬¦  «         |                      dt%          j        |¦  «        ¦  «         |                      ¦   «          d S )Nr!   zKRestart WanGP to activate dedicated workspaces before importing into Deepy.Ú T)Úmedia_importr   )r&   rR   rl   rS   r   r(   rP   rO   rQ   r0   ri   Údedicated_workspace_enabledr   r   Úensure_sessionÚget_deepy_typeÚgallery_media_moder\   r   Úbuild_sync_eventÚensure_session_workspace)r   r(   ÚsessionrT   s       r   Úprepare_media_workspacez(WorkspaceSupport.prepare_media_workspacem   sD  € ØŒ?Ð"ØˆFØ×+Ò+Ñ-Ô-ð 	Ø×#Ò# D×$;Ò$;Ñ$=Ô$=Ñ>Ô>Ð>ØˆFØ"œjÔ3°T´]�Gˆ
Ø”×+Ò+¨GÔ,FÑGÔGˆØÐ  t¤°Ô0AÒ!AÐ!AØˆFØ×ÒÑÔÐØˆ= ×!GÒ!GÑ!IÔ!Iˆ=ÝÐiÑjÔjÐjØÔ)ð 	Aõ Ô(¨°"°j×6OÒ6OÑ6QÔ6QÐSZÔSmð  }Að  Bñ  Bô  Bð  BØ�LŠL˜¥Ô!6°wÑ!?Ô!?Ñ@Ô@Ð@Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'r   c                 ó    — t          | j                             | j        j        ¦  «        ¦  «        p| j        j                             ¦   «         S ©N)Úboolr&   rO   rP   rQ   r   r(   rs   ©r   s    r   rR   z(WorkspaceSupport._deepy_workspace_locked�   sS   € å�D”O×/Ò/°´Ô0PÑQÔQÑRÔRð  JÐVZÔV`ÔVk÷  WHò  WHñ  WJô  WJð  	Jr   c                 óÈ   — | j         �Z| j        5  | xj        dz  c_        |                      d|                      ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S )Nrn   r&   )r&   r#   r-   r\   rV   r~   s    r   r[   z#WorkspaceSupport.publish_workspaces…   sÇ   € ØŒ?Ð&ØÔ$ð Fð FØÐ'Ô'¨1Ñ,Ð'Ô'Ø—’˜\¨4×+BÒ+BÑ+DÔ+DÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fð 'Ð&s   �9AÁAÁAc                 óÞ  — | j         �å| j        5  t          | j        d         ¦  «        }| j                              | j        |¦  «        }| j                              | j        ¦  «        }|d         |k    rHt          || j        ¦  «        }t          |¦  «        |k    r | j        d          	                    |¦  «         |r|  
                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S )NÚgenr   )r&   r#   r
   r   rZ   r0   r%   r   r*   Úupdater[   )r   ÚcapturedÚchangedrF   r   s        r   rj   zWorkspaceSupport.save_workspace‹   s1  € ØŒ?Ð&ØÔ$ð .ð .Ý*¨4¬;°uÔ+=Ñ>Ô>�Øœ/×.Ò.¨tÔ/@À(ÑKÔK�Øœ×,Ò,¨TÔ->Ñ?Ô?�Ø˜)Ô$¨Ò0Ð0Ý*¨6°4Ô3KÑLÔL�Gõ ' wÑ/Ô/°8Ò;Ð;Øœ EÔ*×1Ò1°'Ñ:Ô:Ð:Øð .Ø×+Ò+Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .ð 'Ð&s   �CC Ã C$Ã'C$rf   c                óŽ  — | j                              |¦  «        }d|v rE| j        j                             dt          | j                              |¦  «        ¦  «        ¦  «         t          | |¦  «        }|€t          || j	        ¦  «        }| j
        d                              |¦  «         d| j
        d         d<   || _        | j                              | j        j        ¦  «        }|r]|r|d         n!| j        j                             ¦   «         rdn|| j        _        t'          j        | j        | j
        d         ¦  «         d S d S )NÚfolderÚallow_workspace_mediar�   FÚrefresh_tabr!   rq   )r&   r%   r   r2   r3   ÚstrÚ
_directoryr   r   r*   r   r‚   r0   rO   rP   rQ   r(   rs   rX   r   Úsync_tool_call_gallery_media)r   r0   rg   rF   r   rT   s         r   r1   z!WorkspaceSupport._apply_workspaceš   sR  € Ø”×$Ò$ \Ñ2Ô2ˆØ�vÐÐØŒJÔ ×%Ò%Ð&=½sÀ4Ä?×C]ÒC]Ð^dÑCeÔCeÑ?fÔ?fÑgÔgÐgå$ T¨<Ñ8Ô8ˆØˆ?Ý" 6¨4Ô+CÑDÔDˆGØŒ�EÔ×!Ò! 'Ñ*Ô*Ð*Ø,1ˆŒ�EÔ˜=Ñ)Ø(ˆÔØ”×+Ò+¨D¬MÔ,LÑMÔMˆØð 	[à@Eð  2W°°t´°ÐQUÔQ[ÔQf÷  RCò  RCñ  REô  REð  LWÈ2È2ð  KWˆDŒMÔ.ÝÔ7¸¼ÀtÄ{ÐSXÔGYÑZÔZÐZÐZÐZð	[ð 	[r   c                 óÔ   — |�$t          |t          ¦  «        st          d¦  «        ‚|r;| j        j                             ¦   «         s|| j        j        vrt          d¦  «        ‚d S d S d S )Nz8Invalid workspace identifier in the saved Deepy session.zqThe workspace saved with this Deepy session no longer exists. Restore that workspace before resuming the session.)Ú
isinstancer‰   r>   r   r(   rs   r&   r.   ra   s     r   Úvalidate_session_workspacez+WorkspaceSupport.validate_session_workspace«   s©   € ØÐ#­J°|ÅSÑ,IÔ,IÐ#ÝÐWÑXÔXÐXð ð 	R ¤
Ô 5× QÒ QÑ SÔ Sð 	RÐXdÐlpÔl{ô  mDð  YDð  YDÝð  Qñ  Rô  Rð  Rð	Rð 	Rð 	Rð 	Rð  YDð  YDr   c                 ó¬  — | j         j                             ¦   «         s$| j                             | j        j        ¦  «        r|                      ¦   «          d S |rh|| j        k    r]|  	                    ¦   «          |  
                    |¦  «         | j         j                             d|¦  «         |                      ¦   «          | j        | j        _        d S )Nr"   )r   r(   rs   r&   rO   rP   rQ   rx   r0   rj   r1   r2   r3   r[   rX   ra   s     r   Úrestore_session_workspacez*WorkspaceSupport.restore_session_workspace³   sÌ   € ØŒ:Ô ×<Ò<Ñ>Ô>ð 	À$Ä/×B]ÒB]Ð^bÔ^kÔ^~ÑBÔBð 	Ø×)Ò)Ñ+Ô+Ð+ØˆFàð 	&˜L¨DÔ,=Ò=Ð=Ø×ÒÑ!Ô!Ð!Ø×!Ò! ,Ñ/Ô/Ð/ØŒJÔ ×%Ò%Ð&=¸|ÑLÔLÐLØ×#Ò#Ñ%Ô%Ð%Ø-1Ô->ˆŒÔ*Ð*Ð*r   c                 ó¢  — | j         }|                      ¦   «         s\|                      ¦   «         | j        k    r?| j        rt          d¦  «        ‚|                      |                      ¦   «         d¬¦  «         |                      ¦   «         s|j        s| j        |_        |j        sd S | j	        5  | j
                             |j        ¦  «        }|€�| j        j                             ¦   «         s	 d d d ¦  «         d S | j                             ¦   «                              t"          d¦  «        | j
        _        | j
                             |j        |j        ¬¦  «        }nr|d         }|                     d¦  «        |j        k    rL|d         |j        k    r;| j
                             ||j        |j        ¬¦  «         |                      ¦   «          || j        k    r|j        |k    r	 d d d ¦  «         d S || j        k    r›| j        rt          d¦  «        ‚|                      ¦   «          |                      |¦  «         | j        j                             d	|¦  «         |                      d
|                      ¦   «         ¦  «         |                      ¦   «          ||_        t;          j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzKWait for the current generation before starting Deepy in another workspace.Trc   r   ©r8   r!   r8   r9   r"   r   )rP   rR   rS   r0   Úgeneration_runningr   rl   rX   rQ   r#   r&   rO   r   r(   rs   r$   r%   r   Údefault_moderC   Ústorage_titleÚrenamer[   rj   r1   r2   r3   r\   r]   r   Úschedule_autosave)r   ry   rT   r0   s       r   rx   z)WorkspaceSupport.ensure_session_workspace¿   s;  € Ø”-ˆØ×+Ò+Ñ-Ô-ð 	O°$×2IÒ2IÑ2KÔ2KÈtÔO`Ò2`Ð2`ØÔ&ð oÝÐ mÑnÔnÐnØ×#Ò# D×$;Ò$;Ñ$=Ô$=ÈÐ#ÑNÔNÐNØ×+Ò+Ñ-Ô-ð 	=°gÔ6Rð 	=à+/Ô+<ˆGÔ(ØÔ)ð 	ØˆFØÔ ð 	5ð 	5Ø”O×/Ò/°Ô0JÑKÔKˆEØˆ}Ø”zÔ,×HÒHÑJÔJð Øð		5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 04¬z×/KÒ/KÑ/MÔ/M×/QÒ/QÕR]Ð_gÑ/hÔ/h�”Ô,Ø#œ×5Ò5°gÔ6KÐ^eÔ^xÐ5ÑyÔy��à$ Tœ{�à—9’9Ð/Ñ0Ô0°GÔ4NÒNÐNÐSXÐY_ÔS`ÐdkÔdyÒSyÐSyØ”O×*Ò*¨<¸Ô9NÐahÔa{Ð*Ñ|Ô|Ð|Ø×+Ò+Ñ-Ô-Ð-Ø˜tÔ0Ò0Ð0°WÔ5QÐUaÒ5aÐ5aØð!	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð" ˜tÔ0Ò0Ð0ØÔ*ð sÝ#Ð$qÑrÔrÐrØ×#Ò#Ñ%Ô%Ð%Ø×%Ò% lÑ3Ô3Ð3Ø”
Ô$×)Ò)Ð*AÀ<ÑPÔPÐPØ—’˜Y¨×(=Ò(=Ñ(?Ô(?Ñ@Ô@Ð@Ø×'Ò'Ñ)Ô)Ð)Ø+7ˆGÔ(ÝÔ+¨GÑ4Ô4Ð4ð5	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s!   Â/AKÃ=C,KÇ6CKËKËKc                 óì   — | j         5  | j                             |¦  «        }|�7| j                             |d         ||¬¦  «         |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr!   r’   )r#   r&   rO   r–   r[   )r   Ú
session_idÚtitlerT   s       r   Úrename_session_workspacez)WorkspaceSupport.rename_session_workspaceæ   s½   € ØÔ ð 	*ð 	*Ø”O×/Ò/°
Ñ;Ô;ˆEØÐ Ø”×&Ò& u¨T¤{°EÈJÐ&ÑWÔWÐWØ×'Ò'Ñ)Ô)Ð)ð		*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ˆAA)Á)A-Á0A-c                 ó2  — | j         5  | j                             |¦  «        }|€	 d d d ¦  «         d S | j                             |d         |¬¦  «         | j        |d         k    r…|                      | j                             ¦   «         d         d         ¦  «         | j        j         	                    d| j        ¦  «         |  
                    d|                      ¦   «         ¦  «         |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr!   r’   r   r"   r   )r#   r&   rO   Údeleter0   r1   r/   r   r2   r3   r\   r]   r[   )r   r™   rT   s      r   Údelete_session_workspacez)WorkspaceSupport.delete_session_workspaceí   sd  € ØÔ ð 		&ð 		&Ø”O×/Ò/°
Ñ;Ô;ˆEØˆ}Øð		&ð 		&ð 		&ñ 		&ô 		&ð 		&ð 		&ð 		&ð ŒO×"Ò" 5¨¤;ÀÐ"ÑLÔLÐLØÔ  E¨$¤KÒ/Ð/Ø×%Ò% d¤o×&=Ò&=Ñ&?Ô&?ÀÔ&BÀ4Ô&HÑIÔIÐIØ”
Ô$×)Ò)Ð*AÀ4ÔCTÑUÔUÐUØ—’˜Y¨×(=Ò(=Ñ(?Ô(?Ñ@Ô@Ð@Ø×#Ò#Ñ%Ô%Ð%ð		&ð 		&ð 		&ñ 		&ô 		&ð 		&ð 		&ð 		&ð 		&ð 		&ð 		&ð 		&øøøð 		&ð 		&ð 		&ð 		&ð 		&ð 		&s   ˆD³CDÄDÄDc                 ó¬  — | j         €t          d¦  «        ‚| j        5  |                     d¦  «        }|dk    r#| j        �t          | j        j        › d�¦  «        ‚|                     d¦  «        dk    r#|                      ¦   «         rt          d¦  «        ‚|dv r¥| j        o4| j	        d	                              d
i ¦  «                             d¦  «         }|s| j
        s| j        j        s| j        j        rt          d¦  «        ‚|dk    rt          | |¦  «        �t          d¦  «        ‚|                      ¦   «          |dk    rj| j                             ¦   «                              t$          d¦  «        | j         _        | j                              |                     d¦  «        ¦  «        }nª|dk    r/| j                              ||                     d¦  «        ¦  «         nu|dk    rZ|| j        k    rt          d¦  «        ‚| j                              |¦  «         | j                              ¦   «         d         d         }n|dk    rt          d¦  «        ‚|dk    �r2|                     d¦  «        dk    p| j        j        dg| j         j        ¢R v}|r~||                      ¦   «         k    rf| j                              | j        j        ¦  «        sB| j        j        5  | j        j                              ¦   «          d d d ¦  «         n# 1 swxY w Y   |  !                    ||¬¦  «         | j        j"         #                    d| j        ¦  «         |  $                    d|  %                    ¦   «         ¦  «         tM          j'        | j        ¦  «         |  (                    ¦   «          |  )                    ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )NzWorkspaces are not configured.r!   r–   z3 is using Deepy. Change workspace once it finishes.ÚcontextÚdeepyznWorkspaces are assigned by Deepy session in dedicated mode. Change the Deepy session to use another workspace.)ÚselectrC   r�   r�   Úapi_active_queue_taskÚworkspace_backgroundzNWait for Deepy and the current generation to finish before changing workspace.r�   zVAn agent is recording media in this workspace. Delete it once the agent work finishes.rC   r   r9   z5The selected workspace has changed. Please try again.r   r¢   zUnknown workspace action.rq   rf   r"   r   )*r&   r>   r#   r%   Ú_plugin_jobr   rG   rR   r“   r   Ú_threadsrP   Úworker_activeÚqueued_job_countr   rj   r   r$   r   r”   rC   r–   r0   r�   r/   rX   r.   rS   rO   rQ   Ú	turn_lockÚpending_chat_mediaÚclearr1   r2   r3   r\   r]   r   r—   r[   rV   )r   ÚactionÚpayloadr0   Úrunningrg   s         r   Úworkspace_controlz"WorkspaceSupport.workspace_controlù   s“  € ØŒ?Ð"ÝÐ=Ñ>Ô>Ð>ØÔ ð %	-ð %	-Ø"Ÿ;š; tÑ,Ô,ˆLØ˜Ò!Ð! dÔ&6Ð&BÝ 4Ô#3Ô#9Ð nÐ nÐ nÑoÔoÐoØ�{Š{˜9Ñ%Ô%¨Ò0Ð0°T×5QÒ5QÑ5SÔ5SÐ0Ýð  !Qñ  Rô  Rð  RØÐ7Ð7Ð7àÔ1ð  J¸$¼+ÀeÔ:L×:PÒ:PÐQhÐjlÑ:mÔ:m×:qÒ:qð  sIñ  ;Jô  ;Jð  7J�Øð v˜dœmð v¨t¬}Ô/Jð vÈdÌmÔNlð vÝ#Ð$tÑuÔuÐuØ˜XÒ%Ð%Õ*<¸TÀ<Ñ*PÔ*PÐ*\Ý#Ð$|Ñ}Ô}Ð}Ø×#Ò#Ñ%Ô%Ð%Ø˜Ò!Ð!Ø/3¬z×/KÒ/KÑ/MÔ/M×/QÒ/QÕR]Ð_gÑ/hÔ/h�”Ô,Ø#œ×5Ò5°g·k²kÀ&Ñ6IÔ6IÑJÔJ��Ø˜8Ò#Ð#Ø”×&Ò& |°W·[²[ÀÑ5HÔ5HÑIÔIÐIÐIØ˜8Ò#Ð#Ø 4Ô#4Ò4Ð4Ý$Ð%\Ñ]Ô]Ð]Ø”×&Ò& |Ñ4Ô4Ð4Ø#œ×6Ò6Ñ8Ô8¸Ô;¸DÔA��Ø˜8Ò#Ð#Ý Ð!<Ñ=Ô=Ð=Ø˜Ò!Ñ!à#ŸKšK¨	Ñ2Ô2°gÒ=ð  JÀÄÔAcÐlnð  lJÐquô  rAô  rIð  lJð  lJð  BJ�	Øð A °×1HÒ1HÑ1JÔ1JÒ!JÐ!JÐSWÔSb×SnÒSnÐosÔo|ô  pPñ  TQô  TQÐ!JØœÔ0ð Að AØœÔ8×>Ò>Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aà×%Ò% l¸iÐ%ÑHÔHÐHØ”
Ô$×)Ò)Ð*AÀ4ÔCTÑUÔUÐUØ—’˜Y¨×(=Ò(=Ñ(?Ô(?Ñ@Ô@Ð@ÝÔ/°´Ñ>Ô>Ð>Ø×#Ò#Ñ%Ô%Ð%Ø×*Ò*Ñ,Ô,ðK%	-ð %	-ð %	-ð %	-ñ %	-ô %	-ð %	-ð %	-ð %	-ð %	-ð %	-ð %	-øøøð %	-ð %	-ð %	-ð %	-ð %	-ð %	-s7   žKO	Ë"LÌO	ÌL	ÌO	ÌL	ÌB'O	Ï	OÏOr|   )Ú__name__Ú
__module__Ú__qualname__r&   Úbackground_agentsr6   r'   rV   rS   r^   rb   rl   r]   rz   rR   r[   rj   r1   rŽ   r�   rx   r›   rž   r¯   © r   r   r   r      s  € € € € € Ø€JØÐðRð Rð Rð.ð .ð .ð(ið ið iðað að að=ð =ð =ðpð pð pð pð =Bð $ð $ð $ð $ð $ð Eð Eð Eð((ð (ð (ð(Jð Jð JðFð Fð Fð.ð .ð .ð ;?ð [ð [ð [ð [ð [ð"Rð Rð Rð
?ð 
?ð 
?ð%5ð %5ð %5ðN*ð *ð *ð
&ð 
&ð 
&ð(-ð (-ð (-ð (-ð (-r   r   )Ú__doc__r;   Ú
contextlibr   Úshared.deepyr   r   r   Úshared.deepy.errorsr   Úshared.utils.workspacesr   r	   r
   r   Úshared.utils.media_settingsr   Úshared.utils.workspace_storager   r   r   r   r   r   r´   r   r   ú<module>r¼      sò   ðà LÐ LØ €€€Ø "Ð "Ð "Ð "Ð "Ð "à <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø )Ð )Ð )Ð )Ð )Ð )Ø iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iÐ iØ :Ð :Ð :Ð :Ð :Ð :Ø }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }ðT-ð T-ð T-ð T-ð T-ñ T-ô T-ð T-ð T-ð T-r   