anweat/dsh-assistant-message-forge ↗★ 0
dsh-assistant-message-forge
DSH 助手消息锻造台:可创建/修改/注入测试用 assistant 消息,并可导入识别 session.jsonl(.zstd) 会话日志。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:anweat/dsh-assistant-message-forge说明文档
阅读完整 README ↗dsh-assistant-message-forge(消息锻造台)
双面(Host + Client)DSH 插件:在会话区新增一个 消息锻造台 页签,核心是 详细上下文解析 → 记录 → 卡片化 → 动态编辑 → 开放修改:
context/refresh把当前会话完整解析成一张张ContextCard(turn/step 边界、user/assistant 消息、tool call/result、request header、 其他 log-only 事件;assistant/chunk按轮折叠计数);- 解析结果连同卡片 overrides 一起 记录 到
$DSH_HOME/assistant-message-forge/context-.json; - 页签内按轮分组 卡片化 展示,含 surface 折叠状态(原始被替换 / 替换生效中);
- 卡片可 动态编辑:文本/reasoning/provider/model/usage、工具名与 arguments、工具结果文本;编辑先保存为记录,也可 保存并应用到会话 (surface replace 直接改写当前会话中的原消息)。
此外保留 v1 能力:创建/修改/删除/注入 assistant 草稿、上传识别
session.jsonl(.zstd);导入区还会做完整性预览,并可把安全可解释的损坏
恢复为新的 session-repaired-* 会话。
能力
| 能力 | 入口 | 说明 |
|---|---|---|
| 上下文解析+记录 | 会话上下文 → 刷新解析 | 全事件分类解析并落盘为 context 记录 |
| 上下文卡片化 | 会话上下文卡片流 | 按轮分组,边界/消息/工具/请求/其他卡片 + surface 状态 |
| 卡片动态编辑 | 卡片 → 编辑 → 保存记录 | 修改只写入记录 override,刷新解析不丢 |
| 应用到会话 | 卡片 → 保存并应用到会话 / 应用到会话 | user/assistant/tool-result 用 surface replace 替换原消息,模型上下文即时生效 |
| 添加/修改/删除草稿 | 草稿区按钮 | 草稿持久化在 drafts.json |
| 注入到会话 | 草稿行 → 注入到当前会话 | 完整合成轮 + flush |
| 导入识别 sessionlog | 底部文件选择 → 导入并识别 | zstd/JSONL 解码 + packed chunk 展开 + 事件识别 |
| 修复损坏 sessionlog | 完整性预览 → 创建修复会话 | 后写分支覆盖 + 官方 crash closer + 官方 seed 校验;原日志只读 |
| 复用识别结果 | 识别行 → 存为草稿 / 注入 | 保留 reasoning+text/provider/model/usage |
架构
浏览器客户端 DSH host (Node)
ForgeView(conversation.view 页签)
├─ ContextPanel:解析记录卡片流 + 动态编辑
├─ 草稿区:添加/修改/删除/注入按钮
├─ sessionlog 文件选择 + 识别/修复预览
└── connection.rpc.call(AMF_RPC_CHANNEL) ──▶ /dsh-assistant-message-forge
├─ DraftStore(drafts.json)
├─ ContextRecordStore(context-*.json + overrides)
├─ parseContext / surface replace apply
├─ parse/repairSessionLogBytes(node:zlib zstd)
└─ injectMessage(session.append + flush)