DSH File Tree:給 DeepSeek Harness Web 會話增加工程文件查看與編輯

前言

在 DSH Web 會話中處理工程時,經常需要查看當前工作區的文件,並對文件做少量修改。lak321/dsh-filetree 面向 DSH Web 界面,提供工程查看 / 打開 / 編輯能力的插件組合,把文件瀏覽和編輯器加入會話視圖。

這是什麼

lak321/dsh-filetree 是一個 DSH 插件組合,由 lak321 維護,採用 MIT 許可證。它的目標是在 DSH Web 會話視圖中提供當前工作區(工程)的目錄查看、文件打開、文件編輯與保存能力。

核心功能

下面介紹這個插件的主要能力:

  • 在 DSH Web 會話視圖新增“文件”頁籤。
  • 顯示當前工作區(工程)的完整目錄樹。
  • 支持展開 / 摺疊所有子文件夾,並跟隨當前工作區切換。
  • 點擊任意文件查看內容。
  • 支持直接修改並保存到磁盤。
  • 提供 VSCode 風格編輯器,包括 C/C++ 語法高亮、行號欄、Tab 鍵縮進與回車自動縮進、狀態欄、深色主題和透明滾動條。

安裝與啓用

安裝命令中的 <commit> 需替換爲倉庫主頁中的最新提交號。

dsh plugin --profile web add "github:lak321/dsh-filetree#<commit>&path:/"

裝完重啓 DSH:

npx -y @deepseek-ai/dsh web

舊的手動複製 host/ + client/ 並注入 cordis.patch.yml 的方式已廢棄,由 bundle 層棧安裝替代。

典型用法

按下面步驟使用:

1、打開 DSH Web 界面,進入任意會話。

2、點頂部“文件”頁籤,該頁籤位於“對話 / 軌跡”之後。

3、左側顯示當前工程目錄樹;點 ▸ 展開文件夾,點文件在右側打開。

4、編輯後點“保存”;需要收起編輯器時點“關閉”。

開發與排錯注意

如果需要在同類 DSH 客戶端插件中接入或修改,注意以下已列出的約束:

  • client 插件必須導出 exports.inject(依賴列表,如 ["slots"]),否則 ctx.slots 不可用:
exports.inject = ["slots"];
  • client.js 是 window.__ModuleLoader__.load({ id, factory }) 格式,factory 內用 require("react"),並導出 exports.apply / exports.inject。
  • 若替換 single slot,必須用更低優先級:
priority: -1

否則 loader 報 already has a registration at priority 0。

適用場景與注意

適合需要在 DSH Web 會話中查看當前工作區文件,並打開、編輯、保存文件的場景。由於該插件提供文件查看和保存到磁盤的能力,且會以當前 dsh 進程權限運行,安裝前應檢查源碼和 MIT 許可證,只安裝可信來源。

結尾

lak321/dsh-filetree 爲 DSH Web 會話補齊了當前工程的文件查看、打開、編輯與保存路徑。倉庫地址:

https://github.com/lak321/dsh-filetree

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

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

小夜