dsh-plugin-middle-panel:在 DSH 中栏查看交付物并发送编号标注

前言

在 DeepSeek Harness(DSH)里,工作区文件列表和对话往往分占两侧;模型产出的 HTML、文档、图纸等交付物,若只在对话里贴路径或截图,很难做「指哪改哪」的精细反馈。常见做法是反复描述位置,或把片段复制进输入框,编号和对照成本高。

dsh-plugin-middle-panel(画布面板)把 Web GUI 的中栏拆成 [画布 | 对话]:左侧工作区列表不变,中间展示交付物并支持划选、点选、框选等标注,右侧仍是原生对话。标注按编号汇总后写入输入框,便于模型逐条处理。下面介绍其定位、能力与安装用法。

这是什么

  • 名称:dsh-plugin-middle-panel(画布面板 / Canvas panel)
  • 维护者:Darkhe55
  • 分类:客户端(bundle 形式装在当前 profile 的 desktop 里)
  • 作用:在对话与工作区之间增加交付物画布;支持对文本、HTML、图片、SVG 等做编号标注,并通过 发送标注 把结构化说明回填到输入框。

社区目录页:SkillHub 插件页。源码与文档:GitHub 仓库。

布局与核心能力

中栏两栏布局

中间为交付物画布,右半通过框架槽 conversation.content 嵌入原生对话,在不 fork 宿主的前提下实现「画布 + 对话」同屏。面板注册为全局 main 键 canvas;会话身份与输入框能力经 conversation.composer.dock 桥接(sessionId、inputActions 等)。

打开交付物

  1. 点击会话头部右侧的 画布 按钮;或让模型调用 canvas 工具(调用会自动展开面板),例如:
{ "path": "demo/hero.html", "view": "auto", "note": "配色按设计稿改了" }
  1. 面板头部 打开 可浏览工作区文件,点文件即打开;空状态也可 打开文件…。

标注方式

面板打开文件后,可按类型操作:

  • 文本(如 .md、.txt):划选后出现「标记第 N 行」。
  • HTML:悬停高亮,单击选中元素(选择器 + 文本);预览在 sandbox="allow-scripts" 的 iframe 中,选取结果经 postMessage 回传。
  • 图片:先点「框选区域」再拖矩形。
  • SVG:内联渲染,可点选图层;支持悬停聚光、SMIL 时间轴等检视能力。

每条标注可附一句意见。右上角 发送标注 (N) 会向输入框插入类似下面的文本,用户补一句即可发送:

以下是我在画布面板中的标注(共 2 条),请按编号逐条处理:

1. `demo/notes.md` — 第 5-6 行
   > - 第一条:这句话写得太平。
   意见:这里改成更具体的说法

标注默认只存在客户端 localStorage(按 session 分键);发送后才进入 session log,与「log 是唯一真相」一致。

文件格式与检视(摘要)

资料中列出的支持类型包括:网页(.html / .htm)、文档(.md / .txt,可编辑保存)、位图(框选区域)、内联 .svg、.pdf、Office(.docx / .xlsx / .pptx)、.csv / .tsv、多种三维网格(WebGL 预览、可导出 OBJ)、.dxf 等;部分旧格式会提示需先转换,避免显示乱码。

检视相关能力包括:悬停面板或焦点在面板内时的 定格聚光(Alt+S 暂停等)、动画冻结与时间轴步进、标注栏与视图联动高亮等。具体快捷键与边界见仓库 README。

安装与启用

兼容 engines.dsh: >=0.2.2-rc.1 <0.3.0,无运行时依赖、无 postinstall。README 写明 npm 已发布 dsh-plugin-middle-panel@0.2.0(latest)。

按包名安装

使用官方 npm 源或镜像均可:

dsh plugin --profile desktop add dsh-plugin-middle-panel
# 镜像源
dsh plugin --profile desktop add dsh-plugin-middle-panel --registry https://registry.npmmirror.com

安装后重启 DSH;首次打开若界面无变化,用 Ctrl+Shift+R 硬刷新一次。

从市场(Discover)安装

在 Plugins → Discover 添加索引源:

https://raw.githubusercontent.com/Darkhe55/dsh-plugin-middle-panel/main/market-index.json

搜索「画布面板」;索引指向 npm,安装参数为 dsh-plugin-middle-panel@0.2.0。

其他方式(资料原文)

不依赖 npm 时,可用 plugin_manager install_bundle,target 为 git+https://github.com/Darkhe55/dsh-plugin-middle-panel.git#<commit>;本地开发可将 install_bundle 指向本目录。请勿在未审阅源码的情况下盲装第三方 bundle。

典型用法流程

  1. 在 desktop profile 安装插件并重启(必要时硬刷新)。
  2. 在会话中打开画布,从工作区选择或让模型通过 canvas 工具指定 path。
  3. 在画布上完成划选 / 点选 / 框选,为每条标注填写意见。
  4. 点击 发送标注,在输入框中核对编号列表后发送,让模型按条修改。
  5. 文本类文件可在面板内 编辑 → 保存(Ctrl+S),写回限于该会话工作目录(单次 ≤ 4 MiB)。

需要全屏使用右侧框架栏时,可点 回到对话;资料注明面板打开时 右侧栏不可用(框架仅在对话占据主栏时渲染右栏)。

安全与局限(安装前宜知晓)

安全模型(现状):插件不访问第三方域名;文件读走进程内 remote.workspaceFiles;HTTP 路由 /dsh-canvas/file 仅返回元数据;写入仅限会话工作目录并带沙箱策略;HTML 预览隔离在 sandbox iframe。残余风险与 sessionId 凭据等见 README「安全模型」表。

已知限制(节选):

  • 嵌入对话无完整会话头部;面板顶栏保留画布、路径、发送标注、回到对话等。
  • HTML 预览不打包相对路径资源,内联样式与 data URI 正常。
  • 位图无真实图层,仅区域框选;标注不跨设备同步,清 localStorage 会丢失。
  • 保存与插件 Host 路由受 Origin 白名单与会话目录约束。

插件以当前 DSH 进程权限运行;安装前建议阅读 MIT 许可证 与源码,确认符合你的环境策略。

结尾

dsh-plugin-middle-panel 把交付物拉到中栏,用编号标注把「看」和「改」接到同一条对话里,适合需要在 GUI 里对照文件做精细微调指示的场景。目录与安装入口:SkillHub;细节与更新记录:GitHub README。

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

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

小夜