dsh-gpt-tool-compat
开发工具 活跃维护

dsh-gpt-tool-compat

YoungUsing/dsh-gpt-tool-compat

可自动过滤第三方路由模型给工具调用附带的冗余提权参数,避免参数校验失败,无侵入原有调用逻辑,轻量接入即可恢复正常工具调用流程。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
6 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:YoungUsing/dsh-gpt-tool-compat
git clone https://github.com/YoungUsing/dsh-gpt-tool-compat.git
git clone git@github.com:YoungUsing/dsh-gpt-tool-compat.git
README.md master

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.json 的 dsh.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。

原理与安全边界

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

License

MIT