dsh-quoted:把对话选区落成临时注释并附到输入框

前言

在 DSH Web 对话里,模型往往只能看到当前输入框里的文字。若你想针对聊天记录里某一段提问,常见做法是整段复制进输入框,或手动 @ 某个文件。前者容易把上下文撑得很长,后者需要先自己落盘。下面介绍社区插件 dsh-quoted(注释引用 / Annotation Capture):在对话区选中一段文字,写成工作区下的临时 Markdown 注释文件,并以引用 chip 挂到输入框;模型在本轮读完该文件后,插件会按规则自动回收。插件由 mengyundawang123 维护,在 SkillHub 目录中归类为「记忆」,当前 GitHub 星标为 0;无运行时依赖,无需构建步骤。

这是什么

dsh-quoted 面向使用 DSH Web UI 的开发者:把「对话里某段原文」变成可 @ 的工作区文件引用,而不是长期污染仓库的笔记。落盘目录为工作区内的 .dsh-annotations/,目录内自带 .gitignore,避免误提交。宿主侧注册同源路由 POST /api/dsh-quoted,仅接受带请求头 x-dsh-quoted: 1 的 POST;写入目录由 Host 决定,客户端传来的 cwd 只有落在已注册工作区内才会被采纳。

核心功能

  • 选区捕获:在 [data-chat-flow] 内、且不在输入框里的选区上触发「引用」,将选中文字写入 .dsh-annotations/<时间戳>-<随机>.md。
  • 输入框 chip:输入框出现形如 📄 注释 17:51 的 chip,原文在对话区淡蓝高亮并带序号;发送后消息里体现为 @.dsh-annotations/xxx.md 形式的文件引用。
  • 生命周期管理:模型在本轮 read 过且文件属于本轮时,回合正常结束即删除;本轮未读则保留,由 1 小时后清扫处理;回合中断不删,便于重发。同一段文字 3 秒内重复触发只生成一个文件;输入法组词期间会延后写入。
  • 安全与体积:无外部网络请求与遥测;单次请求体上限 256 KiB。

已验证环境:dsh 0.2.1-rc.2(Windows + Web UI)。许可证为 MIT(见仓库 package.json,版本 v0.1.0)。

安装与启用

安装命令以仓库 README 为准:

# npm(推荐:预构建,装完即用,不需要构建授权)
dsh plugin --profile web add dsh-quoted

# 或直接从 GitHub 源码安装(本插件没有构建步骤,不需要 allowBuilds)
dsh plugin --profile web add github:mengyundawang123/dsh-quoted#v0.1.0

装完后重启 dsh web,在对话里选中一段文字验证是否出现「引用」入口。

插件以当前 dsh 进程权限 在工作区写文件;安装前请自行查看 GitHub 源码 与许可证。DSH 社区目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。

典型用法

  1. 在对话区选中一段文字(只认 [data-chat-flow] 之内、且不在输入框里的选区)。
  2. 右键选择「引用」,或点输入框工具行左侧的「引用」按钮。
  3. 确认输入框出现注释 chip,原文在对话区已高亮并标序号。
  4. 接着输入问题并发送。

文件流转可概括为:

选中 → 写 <工作区>/.dsh-annotations/<时间戳>-<随机>.md
     → 发送(消息里是 @.dsh-annotations/xxx.md)
     → 模型 read 该文件
     → 本轮正常结束 → 删除

宿主解析 @ 引用需要前导空白:消息开头或 @ 前有空格/换行时才会解析为蓝色文件引用;若文字紧贴 @(如 1111@path)则按纯文本显示。插件默认 SEPARATOR 为空格,chip 之后须保留独立空格文本节点;若希望 chip 单独一行、引用恒为蓝色,可在 client.js 中将 SEPARATOR 改为 '\n',改完刷新页面即可,无需重启 DSH。

失败与限制

按钮失败时悬停可见原因码,例如:no-workspace(无法确定写入目录)、no-draft(读不到输入框草稿)、forbidden(请求头缺失)、write-failed(落盘失败)、network / http-error(请求或服务异常)。

已知限制包括:用户消息气泡为纯文本渲染,chip 是文件引用而非原生引用卡片;输入框内若有 /命令 chip,重建草稿时可能退化为纯文本;Host 侧改动需重启 DSH,客户端改动刷新页面即可。README 还说明测试套件对真浏览器高亮、真并发等有部分覆盖不到的仿真边界。

适用场景

  • 针对长对话中某一两句提问,又不想每次手动建文件或整段粘贴。
  • 希望引用随本轮对话自动清理,减少 .dsh-annotations 里堆积的临时文件(未读文件会保留至清扫,避免静默丢内容)。
  • 需要零依赖、无构建的 Web 侧插件,与 dsh plugin --profile web 工作流一致。

不适合期待「气泡内原生引用卡片」或完全脱离工作区文件模型的场景。

结尾

dsh-quoted 把「选中对话片段 → 临时注释文件 → 输入框 chip → 模型 read → 回合结束回收」串成一条可复现路径,适合在 DSH Web 里做轻量上下文锚定。目录页:SkillHub - dsh-quoted;源码与详细说明:GitHub - mengyundawang123/dsh-quoted。

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

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

小夜