권한
slopcode는 주어진 동작이 자동으로 실행되는지 결정하기 위해 permission config를 사용하거나 차단합니다.
v1.1.1의 것과 같이, 유산 tools 불린 구성은 deprecated이고 permission로 합병되었습니다. 오래된 tools config는 여전히 뒤쪽 호환성을 위해 지원됩니다.
동작
각 권한 규칙은 다음과 같습니다:
"allow"- 승인없이 실행"ask"- 승인을위한 prompt"deny"- 동작 차단
구성
글로벌 권한(* 포함) 및 특정 도구를 부여할 수 있습니다.
{ "$schema": "https://slopcode.dev/config.json", "permission": { "*": "ask", "bash": "allow", "edit": "deny" }}한 번에 모든 권한을 설정할 수 있습니다.
{ "$schema": "https://slopcode.dev/config.json", "permission": "allow"}세부 규칙 (객체 구문)
대부분의 권한을 위해 도구 입력을 기반으로 다른 작업을 적용 할 수 있습니다.
{ "$schema": "https://slopcode.dev/config.json", "permission": { "bash": { "*": "ask", "git *": "allow", "npm *": "allow", "rm *": "deny", "grep *": "allow" }, "edit": { "*": "deny", "packages/web/src/content/docs/*.mdx": "allow" } }}규칙은 패턴 일치에 의해 평가됩니다, ** 마지막 일치 규칙 우승 **. 일반적인 패턴은 catch-all "*" 규칙을 먼저 넣는 것입니다, 그리고 그 후에 더 구체적인 규칙.
와일드카드
Permission 본 사용 간단한 wildcard 일치:
*는 어떤 성격든지의 0개 이상 일치합니다?는 정확히 하나의 문자 일치- 다른 모든 문자 일치 말 그대로
홈 디렉토리 확장
~ 또는 $HOME를 사용할 수 있습니다 패턴의 시작에 홈 디렉토리를 참조. 이것은 특히 유용합니다 external_directory 규칙.
~/projects/*->/Users/username/projects/*$HOME/projects/*->/Users/username/projects/*~->/Users/username
외부 디렉터리
external_directory를 사용하여 도구가 slopcode가 시작된 작업 디렉토리 밖에 터치 경로가 호출되도록합니다. 이것은 입력 (예 : read, edit, list, glob, glob, grep 및 많은 bash 명령)로 경로를 수행하는 모든 도구에 적용됩니다.
홈 확장 (~/...와 같은) 패턴이 작성된 방법에 영향을 미칩니다. 그것은 현재의 작업 공간의 외부 경로 부분을 만들지 않습니다, 그래서 작업 디렉토리 외부 경로는 여전히 external_directory를 통해 허용해야합니다.
예를 들어, 이것은 ~/projects/personal/의 모든 것에 액세스 할 수 있습니다.
{ "$schema": "https://slopcode.dev/config.json", "permission": { "external_directory": { "~/projects/personal/**": "allow" } }}여기에 허용되는 모든 디렉토리는 현재 작업 공간과 동일한 기본값을 상속합니다. read defaults to allow는 external_directory에서 external_directory의 항목에 대해 읽을 수 있습니다. 도구가 이러한 경로에 제한 될 때 명시적 규칙을 추가하십시오.
{ "$schema": "https://slopcode.dev/config.json", "permission": { "external_directory": { "~/projects/personal/**": "allow" }, "edit": { "~/projects/personal/**": "deny" } }}신뢰할 수있는 경로에 초점을 맞춘 목록을 유지하고 다른 도구 (예 : bash)에 필요한대로 추가 허용하거나 deny 규칙을 층을 설정합니다.
사용 가능한 권한
slopcode 권한은 도구 이름에 의해 키 입력되며, 두 개의 안전 가드 :
read- 파일 읽기 (파일 경로의 매칭)edit- 모든 파일 수정 (coversedit,write,patch,multiedit)glob- 파일 globbing (glob 패턴 매칭)grep- 콘텐츠 검색 ( regex 패턴 매칭)list- 디렉토리의 목록 파일 (폴더 경로 매칭)bash- shell 명령 실행 (git status --porcelain와 같은 팟 명령)task- 에이전트 실행 (작업 에이전트 유형)skill- 기술을 로딩 (기술 이름을 매칭)lsp- LSP 쿼리 실행 (현재 비 과립)todoread,todowrite- 토도 목록의 읽기 / 업데이트webfetch- URL을 fetching ( URL을 매칭)websearch,codesearch- 웹 / 코드 검색 (문자 쿼리)external_directory- 프로젝트 작업 디렉토리 외부의 도구 접촉 경로 때 트리거doom_loop- 동일한 도구 호출이 동일한 입력으로 3 번 반복 할 때 트리거
기본값
아무것도 지정하지 않는 경우, slopcode는 permissive 기본값에서 시작합니다.
"allow"에 기본 권한.doom_loop및external_directory기본적으로"ask".read는"allow"이고, 그러나.env파일은 기본적으로 denied:
{ "permission": { "read": { "*": "allow", "*.env": "deny", "*.env.*": "deny", "*.env.example": "allow" } }}“Ask”란 무엇입니까?
slopcode가 승인되면 UI는 세 가지 결과를 제공합니다.
once- 이 요청을 승인always- 제안 된 패턴과 일치하는 미래 요청 (현재 slopcode 세션의 나머지)reject- 요청을 거부
always는 도구 (예를 들면, bash 승인 일반적으로 git status*와 같은 안전한 명령 접두사)에 의해 approve가 제공 될 패턴의 집합.
에이전트
에이전트 당 권한이 부여 될 수 있습니다. 에이전트 권한은 글로벌 구성과 합병되며, 에이전트 규칙은 우선합니다. Learn more 약 에이전트 권한.
{ "$schema": "https://slopcode.dev/config.json", "permission": { "bash": { "*": "ask", "git *": "allow", "git commit *": "deny", "git push *": "deny", "grep *": "allow" } }, "agent": { "build": { "permission": { "bash": { "*": "ask", "git *": "allow", "git commit *": "ask", "git push *": "deny", "grep *": "allow" } } } }}Markdown의 에이전트 권한을 구성할 수 있습니다.
---description: Code review without editsmode: subagentpermission: edit: deny bash: ask webfetch: deny---
Only analyze code and suggest changes.