前言¶
在 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 認證),HTMLdownload屬性提供文件名。 - 絕對路徑來自卡片已有的
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
手動安裝:
- 將插件目錄複製到
<dsh-install>/plugins/dsh-download-button/。 - 在
$DSH_HOME/cordis.patch.yml中追加:
- insert:
- id: download-button
name: /absolute/path/to/dsh-download-button/index.js
- 重啓服務:
systemctl restart dsh(或重啓你的dsh web進程)。
若該包出現在 profile 的 dsh.profile.bundles 中,捆綁的 cordis.patch.yml 會自動完成同樣的 insert。
驗證¶
- 打開 Web UI,讓智能體生成任意非文本文件(docx、xlsx、pdf 等),在文件卡片上應能看到 Download;點擊後應保存到本地。
- 服務端可單獨驗證底層路由(需替換會話 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 應與源文件字節一致
- 插件倉庫內單元測試:
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