dsh-file-mention

DSH PLUGIN开发与运行时

仓库 sunshaobei/dsh-file-mention · npm dsh-file-mention

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 为输入框添加 Codex 式 @ 文件/文件夹引用,支持菜单选择、token 着色与点击预览,让模型零搜索直达文件。

一句话选型结论

按资料字段整理

dsh-file-mention 是开发与运行时类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 3 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 未标注
最近更新 2026-08-19 创建于 2026-08-16
README 8.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-file-mention
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 12 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-file-mention可用 npm view 查看包信息

能做什么

3 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-file-mention:DeepSeek Harness 的 Codex 式 @ 文件引用插件

  • @ 文件/文件夹提及
  • token/胶囊点击预览
  • 菜单样式覆盖

适用场景

文件读写

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 12 个),按版本装不容易报错。
  • 列出了 3 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-file-mention当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 12 个 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方sunshaobei仓库 dsh-file-mention · 默认分支 未标注
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证NOASSERTION商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-08-16 · 2026-08-19最后推送 未标注
本站收录2026-08-18首次进入本站目录的时间

README 全文

8.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-file-mention

Codex 式 @ 文件引用,DeepSeek Harness (DSH) Web 插件。

三个能力,全部挂在官方扩展点上,不改动 DSH 任何内置包。输入框的 ↑/↓ 输入历史 已拆分为独立插件 dsh-input-history(发送落库 localStorage 全局环、同步召回),本插件不再包含历史逻辑:

功能 说明
@ 文件/文件夹提及 输入框敲 @ 弹出工作区文件与文件夹菜单(git 索引优先、嵌套 git 仓库递归展开、fzf 风格模糊过滤);菜单行显示文件名/文件夹名主标题(文件夹带 /)+ 全路径小字副标题,宽度与输入框一致;选中插入纯文本 @token 相对路径——token 整体着色(无胶囊宽度上限),路径明文随行,模型零搜索直达文件;文件夹引用注入 kind="directory"
token/胶囊点击预览 点击输入框内的着色 token 或会话气泡里的灰色胶囊,直接在右侧 better-sidebar 编辑器打开该文件预览(未安装时回退系统默认打开方式);pick 的 token 精确解析,手输 token 在 stem 唯一时也可解析
菜单样式覆盖 注入一段 scoped CSS(:has([data-source="file"])),只影响文件组菜单:满宽 + 两行布局;其他 trigger 菜单(斜杠命令、子代理)保持内建尺寸

安装

dsh plugin --profile web add /path/to/dsh-file-mention

dsh.bundle.patch 声明会让 CLI 自动把本包追加进 profile 的 bundles(宿主半随之挂载)。然后重启 DSH 桌面应用并刷新页面。零运行时依赖,无 peer / 构建要求。

卸载:dsh plugin --profile web remove dsh-file-mention。

开发迭代:改完代码运行 scripts/deploy.sh(同步 lib 到 profile 安装目录)后重启。

架构

┌ composer (ui-conversation, 不改) ─────────────────────────────┐
│ @ 触发 → inputTriggers 管线 → 本插件 source "file"            │
│   candidates: host files.index + dirs 合并模糊评分              │
│               行 = name(文件名/文件夹名,文件夹带 /)           │
│                    + description(全路径副标题)                 │
│   onPick    → insert-text → "@token rel/path "(无占位/无胶囊)│
│   lexicon   → 文件 + 文件夹全部可着色 token → 平台 scanTextRefs │
│   subscribeLexicon → 索引落定后通知管线重扫(着色及时生效)    │
│   发送      → 草稿即文本,chip-free 跳过序列化直落 sink       │
│ token/胶囊点击(捕获)→ pick 登记 / 唯一 stem 反解 → 绝对路径   │
│   → betterSidebar.openFile → 回退 workspaces.openPath          │
│ 菜单 CSS    → :has([data-source="file"]) 满宽 + 两行行布局    │
└──────────────────────────────────────────────────────────────┘
│ /file-mention/api (POST JSON, 浏览器信任围栏)
┌ host 半 ────────────┴────────────────────────────────────────┐
│ files.index  git ls-files --cached --others --exclude-standard │
│              嵌套 git 仓库条目(dir/)递归展开(同上限/深度界)  │
│              目录 roll = 文件祖先推导 + 嵌入式仓库 dir/ 条目    │
│              (失败/非 git → opendir walk 兜底,含空目录,     │
│                TTL 10s 缓存)                                  │
│ files.read   遗留接口(纯文本模式不再调用;保留供测试覆盖)    │
└──────────────────────────────────────────────────────────────┘
  • 客户端 bundle 以 window.__ModuleLoader__.load 约定注册,不 require 任何模块(纯逻辑,无 React),规避 externals 漂移,无需打包器。
  • 菜单渲染、键盘仲裁、IME 守卫、纯文本装饰(mark.textRef 着色)、气泡 refChip 投影全部由 DSH 内建管线承担。
  • 与 @subagent、@cordis 两个 @ 源共存(组名 file,order 2)。

引用格式(宿主侧注入,dsh-at-file 同款)

选中文件插入干净纯文本提及 @token(token = 去扩展名文件名);发送后的处理全部在宿主侧 agent/pre-step 边界完成:

  • 宿主扫描发出的用户消息里的 @token,按「pick 注册(精确)→ 索引唯一 stem」解析,stat 校验存在后,注入一条独立的引用消息给模型:
  • 文件夹同样可引用:目录与文件共享同一索引与 token 语法(src/app/ → @app),选中或手输命中后注入 `(目录 path 保留尾部/`);token/胶囊点击预览对目录走系统打开方式(跳过 better-sidebar 编辑器)

  • 输入框、草稿、用户气泡永远干净——只显示着色 token,路径不出现在任何用户可见文本里

  • 模型直接从引用消息拿精确路径,零搜索
  • 菜单 pick 时客户端通过 mentions.register 把 token → 相对路径 精确映射登记到宿主(歧义 stem 也能精确解析);手输 token 靠全工作区唯一 stem 兜底
  • 注入消息的 source 为 at-file-mention(与 dsh-at-file 相同形状),不进入输入历史
  • token 语法 @[\w-]+:点文件(.gitignore)与多点名(archive.tar.gz)插入 @basename 但不着色、不注入引用
  • 手动键入 @token(token 命中 lexicon)同样着色;唯一 stem 的手输 token 发送时同样被注入引用
  • token/胶囊点击预览:pick 的 token 按 pick 时登记的绝对路径打开;手输/气泡 token 在 stem 唯一时反解打开;歧义 stem 点击不动作

已知限制

  • 非 git 目录靠默认忽略表兜底(node_modules/dist/build/隐藏目录等),不解析 .gitignore 本身;隐藏目录与忽略目录(node_modules 等)既不出现在文件也不出现在文件夹菜单
  • git 路径下目录由文件祖先推导:不含任何已跟踪文件的空目录不会出现(git 本身不跟踪空目录);walk 兜底路径下空目录可见
  • 索引上限 200000 文件(truncated 截断,目录 roll 同界);文件/文件夹新建后最长 10s + 重开菜单可见
  • 含空格的路径无法靠键入 query 命中(触发 token 遇空白终止,Codex 同款约束),仍可从菜单点选
  • 手输/气泡胶囊的点击解析依赖 stem 唯一:歧义 stem 不动作(pick 的 token 不受影响,pick 时已精确登记);文件夹与文件同名 stem 同样视为歧义
  • 菜单行 React key 含文件名:同名文件并列时开发构建会有 duplicate-key 告警(按索引 pick,功能不受影响)
  • 菜单 CSS 用结构选择器([role=option] span 顺序)而非平台哈希类:平台 MenuView 大改时覆盖规则失配,退回内建单行样式(无害降级)
  • 点击命中依赖 DOM 结构约定(data-composer-card、mark[data-decoration]、span[data-ref-chip]),DSH 前端大版本变更时需适配

测试

node --test test/host.test.js test/client.test.js

27 个用例:目录遍历/深度/上限、嵌套仓库展开、目录 roll 推导、路径围栏、信任围栏(loopback/trusted/cross-site/origin)、读取(截断/二进制/越界)、路由分发、模糊评分(含目录行)、token/stem 派生(含目录尾部斜杠)、mention 扫描/引用形式(file + directory)/pre-step 注入/pick 注册校验、joinPath、命中测试、API 封包。(↑/↓ 输入历史相关用例已随拆分迁移至 dsh-input-history。)

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-file-mention 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-file-mention` 即可。对应的 npm 包名是 `dsh-file-mention`。

dsh-file-mention 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-file-mention 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-file-mention 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-file-mention 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-file-mention 用的是什么许可证?

上游标注为 NOASSERTION。商用或二次分发前请到仓库确认许可证原文。

dsh-file-mention 有哪些功能?

@ 文件/文件夹提及、token/胶囊点击预览、菜单样式覆盖。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

6 条
不同作者的仓库分开列,请确认你要装的是哪一个
开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

sunshaobei 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。