DeepSeek Harness Hub
← 返回列表

YaoaY/dsh-gpt-compat

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
✓ 可直接安装

DSH 的 GPT/Codex 沙箱提权参数兼容插件 | Fail-closed GPT/Codex sandbox…

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node >=20);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/8/26 · 已提供中文文档

DSH 的 GPT/Codex 沙箱提权参数兼容插件 | Fail-closed GPT/Codex sandbox escalation compatibility for DeepSeek Harness

综合分
33.5
GitHub 分
33.5
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-gpt-compat
npm 包 dsh-gpt-compat 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-gpt-compat @ 0.2.3
Node 引擎要求 >=20 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 07:10:24

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-tools
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-gpt-compat

CI
npm
License: MIT

面向 DeepSeek Harness 的 GPT/Codex 沙箱提权参数兼容插件。

部分模型会在普通写操作中习惯性附带:

{
"sandbox_permissions": "workspace-write",
"justification": "not used"
}

DSH 将这两个字段定义为沙箱拒绝后的单次提权重试。同级或更窄的请求会在工具执行前被拒绝。本插件只在能够证明请求冗余时删除这两个字段,让工具按当前会话策略执行。

使用效果

使用前:冗余参数导致工具调用反复失败
使用后:工具按当前沙箱策略正常执行

安全边界

插件采用 fail-closed 规则:

- 只处理 providers 和 tools 同时允许的调用。
- 注册工具的 schema 必须同时声明 DSH 的 sandbox_permissions 枚举和 justification 字段。
- 只删除完整或可证明冗余的请求:已知目标模式且不严格扩权时,即使理由为空、缺失或格式异常,也只会删除这两个提权字段;
- 真正扩权的请求必须带非空理由并保持不变,继续进入 DSH 原生审批流程。
- 孤立字段、空理由的扩权请求、未知模式、策略解析失败保持不变,由 DSH 核心验证或拒绝。
- 当前请求 provider 取自 session request header,无法取得时才回退到 agent 初始 provider。

该边界避免插件仅凭参数名修改 MCP 或第三方工具。配置 tools 时仍应只列出实现 DSH 原生提权契约的工具。

兼容性

- Node.js 20 或更高版本
- @deepseek-ai/cordis 4.x
- @deepseek-ai/dsh-tools 0.1.0-rc.7 或兼容版本
- @deepseek-ai/dsh-sandbox-policy 0.1.0-rc.7 或兼容版本

安装

将插件安装到目标 DSH profile:

dsh plugin --profile web add dsh-gpt-compat

这个包声明了 dsh.bundle.patch,DSH 会在安装后把它加入 profile 的 bundle 列表。本地开发可从插件目录执行:

dsh plugin --profile web add .

配置

默认 bundle 配置:

providers: [""]
tools: ["bash", "pwsh", "write", "edit"]

| 字段        | 类型       | 默认值                              | 含义                                                                   |
| ----------- | ---------- | ----------------------------------- | ---------------------------------------------------------------------- |
| providers | string[] | []                                | 允许处理的 provider id。空数组停用插件;显式 '' 表示所有 provider。 |
| tools     | string[] | ['bash', 'pwsh', 'write', 'edit'] | 允许处理的 DSH 原生提权工具名。空数组停用插件。                        |

通过 profile 或 home 级 cordis.patch.yml 覆盖时,需要重述完整配置:

- id: gpt-compat
config:
providers: ["your-gpt-provider"]
tools: ["bash", "write", "edit"]

API

主入口导出 Cordis 插件的 name、inject、Config、apply,以及以下纯函数和类型:

- resolveConfig():标准化直接调用者提供的部分配置。
- classifyEscalation():返回 none、strip 或带原因的 preserve 决策。
- SANDBOX_MODES、ESCALATION_TARGETS:只读模式词汇。
- Config、SandboxMode、EscalationTarget:TypeScript 类型。

纯决策层也可从 dsh-gpt-compat/escalation-guard 导入。

开发

pnpm install --frozen-lockfile
pnpm run check
pnpm pack:check

pnpm run check 依次检查格式、lint、类型、覆盖率、发布结构、声明文件,并在空白临时项目中安装和导入真实 tarball。CI 在 Node.js 20 与 22 上运行同一套门禁。

故障排查
- 日志显示 inactive:providers 或 tools 为空。
- 参数没有被删除:检查当前 session route 的 provider、工具名以及注册 schema 是否声明完整提权字段。
- 畸形扩权请求仍然失败:这是预期行为;插件不会将缺少非空理由的扩权请求降级为普通调用。
- 普通调用仍失败:检查当前请求的 sandbox_permissions 是否是已知模式且不严格宽于当前会话策略;这类冗余字段会被插件删除。

安全问题请按 SECURITY.md 私下报告。贡献流程见 CONTRIBUTING.md,版本变化见 CHANGELOG.md。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(YaoaY)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群