前言¶
DeepSeek Harness (DSH) 採用插件化架構。在調試智能體或進行長時間編碼任務時,開發者通常需要實時查看 AI 的操作過程,或者在瀏覽器中擁有一個功能完備的代碼編輯器。dsh-vsceditor 插件旨在解決這一問題,它通過在 DSH 的 Web UI 中嵌入 code-server,提供一個完整的 VS Code 環境。
基本信息¶
- 插件名稱:dsh-vsceditor
- 維護者:k-ying
- 許可證:MIT
- 分類:客戶端
- GitHub:k-ying/dsh-vsceditor
核心功能¶
該插件主要解決瀏覽器端編輯器功能不足、無法實時監控 AI 代碼變更以及進程管理的問題。
-
三種互斥的後端模式
- Embedded:默認模式,在 DSH 界面內嵌入 code-server。
- Local:將 AI 的變更同步到本地桌面 VS Code。
- Off:斷開所有編輯器連接。
-
真實的 VS Code 環境
- 使用 code-server 4.x,具備完整的內核。
- 支持擴展、主題、快捷鍵以及 Git 面板。
-
Follow 模式與變更視圖
- 當智能體調用
write或edit工具時,編輯器會彈出紅綠對比視圖,並滾動到首個變更行。 - DSH 會渲染其自身的只讀 Diff 標籤頁,方便在任意一側查看。
- Diff 累積顯示,直到下一輪對話開始編輯時才清除。
- 當智能體調用
-
文件鎖定機制
- 在智能體寫入文件期間,文件在編輯器中變爲只讀,防止人工與 AI 覆蓋衝突。
- 寫入完成後自動解鎖。
-
無孤兒進程
- code-server 運行在 Watchdog 進程下,會定期向 DSH 主機發送心跳。
- 當 DSH 主機崩潰、強制退出或升級時,Watchdog 會終止整個編輯器進程樹,確保沒有殘留進程。
-
工作區跟隨會話
- 噹噹前會話的工作區發生變化時,編輯器會自動切換到對應的目錄並重啓 code-server。
-
持久化 Iframe
- 編輯器頁面始終附着在
<body>上,切換標籤頁時僅進行隱藏/顯示,不會重新創建會話。
- 編輯器頁面始終附着在
-
設置頁集成
- 在 Settings → Plugins → Plugin Configuration 下提供配置卡片,可控制 Follow 開關、自動啓動、端口及 code-server 路徑。
-
零依賴
- 主機和客戶端均使用原生 JavaScript 手寫,不依賴 npm 包。
安裝與啓用¶
- 安裝插件
通過命令行安裝:
dsh plugin --profile web add github:k-ying/dsh-vsceditor
-
配置嵌入模式(必需)
該插件不隨安裝包附帶 code-server 運行時(約 100MB)。要使用默認的 Embedded 模式,需要安裝 code-server。- 方式一:一鍵安裝
打開 Editor 標籤頁,點擊工具欄上的 Install code-server in one click 按鈕。按照對話框提示下載並安裝。 - 方式二:全局 CLI 安裝
- 方式一:一鍵安裝
sh ~/.dsh/profiles/web/node_modules/dsh-vsceditor/scripts/install-code-server.sh ~/.dsh-editor
如果要在當前工作區單獨使用,直接運行腳本(不加參數)即可安裝到目錄下的 `.dsh-editor`。
典型用法¶
- 監控 AI 工作:在對話過程中,每當 AI 修改文件,編輯器會立即彈出 Diff 視圖,你可以直觀地看到 AI 修改了哪些行。
- 切換本地編輯器:點擊編輯器工具欄上的開關,將同步模式切換到 Local,此時 Follow/Diff/鎖定功能會轉移至你本地的桌面 VS Code。
- 斷開連接:如果不需要編輯器功能,點擊開關將其設爲 Off,系統會釋放相關資源。
注意事項¶
- 系統限制:目前僅支持 macOS 或 Linux。Windows 平臺未測試(code-server 官方暫無 Windows 構建)。
- 運行時位置:編輯器的運行時數據(用戶數據、配置、日誌)不存儲在工作區目錄,而是存儲在全局目錄
~/.dsh-editor/workspaces/<hash>-<workspace-name>/中。 - 進程守護:由於使用了 Watchdog,如果 DSH 主機進程意外終止,編輯器進程也會被自動清理。
總結¶
dsh-vsceditor 爲 DeepSeek Harness 提供了一個無需離開 Web 界面即可進行專業級代碼編輯的能力,配合 Follow 模式和 Diff 視圖,能夠有效提升與 AI 協作開發時的可控性。