对话文件操作(DSH Chat File Actions):在单轮回复下集中打开、定位与复制本轮资源

前言

在 DeepSeek Harness(DSH)里跑对话时,一轮回复里常会同时出现本地 Markdown 文件链接、@path 引用、网页链接,以及成功的 edit/write 工具结果。这些内容分散在正文和工具卡里,想打开文件、在文件管理器里定位,或复制路径/Markdown 链接,往往要在多处点选、自己整理。

「对话文件操作」是维护者 nico-zhuang 发布的客户端类社区插件(GitHub:nico-zhuang/dsh-chat-file-actions)。它通过 DSH 正式插槽挂在已完成回复的操作栏上,按需显示回形针与候选数量,把本轮明确引用的本地文件、网页链接和已编辑文件收进同一套紧凑列表,不覆盖右键菜单,也不改 DSH 本体。下面介绍它的定位、能力与安装方式。

这是什么

一句话:在单轮、单会话范围内收集可操作的文件与链接,用紧凑列表做打开、定位、复制。

  • 插件包名:dsh-chat-file-actions,当前资料版本 0.4.1,面向 DeepSeek Harness 0.2.1-rc.2。
  • 分类:客户端(lib/client.js 注入对话 UI;Host 侧 lib/index.js 仅声明配置 schema)。
  • 许可证:MIT(见仓库 LICENSE)。

何时会出现「本轮资源」

只有本轮提问或回复里存在可识别候选,或本轮有成功的结构化 edit/write 结果时,回复操作栏才显示回形针图标和数量。没有候选则不显示按钮。

插件会解析的内容包括:

  • 明确的本地 Markdown 文件链接(含图片)、@path、@"path with spaces";
  • Markdown 形式的 http(s) 网页链接;
  • 同轮成功完成的 DSH edit/write 卡(从 Chat snapshot 的结构化 tool-result 与 diff/创建元数据取路径,不扫 DOM)。

它不会猜测普通裸网址、代码块、HTML 注释或工具输出散文里的裸文件名;参考式链接与全部复杂 Markdown 暂不支持。shell 等方式改动的文件不会自动列入。

核心功能

紧凑列表与交互

点击回形针后,本地文件与网页链接在同一紧凑单行列表中展示,不拆两套界面。列表默认只显示文件名;同名文件会补充父目录,悬停可看完整路径。标题固定,文件列表独立滚动,跟随 DSH 日夜主题。每轮最多显示前 200 个资源,并为成功编辑/创建的文件预留额度。

  • 点击本地文件名:默认请求 Host 用系统默认应用打开;可在插件管理页改为「在 DSH 侧栏打开」。成功编辑的文件带淡色「已编辑」标注。
  • 点击文件夹图标:通过 DSH session.openWorkspacePath 请求 Host 的文件管理器定位已验证的本地文件(插件本身不跑 shell)。
  • 本地文件的「更多」:可复制绝对路径、文件名或 Markdown 链接;显示项与顺序可在管理页勾选并用上下按钮排列。侧栏模式下仍提供「用系统应用打开」备选。
  • 点击网页链接名:在浏览器打开(noopener noreferrer);同一行显示真实目标域名。 「更多」可复制网址或 Markdown 链接;网页链接没有本地定位,也不受「文件名打开方式」配置影响。

本地路径经所属 sessionId 的 workspaceFiles.stat 由 Host 验证;验证失败则禁用文件操作。每次展开弹层时,本地文件验证请求最多并发 6 个;关闭弹层会发取消信号。网页链接只接受规范化的 http(s) 绝对地址,不主动抓取网页。

插件管理页配置

进入插件管理器的「对话文件操作」配置页:

  1. 选择本地文件名的打开方式(系统应用或 DSH 侧栏)。
  2. 勾选并排列本地文件的三项复制操作。
  3. 保存。

默认与 DSH 0.2.1 行为一致。若三个文件复制项都隐藏,且为系统打开模式,文件行不显示「更多」;网页链接行仍可复制。设置保存在 DSH Host 的 Profile 配置中;若 DSH 判定当前连接不是 loopback,设置页不可持久保存,也不会退而使用浏览器本地存储。

0.4.1 修复了设置表单因 DSH 不再提供 state.mode 而无法保存的问题。

语言

UI 跟随 DSH 全局「中文/English」:locale/zh.json、locale/en.json 提供管理器元数据;已展开的本轮资源弹窗、菜单与反馈同步切换,无需单独语言项。

安装与启用

本仓库未发布到 npm registry;GitHub Release 中的 .tgz 才是对应版本的安装包。资料中的安装步骤如下。

  1. 从 v0.4.1 Release 下载 dsh-chat-file-actions-0.4.1.tgz(v0.4.0、v0.3.0 仍保留)。
  2. 在 DSH 插件管理器中安装该本地包并启用 对话文件操作。
  3. 若提示 restart-required,保存其他任务后手动重启 DSH;只刷新页面可能不够。

从源码构建并打包(供自行验证或打本地包):

npm ci --ignore-scripts --no-audit --no-fund
npm test
npm pack --ignore-scripts

禁用或移除插件会撤销操作栏插槽和样式,不会修改会话文件。

典型用法(可复现条件)

  1. 在一轮对话里用 Markdown 链接引用工作区内的 .md 或图片,或使用 @src/foo.ts、@"path with spaces"。
  2. 或让助手在本轮成功完成 edit/write,产生带路径元数据的工具卡。
  3. 等该轮回复完成后,在操作栏点击回形针,在列表中打开文件、Reveal 定位,或展开「更多」复制路径/Markdown 链接。
  4. 若习惯在 DSH 内预览 PDF、图片等,在管理页把本地文件名打开方式改为侧栏;Office 等格式是否可预览由 Host 转换与 DSH 能力决定。

Windows 下 Markdown 路径建议用 /、将反斜杠编码为 %5C,或使用插件「复制链接」;原始 C:\work\.env 等反斜杠紧贴 Markdown 标点的写法可能被跳过。@"C:\work\.env" 引用不经 Markdown 转义。暂不支持 UNC 和 file: 形式的 Markdown 文件链接。

适用场景与注意

适合谁:经常在 DSH 对话里引用本地文件或外链、并需要按「轮次」快速打开、定位、复制路径的开发者;希望把 edit/write 产出和正文引用放在同一入口的用户。

边界与权限:

  • 插槽为 conversation.chat.assistant-actions;系统打开、定位发生在 DSH Host 所在电脑,侧栏查看发生在 DSH 页面。插件以当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证,自行评估是否适合你的环境。
  • Chat 投影结构已在 DSH 0.2.1-rc.2 核对;该版本 edit/write 差异元数据尚未做实机逐项验收,未来 DSH 版本可能变化。
  • 侧栏不依赖 dsh-better-sidebar;侧栏不可用时不自动改为系统打开。
  • Windows 桌面尚未在资料中标注为已实测;兼容问题可在 GitHub Issues 提供 DSH 版本与复现步骤(勿公开私人路径、令牌或完整会话记录)。

本项目为独立社区插件,与 DeepSeek Harness 官方无隶属关系。社区目录页(SkillHub)为独立站点,与 DeepSeek/幻方无官方从属关系。

结尾

「对话文件操作」把单轮里可操作的文件与链接收成一条紧凑列表,打开方式与复制项可配置,并严格限定解析与验证范围,避免误点未声明资源。需要包文件或源码时,可访问目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/nico-zhuang/dsh-chat-file-actions
  • GitHub:https://github.com/nico-zhuang/dsh-chat-file-actions
羽毛球分组比赛记分
小程序二维码

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

Xiaoye