dsh-conversation-quote
English | 中文
引用到输入框的界面插件:在对话里选中你想引用的内容——每次选中都会生成一个输入框上方的紧凑标签,发送时所有引用与你的下一个问题一起送出。 它不是模型工具,也不是斜杠命令——纯粹是聊天界面的浏览器侧扩展。
功能
1. 用鼠标在任意聊天消息里选中一段文本(用户、模型、工具或注入的上下文都行)。 2. 选区上方浮现一个小 引用 / Quote 胶囊按钮。 3. 点它:输入框上方左侧出现一个紧凑引用标签——显示 [引用·谁] 与原文首行,固定大小。悬停标签可在弹出层里展开全部内容;标签右上角的 × 可移除这一条。可以连续引用多条,每次选中都会新增一个标签。输入框本身保持干净,供你正常打字:
``text ┌ [引用·用户] > 这段内容需要被引用… ──×─┐ ┌ [引用·模型] > First line… ──×─┐ │ (compact tabs above the input, not in it) │ └──────────────────────────────────────────┘ ``
4. 在输入框输入问题后按回车(或点发送按钮):所有已引用内容按引用顺序以可引用块形式随消息一起送出,逐条标注说话人:
```text [引用·用户] > 这段内容需要被引用
[引用·模型] > First line > Second line ```
合并发生在提交手势的 capture 阶段——输入过程中输入框里永远看不到引用文本,发送后标签自动清空。Shift+Enter(换行)与 IME 输入法组合不受影响。
引用来源的标注取自聊天流自身的 DOM 标记(data-chat-flow-kind,与滚动锚定用的是同一套),因此无需替换任何消息渲染器。滚动、选区清空或选中了聊天节点以外的内容时,按钮自动隐藏。
挂载方式
插件已进入 Web profile 的浏览器名单(dsh.client 行 ui-conversation-quote)。它只需要插槽注册表与 locale 服务,向 conversation.input.dock 席位贡献一条 list 条目。从 cordis.patch.yml 移除该行即可卸载。
配置
无——发布即完整功能。
模型体验
无——引用框纯粹是浏览器端界面:引用的内容只在提交瞬间并入草稿,作为正常用户消息的一部分进入模型上下文,不改变任何 schema、提示词 section 或请求头。
#### KV Cache 影响
无——本插件没有任何状态触碰历史尾部或请求前缀。
已知限制与后续工作
- 所有引用只在提交瞬间并入草稿;如果发送被拒绝,合并后的文本会以普通可编辑文本的形式留在输入框里。
- 发送按钮的合并靠两个随附语言下的 aria-label 识别主按钮;harness 之后新增的第三种语言需要把对应标签加进匹配列表。
- 标注按聊天节点类型(用户 / 模型 / 工具 / 上下文 / 对话),而非稳定的消息 id;从界面上无法把引用的行回溯到日志
seq。 - 按钮面向鼠标选区;触摸长按选区未做特殊处理。