{"capabilities": {"font": {"best": {"command_name": null, "config_redacted": {}, "configured": false, "hint": "请安装中文字体,或放置 NotoSansSC-Regular.otf。", "id": "missing_font", "kind": "font", "label_zh": "缺少中文字体", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "mkdir -p ~/.cache/lingjian/fonts && cp NotoSansSC-Regular.otf ~/.cache/lingjian/fonts/", "source_type": "missing"}, "candidates": [{"command_name": null, "config_redacted": {}, "configured": false, "hint": "macOS 默认使用 PingFang；其他系统可放置 NotoSansSC-Regular.otf。", "id": "cjk_font", "kind": "font", "label_zh": "中文字体", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "mkdir -p ~/.cache/lingjian/fonts && cp NotoSansSC-Regular.otf ~/.cache/lingjian/fonts/", "source_type": "missing"}, {"command_name": null, "config_redacted": {}, "configured": false, "hint": "请安装中文字体,或放置 NotoSansSC-Regular.otf。", "id": "missing_font", "kind": "font", "label_zh": "缺少中文字体", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "mkdir -p ~/.cache/lingjian/fonts && cp NotoSansSC-Regular.otf ~/.cache/lingjian/fonts/", "source_type": "missing"}], "kind": "font"}, "llm": {"best": {"command_name": null, "config_redacted": {}, "configured": false, "hint": "先安装/登录 claude 或 codex CLI；没有订阅 CLI 时再配置 OpenAI-compatible key。", "id": "missing_llm", "kind": "llm", "label_zh": "缺少真实 LLM", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "export OPENAI_BASE_URL=... OPENAI_API_KEY=... OPENAI_MODEL=...", "source_type": "missing"}, "candidates": [{"command_name": "claude", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 Claude Code CLI。", "id": "claude_cli", "kind": "llm", "label_zh": "Claude Code CLI", "provider_type": "cli", "quality_tier": null, "safe_for_release": false, "setup_command": null, "source_type": "inherited-cli"}, {"command_name": "codex", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 Codex CLI。", "id": "codex_cli", "kind": "llm", "label_zh": "Codex CLI", "provider_type": "cli", "quality_tier": null, "safe_for_release": false, "setup_command": null, "source_type": "inherited-cli"}, {"command_name": null, "config_redacted": {"command": ""}, "configured": false, "hint": "未检测到 自定义 LLM CLI。", "id": "llm_cli", "kind": "llm", "label_zh": "自定义 LLM CLI", "provider_type": "cli", "quality_tier": null, "safe_for_release": false, "setup_command": "export LINGJIAN_LLM_CLI=\"/path/to/real-llm\"", "source_type": "local-cli"}, {"command_name": "ollama", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 Ollama CLI。", "id": "ollama_cli", "kind": "llm", "label_zh": "Ollama CLI", "provider_type": "cli", "quality_tier": null, "safe_for_release": false, "setup_command": "brew install ollama", "source_type": "local-cli"}, {"command_name": "llm", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 llm CLI。", "id": "llm_local_cli", "kind": "llm", "label_zh": "llm CLI", "provider_type": "cli", "quality_tier": null, "safe_for_release": false, "setup_command": "pipx install llm", "source_type": "local-cli"}, {"command_name": null, "config_redacted": {"api_key": "", "base_url": "", "model": ""}, "configured": false, "hint": "配置 OPENAI_BASE_URL、OPENAI_API_KEY、OPENAI_MODEL。", "id": "openai_compatible", "kind": "llm", "label_zh": "OpenAI-compatible LLM", "provider_type": "openai_compatible", "quality_tier": null, "safe_for_release": false, "setup_command": null, "source_type": "api-key"}, {"command_name": null, "config_redacted": {}, "configured": false, "hint": "先安装/登录 claude 或 codex CLI；没有订阅 CLI 时再配置 OpenAI-compatible key。", "id": "missing_llm", "kind": "llm", "label_zh": "缺少真实 LLM", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "export OPENAI_BASE_URL=... OPENAI_API_KEY=... OPENAI_MODEL=...", "source_type": "missing"}], "kind": "llm"}, "render": {"best": {"command_name": "ffmpeg", "config_redacted": {}, "configured": true, "hint": "release 渲染必须本机安装 ffmpeg、ffprobe,且 ffmpeg 支持 drawtext/libfreetype。", "id": "ffmpeg_suite", "kind": "render", "label_zh": "FFmpeg/ffprobe", "provider_type": null, "quality_tier": null, "safe_for_release": true, "setup_command": "sudo apt-get update && sudo apt-get install -y ffmpeg", "source_type": "local-cli"}, "candidates": [{"command_name": "ffmpeg", "config_redacted": {}, "configured": true, "hint": "release 渲染必须本机安装 ffmpeg、ffprobe,且 ffmpeg 支持 drawtext/libfreetype。", "id": "ffmpeg_suite", "kind": "render", "label_zh": "FFmpeg/ffprobe", "provider_type": null, "quality_tier": null, "safe_for_release": true, "setup_command": "sudo apt-get update && sudo apt-get install -y ffmpeg", "source_type": "local-cli"}, {"command_name": null, "config_redacted": {}, "configured": false, "hint": "release 渲染必须本机安装 ffmpeg、ffprobe,且 ffmpeg 支持 drawtext/libfreetype。", "id": "missing_render", "kind": "render", "label_zh": "缺少 FFmpeg/ffprobe", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "sudo apt-get update && sudo apt-get install -y ffmpeg", "source_type": "missing"}], "kind": "render"}, "tts": {"best": {"command_name": null, "config_redacted": {}, "configured": false, "hint": "订阅 CLI 通常只覆盖 LLM，不含 TTS；请优先提供已录好的口播音频;没有录音时配置火山/OpenAI-compatible TTS key。Kokoro 仅用于零 key 样片试听。", "id": "missing_tts", "kind": "tts", "label_zh": "缺少真实 TTS", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "uv run lj run <project> --voice-audio-file narration.m4a", "source_type": "missing"}, "candidates": [{"command_name": null, "config_redacted": {"access_token": "", "api_key": "", "app_id": "", "cluster": "", "resource_id": "seed-tts-2.0", "voice_type": ""}, "configured": false, "hint": "中文发布级配音首选;新版火山豆包 TTS 只需配置 VOLCENGINE_TTS_API_KEY。", "id": "volcengine_tts", "kind": "tts", "label_zh": "火山豆包 TTS", "provider_type": "volcengine_tts", "quality_tier": "publish", "safe_for_release": false, "setup_command": "export VOLCENGINE_TTS_API_KEY=...", "source_type": "api-key"}, {"command_name": null, "config_redacted": {"api_key": "", "base_url": "", "model": ""}, "configured": false, "hint": "配置 OPENAI_TTS_API_KEY、OPENAI_TTS_BASE_URL、OPENAI_TTS_MODEL。", "id": "openai_compatible_tts", "kind": "tts", "label_zh": "OpenAI-compatible TTS", "provider_type": "openai_compatible", "quality_tier": "publish", "safe_for_release": false, "setup_command": null, "source_type": "api-key"}, {"command_name": null, "config_redacted": {"command": ""}, "configured": false, "hint": "未检测到 自定义 TTS CLI。", "id": "tts_cli", "kind": "tts", "label_zh": "自定义 TTS CLI", "provider_type": "cli", "quality_tier": "publish", "safe_for_release": false, "setup_command": "export LINGJIAN_TTS_CLI=\"/path/to/real-tts\"", "source_type": "local-cli"}, {"command_name": null, "config_redacted": {"command": ""}, "configured": false, "hint": "未检测到 Kokoro 中文本地 TTS。", "id": "kokoro_zh_tts", "kind": "tts", "label_zh": "Kokoro 中文本地 TTS", "provider_type": "kokoro_zh_tts", "quality_tier": "zero_key", "safe_for_release": false, "setup_command": "uv sync && npx hyperframes tts --list", "source_type": "local-cli"}, {"command_name": null, "config_redacted": {"command": ""}, "configured": false, "hint": "未检测到 Piper 中文本地 TTS。", "id": "piper_cli", "kind": "tts", "label_zh": "Piper 中文本地 TTS", "provider_type": "piper_cli", "quality_tier": "zero_key", "safe_for_release": false, "setup_command": "pip install piper-tts && python3 -m piper.download_voices zh_CN-huayan-medium", "source_type": "local-cli"}, {"command_name": "say", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 macOS say。", "id": "macos_say", "kind": "tts", "label_zh": "macOS say", "provider_type": "cli", "quality_tier": "preview", "safe_for_release": false, "setup_command": null, "source_type": "local-cli"}, {"command_name": "espeak-ng", "config_redacted": {"command": "***"}, "configured": false, "hint": "未检测到 espeak-ng。", "id": "espeak_ng", "kind": "tts", "label_zh": "espeak-ng", "provider_type": "cli", "quality_tier": "preview", "safe_for_release": false, "setup_command": "brew install espeak-ng", "source_type": "local-cli"}, {"command_name": null, "config_redacted": {}, "configured": false, "hint": "订阅 CLI 通常只覆盖 LLM，不含 TTS；请优先提供已录好的口播音频;没有录音时配置火山/OpenAI-compatible TTS key。Kokoro 仅用于零 key 样片试听。", "id": "missing_tts", "kind": "tts", "label_zh": "缺少真实 TTS", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "uv run lj run <project> --voice-audio-file narration.m4a", "source_type": "missing"}], "kind": "tts"}, "visuals": {"best": {"command_name": null, "config_redacted": {}, "configured": true, "hint": "未检测到可自动继承的宿主画面生成能力;将消费已有 project/assets/scenes 产物,否则回落纯色卡片并给 QA warning。", "id": "fallback_solid", "kind": "visuals", "label_zh": "回落卡片画面", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "优先安装 HyperFrames 零 key 画面能力:npx skills add heygen-com/hyperframes。也可在 Codex app 插件市场安装/启用 HyperFrames 或 Remotion;imagegen 只能做静态参考图;备用 Remotion 命令为 npx skills add remotion-dev/skills。HyperFrames 需 Node.js 22+ 与 FFmpeg;Remotion 商用场景需核对 license。若入口变化,以官方文档和 Codex app 插件市场为准。安装后新开会话再跑 uv run lj setup。仍缺失时可提供每镜 mp4/mov/m4v。", "source_type": "fallback"}, "candidates": [{"command_name": "seedance", "config_redacted": {"credential": "VOLCENGINE_ARK_API_KEY", "generator": "seedance"}, "configured": false, "hint": "未检测到火山方舟 ARK key。", "id": "host_seedance", "kind": "visuals", "label_zh": "Seedance 文生视频(发布级)", "provider_type": "host-plugin", "quality_tier": "publish", "safe_for_release": false, "setup_command": "开通火山方舟 Seedance 并配置 ARK key(环境变量 VOLCENGINE_ARK_API_KEY,或本机钥匙串 lingjian:VOLCENGINE_ARK_API_KEY);标准动作见 docs/ONBOARDING.md 的 Seedance / ARK 一节。", "source_type": "host-plugin"}, {"command_name": "npx", "config_redacted": {"command": "***", "env_ready": false}, "configured": false, "hint": "未检测到 HyperFrames director 动态视频。", "id": "host_hyperframes", "kind": "visuals", "label_zh": "HyperFrames director 动态视频", "provider_type": "host-plugin", "quality_tier": null, "safe_for_release": false, "setup_command": "在 Codex app 安装/启用 HyperFrames director 动态视频 对应插件或 skill;安装后新开会话再跑 uv run lj setup。", "source_type": "host-plugin"}, {"command_name": "remotion", "config_redacted": {"command": "***", "env_ready": false}, "configured": false, "hint": "未检测到 Remotion 宿主程序化视频。", "id": "host_remotion", "kind": "visuals", "label_zh": "Remotion 宿主程序化视频", "provider_type": "host-plugin", "quality_tier": null, "safe_for_release": false, "setup_command": "在 Codex app 安装/启用 Remotion 宿主程序化视频 对应插件或 skill;安装后新开会话再跑 uv run lj setup。", "source_type": "host-plugin"}, {"command_name": null, "config_redacted": {}, "configured": false, "hint": "已检测到宿主 imagegen 时,可生成静态参考图;发布级必须进一步转成动态视频资产。", "id": "host_imagegen", "kind": "visuals", "label_zh": "宿主 imagegen 静态参考图", "provider_type": "host-plugin", "quality_tier": null, "safe_for_release": false, "setup_command": "在 Codex app 启用 imagegen 能力;安装/启用后新开会话再跑 uv run lj setup。静态图只能做样片/参考,发布级请提供每镜 mp4/mov/m4v。", "source_type": "host-plugin"}, {"command_name": null, "config_redacted": {}, "configured": true, "hint": "未检测到可自动继承的宿主画面生成能力;将消费已有 project/assets/scenes 产物,否则回落纯色卡片并给 QA warning。", "id": "fallback_solid", "kind": "visuals", "label_zh": "回落卡片画面", "provider_type": null, "quality_tier": null, "safe_for_release": false, "setup_command": "优先安装 HyperFrames 零 key 画面能力:npx skills add heygen-com/hyperframes。也可在 Codex app 插件市场安装/启用 HyperFrames 或 Remotion;imagegen 只能做静态参考图;备用 Remotion 命令为 npx skills add remotion-dev/skills。HyperFrames 需 Node.js 22+ 与 FFmpeg;Remotion 商用场景需核对 license。若入口变化,以官方文档和 Codex app 插件市场为准。安装后新开会话再跑 uv run lj setup。仍缺失时可提供每镜 mp4/mov/m4v。", "source_type": "fallback"}], "kind": "visuals"}}, "next_steps": ["缺少真实 LLM: 先安装/登录 claude 或 codex CLI；没有订阅 CLI 时再配置 OpenAI-compatible key。 命令: export OPENAI_BASE_URL=... OPENAI_API_KEY=... OPENAI_MODEL=...", "缺少真实 TTS: 订阅 CLI 通常只覆盖 LLM，不含 TTS；请优先提供已录好的口播音频;没有录音时配置火山/OpenAI-compatible TTS key。Kokoro 仅用于零 key 样片试听。 命令: uv run lj run <project> --voice-audio-file narration.m4a", "回落卡片画面: 未检测到可自动继承的宿主画面生成能力;将消费已有 project/assets/scenes 产物,否则回落纯色卡片并给 QA warning。 命令: 优先安装 HyperFrames 零 key 画面能力:npx skills add heygen-com/hyperframes。也可在 Codex app 插件市场安装/启用 HyperFrames 或 Remotion;imagegen 只能做静态参考图;备用 Remotion 命令为 npx skills add remotion-dev/skills。HyperFrames 需 Node.js 22+ 与 FFmpeg;Remotion 商用场景需核对 license。若入口变化,以官方文档和 Codex app 插件市场为准。安装后新开会话再跑 uv run lj setup。仍缺失时可提供每镜 mp4/mov/m4v。", "缺少中文字体: 请安装中文字体,或放置 NotoSansSC-Regular.otf。 命令: mkdir -p ~/.cache/lingjian/fonts && cp NotoSansSC-Regular.otf ~/.cache/lingjian/fonts/"], "summary_zh": "已具备发布级能力: FFmpeg/ffprobe。", "user_guidance": {"do_not_zh": ["不要让普通用户直接读 doctor --json", "不要同时抛出一堆 provider/key/plugin 选择", "不要把图片、Ken Burns、模板循环或样片 TTS 说成发布级"], "first_use_workflow_zh": ["安装/初始化灵剪 Skill 或 Plugin", "能力门诊:继承已有 LLM,检查发布级 TTS、真实动态画面、FFmpeg 与中文字体", "补齐当前唯一缺口", "确认内容依据:一句话、Markdown、PDF、PPT、网页、GitHub 仓库、已有脚本或截图", "生成并审阅脚本", "选择/确认音色,展示配音导演确认单,试听并批准配音", "展示完整导演分镜确认单 v2,确认每镜素材、构图、动效、转场、字幕、声音和验收点", "接入或生成每镜真实动态视频资产", "渲染底部 timed captions、合成音轨、跑 --release --strict QA", "QA 通过后导出发布包;失败则按 hard failure 逐项补齐"], "principle_zh": "普通用户每次只做一个最短动作;Codex 负责解释、运行命令和检查结果。", "seedance_ark_links": {"api_key": "https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey", "note_zh": "开通只勾所需 Seedance 模型(别点全选);Seedance 2.0 开通硬门槛=账户余额 > 200 元;领 key 后按 docs/ONBOARDING.md 命令存入安全存储(service=account=lingjian:VOLCENGINE_ARK_API_KEY)。", "open_management": "https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement"}, "single_next_action_zh": "先解决发布级配音:如果你有录好的口播音频,直接拖给我;如果没有录音,打开火山豆包新版开通页领取/开通服务,再到 API Key 管理页创建 API Key。拿到 key 后不要发到聊天里,按你的系统用标准命令存进安全存储(见 docs/ONBOARDING.md:macOS 钥匙串 / Linux secret-tool / Windows 用户环境变量)。", "stock_audio_zh": "配乐/音效:Pixabay 无公开音乐 API,由宿主 agent 用浏览器能力(Chrome use / computer use)按情绪搜并下载,或你自带音频;经 `lj ingest audio --kind bgm/sfx` 挂载,渲染自动混音。", "version": "v1", "volcengine_links": {"activate": "https://console.volcengine.com/speech/new/setting/activate?projectName=default", "api_keys": "https://console.volcengine.com/speech/new/setting/apikeys?projectName=default"}}}
