前言¶
在 DeepSeek Harness(DSH)Web 裏跑長會話時,模型往往通過 present 工具把 Word、表格、PDF 等當作最終交付物交給用戶。默認界面裏這些文件分散在對話與工作區裏,想按附件名一次性下載,通常要自己在工作區裏找路徑,或依賴預覽頁另存。社區插件 dsh-session-deliverables(維護者 xiaoran0829,GitHub 倉庫 xiaoran0829/dsh-session-deliverables)在每個會話頂欄增加「文件」視圖,列出本會話聲明的交付物,並支持 Host 以 Content-Disposition: attachment 流式下載;內網直連與經公網反向代理訪問 GUI 時行爲一致。下面介紹它是什麼、能做什麼,以及如何安裝與使用時需注意的點。
這是什麼¶
dsh-session-deliverables 是一個 DSH Web Cordis 插件(dsh.bundle.patch + dsh.client),分類上屬於客戶端側 UI 擴展。它不單獨起服務,而是在 DSH Connection 上註冊兩個需登錄態的 HTTP 路由,繼承 GUI 的登錄態與 Host/Origin 校驗。
列表數據主要來自可持久化的會話日誌路徑 deliverables/presented——也就是會話裏經內置 present 工具聲明過的交付物。插件當前版本爲 1.0.3(見倉庫 package.json),許可證 MIT。社區目錄頁:skillhub.cn/plugins/xiaoran0829/dsh-session-deliverables(獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)。
核心功能¶
頂欄「文件」視圖¶
「文件」入口位於會話頂欄,與「畫廊 / 團隊」等並列。視圖中列出通過 present 聲明的交付物類型包括:Word、Excel、PPT、PDF、Markdown、圖片、視頻、音頻、壓縮包等(以 README 列舉爲準)。
一鍵附件下載¶
點擊列表整行或其「下載」按鈕時,Host 以附件形式返回文件流,Content-Type 與文件名(含中文文件名)按常規瀏覽器下載行爲處理。
可選「含工作區成果」¶
勾選該選項後,插件會在有界預算內對工作區再做一次掃描,額外列出會話運行期間在工作區創建的文檔與媒體類文件;代碼、腳本、日誌、上傳文件等不會進入列表。掃描有上限:最多 200 個文件、3 秒預算、深度 12,並跳過 node_modules 等目錄;超出預算的文件不會出現。
預覽頁側欄下載¶
在 DSH 原生文檔預覽頁(Excel、PDF、圖片及原生預覽支持的其它格式)頭部,插件會增加「下載」按鈕,便於從預覽上下文直接走同一套下載路徑。
爲什麼體量可以很小¶
作者說明:列表先讀會話日誌,僅在勾選「含工作區成果」時做有界工作區掃描。下載路徑被限定在會話工作區內,或會話日誌中已聲明過的文件;其它路徑一律 403。插件不寫文件、不跑後臺任務、不發起第三方 HTTP 外發。
對外 API(均需已登錄所有者瀏覽器通過 Connection fence):
GET /api/session-files.list?sessionId=…— 僅返回元數據。GET /api/session-files.download?sessionId=…&path=…— 組合文件系統路徑後流式返回;越界拒絕。
路由註冊做了跨版本兼容:DSH Web 0.2.x 使用 ctx.connection.fetch.register;0.1.0-rc.6 使用 ctx.webServer.register。若兩者均不存在,插件仍會加載但跳過路由並輸出 warn。注意:0.1.0-rc.6 沒有 deliverables/presented 會話事件,基線下列表爲空,「含工作區成果」的有界掃描仍可用。
安裝與啓用¶
插件沒有配置項。package.json 中 dshWorkshop.install 爲 guided + third-party adapter,當前無 Workshop 事務安裝能力;以下命令來自 README,作者標註爲本機經驗,安裝或升級後需重啓 dsh web 對應 profile 才生效。
從 npm 安裝:
dsh plugin --profile web add dsh-session-deliverables
從 GitHub 倉庫安裝:
dsh plugin --profile web add github:xiaoran0829/dsh-session-deliverables
從本地源碼目錄安裝:
dsh plugin --profile web add /path/to/dsh-session-deliverables
環境要求¶
- DSH Web:作者在 0.2.1-rc.3 上測試通過。
- Host:Linux / macOS / Windows,Node.js 20+。
- 會話需通過內置
present工具聲明最終交付物,「文件」視圖才以這些聲明爲主列表來源。
典型用法¶
README 未給出獨立「場景腳本」,可復現流程如下:
- 在 DSH Web 中安裝插件並重啓
dsh webprofile。 - 在會話中讓智能體用
present聲明要交付的文件(Word / Excel / PPT / PDF 等)。 - 打開該會話頂欄的 「文件」 視圖,確認列表與
deliverables/presented一致。 - 點擊行或「下載」,驗證瀏覽器以附件保存;若需要工作區內新生成的文檔,勾選 「含工作區成果」 後刷新列表(受掃描預算限制)。
- 在原生預覽頁打開支持的文件時,使用頭部 「下載」 按鈕走同一下載路由。
開發側靜態檢查(倉庫 README):
node --check index.js
node --check client.js
適用場景與注意¶
適合誰:經常在 DSH Web 裏做文檔 / 表格 / 演示稿交付,希望在一個會話內集中查看 present 成果並附件下載的團隊或個人;內外網統一走 GUI 登錄態,不想另搭文件服務時也可考慮。
權限與安全:插件以當前 DSH 進程權限運行,聲明權限包括 filesystem:read、session:read、http:route;安裝前應閱讀源碼與 MIT 許可證,確認組織策略允許註冊 /api/session-files.* 路由。公網反向代理無需爲插件單獨改配置,但仍依賴 GUI 登錄柵欄。
已知限制(README):
- 主列表只認
present與會話日誌;工作區補充列表有界,不是完整目錄鏡像。 dshWorkshop.lifecycle.dispose爲 unknown,無 dispose 證據。- 無單元 / 集成測試;Workshop
evidence四項均爲null。
生態背景:DSH 理念是「一切皆插件」;本插件是社區貢獻的 Web 客戶端擴展,星標與成熟度以倉庫當前狀態爲準(目錄頁標註 GitHub 1 stars)。
結尾¶
dsh-session-deliverables 把會話交付物從「散落在日誌與工作區」收攏到頂欄「文件」視圖,並在 Host 側用登錄態與路徑校驗約束下載範圍。若你要在 DSH Web 裏統一列出 present 成果並一鍵附件下載,可按上文命令安裝並重啓 profile。