모드가 자동 실행 범위를 바꿔
permission_mode='default'는 부수 효과가 있는 도구를 사용자에게 묻고, acceptEdits는 Write와 Edit를 자동 승인하되 Bash는 계속 물어. bypassPermissions는 모든 문을 열며, plan은 실행 없이 계획만 만들게 해. dontAsk는 아무것도 묻지 않고, 미리 승인 안 된 건 거부해. 목록은 SDK와 함께 늘어나(새 릴리스는 auto도 받아). 그러니 설치한 버전의 PermissionMode를 직접 읽어.
사람이 어디서 검토하는지 먼저 봐
개발자가 키보드 앞에서 매 요청을 보는 흐름에는 파일 편집을 빠르게 하는 acceptEdits가 잘 맞을 수 있어. 서버에서 무인으로 돌지만 네 UI로 누군가 답한다면 자체 권한 처리기를 둔 default가 맞고, 답할 사람이 아예 없다면 짧은 allowed_tools와 dontAsk를 써서 멈춰 서는 대신 거부하게 해. bypassPermissions는 다른 경계에서 이미 검토된 신뢰 가능한 CI 실행기 정도로 제한해.
도구별 판단이 필요하면 처리기를 만들어
콜백은 도구 이름, 도구 입력, ToolPermissionContext를 받아 PermissionResultAllow나 PermissionResultDeny를 돌려줘. 원래라면 물어봤을 호출에만 불려. allowed_tools로 미리 승인한 도구는 여기까지 오지도 않고, echo나 ls처럼 CLI가 이미 읽기 전용으로 보는 셸 명령도 안 와. 처리기를 시험할 땐 뭔가를 쓰는 명령으로 해. cwkPippa는 지금 이 콜백을 등록하지 않으니까, 사람이 보는 UI가 반대편에 있을 때 쓰는 패턴으로 받아. 권한 정책과 승인 화면이 같은 흐름을 가리켜야 해.