dshbase

插件目录 / Developer / @ohoyo/dsh-file-mention

@ohoyo/dsh-file-mention

已验证 · 实测可装 ohoyour

✓ 持续维护 纯 TypeScript

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
TypeScript语言
2026-08-18最近推送
跨平台平台

功能简介

让DeepSeek Harness支持使用 @ 引用工作区中的文件和目录

我们的评价
可用 — 实测通过,早期项目

让DeepSeek Harness支持使用 @ 引用工作区中的文件和目录 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

@ohoyo/dsh-file-mention

https://deepseek-harness.github.io/deepseek-harness/ 支持使用 @ 引用工作区中的文件和目录。 在 Harness 输入框中输入 @ 加文件名或目录名即可搜索并插入引用。这个插件会把引用保存为准确的工作区相对路径,避免空格、标点、同名文件和目录嵌套造成歧义。

它解决什么问题?

DeepSeek Harness 原生支持 @ 提及,但不能直接引用文件和目录。本插件补齐这条链路: - 输入 @ 后搜索工作区中的文件和目录。 - 选择文件或目录后插入可见的文本引用;可确认唯一时使用带 Harness 高亮的 @名称,否则使用精确的 @{路径}。 - 文件引用会注入 <file_context>,目录引用会注入 <dir_context>。 - 目录引用包含受限的目录树和小型文本文件内容,避免一次性塞入过大上下文。 - 路径含空格、标点或重复文件名时仍能保持精确引用。 - 保留手写旧式 @path 和反引号路径的兼容解析。

安装

从 npm 安装(推荐)

要求:已安装 DeepSeek Harness Web。仓库当前以 0.1.0-rc.5 系列作为兼容性验证基线。 在目标环境执行: ``sh dsh plugin --profile web add @ohoyo/dsh-file-mention ` 然后重启 Harness Web: `sh dsh web ` 如果 Harness Web 已经在运行,请重启对应进程并刷新浏览器页面。

使用

1. 在 Harness 输入框中输入
@ 加文件名或目录名片段,例如 @README@src。 2. 从候选列表中选择文件或目录。 3. 发送消息。 4. Host 会在请求进入模型前读取对应引用,并把内容加入上下文。 示例: `text 请检查 @packages/client/src/client/index.ts 的缓存逻辑。 请总结 @packages/host/src/ 目录的结构。 ` 菜单选择的引用会使用结构化格式保存,例如: `text @{packages/client/src/client/index.ts} ` @{...} 是插件使用的精确协议格式,通常由候选菜单自动插入。 <img width="1617" height="445" alt="image" src="https://github.com/user-attachments/assets/ec612a97-75f5-432e-b385-6d1b9371d9fa" /> <img width="1591" height="673" alt="image" src="https://github.com/user-attachments/assets/5133ca19-7ef9-4a2b-b5df-4b56dcb2123c" />

工作方式

插件由两个部分组成: | 部分 | 作用 | | --- | --- | | Client | 注册
@ 输入源,缓存工作区索引,在浏览器端过滤和排序候选项 | | Host | 提供文件索引 Remote 服务,解析引用并向模型上下文注入文件或目录内容 | 完整索引会在 Client 本地缓存,正常输入不会为每个字符发起远程请求。大型工作区会使用 Host 端的查询索引;文件写入或编辑后,Host 会使索引失效,Client 会根据版本号丢弃旧缓存并重新获取。

从源码安装

适用于需要修改插件、调试 Harness 集成或暂时没有 npm 发布包的场景:
`sh git clone <repository-url> dsh-file-mention cd dsh-file-mention pnpm install --frozen-lockfile pnpm build pnpm pack:local ` pnpm pack:local 会在 .local-pack/ 生成 Host、Client 和 Bundle 的 tarball。将这三个 tarball 添加到目标 profile 的 package.json,并在 dsh.profile.bundles 中启用 Bundle,然后在 profile 目录执行: `sh pnpm install dsh web ` 源码安装依赖构建产物;如果不想执行本地构建,请使用 npm 发布包。

已知限制

- 目录引用会受到树深、文件数量、文件大小和总字符数预算限制。 - 工作区索引默认最多收录 5,000 个文件和目录;超出后会使用 Host 查询索引补足非空搜索。 - 手写旧式
@path 仍受空白分隔、后缀碰撞和动态插件 ID 兼容规则影响;从菜单选择的结构化引用不受这些限制。 - Client 当前通过缓存 TTL 和 Host 返回的版本号保持新鲜度;Harness 尚未向第三方 Client 插件开放 fs/observed 的实时事件订阅,因此不会在文件变更瞬间主动推送刷新菜单。

开发与验证

`sh pnpm install --frozen-lockfile pnpm build pnpm typecheck pnpm test pnpm smoke `

项目结构

`text packages/ ├── host/ Host 插件:索引、引用解析和上下文注入 ├── client/ Web 插件:@ 输入源、候选菜单和结构化引用 └── bundle/ 发布 Bundle:同时安装 Host 和 Client ``

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 @ohoyo/dsh-file-mention」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

Web profile:

dsh plugin --profile web add @ohoyo/dsh-file-mention

Headless(CLI)profile:

dsh plugin --profile headless add @ohoyo/dsh-file-mention

包信息

npm:@ohoyo/dsh-file-mention · 版本 0.1.4 · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →