
     j                    R    U d Z ddlmZ g dZded<   g dZded<   ddZdd	Zdd
Zy)u  
git_evidence_filter.py — runtime noise 경로 필터 (단일 진실의 원천).

task-2480: daemon heartbeat / log / runtime 파일이
git_evidence verifier 의 dirty check 를 오염시키지 않도록
runtime 으로 분류해야 할 경로 패턴을 한 곳에 모아 관리한다.

Exports:
    RUNTIME_PATTERNS  — 디렉토리 prefix / 단일 파일 패턴 list
    RUNTIME_SUFFIXES  — 파일 확장자(접미사) list
    is_runtime_path(filepath) -> bool
    filter_runtime_paths(paths) -> list[str]
    )annotations)zlogs/zmemory/heartbeats/memory/events/heartbeatzmemory/runtime/zmemory/state/zmemory/daily/zmemory/whisper/zmemory/logs/zmemory/tasks/zmemory/reports/zbot-activity.jsonztoken-ledger.jsonzmemory/pipeline-status.jsonzmemory/preview-state.jsonzmemory/merge-log.jsonzmemory/bot_settings_sync.jsonzmemory/memory-check-log.jsonz!dashboard/data/refine-status.jsonz"dashboard/data/refine-history.jsonzmemory/.task-counterzmemory/task-timers.jsonz scripts/gemini_rate_tracker.jsonztests/coverage-report.txtzmemory/canary-status.jsonz'dashboard/data/medium-comments-log.jsonzconfig/constants.json	list[str]RUNTIME_PATTERNS)z
.heartbeatz.donez	.escalatez
.qc-resultz
.cancelledz.followup.txtRUNTIME_SUFFIXESc                &    | j                  dd      S )u$   경로 separator 를 '/' 로 통일.\/)replace)paths    0/home/jay/workspace/utils/git_evidence_filter.py
_normalizer   @   s    <<c""    c                
   | syt        |       }t        D ]  }|j                  |      s y t        D ]N  }|s|j                  d      s|dk(  r|j	                  |      s||v s2 y||k(  s|j                  d|z         sN y y)u  주어진 파일 경로가 runtime noise 인지 판별.

    매칭 규칙:
      - RUNTIME_SUFFIXES: normalized.endswith(suffix)
      - RUNTIME_PATTERNS:
          * 디렉토리 prefix ('/' 로 끝나거나 'memory/events/heartbeat' 같은 prefix):
              pattern in normalized  또는  normalized.startswith(pattern)
          * 단일 파일 (위 prefix 가 아닌 경우):
              normalized == pattern  또는  normalized.endswith("/" + pattern)
    FTr
   r   )r   r   endswithr   
startswith)filepath
normalizedsuffixpatterns       r   is_runtime_pathr   E   s     H%J # v&
 $  C G/H$H$$W-J1F W$
(;(;C'M(J r   c                D    | D cg c]  }t        |      r| c}S c c}w )u7   runtime noise 파일을 제거한 새 리스트 반환.)r   )pathsps     r   filter_runtime_pathsr   j   s    7!OA$6A777s   N)r   strreturnr   )r   r   r   bool)r   r   r   r   )	__doc__
__future__r   r   __annotations__r   r   r   r    r   r   <module>r#      s>    # ) H ) #
"J8r   