
    8#j	                    n    d Z ddlmZ ddlZddlZddlZddlmZ ddZd	d
dZ	e
dk(  r e e	             y)u  task-2729+3: merge_policy resolver.

task md 의 allowed_resources 블록에서 merge_policy 값을 파싱한다.
단일 책임·순수 함수. 외부 의존(네트워크/키/환경변수) 없음.

반환:
  - "none" | "tiered" | "auto" | "<value>" (소문자) — 명시된 경우
  - ""  — allowed_resources/merge_policy 미발견 (호출측 fail-CLOSED 신호)

종료 코드:
  - 0  — 정상(값은 stdout, 미발견이면 빈 문자열)
  - 2  — 인자/사용법 오류(argparse)

주의: finish-task.sh 는 본 resolver 를 2>/dev/null 없이 호출하므로,
      파싱 불가/예외는 fail-CLOSED 로 처리되도록 빈 문자열 또는 비-zero 종료로만 신호한다.
    )annotationsN)Pathc                @   	 t        |       j                  d      }d}|j	                         D ]  }|st        j                  d|      rd}|j                         j                  d      r yt        j                  d|      }|sX|j                  d	      }|j                  d
d	      d   j                         }|j                         j                  d      j                  d      j                         }|j                         c S  y# t        t        f$ r Y yw xY w)u  task md 파일에서 allowed_resources.merge_policy 를 추출한다.

    allowed_resources: 마커 이후 최초의 merge_policy: 라인만 신뢰한다(본문 산문 오탐 방지).
    값의 따옴표/인라인주석(#)을 제거하고 소문자로 정규화한다.
    파일 미존재/디코딩 실패/미발견 시 빈 문자열을 반환한다(호출측이 fail-CLOSED 처리).
    zutf-8)encoding Fz^\s*allowed_resources\s*:Tz```z ^\s*merge_policy\s*:\s*(.+?)\s*$   #r   "')r   	read_textOSErrorUnicodeDecodeError
splitlinesrematchstrip
startswithgroupsplitlower)task_md_pathtext
in_allowedlinemvalues         \/home/jay/workspace/.worktrees/task-2729+7-dev1/scripts/harness/v36/merge_policy_resolver.pyresolve_merge_policyr      s   L!++W+= J! !xx4d;!
::<""5)  HH8$?GGAJEKKQ'*002EKKM'',2237==?E;;= ! % '( s   D DDc                    t        j                  d      }|j                  ddd       |j                  |       }t        j
                  j                  t        |j                               y)Nz)Resolve merge_policy from a task md file.)descriptionz	--task-mdTzPath to the task markdown file.)requiredhelpr   )	argparseArgumentParseradd_argument
parse_argssysstdoutwriter   task_md)argvparserargss      r   mainr.   8   sX    $$1\]F
d9Z[T"DJJ)$,,78    __main__)returnstr)N)r1   int)__doc__
__future__r   r#   r   r'   pathlibr   r   r.   __name__
SystemExit r/   r   <module>r:      sA     #  	 
 < z
TV
 r/   