DSH 插件 dsh-plugin-sandbox-escalation-fix:忽略同級或過低的無效沙箱提權請求

前言

在 DeepSeek Harness(DSH)裏,模型有時會在已經擁有較高沙箱權限時,仍然攜帶 sandbox_permissions。如果請求的權限不高於當前 Session 權限,這類參數本來沒有實際作用,卻可能觸發 not strictly wider 一類錯誤,或把無效請求帶入審批路徑。dsh-plugin-sandbox-escalation-fix 針對這個問題做一個很小的兼容層:它只處理不高於當前權限的無效參數,並保留 DSH 原有的提權審批與非法參數校驗。

這是什麼

inmny/dsh-sandbox-escalation-fix 是 MIT 許可的 DSH 插件。npm/README 中的包名爲 dsh-plugin-sandbox-escalation-fix,當前資料給出的安裝版本爲 0.1.2

它解決的是 DSH 0.1.0-rc.6sandbox_permissionsjustification 參數不匹配造成的噪音:模型已經擁有同級或更高權限時,重複請求不會誤入審批;真正更寬的請求仍按 DSH 原有流程審批。

核心功能

插件在 Host 側對 bashpwshwriteedit 中多餘或過時的提權參數做正規化。standardcodecordisminimal 以及自定義 preset 中可見的對應工具共用這一修復,不需要額外配置。

主要行爲如下:

  • 忽略不高於 Session 當前權限的無效 sandbox_permissions 請求,避免模型在已經擁有更高或相同權限時反覆觸發 not strictly wider 錯誤。
  • 對確實需要升級但 justification 缺失或爲空白時,自動填入 "Empty justification"
  • 忽略只有 justification 而沒有 sandbox_permissions 的孤立理由,避免 invalid escalation 參數配對錯誤。
  • 真正更寬的請求仍進入 DSH 審批流程;合法非空理由保持不變。
  • read-only、未知 target 或非字符串 justification 等非法值仍由 DSH 拒絕。
  • 插件只作爲 bundle layer 安裝到目標 profile,不修改 DSH 安裝目錄。
  • 插件監聽工具和 Agent 生命週期,可處理全局定義、preset scoped shadow、後創建 Agent 和工具 HMR;工具替換或 Agent 銷燬後,已經不可見的包裝會被恢復並釋放;插件卸載後,舊包裝只會惰性透傳參數。

這裏要注意:它不是權限放開器。approval: never 表示審批請求自動拒絕,不表示自動授予權限。

安裝與啓用

運行時要求:

  • Node.js 24 或更高版本
  • DSH 0.1.0-rc.6
  • DSH 支持的 Host 平臺

從 npm 安裝固定版本到 Web profile:

dsh plugin --profile web add dsh-plugin-sandbox-escalation-fix@0.1.2

更新現有安裝時使用同一條命令。安裝完成後重啓 dsh web,讓 Host 加載新插件,然後新建會話。

安裝最新版時可以省略版本號:

dsh plugin --profile web add dsh-plugin-sandbox-escalation-fix

開發本地版本時傳入 checkout 路徑:

dsh plugin --profile web add C:\path\to\dsh-sandbox-escalation-fix

移除插件:

dsh plugin --profile web remove dsh-plugin-sandbox-escalation-fix

開發時運行完整驗證:

pnpm install
pnpm test
pnpm run pack:check

典型用法

安裝後不需要再爲 bashpwshwriteedit 單獨配置。插件會在工具調用前檢查當前 Session 的沙箱權限:

  • 如果請求的 sandbox_permissions 不高於當前權限,插件會忽略這個無效提權參數,並按當前 Session 權限執行工具。
  • 如果請求確實更寬,插件保持參數,繼續走 DSH 原有審批。
  • 如果只有 justification 而沒有 sandbox_permissions,插件會忽略這個孤立理由。
  • 如果需要升級但理由缺失或空白,插件使用 "Empty justification" 作爲 fallback。

這個行爲等價於“只清理無效參數,不改變合法審批語義”。

適用場景與注意

適合使用 DSH 0.1.0-rc.6、在 bashpwshwriteedit 中遇到同級或過時沙箱權限參數造成反覆報錯的開發者。它適合作爲過渡兼容插件:如果後續 DSH 原生接受這類無效提權 no-op,移除該插件即可。

使用前建議檢查倉庫源碼、依賴和 MIT 許可證,並確認目標 profile 的權限模型符合預期。插件以當前 DSH 進程權限運行,安裝後會影響對應 profile 中可見工具的執行參數正規化。

幾個邊界:

  • 這是針對 DSH 0.1.0-rc.6 ToolDefinition 結構的兼容插件,升級 DSH 後應先運行測試並檢查上游是否已經原生接受這類無效提權 no-op。
  • package.jsonpeerDependencies 固定要求 @deepseek-ai/cordis 4.0.1 和多個 @deepseek-ai/* 0.1.0-rc.6 包。
  • 插件只處理參數正規化,不會放行真正的提權請求,也不會替代 DSH 的非法參數校驗。
  • 命名存在差異:倉庫線索爲 inmny/dsh-sandbox-escalation-fix,npm/README 包名爲 dsh-plugin-sandbox-escalation-fix

鏈接

倉庫:

  • https://github.com/inmny/dsh-sandbox-escalation-fix

目錄頁線索(來自插件線索,未在本次資料中核實):

  • https://www.skillhub.cn/plugins/inmny/dsh-sandbox-escalation-fix

生態說明:DSH 的插件生態遵循“一切皆插件”的思路;這裏提到的目錄頁屬於社區目錄,不等同於 DeepSeek 或幻方的官方應用商店。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜