
    Si              
           d Z ddlZddlmZmZ ddlmZ ddlmZ  ed      Zddd	d
ddddd	d	Z	de
de
ddfdZde
dee   fdZy)u   bot-activity.json 상태 관리 유틸리티

dispatch.py와 notify-completion.py에서 호출하여 봇 상태를 관리합니다.
    N)datetimetimezone)Path)Optionalz3/home/jay/workspace/memory/events/bot-activity.jsondev1dev2dev3dev4dev5dev6dev7dev8)	z	dev1-teamz	dev2-teamz	dev3-teamz	dev4-teamz	dev5-teamz	dev6-teamz	dev7-teamz	dev8-teamzdev-teamteam_idstatusreturnc                 N   t         j                  |       }|sy	 t        j                         r*t	        j
                  t        j                  d            }ndi i}||j                  di       vri |j                  di       |<   ||d   |   d<   t        j                  t        j                        j                  d      |d   |   d<   t        j                  j                  dd	       t        j                  t	        j                   |d
d             y# t"        $ r Y yw xY w)u   bot-activity.json의 봇 status와 since를 갱신.

    Args:
        team_id: 팀 ID (예: "dev1-team")
        status: 상태 ("processing" 또는 "idle")

    Note:
        실패해도 작업 진행에 영향 없도록 예외를 무시합니다.
    Nutf-8encodingbotsr   z%Y-%m-%dT%H:%M:%SZsinceT)parentsexist_ok   F)indentensure_ascii)TEAM_TO_BOTgetBOT_ACTIVITY_FILEexistsjsonloads	read_text
setdefaultr   nowr   utcstrftimeparentmkdir
write_textdumps	Exception)r   r   bot_namedatas       C/home/jay/workspace/.worktrees/task-2117-dev1/utils/bot_activity.pyset_bot_statusr0      s     w'H##%::/9979KLDB<D488FB//46DOOFB'1+1VXx(*2,,x||*D*M*MNb*cVXw'  &&td&C$$TZZQU%ST s   C=D 	D$#D$c                    t         j                  |       }|sy	 t        j                         syt	        j
                  t        j                  d            }|j                  di       j                  |      S # t        $ r Y yw xY w)u   bot-activity.json에서 봇 상태 조회.

    Args:
        team_id: 팀 ID (예: "dev1-team")

    Returns:
        봇 상태 dict 또는 None
    Nr   r   r   )r   r   r   r    r!   r"   r#   r,   )r   r-   r.   s      r/   get_bot_statusr2   =   sw     w'H '')zz+55w5GHxx#''11 s   A9 A	A9 9	BB)__doc__r!   r   r   pathlibr   typingr   r   r   strr0   dictr2        r/   <module>r:      sz   
  '  NO  
C   DC HTN r9   