dsh-local-project:把本地文件夾導入爲 DSH 服務器工作區

前言

DSH 通常讓智能體在服務器工作區中讀寫文件。如果目標文件在本機,常見做法是先上傳、複製,或依賴額外的同步方式;DSH 改完之後,還需要把結果回傳到本地。

dsh-local-project 針對這個場景:把本地文件夾導入爲服務器 DSH 工作區,並把 DSH 對服務器鏡像的修改同步回本地文件夾。

這是什麼

dsh-local-project 是一個 DSH 插件,由 0xKcyzz 維護,許可證爲 MIT。

它的定位是:用戶在瀏覽器中選擇本地文件夾,DSH 在服務器端創建對應的工作區鏡像;之後 DSH 使用原生工具直接操作服務器鏡像,並把文件改動同步回本地。

核心功能

下面介紹已覈實的幾項能力:

  • 在「添加工作區」入口選擇本地文件夾,自動上傳並在服務器創建鏡像工作區。
  • DSH 使用原生 read、write、edit、glob、bash 工具直接操作服務器鏡像,無需自定義工具。
  • DSH 修改文件後,通過 WebSocket 即時同步回本地。
  • WebSocket 斷線後會自動重連,並補齊漏掉的變更。
  • 「刪除項目」只刪除服務器副本與工作區記錄,不影響本地文件。
  • 刷新頁面後,可以從服務器恢復項目列表,並重新選擇本地文件夾恢復同步。
  • 插件提供 /local-project/* HTTP 接口和 WebSocket 推送,支持創建、上傳、列出、下載、刪除和變更恢復。

安裝與啓用

先執行官方安裝命令:

dsh plugin --profile web add github:0xKcyzz/dsh-local-project

安裝後需要重啓 DSH。重啓後,「添加工作區」會打開本地項目導入對話框。

如果本地項目的服務器鏡像目錄不使用默認位置,可以配置環境變量:

DSH_LOCAL_PROJECT_ROOT
默認值:$DSH_HOME/workspaces

典型用法

下面是一個可復現的使用流程:

1、在 DSH 側邊欄或空狀態中點擊「添加工作區」。

2、輸入項目名稱,點擊「選擇文件夾並導入」。

3、在系統對話框中選擇本地文件夾。該步驟需要 Chrome / Edge 瀏覽器授權。

4、首次導入會開始上傳文件。完成後,左側工作區列表會出現「本地項目: 名稱」。

5、打開該工作區對話。DSH 操作的是服務器鏡像副本,文件改動會自動同步回本地。

適用場景

適合這類使用方式:在瀏覽器中把本機代碼或資料交給遠程 DSH 直接讀寫,同時保留本地副本。

它更適合 DSH 側發起修改的場景。DSH 在服務器鏡像中改文件後,變更會推送回本地;本地已有的文件可以隨首次導入上傳到服務器。

注意事項

使用前注意以下限制:

  • 需要瀏覽器支持 File System Access API:Chrome / Edge(含 Chromium)。Firefox / Safari 不支持。
  • 單個文件上限約 15MB,上傳使用 base64 JSON。超大文件不建議放入項目。
  • 不傳播單個文件的刪除:只有「刪除項目」會整包刪除服務器副本。本地和服務器各自刪除的文件,不會被對面清除。
  • 本地改動不會自動上傳:只有首次導入會上傳本地文件。之後本地手動修改的文件,不會同步到服務器。
  • 即時推送需要保持 WebSocket 連接。斷線後會自動重連,並補齊漏掉的變更。
  • 桌面端 Electron 窗口若 File System Access API 不可用,請用系統瀏覽器打開 DSH 的 Web 地址。
  • 插件會隨 DSH 插件機制加載,並以當前 DSH 進程的權限執行相關操作。安裝前應檢查源碼與許可證。

鏈接

GitHub 倉庫:https://github.com/0xKcyzz/dsh-local-project

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

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

小夜