Back to home

YoungUsing

dsh-gpt-tool-compat

No description

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-gpt-tool-compat

非破坏性的 DSH 工具调用兼容层。某些模型调用方(如通过第三方提供方路由的 gpt-5.6-terra)会给每一个工具调用都附上提权参数,导致调用在参数校验阶段失败:

{ "command": "...", "justification": "", "sandbox_permissions": "workspace-write" }

本插件在 tools/pre-execute(分发前)拦截,只剥离必然校验失败的提权参数,把调用还原成模型本意要执行的普通调用。它不会:改动原本能成功的调用、绕过真实提权审批、或阻塞任何它无法处理的调用。监听器注册在进程级 root 作用域,覆盖所有会话的 pwsh/bash 及文件系统工具族调用。

安装

方式 A:作为 bundle(推荐)

  1. 把本包装进 web profile 的 node_modules:

    cd $env:USERPROFILE\.dsh\profiles\web
    npm install <本包路径,如 D:\Users\yq\Documents\code-and-repos\dsh-workspace\dsh-gpt-tool-compat>
    
  2. ~\.dsh\profiles\web\package.jsondsh.profile.bundles 数组里加入 "dsh-gpt-tool-compat"

    "dsh": {
      "profile": {
        "bundles": [
          "@deepseek-ai/dsh-base",
          "@deepseek-ai/dsh-web-app",
          "dsh-gpt-tool-compat"
        ]
      }
    }
    
  3. 重启 dsh web 服务,刷新页面。

方式 B:直接插行

  1. 同上安装包到 profile 的 node_modules。

  2. ~\.dsh\profiles\web\cordis.patch.yml 里插入:

    - insert:
        - id: gpt-tool-compat
          name: 'dsh-gpt-tool-compat'
    
  3. 重启 dsh web 服务。

验证

重启后随便开一个会话,用带空 justification 的工具调用测试(或观察之前失败的那些会话重试)——调用应正常执行,不再报 invalid justification / not strictly wider

原理与安全边界

  • 剥离规则只作用于四种在任何沙箱模式下都必然被拒的情况:空/非字符串 justificationsandbox_permissionsjustification 不成对、以及请求的模式不是当前有效模式严格更宽的提权(如 danger-full-access 下任何提权请求)。
  • 真正的更宽提权(如 read-onlyworkspace-write + 有效理由)原样放行,照常走真实用户审批。
  • 任何意外异常都会被捕获并放行原调用——本层永远不会让一个调用变得更糟。

License

MIT