@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 产物的开发者使用。

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

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

小夜