前言¶
DeepSeek Harness (DSH) 採用了插件化架構。在開發智能體或管理會話時,開發者經常需要查看項目結構、編輯配置文件或直接打開本地資源。原生環境往往缺乏健壯的文件瀏覽界面。devacc8/dsh-file-explorer 旨在解決這一需求,它是一個經過加固的文件管理工具,爲 DSH 提供了安全、可控的文件訪問能力。
插件定位¶
該插件是 joejojoking-cloud/dsh-file-explorer 的 vendored(打包)和 hardened(加固)fork。上游代碼已凍結,該版本在此基礎上增加了安全修復、全英文 UI 以及與 Harness 主題匹配的面板背景。它作爲 DSH 的全局文件管理器工作,在每一個會話中爲用戶提供一個位於頁面右側的文件樹面板。
佈局與交互¶
插件在頁面右側打開一個名爲 shell.overlay 的面板。
- 尺寸調整:面板寬度可通過拖動左側邊緣調整,範圍在 260px 至 900px 之間。
- 獨立摺疊:文件樹和預覽區域擁有獨立的摺疊手柄(位於各自左側邊緣)。
- 摺疊樹形視圖會保持預覽區域並將其吸附到右側邊緣。
- 摺疊預覽區域會保持所有標籤頁,重新打開時會恢復。
- 雙擊聊天區域:雙擊聊天區域可以同時摺疊左右兩側的面板,並應用“項目篩選”功能。此時,標籤頁中僅保留位於當前項目文件夾內的文件,其餘標籤頁會被關閉;重新展開面板後,篩選狀態依然保留。
預覽與編輯¶
- 標籤式預覽:支持瀏覽器風格的標籤頁,切換時不重新加載文件內容。點擊背景標籤會滾動標籤欄,點擊當前標籤則切換內容。
- 語法高亮:支持 Markdown、JSON、YAML、JS、TS、Python、C、C++、Java、Go、Rust、Shell、SQL、TOML、INI、CSS、HTML 等多種語法的文件預覽。
- 面板內編輯:點擊編輯圖標可將預覽切換爲可編輯文本框,保存操作會將內容寫入磁盤。再次點擊預覽文件可關閉對應標籤頁。
- 限制:文件大小超過 1 MB 時,預覽功能不支持。
功能細節¶
- 頭部工具欄:包含“Files”標籤及多個功能圖標:
- VS Code:點擊可打開當前整個工作區。
- 系統文件管理器:根據當前選中狀態操作。選中目錄則直接打開,選中文件則高亮顯示並定位到所在文件夾,未選中則打開項目根目錄。
- 展開/摺疊全部:控制文件樹的顯示狀態。
- 刷新:更新文件列表。
- 摺疊樹形視圖:僅摺疊左側樹形,保留右側預覽。
- 搜索功能:搜索框支持對工作區進行遞歸掃描,自動排除
.git和node_modules目錄。搜索結果上限爲 300 個匹配項。 - 文件樹:默認展開根目錄,支持懶加載(點擊展開目錄),支持點擊切換展開/摺疊狀態。
安裝與啓用¶
安裝插件需使用官方命令。安裝完成後需要重啓 Harness。
dsh plugin --profile web add <path-to-this-package-or-npm-name>
安裝生效後,插件會掛載到 /plugins/file-explorer/* 路徑下,並在會話頭部提供文件切換開關。
開發與維護¶
- 構建說明:客戶端捆綁包 (
lib/client.js) 是手工修補的,因爲上游的構建工具鏈無法獨立安裝(其聲明的 peer 依賴包含未發佈的包)。主機端則通過tsc機械生成。 - 代碼規範:
lib/目錄下的產物爲生成文件,請勿直接編輯。所有邏輯和樣式修改應在src/目錄中進行。歷史經驗表明,直接編輯lib/下的文件會導致構建覆蓋修改,並可能引發語法錯誤(如 CSS 模板字符串中的反引號問題)。 - 補丁機制:使用
cordis.patch.yml文件將插件注入到宿主配置中。
適用場景與注意事項¶
- 該插件以當前 DSH 進程的權限運行,請確保安裝來源可信,並檢查許可證。
- 由於是上游凍結的 fork,若遇到上游修復的問題,需等待維護者自行合併或提交 PR。