- Inicio
- Plugins
- Herramientas y funciones
- dsh-showreel
dsh-showreel
xiaoyuer3921/dsh-showreel
鲸迹:把 DeepSeek Harness Agent 任务生成可分享的竖屏战报视频
Instalar
dsh plugin --profile web add github:xiaoyuer3921/dsh-showreelREADME
鲸迹 · dsh-showreel
把最近一次 DeepSeek Harness Agent 任务变成约 30 秒的竖屏战报:可编辑预览,一键导出 1080×1920 MP4(不支持时回退 WebM)和封面 PNG。
English summary: dsh-showreel turns the latest completed DeepSeek Harness turn into an editable, privacy-redacted vertical video. It runs locally, exports a 1080×1920 MP4/WebM plus PNG cover, and never uploads your session.

一行安装
要求 DeepSeek Harness 0.1.0-rc.7、Node.js ^22.19 || >=24,使用 Web profile:
dsh plugin --profile web add dsh-showreel
DSH 会安装包,并根据包内的 dsh.bundle 声明将 dsh-showreel 加入目标 profile。随后运行:
dsh web
打开任意已有完成任务的会话,点击会话标题栏的 🎬。
本地开发时可安装当前目录:
pnpm install && pnpm build
dsh plugin --profile web add /absolute/path/to/dsh-showreel
能做什么
- 从当前会话最近一个已结束 Turn 生成五幕故事板:目标、执行、验证、成果、收尾。
- 汇总工具调用、文件数、模型、耗时和 Token;不会宣称未发生的测试“已通过”。
- 导出前可修改标题、逐幕文案和时长,也可关闭任意一幕。
- 可选调用本次任务所用模型润色;只发送已脱敏的结构化事实,失败即保留规则文案。
- Canvas 以 30 FPS 实时渲染。Chromium 优先使用 H.264/AAC MP4;不支持 MP4 时明确提示并回退 WebM。
- 同时生成 1080×1920 的首帧 PNG 封面。
- 可选 OpenAI-compatible
/audio/speech配音;未配置、超时、解码失败或请求失败时静音导出。
不包含自动上传、云端分享、背景音乐、横屏模板、模板市场或完整会话回放。
隐私边界
插件对 Session 和 workspace 全程只读。默认不会使用或展示:
- reasoning / thinking 内容;
- 完整命令输出;
- 完整 Diff;
- API Key、Bearer Token、常见访问令牌、私钥、密码字段;
- 用户目录、workspace 等绝对路径。
所有事实先在 Host 脱敏,再进入规则文案、AI 润色和配音。编辑器会显示脱敏计数与警告,导出必须由用户主动点击。浏览器请求不能传入 TTS 地址或密钥。
配置配音
在 Web profile 的 cordis.patch.yml 覆盖已经安装的 row:
- id: dsh-showreel
config:
tts:
baseUrl: https://api.openai.com/v1
model: gpt-4o-mini-tts
voice: alloy
credentialRef: DSH_SHOWREEL_TTS_API_KEY
timeoutMs: 60000
maxAudioBytes: 10485760
将实际密钥交给 DSH credentials provider(例如环境变量 DSH_SHOWREEL_TTS_API_KEY 或本机托管凭据文件)。credentialRef 只是引用;密钥仅由 Host 在每次请求时解析,不进入配置、Session、浏览器或导出文件。
baseUrl 应为带版本的服务根地址,例如 https://api.openai.com/v1。插件只会在已保存配置后追加 /audio/speech;远程地址必须使用 HTTPS,本机 localhost/loopback 可以使用 HTTP。
本机 API
所有接口同源挂载在 /showreel/api,默认请求体上限 64 KiB,音频响应上限 10 MiB:
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /showreel/api/sessions | 返回可读取的会话摘要 |
POST | /showreel/api/storyboard | 为指定 session/turn 生成故事板 |
POST | /showreel/api/polish | 用原任务模型润色脱敏文案 |
POST | /showreel/api/narration | 使用 Host 已保存的 TTS 配置生成音频 |
跨源浏览器请求会被拒绝,响应禁止缓存。TTS 接口忽略浏览器提交的任何 endpoint 字段。
Public interfaces
interface ShowreelStoryboardV1 {
version: 1
sessionId: string
sourceTurn: string
title: string
scenes: ShowreelScene[]
stats: ShowreelStats
privacy: { redactionCount: number; warnings: string[] }
}
interface ShowreelScene {
id: string
kind: "goal" | "work" | "verification" | "result" | "outro"
durationMs: number
headline: string
body: string[]
enabled: boolean
}
开发与验证
pnpm install
pnpm test
pnpm typecheck
pnpm build
npm pack --dry-run
在 macOS + Chrome 环境可重建真实演示素材:pnpm demo。该命令直接调用生产使用的 Canvas/MediaRecorder 导出函数,而不是使用预制动画。
测试覆盖官方 rc.7 SessionEvent 结构、最后完成 Turn、正常/失败/无工具/取消/模型错误/压缩与千级事件、脱敏、工具分类、Token 汇总、故事板稳定性、AI/TTS 降级、API 同源与大小限制、路由热卸载、时间轴和 MP4/WebM 能力探测。
工作原理
Host 通过 ctx.sessionQuery.readSession() 读取持久事件,纯函数生成 ShowreelStoryboardV1;它不接入或修改 Agent Loop。Web Client 只在官方 conversation.session.header.actions additive slot 注册按钮。Canvas、MediaRecorder 和 Web Audio 全部在本机浏览器运行。
兼容性
- DeepSeek Harness:
0.1.0-rc.7系列 - Chromium 126+:支持 MediaRecorder MP4 容器;具体 H.264/AAC 编码仍由当前系统能力决定
- 其他浏览器:能力探测后可回退 WebM
License
Plugins relacionados
archify (deepseek-harness)
tt-a1i/archify
browserskill
tencent/browserskill
treg
superdesigndev/treg
dsh-browser (bridge-browser)
lum1104/dsh-browser