FlipFlopszzz/dsh-studio--plugins-permission ↗★ 0
@dsh-studio/plugins-permission
DSH 逐工具权限配置:设置页新增「权限配置」界面,下拉框列出全部工具,允许对每个工具单独设置 allow/ask/deny,经 tools/pre-execute 门禁即时生效
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:FlipFlopszzz/dsh-studio#7f3f3a636c7622dd028aefec6e2d5993ec1ccf32&path:plugins/permission说明文档
阅读完整 README ↗@dsh-studio/plugins-permission
DSH 逐工具权限配置插件:在「设置」界面新增一个 权限配置 分区,下拉框列出部署中的全部工具,允许对每个工具单独设置:
| 规则 | 效果 |
|---|---|
allow | 不干预(默认) |
ask | 每次调用走审批通道 —— 会话审批策略为 ask 时弹窗询问,为 never 时自动拒绝 |
deny | 直接拒绝该工具的每一次调用 |
规则经 tools/pre-execute 门禁即时生效,与沙箱模式无关 —— 即使会话处于 danger-full-access(全权访问),deny/ask 依然生效。
结构
src/index.ts(host 半):注册 settings 命名空间dsh-permission-config、tools/pre-execute门禁、/permconfig/api/*fenced 路由(tools.list/settings.get/settings.update)。src/client/index.tsx(client 半):settings.section插槽注册「权限配置」设置页(工具下拉框 + 三选规则 + 已配置规则概览)。
构建
npm install # 根目录(workspace 成员,依赖 hoist 到根 node_modules)
npm run build -w @dsh-studio/plugins-permission
挂载(profile)
~/.dsh/profiles/ /package.json的dependencies加:"@dsh-studio/plugins-permission": "file:",然后在该目录npm install。~/.dsh/profiles/ /cordis.patch.yml加挂载行:- insert: - id: permission-config name: '@dsh-studio/plugins-permission'- 重启 DSH(host 半改动);client 半改动构建后硬刷新浏览器(
Ctrl+Shift+R)即可。
与其他权限机制的关系
- 与 DSH 内置权限预设(sandbox × approval)相互独立、可叠加。
ask规则的实际弹窗与否取决于会话审批策略(danger-full-access 预设捆绑never,会静默拒绝;workspace-write/Auto预设为ask,会弹窗)。- 不修改 DeepSeek Harness 内核;
isTrustedApiRequest围栏复制自dsh-client-connection(BSD-3-Clause)。