按轮次回滚工具改动并记录危险操作
24.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/helibeiqi/dsh-time-travel.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 67 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
- 写入本地文件lib/src/audit.js:143
await mkdir(dir, { recursive: true }); - 写入本地文件lib/src/audit.js:145
await appendFile(logPath, `${JSON.stringify(entry)}\n`, 'utf8');
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-time-travel
给 DeepSeek Harness (DSH) 的 Cordis 插件:可逆时间旅行与审计 —— 为工具副作用建立「前状态快照 → 执行 → 补偿操作」链路,提供 rewindTo(turnId) 按轮次倒序恢复工作区,并内置审计规则引擎把危险操作落盘 audit-log.jsonl。
兼容 DSH 0.1.0-rc.6(cordis 4.x / schemastery 3.x)。请勿裸装 @latest,以本仓库版本为准。
功能定位
一句话:把「模型用工具改坏了工作区」这件事变得可逆且可审计。
- 监听 tools/pre-execute / tools/result 工具管线事件,对 fs.write / fs.delete / bash / http.request 四类工具建立快照与补偿;
- ctx.timeTravel.rewindTo(turnId):按轮次倒序执行补偿,恢复工作区到指定轮次之前;
- 审计规则引擎:命中危险 shell、敏感路径写、不可补偿写操作后,追加一行 JSON 到 audit-log.jsonl;
- 全部副作用经 ctx.on() 注册,插件卸载时自动撤销,不污染 dsh 工具管线(快照/审计失败都会被包含,绝不影响工具执行)。
展开完整文档(README 剩余 1 节)
dsh-time-travel
给 DeepSeek Harness (DSH) 的 Cordis 插件:可逆时间旅行与审计 —— 为工具副作用建立「前状态快照 → 执行 → 补偿操作」链路,提供 rewindTo(turnId) 按轮次倒序恢复工作区,并内置审计规则引擎把危险操作落盘 audit-log.jsonl。
兼容 DSH 0.1.0-rc.6(cordis 4.x / schemastery 3.x)。请勿裸装 @latest,以本仓库版本为准。
功能定位
一句话:把「模型用工具改坏了工作区」这件事变得可逆且可审计。
- 监听 tools/pre-execute / tools/result 工具管线事件,对 fs.write / fs.delete / bash / http.request 四类工具建立快照与补偿;
- ctx.timeTravel.rewindTo(turnId):按轮次倒序执行补偿,恢复工作区到指定轮次之前;
- 审计规则引擎:命中危险 shell、敏感路径写、不可补偿写操作后,追加一行 JSON 到 audit-log.jsonl;
- 全部副作用经 ctx.on() 注册,插件卸载时自动撤销,不污染 dsh 工具管线(快照/审计失败都会被包含,绝不影响工具执行)。
安装
在插件工程根目录执行(本目录绝对路径)
dsh plugin --profile web add /absolute/path/to/dsh-time-travel
或手动打包安装(绕过 pnpm forwarder 时的等价路径)
npm pack && cd ~/.dsh/profiles/web && npm install /absolute/path/to/dsh-time-travel-0.1.0.tgz --no-save --no-audit --no-fund
安装后重启 dsh web(端口 3080)生效。插件挂载后:
- ctx.timeTravel 可用(rewindTo / rewindAll / records / clear);
- 当前目录生成 audit-log.jsonl(可用 audit.logPath 配置)。
配置
插件导出 schemastery Config,可在 dsh 的插件配置面板 / profile 中覆盖:
| 配置项 | 类型 | 默认值 | 说明 |
| turnGapMs | number | 5000 | 同一会话内两次工具调用超过该间隔(ms)则开启新轮次;0 = 每次调用独立成轮 |
| audit.enabled | boolean | true | 是否启用审计规则引擎 |
| audit.logPath | string | audit-log.jsonl | 审计日志输出路径(JSON Lines,相对 cwd) |
| audit.rules | dict\<boolean\> | 全部 true | 按规则 id 开关:dangerous-shell / sensitive-path-write / non-compensable-write / delete-whole-dir |
| watchTools | dict\<kind\> | 见下表 | 工具名 → 补偿器类别映射 |
| maxRecords | number | 10000 | 内存保留的最大工具记录数(超出丢弃最旧;审计日志不受影响) |
| dryRun | boolean | false | true 时 rewind 只出报告、不实际执行补偿 |
watchTools 默认映射(按 DSH 0.1.0-rc.6 实际工具名 + 通用桥接名):
| 工具名 | 补偿器类别 | 可自动补偿 |
| write / edit | fs-write | ✅ 恢复原内容 / 删除新建 |
| delete | fs-delete | ✅ 写回原内容 |
| bash | bash | ❌ 仅审计 + manual 提示 |
| pwsh | bash | ❌ 仅审计(Windows 上 dsh 的 bash 工具实际注册名为 pwsh,PowerShell) |
| http.request | http | ❌ 仅审计 |
最小使用示例
import { Context } from '@deepseek-ai/cordis'
import { apply } from 'dsh-time-travel'
// 插件被 dsh 加载后,apply 已执行;以下仅为编程调用示例 const ctx: Context = /* dsh 注入的根 Context */
// 模型调用 write 覆盖了 a.txt 之后: const report = await ctx.timeTravel.rewindTo('T3') // 撤销 T3 及之后所有工具副作用 // report: { requestedTurnId: 'T3', rewound: 2, skipped: 1, failed: 0, details: [...] }
// 查看当前记录(可按会话过滤) const records = ctx.timeTravel.records('session-abc123')
// 全部回退 await ctx.timeTravel.rewindAll()
审计日志示例(audit-log.jsonl):
{"at":"2026-08-20T08:00:00.000Z","turnId":"T1","sessionId":"s1","callId":"c1","toolName":"bash","kind":"bash","isError":false,"hits":[{"ruleId":"dangerous-shell","severity":"critical","message":"bash 命令命中高危模式(rm -rf / mkfs / dd 写盘 / shutdown / curl|sh 等)"}],"command":"rm -rf /tmp/doomed"}
与 dsh-replay / dsh-turn-rewind 的差异
| | dsh-time-travel | dsh-replay | dsh-turn-rewind |
| 关注对象 | 工作区文件系统副作用的可逆补偿 | 会话事件日志的重放(时序复现) | 会话状态按轮次的回退(消息层) |
| 回滚手段 | 工具调用级前状态快照 + 补偿操作(restore/delete) | 按日志重新派发事件 | 截断 / 重建轮次内的消息 |
| 审计 | ✅ 内置规则引擎(危险 shell / 敏感路径 / 不可补偿写) | 通常依赖日志本身 | 视实现而定 |
| 对外 API | ctx.timeTravel Service(rewindTo / records) | 重放驱动 | 轮次回退 API |
| 不可补偿操作 | 显式标记 manual 并审计,交由人工处理 | 重放无法改变历史副作用 | 消息回退不触碰文件系统 |
一句话:dsh-replay / dsh-turn-rewind 处理的是「对话/会话怎么回到过去」,本插件处理的是「工作区文件怎么回到过去」,两者互补;对不可自动补偿的副作用(bash / http),本插件选择审计留痕 + 人工回滚,而不是冒险猜测。
开发
pnpm install
pnpm run check # tsc --noEmit,严格模式零错误
pnpm run build # tsc → lib/
pnpm test # node --test(含 rewindTo 恢复文件的端到端事件测试)
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
helibeiqi/dsh-time-travel
按轮次回滚工具改动并记录危险操作
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目