DeepSeek Harness 插件集:沙箱權限處理與路徑查看器

前言

DeepSeek Harness (DSH) 生態支持通過插件擴展功能。@MarvekG/dsh-plugins 是一個由 MarvekG 維護的 DSH 插件集合,包含兼容性修復和功能增強。它解決了智能體開發中常見的兩個具體問題:冗餘的沙箱權限請求報錯,以及在 Web 界面點擊文件路徑失敗的問題。

核心功能

本插件包含以下已覈實的能力:
1. 處理冗餘沙箱權限請求:當 session 權限已切換爲 danger-full-access,但重試請求仍攜帶窄於當前權限的 sandbox_permissions 和 justification 時,插件會自動清理這些冗餘字段,避免 DSH 報錯 sandbox escalation is not strictly wider。
2. 點擊路徑改爲彈出網頁查看器:將原生的文件打開請求(可能涉及 spawn powershell.exe)攔截並改爲在瀏覽器中打開,解決 WSL 環境下的路徑調用失敗問題。
3. 多入口結構:包含 sandbox-same-mode 和 path-viewer 兩個獨立入口,每個入口擁有獨立的 Cordis 生命週期。
4. 語法高亮:依賴 highlight.js 實現代碼語法高亮。

安裝與啓用

需要確保 dsh 命令行工具已安裝並運行正常。

從 GitHub 安裝

執行以下命令將插件安裝到 web profile(請根據實際情況替換 profile 名):

dsh plugin --profile web add github:MarvekG/dsh-plugins

安裝或更新後,必須重啓 DSH Web 才能生效。

從舊版本升級

本包已從 @MarvekG/dsh-bug-fix 重命名爲 @MarvekG/dsh-plugins。升級時必須先卸載舊包,再安裝新包,不能走更新流程。

dsh plugin --profile web remove @MarvekG/dsh-bug-fix
dsh plugin --profile web add github:MarvekG/dsh-plugins
dsh web

注意:卸載與重裝之間不要重啓 DSH Web,避免舊名缺失導致的裝配告警。

本地調試與測試

本地調試

克隆倉庫後,在根目錄執行:

dsh plugin --profile web add .
dsh web

運行測試

在插件目錄執行:

npm test

典型用法

沙箱權限處理

插件在工具註冊時包裝執行函數,覆蓋全局工具和 DSH Web 的 preset-scoped 工具。當滿足以下條件時,會刪除冗餘的升級字段並按當前權限執行:
1. sandbox_permissions 是工具 schema 明確公開的枚舉值;
2. justification 是非空字符串;
3. 請求權限不寬於當前調用、當前 session 的有效 sandbox 權限。

真正的權限升級和非法輸入仍按原流程處理。

路徑查看器

插件通過 cordis.patch.yml 單獨掛載了 dsh-plugins-path-viewer 入口。
* 查看路徑:訪問 GET /view?path=<絕對路徑>[&line=N]。文件會被渲染爲行號表格,目錄渲染爲可點擊的列表頁。
* 配置項:
* maxBytes:單次渲染字節上限。
* intercept:改道的 RPC 方法列表。
* 實現機制:通過 webserver/index-inject 向 GUI 頁面注入腳本,攔截 host.openPath 和 host.openTextFile RPC,改用 window.open('/view?path=…') 在新標籤頁展示。若被攔截,自動放行原始請求。

注意事項

  1. 安裝或更新後務必重啓 DSH Web。
  2. 插件不擴大工作區,也不修改 workspaceRoot,僅做路徑展示和權限清理。
  3. 插件基於 MIT 許可證開源。

友情鏈接

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

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

小夜