
    Ri                    4   d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
Z
dZej                  j                  d e ee      j!                         j"                  j"                  j"                              Z e ee      d	z        f	 	 	 	 	 	 	 dd
Zy)ut  capture.py - 스킬 실행 입력 자동 캡처 모듈.

스킬이 실행될 때 사용된 user_input을 자동으로 저장하여,
autoresearch 테스트 입력으로 활용한다.

저장 경로: skills/<skill_name>/evals/test-inputs.yaml

YAML 포맷:
    inputs:
      - id: input-20260326-143022
        text: "보험 FA 모집 광고, 타겟: 30대 보험설계사"
    )annotationsN)datetime)Path)Any   WORKSPACE_ROOTskillsc                   	 t        |      | z  dz  }|j                  dd       |dz  }g }|j                         rYt        j                  |j                  d            }t        |t              r$t        |j                  d      t              r|d   }|D ch c]  }|j                  dd	       }}||v ry
t        j                         j                  d      }	d|	 |d}
|j                  |
       t        |      t        kD  r|t        |      t        z
  d
 }d|i}|j!                  t        j"                  |dd      d       y
c c}w # t$        $ r'}t'        j(                  d|  d| d       Y d
}~y
d
}~ww xY w)u	  스킬 사용 입력을 test-inputs.yaml에 추가.

    - 중복 체크 (동일 텍스트 이미 있으면 스킵)
    - 최대 20개 유지 (오래된 것 FIFO 삭제)
    - id는 timestamp 기반 자동 생성 (예: "input-20260326-143022")

    Args:
        skill_name: 스킬 이름 (디렉토리 이름).
        user_input: 캡처할 사용자 입력 텍스트.
        skills_dir: 스킬 루트 디렉토리 경로.

    Returns:
        None (항상 None 반환; 예외 발생 시에도 raise하지 않음)
    evalsT)parentsexist_okztest-inputs.yamlzutf-8)encodinginputstext Nz%Y%m%d-%H%M%Szinput-)idr   F)allow_unicodedefault_flow_styleu,   [capture_input] 입력 저장 실패 (skill=z):    )
stacklevel)r   mkdirexistsyaml	safe_load	read_text
isinstancedictgetlistr   nowstrftimeappendlen_MAX_INPUTS
write_textdump	Exceptionwarningswarn)
skill_name
user_input
skills_dir	evals_dir	yaml_pathr   rawentryexisting_texts	timestamp	new_entrydataexcs                M/home/jay/workspace/.worktrees/task-2117-dev1/scripts/autoresearch/capture.pycapture_inputr7      s   &+
$z1G;	t4 22	 (*..!4!4g!4!FGC#t$CGGH4Et)LX >DDE%))FB/DD' LLN++O<	9+&%
	 	i  v;$CK+578F !)&1IId$5I 	 	
 ? E2  
::,c#O	
 	

 
s1   BE E3E :BE E 	F E;;F )r*   strr+   r8   r,   r8   returnNone)__doc__
__future__r   osr(   r   pathlibr   typingr   r   r$   environr   r8   __file__resolveparent_WORKSPACE_ROOTr7        r6   <module>rG      s    # 	     **..c$x.00299@@GGH $/(:;@@@ @ 
	@rF   