FlipFlopszzz/dsh-studio--plugins-permission0

@dsh-studio/plugins-permission

DSH 逐工具权限配置:设置页新增「权限配置」界面,下拉框列出全部工具,允许对每个工具单独设置 allow/ask/deny,经 tools/pre-execute 门禁即时生效

包名
@dsh-studio/plugins-permission
版本
0.1.0
最近更新
2026年8月17日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:FlipFlopszzz/dsh-studio#7f3f3a636c7622dd028aefec6e2d5993ec1ccf32&path:plugins/permission

@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-configtools/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)

  1. ~/.dsh/profiles/ /package.jsondependencies 加: "@dsh-studio/plugins-permission": "file:",然后在该目录 npm install
  2. ~/.dsh/profiles/ /cordis.patch.yml 加挂载行:
    - insert:
        - id: permission-config
          name: '@dsh-studio/plugins-permission'
    
  3. 重启 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)。