前言¶
在 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) 绝对地址,不主动抓取网页。
插件管理页配置¶
进入插件管理器的「对话文件操作」配置页:
- 选择本地文件名的打开方式(系统应用或 DSH 侧栏)。
- 勾选并排列本地文件的三项复制操作。
- 保存。
默认与 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 才是对应版本的安装包。资料中的安装步骤如下。
- 从 v0.4.1 Release 下载
dsh-chat-file-actions-0.4.1.tgz(v0.4.0、v0.3.0 仍保留)。 - 在 DSH 插件管理器中安装该本地包并启用 对话文件操作。
- 若提示
restart-required,保存其他任务后手动重启 DSH;只刷新页面可能不够。
从源码构建并打包(供自行验证或打本地包):
npm ci --ignore-scripts --no-audit --no-fund
npm test
npm pack --ignore-scripts
禁用或移除插件会撤销操作栏插槽和样式,不会修改会话文件。
典型用法(可复现条件)¶
- 在一轮对话里用 Markdown 链接引用工作区内的
.md或图片,或使用@src/foo.ts、@"path with spaces"。 - 或让助手在本轮成功完成
edit/write,产生带路径元数据的工具卡。 - 等该轮回复完成后,在操作栏点击回形针,在列表中打开文件、Reveal 定位,或展开「更多」复制路径/Markdown 链接。
- 若习惯在 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