dsh-safe-delete
安全删除插件,将文件移动至回收站/暂存区而非永久删除,支持恢复、清空及劫持系统删除命令的引导功能。
AI 分析
核心用途是防止智能体在执行删除任务时误删重要本地文件。适合需要让AI协助管理文件系统,但又担心误操作导致数据丢失的用户。
安裝
此插件尚未提供可驗證的 bundle,或相容性檢查未通過。請先閱讀倉庫說明。 閱讀完整 README ↗
說明文件
閱讀完整 README ↗Usage
The plugin registers four agent tools:
| Tool | Description |
|---|---|
safe_delete | Move paths into the trash (restorable). recursive: true for directories; permanent: true to delete irreversibly (requires approval). |
trash_list | List trash entries, optionally filtered by pattern (*.tmp). |
restore | Restore entries by ids or pattern back to their original paths. onConflict: rename (default) / skip / overwrite. |
purge | Permanently delete trash entries (ids or all: true) — always requires approval. |
A system-prompt section guides the model to prefer safe_delete over rm / Remove-Item.
Escape hatch
When deleteHijack: block intercepts a delete command, the model can still delete permanently on purpose:
## Configuration
All options are editable live in **DSH Web → Settings → Plugins → Safe Delete** (card is localized to the DSH language).
| Option | Type | Default | Description |
|---|---|---|---|
| `trashDir` | string | `''` (workspace `.dsh-trash`, or `$DSH_HOME/.dsh-safe-delete-trash` without a workspace) | Trash root; must be an absolute path when set. |
| `retentionDays` | number | `30` | Auto-expire entries older than this; `0` disables. |
| `maxSizeBytes` | number | `5368709120` (5 GiB) | Size cap; oldest entries are swept first; `0` disables. |
| `confirmThreshold` | number | `10` | Batch deletions at/above this count require approval; `0` always confirms. |
| `restoreConflict` | enum | `rename` | Default restore conflict strategy: `rename` / `skip` / `overwrite`. |
| `deleteHijack` | enum | `block` | Hijack delete commands in bash/pwsh: `block` / `ask` / `off`. |
| `interceptFsDelete` | boolean | `false` | Reserved: intercept future `ctx.fs` delete methods. |