
    .i                     x    d Z ddlmZ ddlmZ  ed       G d d             Z ed       G d d	             Zy
)u   Step 산출물 무결성 검증 리포트 dataclass.

verify_completion()이 반환하는 CompletionReport와 cleanup_artifacts()가 반환하는
CleanupReport를 정의한다. 모두 frozen — 호출자는 로깅·결정에만 사용.
    )	dataclass)LiteralT)frozenc                   Z    e Zd ZU dZeed<   ee   ed<   ed   ed<   e	ed<   dZ
ed   ed	<   y
)CompletionReportuH  Step 산출물 무결성 검증 결과.

    is_complete=True → resume entry verify에서 skipped 결정 + exit verify에서 completed 마킹.
    is_complete=False → entry: ResumeDecision evaluation, exit: status='partial' 마킹.

    origin (Block B B1, plan v2.1.3 / spec V5 §2.1): verify 결과의 분류.
    ResumeDecision 평가 시 사용 — B7/B8 의 prerequisite. backward-compat:
    기존 verifier 가 origin 미지정 시 default 'artifact_missing' (현재 운영
    semantics 유지).
      - clean: 정상
      - artifact_missing: DB row / PNG / cp 파일 부재 (default)
      - contract_drift: schema/config_hash mismatch / loader contract / AppError
      - invariant_drift: sentinel/hash drift (mutator/manual/unknown)
      - verify_crashed: verifier 의 unexpected exception (B7 에서 fail-fast 격상)
    is_completemissing)cleanpartialr	   severitymetadataartifact_missing)r
   r   contract_driftinvariant_driftverify_crashedoriginN)__name__
__module____qualname____doc__bool__annotations__liststrr   dictr        O/Users/manta/Documents/Projects/TheRoad-I1/backend/app/core/integrity_report.pyr   r   
   sE     #Y344N 	 G	- r   r   c                   F    e Zd ZU dZeed<   eed<   ee   ed<   ee   ed<   y)CleanupReportu   force/auto-rerun 시 stale artifact 정리 결과.

    deleted_db_rows + deleted_files == 0 이면 noop (override 안 한 step의 default).
    deleted_db_rowsdeleted_filestargetsskippedN)r   r   r   r   intr   r   r   r   r   r   r    r    %   s)     #Y#Yr   r    N)r   dataclassesr   typingr   r   r    r   r   r   <module>r(      sN   
 "  $  4 $  r   