§
    ÔŸ’j£  ã                  óx   — d dl mZ d dlZd dlmZ d dlmZ ddlmZ  ej	        d¦  «        Z
 G d„ d	¦  «        ZdS )
é    )ÚannotationsN)ÚPath)ÚAnyé   )Ú_utc_timestampz"dscons.desktop_automation.file_opsc                  ó.   — e Zd ZdZ	 	 	 ddd„Z	 ddd„ZdS )ÚDesktopFileOpsMixinz@File vault management and audit logging for desktop automations.úincoming/zaloNTÚsource_pathÚstrÚproject_rootÚ	subfolderÚ	rename_toú
str | NoneÚcreate_dirsÚboolÚreturnúdict[str, Any]c              ƒ  ó  K  — |s ddt          ¦   «         |||||ddœi ddi dœdœS t          |¦  «        }t          |¦  «        |z  }|p|j        }||z  }	d	dt          ¦   «         t          |¦  «        ||||t          |	¦  «        dd	d
dœ	i ddœS )z7Move a downloaded file into the correct project folder.FÚmove_file_to_project_folderÚlocal_filesystem)r   r   r   r   r   ÚbackendÚinvalid_source_pathz'source_path is required to move a file.)ÚcodeÚmessageÚdetails©ÚokÚactionÚ	timestampÚdataÚ	artifactsÚerrorTÚpath_resolution_only)	r   r   r   r   r   Údestination_pathr   ÚimplementedÚexecution_modeN)r   r   Únamer   )
Úselfr   r   r   r   r   ÚsourceÚdestination_dirÚdestination_namer%   s
             ú>C:\Projects\DSCons\app\services\desktop_automation\file_ops.pyr   z/DesktopFileOpsMixin.move_file_to_project_folder   sø   è è € ð ð 	àØ7Ý+Ñ-Ô-à#.Ø$0Ø!*Ø!*Ø#.Ø1ðð ð  à1ØHØ!ðð ðð ð õ( �kÑ"Ô"ˆÝ˜|Ñ,Ô,¨yÑ8ˆØ$Ð3¨¬ÐØ*Ð-=Ñ=Ðð Ø3Ý'Ñ)Ô)å" 6™{œ{Ø ,Ø&Ø&Ø*Ý$'Ð(8Ñ$9Ô$9Ø-Ø#Ø"8ð
ð 
ð Øð!
ð 
ð 	
ó    r   Ústatusr   údict[str, Any] | Nonec           
   ƒ  óì   K  — 	 |                       d|||pi dœ¦  «        ƒ d{V —†}|                     di ¦  «         d|d         d<   |S # t          $ r  ddt          ¦   «         |||pi ddd	œi dd
œcY S w xY w)z-Emit a structured local automation log entry.Úautomation_log_action)r   r/   r   Nr!   Úlocal_mcp_directr   TÚlog_fallback)Úlogged_actionr/   r   r   r&   r   )Ú_run_mcp_server_toolÚ
setdefaultÚ	Exceptionr   )r)   r   r/   r   Úresults        r-   Ú
log_actionzDesktopFileOpsMixin.log_actionE   së   è è € ð	Ø×4Ò4Ø'à$Ø$Ø&˜}¨"ðð ñô ð ð ð ð ð ð ˆFð ×Ò˜f bÑ)Ô)Ð)Ø(:ˆF�6ŒN˜9Ñ%ØˆMøÝð 	ð 	ð 	àØ1Ý+Ñ-Ô-à%+Ø$Ø&˜}¨"Ø-Ø#'ðð ð  Øðð ð ð ð ð	øøøs   „AA	 Á	'A3Á2A3)r
   NT)r   r   r   r   r   r   r   r   r   r   r   r   )N)r   r   r/   r   r   r0   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r:   © r.   r-   r	   r	      s]   € € € € € ØJÐJð )Ø $Ø ð4
ð 4
ð 4
ð 4
ð 4
ðt *.ð	!ð !ð !ð !ð !ð !ð !r.   r	   )Ú
__future__r   ÚloggingÚpathlibr   Útypingr   Úcommonr   Ú	getLoggerÚloggerr	   r?   r.   r-   ú<module>rG      s¥   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à "Ð "Ð "Ð "Ð "Ð "à	ˆÔ	Ð?Ñ	@Ô	@€ðZð Zð Zð Zð Zñ Zô Zð Zð Zð Zr.   