权限
码道CLI可通过配置“permission”文件,管控码道CLI的执行权限,支持自动运行、提示用户审批以及禁止运行。
配置路径
权限文件的配置路径:~/.codeartsdoer/cli-data/storage/permission/global.json
配置格式
权限配置格式如下所示。
[
{
"permission": "权限名称",
"pattern": "*",
"action": "权限策略"
}
] 权限策略配置参数
| 权限 | 说明 |
|---|---|
| read | 读取文件,按照文件路径匹配 |
| edit | 所有文件修改,包括AI新建、修改文件或者批量修改代码时触发(edit、write、patch) |
| glob | 文件通配,AI用通配符批量查找文件。例如执行“ls *.txt”指令时触发 |
| grep | 内容搜索,AI用正则在项目中搜索关键词时触发。例如执行“grep -r "TODO” |
| bash | 运行Shell命令,匹配解析后的完整命令。例如AI执行“git status”、“npm install”、“python manage.py runserver”等命令时触发 bash命令的权限需要与“bash_mode”结合,以Windows系统为例,“bash_mode”需要在“~\.codeartsdoer\cli-data\storage\permission\config.json”文件中配置,“bash_mode”支持的配置模式请参考表3。 |
| webfetch | 获取URL,AI访问外部API、下载文件或者获取网页内容时触发 |
| external_directory_read | 读取项目目录外的路径,AI读取“/etc/hosts”、“~/.ssh/id_rsa”这类不在项目工作目录内的文件时触发 |
| external_directory_write | 修改项目目录外的路径,AI写入或者修改“/etc”、“~/.bashrc”这类系统或用户配置文件时触发 |
| dotfile | 修改点文件(以“.”开头的配置文件),AI修改“.gitignore”、“.env”、“.vscode”或者“settings.json”等隐藏配置文件时触发 |
| doom_loop | 工具调用重复循环保护,当同一工具,例如“read”以完全相同的输入被连续调用3次时触发,防止死循环 |
白名单配置示例
示例如下:
[
{
"permission": "bash",
"pattern": "git *",
"action": "allow"
},
{
"permission": "bash",
"pattern": "npm *",
"action": "allow"
},
{
"permission": "bash",
"pattern": "ls *",
"action": "allow"
}
] 此示例包含3个JSON对象,表示AI可以自动运行以git开头的所有命令。