
    Ej                    D    d Z ddlmZ ddlZddlmZmZ ddZd	dZd
dZ	y)z`main-vs-worktree dirty file preflight: 4-step check + 3-decision classifier (PR #153 RCA guard).    )annotationsN)DictListc                \   t        j                  g d| ddd      }g }|j                  j                         D ]p  }t	        |      dk  r|dd j                         }d|v r|j                  dd      d   }|j                         j                  d	      }|s`|j                  |       r |S )
zIReturn list of changed file paths from `git status --short` in given cwd.)gitstatusz--shortTF)cwdcapture_outputtextcheck   Nz ->    ")
subprocessrunstdout
splitlineslenstripsplitappend)r	   procpathslinerests        P/home/jay/workspace/.worktrees/task-2691+a-dev6/utils/main_conflict_preflight.py_git_status_shortr      s    >>$D E&&( t9>ABx~~T>::fa(+Dzz|!!#&LL L    c                    t        |      }t        |       }t        t        |      t        |      z        }t        |      dkD  }||||d}t	        |      |d<   |S )zN4-step preflight: main dirty + worktree dirty + intersection + violation flag.r   )
main_dirtyworktree_dirtyintersection	violationdecision)r   sortedsetr   classify_decision)worktree_pathmain_workspacer    r!   r"   r#   results          r   run_preflightr+      sf    ">2J&}5N#j/C,??@LL!A%I ($	F +62F:Mr   c                    | j                  d      xs g }| j                  d      xs g }t        |      dk\  ryt        |      dk(  ryy)z53-decision classifier: PASS / HOLD_FOR_CHAIR / BLOCK.r    r"   r   BLOCKr   PASSHOLD_FOR_CHAIR)getr   )preflight_resultr    r"   s      r   r'   r'   .   sN    !%%l39rJ#''7=2L
<A
:!r   )r	   strreturnz	List[str])r(   r2   r)   r2   r3   dict)r1   r4   r3   r2   )
__doc__
__future__r   r   typingr   r   r   r+   r'    r   r   <module>r9      s     f "  , r   