@wangjunjian/dsh-artifact-viewer:DeepSeek Harness 產物側邊欄與書籤插件

前言

在 DeepSeek Harness 的開發過程中,智能體往往會產生大量產物,包括工具生成的文件、代碼片段以及消息中的圖片附件。這些產物散落在對話記錄和工具欄中,查找和管理較爲繁瑣。dsh-artifact-viewer 旨在解決這一痛點,它通過一個獨立的側邊欄面板和書籤系統,將當前會話產生的所有文件和圖片集中展示,並提供持久化的書籤能力。

核心功能

該插件通過註冊到 shell.overlay 實現右側覆蓋面板,主要包含以下能力:

  1. 產物檢測與列表:自動檢測對話中工具產生的文件以及消息內的圖片附件,並在右側面板中渲染列表。
  2. 書籤持久化:允許用戶將產物標記爲書籤,書籤數據存儲在 Harness 的主目錄下,支持跨瀏覽器訪問同一項目下的書籤。
  3. 鏈接攔截與預覽:
    • 攔截工具按鈕、產物芯片、markdown 鏈接及代碼路徑等點擊事件。
    • 替換默認圖片渲染器,在圖片上疊加書籤星標。
    • 在面板內的預覽選項卡中渲染 HTML(沙箱 iframe)、Markdown(含 Mermaid 圖表)、圖片、JSON 及多種源代碼。
  4. 導航與操作:
    • 支持展開/收起面板。
    • 使用 workspace API 在默認應用中打開文件或打開所在文件夾。
    • 在書籤列表或預覽區點擊“打開對話”按鈕,可從書籤導航回源會話。

安裝與配置

將插件安裝到 DeepSeek Harness 的 web profile 中:

# 從註冊表安裝(推薦)
dsh plugin --profile web add @wangjunjian/dsh-artifact-viewer

# 或從本地代碼倉庫安裝
dsh plugin --profile web add ~/GitHub/wang-junjian/dsh-artifact-viewer

安裝後,bundle 會自動追加到 dsh.profile.bundles。若需覆蓋默認配置,可在 cordis.patch.yml 中寫入:

- id: artifact-viewer
  config:
    enabled: true

支持的預覽類型

插件對文件類型的支持如下:

文件類型 渲染方式
HTML, HTM 沙箱 iframe
Markdown, MD Markdown 文本(Mermaid 代碼塊渲染爲 SVG)
圖片 (SVG, PNG, JPG, JPEG, WEBP, GIF) 圖片
JSON 語法高亮代碼
源代碼 (py, js, ts, jsx, tsx, css, scss, less, rs, go, c, cpp, cc, java, kt, swift, rb, php, sh, sql, xml, yaml, yml, toml, dockerfile, txt, log) 語法高亮代碼
其他文本 純文本
視頻 (mp4, webm, mov) 僅列表,無內聯預覽

注意事項與已知限制

  1. 權限與運行方式:插件作爲 bundle 插件運行,其文件內容讀取受限於當前 DSH 進程的權限範圍。
  2. 面板形式:目前面板通過 shell.overlay 懸浮顯示,若 DSH 原生側邊欄槽位開放,體驗會更佳。
  3. 書籤遷移:舊版書籤存儲在 <project-root>/.dsh/bookmarks.json,現已廢棄。如需遷移,需手動將書籤移動到 ~/.dsh/storages/artifact-viewer/bookmarks.json 並按新格式組織。
  4. 數據限制:
    • 書籤圖片預覽受限,僅支持附件 ID。
    • 視頻文件僅列出,不支持內聯預覽。
    • 文件內容讀取限制爲 512 KiB。
    • 早期版本創建的書籤缺少 sessionId 字段,因此無法通過書籤導航回源會話。

總結

dsh-artifact-viewer 爲 DeepSeek Harness 的產物管理提供了一個輕量級的解決方案。它通過集中視圖和書籤功能,降低了查看和複用對話產物的門檻。插件完全開源,遵循 MIT 許可證,適合需要在本地或 CI/CD 環境中集成 DSH 產物的開發者使用。

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

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

小夜