dsh-multi-workspace:DSH 多工作區文件寫入插件

DeepSeek Harness (DSH) 的默認文件沙箱限制寫入權限僅限於會話的工作目錄(cwd)。如果需要在已註冊的其他工作區目錄下寫入文件,通常需要通過沙箱提升權限。這增加了開發智能體或操作工作區時的配置負擔。

dsh-multi-workspace 是一個爲 DeepSeek Harness 設計的插件,由維護者 somnusovis 開發。它的核心作用是自動賦予已註冊的所有工作區文件寫入權限。

核心功能

該插件通過兩層機制實現多工作區寫入:

  1. 擴展沙箱策略:在每次沙箱策略檢查時讀取實時的工作區註冊表,將每個已註冊工作區的路徑注入到 sandboxPolicy.resolve() 中。
  2. 文件系統重試:包裝 fs.writeText 和 fs.editText,在遇到寫入拒絕時,嘗試使用目標工作區的根路徑進行靜默重試。

安裝與啓用

使用官方插件安裝命令添加該插件:

dsh plugin --profile web add github:somnusovis/dsh-multi-workspace

安裝完成後,需要重啓 DSH Web 服務並刷新瀏覽器。

典型用法

在 DSH UI 中添加一個工作區後,直接使用文件寫入工具(如 fs.writeText 或 editText)即可對該工作區進行操作,無需額外的配置步驟。

注意事項與限制

  1. Shell 命令範圍受限
    該插件僅擴展了文件系統工具的寫入範圍。底層的命令沙箱(@deepseek-ai/dsh-sandbox-local)仍只讀取單一的 policy.workspaceRoot。因此,pwsh 或 bash 等命令在會話目錄外執行寫入仍會被拒絕。

  2. 靜默重試與信任機制
    文件寫入失敗時,插件會在 workspace-write 權限下靜默重試,跳過審批流程。這意味着插件以當前 DSH 進程的權限運行。使用前,請務必確保已註冊的工作區是可信的。

  3. API 返回值要求
    被包裝的 resolve() 函數必須返回一個純對象(Plain Object),包含 mode、workspaceRoot 和 sessionId 等自有屬性。如果返回值依賴原型鏈繼承,執行器在展開對象時可能會丟失這些關鍵鍵,導致運行時錯誤(如 SANDBOX_UNAVAILABLE)。

總結

dsh-multi-workspace 解決了 DSH 默認沙箱僅支持單工作區寫入的限制。對於需要頻繁在多個工作區之間切換並直接寫入文件的開發場景,該插件通過自動注入路徑和靜默重試機制簡化了操作流程。

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

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

小夜