Ë
    Å[êjº  ã                   ód   — d 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 ddlm	Z	  G d„ d«      Z
y)z-OpenClaw Adapter - sprava worker subprocessu.é    N)Údatetime)ÚPathc                   ó<   — e Zd Zd„ Zd	d„Zd„ Zd„ Zd
d„Zd„ Zdd„Z	y)ÚOpenClawAdapterc                 ó¶   — t        |«      j                  «       | _        | j                  dz  dz  | _        | j                  j	                  dd¬«       i | _        y )Nzdata-labÚopenclaw_runsT)ÚparentsÚexist_ok)r   ÚresolveÚbase_dirÚruns_dirÚmkdirÚrunning)Úselfr   s     úH/home/oem/CyberBrain26-unified/src/cyberbrain26/core/openclaw_adapter.pyÚ__init__zOpenClawAdapter.__init__   sI   € Ü˜X›×.Ñ.Ó0ˆŒØŸ™¨
Ñ2°_ÑDˆŒØ�‰×Ñ D°4ÐÔ8Øˆ�ó    c                 óÀ  — t        t        j                  «       «      d d }| j                  |› d�z  }| j                  |› d�z  }| j                  dz  dz  }dt        |«      d|d|d	|d
t        |«      dt        |«      g}	t
        j                  j                  «       }
|
j                  dd«       t        |d«      }t        j                  |	t        | j                  «      |
|t        j                  d¬«      }||||t        |«      t        |«      t        j                  «       j                  «       |j                   ||dœ
}|| j"                  |<   |d|j                   dœS )Né   ú.jsonú.logÚcorezopenclaw_worker.pyÚpython3z	--task-idz
--worktreez--descriptionz--max-stepsz--outputÚLITELLM_MASTER_KEYzsk-dummyÚwT)ÚcwdÚenvÚstdoutÚstderrÚstart_new_session)
Úrun_idÚtask_idÚworktreeÚdescriptionÚoutput_fileÚlog_fileÚ
started_atÚpidÚprocÚlog_fr   ©r!   Ústatusr(   )ÚstrÚuuidÚuuid4r   r   ÚosÚenvironÚcopyÚ
setdefaultÚopenÚ
subprocessÚPopenÚSTDOUTr   ÚutcnowÚ	isoformatr(   r   )r   r"   Úworktree_pathr$   Ú	max_stepsr!   r%   r&   Úworker_scriptÚcmdr   r*   r)   Úinfos                 r   ÚstartzOpenClawAdapter.start   sE  € Ü”T—Z‘Z“\Ó" 2 AÐ&ˆØ—m‘m¨¨°Ð&6Ñ6ˆØ—=‘= f X¨T ?Ñ2ˆØŸ™¨Ñ.Ð1EÑEˆð ”s˜=Ó)Ø˜Ø˜-Ø˜[Øœ3˜y›>Øœ˜KÓ(ð
ˆô �j‰j�o‰oÓˆØ�‰Ð+¨ZÔ8ä�X˜sÓ#ˆÜ×ÑØ”S˜Ÿ™Ó'¨SØ¤×!2Ñ!2Ø"ô
ˆð ¨¸mØ&´s¸;Ó7GÜ˜H›´X·_±_Ó5F×5PÑ5PÓ5RØ—8‘8 T°Eñ	
ˆð  $ˆ�‰�VÑØ ¨I¸d¿h¹hÑGÐGr   c                 óp  — | j                   j                  |«      }|sK| j                  |› d�z  }|j                  «       r(	 |dt	        j
                  |j                  «       «      dœS y |d   }|j                  «       }|€	|d|d   d	œS 	 |d
   j                  «        t        |d   «      }d }|j                  «       r$	 t	        j
                  |j                  «       «      }||dk(  rdnd||d   |dœS # t        $ r}|dt        |«      dœcY d }~S d }~ww xY w# t        $ r Y Œ†w xY w# t        $ r d }Y ŒSw xY w)Nr   Úfinished)r!   r,   ÚresultÚerror)r!   r,   rC   r)   r   r(   r+   r*   r%   r   Úfailedr"   )r!   r,   Ú	exit_coder"   rB   )r   Úgetr   ÚexistsÚjsonÚloadsÚ	read_textÚ	Exceptionr-   ÚpollÚcloser   )r   r!   r>   r%   Úer)   ÚrcrB   s           r   r,   zOpenClawAdapter.status5   sZ  € Ø�|‰|×Ñ Ó'ˆÙØŸ-™-¨V¨H°EÐ*:Ñ:ˆKØ×!Ñ!Ô#ðRØ&,¸
Ü&*§j¡j°×1FÑ1FÓ1HÓ&IñKð Kð Ø�F‰|ˆØ�Y‰Y‹[ˆØˆ:Ø$°	À$ÀuÁ+ÑNÐNð	Ø�‰M×ÑÔ!ô ˜4 Ñ.Ó/ˆØˆØ×ÑÔðÜŸ™ K×$9Ñ$9Ó$;Ó<�ð Ø$&¨!¢G‘j°Ø¨¨Y©À6ñ
ð 	
øô% !ò RØ&,¸Ì#ÈaË&ÑQÕQûðRûô ò 	Ùð	ûô ò Ø’ðúsB   Á&C3 Â
D Â>#D' Ã3	DÃ<DÄ
DÄDÄ	D$Ä#D$Ä'D5Ä4D5c                 óö  — | j                   j                  |«      }|sdddœS |d   }|j                  «       �dddœS 	 t        j                  t        j
                  |j                  «      t        j                  «       t        j                  d«       |j                  «       €|j                  «        	 |d   j                  «        d|d	œS # t        $ r |j                  «        Y Œiw xY w# t        $ r Y Œ/w xY w)
NFzRun nenalezen)ÚstoppedrC   r)   zJiz ukonceng      à?r*   T)rQ   r!   )r   rF   rL   r0   ÚkillpgÚgetpgidr(   ÚsignalÚSIGTERMrK   Ú	terminateÚtimeÚsleepÚkillrM   )r   r!   r>   r)   s       r   ÚstopzOpenClawAdapter.stopU   sÚ   € Ø�|‰|×Ñ Ó'ˆÙØ$¨Ñ?Ð?Ø�F‰|ˆØ�9‰9‹;Ð"Ø$¨}Ñ=Ð=ð	Ü�I‰I”b—j‘j §¡Ó*¬F¯N©NÔ;ô 	�
‰
�3ŒØ�9‰9‹;ÐØ�I‰IŒKð	Ø�‰M×ÑÔ!ð  ¨6Ñ2Ð2øô ò 	Ø�N‰NÖð	ûô ò 	Ùð	ús$   ¾AC Â5C, ÃC)Ã(C)Ã,	C8Ã7C8Nc                 óÜ  — g }t        | j                  j                  d«      d„ d¬«      }|D ]­  }	 t        j                  |j                  «       «      }|r|j                  d«      |k7  rŒ>|j                  |j                  |j                  d«      |j                  d«      |j                  dd«      |j                  d	d
«      dœ«       t        |«      |k\  r |S Œ¯ |S # t        $ r Y Œ½w xY w)Nz*.jsonc                 ó6   — | j                  «       j                  S )N)ÚstatÚst_mtime)Úxs    r   ú<lambda>z+OpenClawAdapter.list_runs.<locals>.<lambda>k   s   € À1Ç6Á6Ã8×CTÑCT€ r   T)ÚkeyÚreverser"   ÚsuccessÚsummaryÚ Ústepsr   )r!   r"   rc   rd   rf   )Úsortedr   ÚglobrH   rI   rJ   rF   ÚappendÚstemÚlenrK   )r   r"   ÚlimitÚitemsÚfilesÚfÚdatas          r   Ú	list_runszOpenClawAdapter.list_runsi   sè   € ØˆÜ�t—}‘}×)Ñ)¨(Ó3Ñ9TÐ^bÔcˆØò 	ˆAðÜ—z‘z !§+¡+£-Ó0�Ù˜tŸx™x¨	Ó2°gÒ=ØØ—‘ØŸf™fØ#Ÿx™x¨	Ó2Ø#Ÿx™x¨	Ó2Ø#Ÿx™x¨	°2Ó6Ø!ŸX™X g¨qÓ1ñô ô �u“: Ò&Øð ˆð	 'ð	ð  ˆøô ò Ùðús   ±9CÁ+A-CÃ	C+Ã*C+c                 óŽ   — | j                   |› d�z  }|j                  «       sy t        j                  |j	                  «       «      S )Nr   )r   rG   rH   rI   rJ   )r   r!   r%   s      r   Ú
get_resultzOpenClawAdapter.get_result~   s>   € Ø—m‘m¨¨°Ð&6Ñ6ˆØ×!Ñ!Ô#ØÜ�z‰z˜+×/Ñ/Ó1Ó2Ð2r   c                 ó²   — | j                   |› d�z  }|j                  «       sy|j                  d¬«      j                  «       }dj	                  || d  «      S )Nr   re   Úreplace)Úerrorsú
)r   rG   rJ   Ú
splitlinesÚjoin)r   r!   Útailr&   Úliness        r   Úget_logzOpenClawAdapter.get_log„   sV   € Ø—=‘= f X¨T ?Ñ2ˆØ�‰Ô ØØ×"Ñ"¨)Ð"Ó4×?Ñ?ÓAˆØ�y‰y˜ ˜u˜v˜Ó'Ð'r   )é
   )Né2   )éd   )
Ú__name__Ú
__module__Ú__qualname__r   r?   r,   rZ   rq   rs   r|   © r   r   r   r      s(   „ òó HòD
ò@3ó(ò*3ô(r   r   )Ú__doc__rH   r0   rT   r5   rW   r.   r   Úpathlibr   r   rƒ   r   r   ú<module>r†      s,   ðÙ 3Û Û 	Û Û Û Û Ý Ý ÷}(ò }(r   