在 DeepSeek Harness(DSH)的 Web GUI 中,智能體在會話工作區中處理文件時,往往需要跳轉至終端或外部編輯器進行查看和版本控制。dsh-workspace-files 插件爲會話視圖增加了“文件”標籤頁,直接在瀏覽器中提供目錄瀏覽和類 VS Code 的 Git 操作。
核心功能¶
該插件主要提供以下能力:
- 目錄樹瀏覽:支持懶加載和隱藏文件弱化顯示。
- 文件查看:支持 UTF-8 文本和二進制識別,超大文件會自動截斷。
- Git 集成:顯示文件狀態角標(M/A/D/R/?)及行級 diff。
- Git 源代碼管理:支持暫存/取消暫存/放棄更改/提交/拉取/推送/分支切換。
- AI 生成提交信息:利用當前會話模型根據 diff 自動生成提交信息。
- 主題自適應:與 DSH 整體主題保持一致。
- 安全隔離:限制操作範圍在會話工作區根目錄內,防止路徑穿越。
- 優雅降級:非 Git 目錄或缺失 git 時自動退化爲純文件瀏覽模式。
安裝¶
使用 DSH CLI 安裝插件:
dsh plugin --profile web add github:sqfcyily/dsh-workspace-files
安裝後重新打開 DSH Web GUI,在會話視圖頂部會出現“文件”標籤。
使用方法¶
- 在 Web GUI 中進入任意會話,點擊頂部的“文件”標籤。
- 瀏覽左側目錄樹:點擊目錄展開,點擊文件查看內容。
- 在“更改”區將文件暫存,或在“暫存的更改”區進行操作。
- 提交:輸入提交信息,或點擊 AI 生成按鈕,按
Ctrl/⌘+Enter快捷提交。 - 推送與分支:通過工具欄的拉取/推送按鈕和分支下拉菜單操作。
- 放棄更改:點擊
↩放棄更改,需在彈出的確認框中確認(此操作不可撤銷)。
安全與實現細節¶
- 操作範圍:所有文件系統和 Git 操作嚴格限制在當前會話的工作區根目錄內。嘗試路徑穿越會返回 403。
- 符號鏈接:插件不跟隨符號鏈接,按自身類型上報。
- 二進制處理:前 8000 字節包含 NUL 的文件會被識別爲二進制,不返回內容,僅返回
binary: true標記。 - 請求方法:只讀瀏覽(列表、讀取、diff)走
GET請求;Git 寫操作(暫存、提交、推送等)走POST請求。 - Git 調用:Git 命令通過
execFile直接調用,不經過 shell,避免命令注入風險。 - 破壞性操作:放棄更改(discard)需二次確認,執行後不可撤銷。
生態背景¶
DeepSeek Harness 遵循“一切皆插件”的理念。該插件維護於社區,不屬於 DeepSeek 或幻方官方應用商店。