前言¶
DeepSeek Harness(DSH)在工具层不提供直接的 delete,模型要删文件往往只能走 pwsh、bash、terminal_send 或 run_code。这些通道一旦执行 Remove-Item、rm 或 Node 的 fs.rm,文件通常会被永久删掉,误操作后很难从资源管理器里找回来。下面介绍社区插件 dsh-recycle-bin(维护者 yanli-nyan,SkillHub 分类 admin-security):用 trash 工具把删除送进系统回收站,并在常见 shell / 代码入口上拦截或引导,降低「一条命令清盘」的概率。它运行在 DSH 进程权限内,不能替代整机文件系统 ACL;SkillHub 是独立社区目录,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-recycle-bin 是 DSH 的工具层守卫:提供 trash、trash_list、trash_restore,并对 pwsh / bash / terminal_send / run_code 上的永久删除语义做识别与拦截(可配置为仅提供工具、不拦截)。实现只依赖 Node 内置模块,无额外 npm 依赖。当前公开资料标明 MIT 许可,仅适用于 Windows,且 trash 依赖本机 powershell.exe。
核心功能¶
trash工具:删除文件或目录时写入 Windows 回收站,可从资源管理器或trash_restore还原。trash_list/trash_restore:列出各卷回收站中可还原条目(读$Recycle.Bin下$I元数据),按id还原到原路径。- 永久删除守卫:在四个模型常用入口上识别直接删除命令、嵌套 shell、脚本文件内容、内联
-e/-c代码、run_code中的 Node 删除 API,以及Clear-Content等内容破坏类操作;可通过allowPaths放行如.dsh/tmp、node_modules等路径。 - 系统提示:告知模型本环境应使用
trash,而非假设存在永久删除能力。
插件文档明确列出仍可能漏拦的情形(动态拼方法名、eval 解码、删除藏在模块内、超大脚本中段、关闭拦截配置等),并说明 guard 不是安全边界,只能降低误删概率。
安装与启用¶
官方推荐从 GitHub 安装(示例使用 desktop profile,按你的 profile 替换):
dsh plugin --profile desktop add https://github.com/yanli-nyan/dsh-recycle-bin
Release 附带 tgz 时可离线安装:
dsh plugin --profile desktop add ./local-dsh-recycle-bin-1.6.0.tgz
本地开发目录安装(改代码后需在插件管理中禁用再启用,或重启 DSH):
dsh plugin --profile desktop add <本目录绝对路径>
用 tgz 或 git 方式安装的是解包副本,升级需先 remove 再 add。安装前建议阅读仓库源码与 MIT 许可证;插件以当前 dsh 进程权限 运行。
配置¶
在 profile 的 cordis.patch.yml 中覆盖插件配置,无需改包内文件:
- id: recycle-bin
config:
mode: enforce # off:只提供 trash,不做拦截
enforceOnTerminal: true # 拦 terminal_send(持久终端绕过 pwsh)
enforceOnCode: true # 拦 run_code 的 Node fs 删除
enforceScriptFiles: true # 读命令行里点名的脚本文件内容再判断
listTool: true # 注册 trash_list
restoreTool: true # 注册 trash_restore
allowPaths: # 构建产物可直接删除,不打扰
- .dsh/tmp
- node_modules
allowPaths 显式留空会回落到默认值,而不是清空白名单。
典型用法¶
模型侧删除文件应调用 trash,传入路径数组。删除后查看回收站:
trash_list({ limit: 20 })
返回 { entries, total },每条含 id、path、size、deletedAt。按 id 还原:
trash_restore({ ids: ["KFV3TQ.txt"] })
trash 返回的 status 包括 recycled、missing、unavailable、denied、refused(如无回收站的 FAT32/U 盘卷会主动拒绝)、failed 等,便于区分「已进回收站」与「无法安全删除」。
适用场景与注意¶
适合:在 Windows 上用 DSH 做本地开发、希望智能体删文件先进回收站、并限制模型通过 shell / 代码通道绕过的情况。
不受保护(文档表格已说明):资源管理器 Shift+Del、编辑器 / git / npm 等其他进程、DSH 之外的任何进程。要覆盖整机删除需文件系统 ACL 或专门监控,不在本插件范围。
务必:安装前核对源码与许可证;不要把拦截当作安全保证;无 PowerShell 时 trash 不可用。
结尾¶
dsh-recycle-bin 针对 DSH「没有内置 delete、只能走命令与代码」这一现实,把可恢复删除和多层文本守卫叠在同一插件里,适合作为 Windows 桌面 profile 的安全辅助。目录与说明见 SkillHub 插件页,源码与版本历史见 GitHub:yanli-nyan/dsh-recycle-bin。