1实现原理 · 为什么它能做到
核心是「一个动词」的 CLI 架构:SKILL.md 把 BGM/SFX/图/图标/logo/人声/校色/LUT 八类媒体需求全部收敛为一条 `resolve` 命令,agent 把用户意图转成 `--intent`,搜索噪音全部落盘、只回一行结果。
```bash node <SKILL_DIR>/scripts/resolve.mjs --type <type> --intent "<description>" --project <dir> ``` Returns one line: `resolved <id> → <path> (<type>, <metadata>)`. All search noise stays on disk.
查找类能力(bgm/sfx/image/icon/voice)默认走 HeyGen 目录的 free-usage 路径,要求先安装并 OAuth 登录 heygen CLI,并以 --doctor 自检,否则不工作。
First run: install and sign in to the `heygen` CLI (the free-usage path), then verify with `node <SKILL_DIR>/scripts/resolve.mjs --doctor`.
生成类能力是「服务端默认 + 本地可选」双轨:BGM 生成用 Google Lyria(需 $GOOGLE_API_KEY/$GEMINI_API_KEY)失败回退本地 MusicGen;voice 用 HeyGen TTS 或本地 Kokoro;image 本地 mflux;video 本地 LTX——全部经 lib/ 脚本执行。
Generate BGM using Google Lyria RealTime API. Usage: python lyria-recipe.py --output <path> --duration <seconds> [tuning flags] Requires: $GOOGLE_API_KEY or $GEMINI_API_KEY environment variable (treated as aliases).
logo 解析走『svgl → simple-icons → GitHub 头像 → 域名 favicon』链,绝不手绘商标;这些是带网络请求的真实 provider(logo-provider.mjs)。
https://api.svgl.app https://cdn.jsdelivr.net/npm/simple-icons
媒体操作(cut/reframe/transform/duck/loudness/字幕切分/错误扩散/HEVC)由自研 node 脚本 + ffmpeg 落地,例如 freeze.mjs 对『冻结远程 URL』做了 SSRF 防护(拒绝 localhost/内网/链路本地)。
/^(localhost|.*\.local|.*\.internal|127\.|10\.|0\.|169\.254\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.|\[?(::1|::ffff:127\.|f[cd][0-9a-f]{2}:|fe80:))/i;
跨项目记忆/缓存是真实文件系统结构:项目 `.media/` + 全局 `~/.media/`(SHA-256 内容寻址缓存),偏好与整包 recipe 分项目/个人两档持久化,由 prefs.mjs/recipe.mjs 读写。
- `.media/manifest.jsonl`: machine SSOT, one JSON record per line - `~/.media/`: global cross-project reuse cache (content-addressed, SHA-256)
遥测默认开启但内容刻意粗粒度:PostHog 事件只含媒体类型/来源/provider,不带 intent 文本与路径,有 DO_NOT_TRACK / HYPERFRAMES_NO_TELEMETRY / CI / dev 退出开关,与 hyperframes CLI 共用 ~/.hyperframes/config.json 身份。
It records only the media TYPE, the resolution SOURCE, and the winning PROVIDER: never the intent text, file names, or paths, and `$ip:null` so no IP is stored. Best-effort and non-blocking (a resolve never waits on or fails from telemetry).
2核心能力
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | heygen CLI(HeyGen,OAuth free-usage / api-key) |
| cli | ffmpeg/ffprobe(adopt 探测、signalstats、cut、duck bake、loudnorm) |
| cli | mflux-generate / parakeet-mlx / ltx-2-mlx / codex(本地或订阅生成器,opt-in) |
| api | HeyGen REST API |
| api | Google Lyria RealTime(BGM 生成,google-genai) |
| api | ElevenLabs TTS(可选,tts.mjs 分支) |
| network | PostHog 遥测 |
| network | logo 源:svgl / simple-icons(jsdelivr) / GitHub 头像 / DuckDuckGo favicon |
| network | LUT CDN |
| network | 本地模型下载/安装(Hugging Face、uv/pip、git) |
| package | @hyperframes CLI 内联能力(Kokoro TTS、remove-background 等) |
4风险提醒 风险提醒:橙色 · 评估后使用
- 凭证接触面广:读取 env API keys、就近 .env、~/.heygen、OAuth 会话并写 ~/.hyperframes/config.json — 在不可信项目目录中运行会读取该目录 .env(最多上溯 5 层);agent 宿主若放行,等于把这些密钥暴露给 skill 的执行环境。评估使用,勿在共享/陌生环境无防跑。
- 默认启用网络遥测(PostHog),账号登录后事件与 HeyGen 账号关联 — 可 DO_NOT_TRACK=1 / HYPERFRAMES_NO_TELEMETRY=1 关闭;内容不含 intent/路径,但安装 id 与账号画像对隐私敏感用户仍需知情。
- 依赖大量第三方供应链(heygen CLI、pip/uv 包、git clone 模型、CDN 素材),任一源被投毒都影响产出或环境 — 本地模型为 opt-in 缓解;heygen CLI 安装走官方 release;仍建议校验来源与版本。
- 远程 URL 冻结虽防 SSRF,但下载素材来源多样,版权/许可需 agent 自行把关 — SFX 库自带 CREDITS(pixabay),logo 链取官方源;用户提供的 URL 素材合规由宿主工作流负责。
5第二遍独立确认
- [ok] external_deps 中每个 CLI/API/网络端点的调用点真实存在 — 逐一反查:heygen CLI(setup-providers.md 安装/登录段)、ffmpeg(工具表)、Lyria(lyria-recipe.py 头部 docstring + bgm.mjs lyriaConfigured)、PostHog(telemetry.mjs 常量)、logo 源(logo-provider.mjs URL 常量)、LUT CDN(luts/index.json 记录)均有源码落点。
- [ok] 安全结论有无漏网网络调用 — URL 全量扫描覆盖 scripts/audio/luts/references;未发现扫描范围外的域;遥测为默认唯一自发性外发,opt-out 与注释一致。
- [ok] 凭证读取面是否如描述(env/.env/~/.heygen) — heygen.mjs 头注释与 loadEnvFromDir 实现(walk ≤5 dirs、shell env 优先)与描述一致;audio/scripts/lib/{heygen,tts,bgm}.mjs 分别读 HEYGEN/ELEVENLABS/GEMINI key。
- [ok] SSRF 防护声称 — freeze.mjs 第 57 行正则实际拦截 localhost/*.local/*.internal/127./10./169.254./192.168./172.16-31 与 IPv6 环回;freeze.test.mjs 同时断言拦截内网样例。
- [ok] 是否有将远程内容当指令/可执行代码的路径 — 下载资产均为数据文件(audio/image/cube);脚本为随包源码;未发现下载即执行路径。
- [ok] 功能声明夸大检查(media treatments、10k+ 曲库、75k+ 向量) — 目录规模数字来自 HeyGen 服务端宣称(SKILL.md 表格原文),skill 侧可验证的是调用点与回退链存在;『produce voiceover…background removal』对应 audio/ 引擎脚本与 provider 表。超出本地可验证的部分按供应商宣称标注。
6结论
e19482b5849526de…b8328f9573