두 lifecycle에 두 API
SDK가 top-level 진입점 둘 노출. query(prompt, options)는 one-shot async generator — 서브프로세스 spin up, 단일 프롬프트 완료까지 run, tear down. ClaudeSDKClient(options)는 long-lived 클라이언트 — 한 번 connect, 메시지 여럿 보내, 서브프로세스 살려둠.
query() fit 시점
스크립트, CI 작업, batch 변환, 에이전트가 완료까지 run하고 exit하는 어느 거. 각 query 독립. cwk-site가 build-time 콘텐츠 생성에 query() 사용.
ClaudeSDKClient fit 시점
챗 애플리케이션, long-running 운영자, 메시지 여럿이 상태 공유하는 어느 거. cwkPippa Claude 브레인이 conversation_id당 ClaudeSDKClient 하나 — 서브프로세스 persist, 대화 계속, SDK가 너 재전송 없이 internal history replay.
원칙: One-shot엔 query(). Long haul엔 Client. 섞기 OK; lifecycle에 wrong 거 쓰는 게 낭비.