
    (<i1                     X    d Z ddlZddlZ	 	 	 	 ddededededz  dedefd	Zd
edefdZy)uN   claude -p CLI 래퍼 모듈 - Anthropic SDK 대신 CLI를 통해 모델 호출    Npromptmodel
max_tokenssystemtimeoutreturnc                 z   t         j                  j                         }|j                  dd       dd| ddd|dd	d
dddg}|r|j	                  d|g       t        j                  |dd||      }|j                  dk7  r%t        d|j                   d|j                         |j                  j                         S )u  claude -p CLI를 통해 모델 호출.

    Args:
        prompt: 사용자 프롬프트
        model: 사용할 모델 (기본: claude-sonnet-4-6)
        max_tokens: 최대 토큰 수 (현재 CLI에서 미지원, 향후 대비)
        system: 시스템 프롬프트 (선택)
        timeout: subprocess 타임아웃 (초, 기본 120)

    Returns:
        모델 응답 텍스트

    Raises:
        RuntimeError: claude -p 실행 실패 시
        subprocess.TimeoutExpired: 타임아웃 초과 시
    
CLAUDECODENclaudez-pz--output-formattextz--modelz--max-turns1z--tools z--setting-sourcesuserz--system-promptT)capture_outputr   envr   r   zclaude -p failed (exit z): )osenvironcopypopextend
subprocessrun
returncodeRuntimeErrorstderrstdoutstrip)r   r   r   r   r   r   cmdresults           S/home/jay/workspace/.worktrees/task-2057-dev2/scripts/autoresearch/claude_runner.pycall_clauder!      s    . **//
CGGL$T6#4fiP]_bdmoq  tG  IO  PC

%v./^^C4SRYZFA4V5F5F4Gs6==/Z[[==      r   c                 2    t        dt        |       dz        S )u   텍스트의 토큰 수를 추정 (chars/4).

    claude -p는 토큰 사용량을 직접 리턴하지 않으므로,
    문자 수 / 4로 추정한다.
          )maxlen)r   s    r    estimate_tokensr(   +   s     q#d)q.!!r"   )zclaude-sonnet-4-6i   Ni,  )__doc__r   r   strintr!   r(    r"   r    <module>r-      sq    T 	 
 %!!!!!! !! $J	!!
 !! 	!!H"# "# "r"   