
    (<iq              
       
   d Z ddlZddlZddlZddlmZmZmZ ej                  j                  dej                  j                  ej                  j                  e      dddd             ddlZ e ed	            ZddededefdZedk(  rvej$                  d   Z eej$                        dkD  rej$                  d   nd
Z eee      Z e ej0                  edd              ej2                  ed   dk7  rdnd       yy)uX  
verify_done.py - .done 소비자 게이트: task 완료 시그니처 자동 검증

.done 파일 감지 시 task 파일의 ## 완료 시그니처 섹션을 읽어 grep/pytest로 검증.
- PASS → .done 유지
- FAIL → .done → .done.rejected로 rename + 사유 기록
- SKIP → 시그니처 없는 기존 task, 아무것도 하지 않음
    N)datetimetimezone	timedeltaz..teamsshared	verifiers	   )hours/home/jay/workspacetask_idworkspace_rootreturnc                    t         j                  j                  |dd      }t         j                  j                  ||  d      }t         j                  j                  ||  d      }t        j                  | |      }|j                  dd      }|j                  dg       }|dk(  rdd	|d
S |dk(  r|j                  dg       }t         j                  j                  |      rut        j                  ||       t        j                  t              j                         }	| d|	||d}
t        |dd      5 }t        j                  |
|dd       ddd       dd||dS dd|d
S # 1 sw Y   xY w)u   
    .done 파일 감지 시 자동 검증 실행.

    Returns:
        {"status": "PASS"|"FAIL"|"SKIP", "action": "keep"|"reject"|"skip", "details": [...]}
        FAIL 시 추가: "failed_signatures": [...]
    memoryeventsz.donez.done.rejectedstatusSKIPdetailsPASSkeep)r   actionr   FAILfailed_signatures)r   r   rejected_atr   r   wzutf-8)encodingF   ensure_asciiindentNreject)r   r   r   r   skip)ospathjoinsignature_checkverifygetexistsrenamer   nowKST	isoformatopenjsondump)r   r   
events_dir	done_pathrejected_pathresultr   r   r   r   rejection_datafs               D/home/jay/workspace/.worktrees/task-2057-dev2/scripts/verify_done.pyverify_doner8      sb    nhAJZG9E):;IGGLLy-GHM ##G^<FZZ&)FjjB'G FwGG	6	"JJ':B? 77>>)$IIi/",,s+557K" *%6"N mS7; Kq		.!%JK !2	
 	
 !FwGGK Ks   6E%%E.__main__   r   Fr   r   r   )r   )__doc__r/   r#   sysr   r   r   r$   insertr%   dirname__file__r&   r,   strdictr8   __name__argvr   lenr   r4   printdumpsexit     r7   <module>rJ      s     	 
 2 2 277<< 94(T_` a yq!"1H 1Hc 1Hd 1Hh zhhqkG$'MA$5SXXa[;PN.1F	*$**V%
:;CHH&"f,Q!4 rI   