前言¶
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。