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(推荐)
-
把本包装进 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> -
在
~\.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" ] } } -
重启
dsh web服务,刷新页面。
方式 B:直接插行
-
同上安装包到 profile 的 node_modules。
-
在
~\.dsh\profiles\web\cordis.patch.yml里插入:- insert: - id: gpt-tool-compat name: 'dsh-gpt-tool-compat' -
重启
dsh web服务。
验证
重启后随便开一个会话,用带空 justification 的工具调用测试(或观察之前失败的那些会话重试)——调用应正常执行,不再报 invalid justification / not strictly wider。
原理与安全边界
- 剥离规则只作用于四种在任何沙箱模式下都必然被拒的情况:空/非字符串
justification、sandbox_permissions与justification不成对、以及请求的模式不是当前有效模式严格更宽的提权(如danger-full-access下任何提权请求)。 - 真正的更宽提权(如
read-only→workspace-write+ 有效理由)原样放行,照常走真实用户审批。 - 任何意外异常都会被捕获并放行原调用——本层永远不会让一个调用变得更糟。
License
MIT