DeepSeek Harness(DSH)的 Web GUI 提供了強大的交互能力,但在文件瀏覽方面往往需要依賴外部工具。開發者經常需要在界面中直接查看當前工作區的目錄結構。dsh-workspace-view 旨在解決這個問題,它是一個面向 DSH Web GUI 的工作區文件瀏覽插件。
插件介紹¶
dsh-workspace-view 是一個 DSH workspace file-tree drawer 插件,由用戶 N5Tar 維護。它採用 MIT 許可證,屬於客戶端插件類別。
功能特性¶
該插件主要提供以下功能:
- 全高文件樹抽屜:在頁面右側顯示默認展開的文件樹抽屜。
- 會話關聯:根據當前 Session 自動切換工作區,無需手動配置。
- 按需加載:避免啓動時遞歸掃描整個倉庫,僅在展開目錄時加載內容,減少初始化開銷。
- 排序與展示:目錄優先、文件隨後,並按名稱排序。支持展開和摺疊文件夾。
- 交互控制:支持刷新當前文件樹,支持顯示或隱藏點文件。
- UI 優化:關閉後收縮爲頁面右側的窄把手;提供中文和英文界面文案;使用 DSH Theme Token 自動適配宿主主題。
- 狀態處理:內置加載、空目錄、無會話、截斷和錯誤狀態的處理。
安裝與啓用¶
使用該插件前,需要先安裝依賴並構建本地包,然後安裝到 DSH 的 Web Profile。
- 進入插件源碼目錄並安裝依賴:
cd /path/to/dsh-workspace-view
pnpm install
pnpm run build
- 安裝到 Web Profile:
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-workspace-view
- 檢查配置:
pnpm dsh --profile web --dump-config
- 啓動 Web GUI:
pnpm dsh web
啓動後訪問默認地址 http://127.0.0.1:3080。如果 Web GUI 已在運行,需要重啓進程才能加載新的插件。
配置¶
插件的核心配置位於 cordis.patch.yml 文件中,用於控制 Host 端的掃描行爲。
| 字段 | 類型 | 默認值 | 說明 |
|---|---|---|---|
maxEntries |
number |
500 |
每層最多返回給 Client 的條目數(1–5000)。 |
maxScannedEntries |
number |
10000 |
Host 每層最多掃描的目錄項數量(1–50000),用於限制超大目錄的 CPU 與內存消耗。 |
maxConcurrentScans |
number |
8 |
Host 同時執行的目錄掃描上限(1–64),超出時返回 HTTP 429。 |
ignoredNames |
string[] |
['.git', 'node_modules'] |
Host 完全忽略的文件或目錄名稱。 |
注意:ignoredNames 與隱藏文件開關的行爲不同。被 ignoredNames 匹配的條目不會由 Host 返回;其他點文件仍會返回,但默認在界面中隱藏,可通過抽屜工具欄切換顯示。
使用與限制¶
- 只讀訪問:插件只提供工作區範圍內的只讀目錄列表能力,不提供文件寫入、刪除、重命名或執行功能。
- 根目錄決定:工作區根目錄由 Host Session Store 決定,客戶端不能自行指定根目錄。
- 手動刷新:文件系統發生變化後,需要手動刷新文件樹才能看到更新。
- 截斷處理:大目錄達到配置上限時只顯示部分條目,並在對應目錄層級顯示截斷提示。
- 佈局影響:抽屜通過
shell.overlay實現,覆蓋最右側區域,不參與 DSH 核心列寬求解。 - 安全模型:插件通過路徑驗證(
realpath、relative)阻止..路徑穿越和符號鏈接逃逸,但不應把可由不受信任本地進程併發改寫的工作區作爲強隔離沙箱。
總結¶
dsh-workspace-view 是一個輕量級的文件樹瀏覽工具,它通過集成到 DSH Web GUI 的右側抽屜,解決了開發者在 Web 界面中查看項目結構的需求。它具備按需加載、主題適配和多語言支持等特性,適合需要頻繁在 Web 界面下操作文件系統的場景。
- GitHub: https://github.com/N5Tar/dsh-workspace-view
- 目錄: https://www.skillhub.cn/plugins/N5Tar/dsh-workspace-view