dsh-download-button:爲交付物文件卡片補上 Download

前言

在 DeepSeek Harness(dsh)的 Web 界面裏,智能體生成文件後會渲染一張「交付物」卡片,默認只有 Open 和 Open in sidebar 兩類操作。若你在無桌面的服務器上跑 dsh web,Open 會依賴宿主機桌面集成,往往直接失敗;Open in sidebar 對 docx、xlsx、pdf、zip 等非文本文件只會提示無法預覽。結果是:文件已經在工作區裏,卻缺少一條從瀏覽器落到本地磁盤的路徑。

下面介紹社區插件 dsh-download-button(維護者 maxesisnclaw,分類:客戶端)。它在每張交付物卡片上追加 Download 鏈接,複用 dsh 自帶的認證文件接口,把字節流保存到本機。

這是什麼

dsh-download-button 是面向 dsh Web UI 的客戶端側插件:不改 node_modules、不新增服務端路由,只在服務端渲染的首頁注入一小段腳本,給交付物卡片增加下載入口,並在無桌面環境下隱藏與桌面集成相關的無效提示。

默認卡片行爲與缺口

dsh 對交付物卡片提供的動作大致如下:

動作 行爲 常見不足
Open 讓宿主機用默認應用打開文件 無桌面服務器上無法使用
Open in sidebar 文本預覽 非文本文件無法預覽

插件希望在卡片操作區呈現類似:

[ Download ] [ Open ▾ ]

點擊 Download 時,瀏覽器通過帶會話 cookie 的請求拉取文件並觸發保存。

核心功能

下載按鈕

  • 爲每張交付物文件卡片追加 Download 鏈接。
  • 複用內置路由 GET /api/file?path=<absolute path>(正確 Content-Type、cookie 認證),HTML download 屬性提供文件名。
  • 絕對路徑來自卡片已有的 title 屬性(dsh 當前會把解析後的工作區路徑寫在這裏)。

樣式與升級友好

  • 按鈕的 className 從同卡片上已有操作按鈕複製,不硬編碼 bundled 類名,主題變更時更容易跟上。
  • 不修改 vendor 代碼,只 tap 服務端渲染的 index 頁並注入腳本。

無桌面主機上的 UI 調整

當判定爲無桌面環境時,隱藏「此主機無可用桌面,無法打開文件或文件夾」類提示。檢測規則與 dsh 在 Linux 上的一致:是否存在 DISPLAY 或 WAYLAND_DISPLAY;macOS / Windows 桌面模式下不隱藏。

安裝與啓用

官方推薦(Web profile):

dsh plugin --profile web add github:maxesisnclaw/dsh-download-button

手動安裝:

  1. 將插件目錄複製到 <dsh-install>/plugins/dsh-download-button/。
  2. 在 $DSH_HOME/cordis.patch.yml 中追加:
   - insert:
       - id: download-button
         name: /absolute/path/to/dsh-download-button/index.js
  1. 重啓服務:systemctl restart dsh(或重啓你的 dsh web 進程)。

若該包出現在 profile 的 dsh.profile.bundles 中,捆綁的 cordis.patch.yml 會自動完成同樣的 insert。

驗證

  1. 打開 Web UI,讓智能體生成任意非文本文件(docx、xlsx、pdf 等),在文件卡片上應能看到 Download;點擊後應保存到本地。
  2. 服務端可單獨驗證底層路由(需替換會話 cookie 與路徑):
   curl -b "<your session cookie>" \
     "http://127.0.0.1:3080/api/file?path=/absolute/path/to/file.docx" -o out.docx
   # out.docx 應與源文件字節一致
  1. 插件倉庫內單元測試:npm test(檢查 index 頁注入只發生一次且冪等)。

適用場景與注意

適合誰: 自託管 dsh web、經常在瀏覽器裏收 docx / pdf / 壓縮包等交付物、主機可能是 headless Linux 的開發者或運維。

限制(README 原文):

  • 依賴當前 dsh 在交付物卡片上用 title 暴露絕對路徑;若未來 markup 變更,需更新注入腳本中的選擇器。
  • 僅作用於交付物文件卡片;側邊欄文本預覽等其他界面不改動。

安全與權限: 插件以當前 dsh 進程權限運行,下載鏈路走已認證的 /api/file。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的部署策略。

DSH 生態強調「一切皆插件」;社區目錄 SkillHub 插件頁 與 DeepSeek / 幻方無官方從屬關係,本文僅作第三方插件說明。

結尾

dsh-download-button 在不大改 dsh 的前提下,爲交付物卡片補上瀏覽器直下的 Download,並減輕無桌面環境下的無效 Open 提示。需要安裝命令與細節時,以倉庫 README 爲準:

  • 目錄頁:https://www.skillhub.cn/plugins/maxesisnclaw/dsh-download-button
  • GitHub:https://github.com/maxesisnclaw/dsh-download-button
羽毛球分组比赛记分
小程序二维码

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

小夜