@biunow/agent-biuvibe 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/server.js +325 -0
- package/data/columns.json +230 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/SKILL.md +116 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +56 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +68 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +56 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//351/200/211/351/242/230/344/270/216/350/204/232/346/234/254.md +59 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs +98 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs +53 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/references//345/267/245/347/250/213/346/250/241/346/235/277.md +278 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/references//347/224/273/351/235/242/351/205/215/346/226/271.md +94 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/SKILL.md +98 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/references//346/213/206/350/247/243/346/226/271/346/263/225.md +42 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/references//351/205/215/346/226/271/345/215/241/346/250/241/346/235/277.md +66 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/scripts/analyze.py +211 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/scripts/strip.py +52 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/SKILL.md +155 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +82 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +89 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//346/225/260/346/215/256/345/244/215/347/233/230.md +36 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +60 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//351/200/211/351/242/230/344/270/216/345/217/231/344/272/213.md +61 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/qa.mjs +94 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/stats.py +57 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/subtitle-doc.mjs +37 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/SKILL.md +102 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//345/217/231/344/272/213/344/270/216/345/255/227/345/271/225.md +64 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//347/224/273/351/235/242/344/270/216/350/275/254/345/234/272.md +80 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//351/205/215/344/271/220/344/270/216/345/215/241/347/202/271.md +56 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/scripts/beats.py +99 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/217/231/344/272/213/344/270/216/345/215/241/347/202/271.md +90 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +67 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +57 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//351/200/211/351/242/230/344/270/216/345/217/262/346/226/231.md +76 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/beat_accents.py +45 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/shot_frames.py +17 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/subtitle_doc.py +29 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/timeline_lib.py +57 -0
- package/engine/.claude/skills/weilanx-creator-pixel-video/SKILL.md +132 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//347/224/273/351/235/242.md +63 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//347/264/240/346/235/220.md +35 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//350/257/255/346/260/224/344/270/216/345/206/231/347/250/277.md +43 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//351/205/215/344/271/220.md +37 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/commons.py +67 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/tts_expressive.py +71 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/voice_stats.py +54 -0
- package/engine/AGENTS.md +118 -0
- package/engine/CLAUDE.md +1 -0
- package/engine/LICENSE +21 -0
- package/engine/README.md +282 -0
- package/engine/README.zh-CN.md +282 -0
- package/engine/audio/bgm.mjs +191 -0
- package/engine/audio/episodes/ep00-demo.mjs +10 -0
- package/engine/audio/episodes/ep01-agent.mjs +22 -0
- package/engine/audio/episodes/ep02-llm.mjs +20 -0
- package/engine/audio/episodes/ep03-cc.mjs +19 -0
- package/engine/audio/episodes/ep04-opus55.mjs +15 -0
- package/engine/audio/episodes/ep05-token.mjs +18 -0
- package/engine/audio/episodes/ep06-context.mjs +16 -0
- package/engine/audio/episodes/ep07-agent.mjs +16 -0
- package/engine/audio/episodes/ep08-hallucination.mjs +15 -0
- package/engine/audio/episodes/ep09-prompt.mjs +16 -0
- package/engine/audio/episodes/ep10-multimodal.mjs +16 -0
- package/engine/audio/episodes/ep11-mcp.mjs +17 -0
- package/engine/audio/episodes/ep12-skill.mjs +16 -0
- package/engine/audio/episodes/ep13-subagent.mjs +17 -0
- package/engine/audio/episodes/ep14-agent-permission.mjs +16 -0
- package/engine/audio/episodes/ep15-prompt-injection.mjs +17 -0
- package/engine/audio/episodes/ep16-agent-done.mjs +16 -0
- package/engine/audio/episodes/ep17-sycophancy.mjs +16 -0
- package/engine/audio/episodes/ep18-ai-history.mjs +323 -0
- package/engine/audio/episodes/ep19-apple-history.mjs +311 -0
- package/engine/audio/episodes/ep20-nvidia-history.mjs +276 -0
- package/engine/audio/episodes/ep21-nobel-physics.mjs +151 -0
- package/engine/audio/episodes/ep22-nobel-chemistry.mjs +143 -0
- package/engine/audio/episodes/ep23-wheat-chessboard.mjs +23 -0
- package/engine/audio/episodes/ep24-birthday-paradox.mjs +25 -0
- package/engine/audio/episodes/ep25-behind-cover.mjs +11 -0
- package/engine/audio/episodes/ep26-opus-video.mjs +14 -0
- package/engine/audio/episodes/ep27-opus-video-full.mjs +17 -0
- package/engine/audio/episodes/ep28-express-relay.mjs +16 -0
- package/engine/audio/episodes/ep29-footsteps.mjs +14 -0
- package/engine/audio/episodes/ep30-tang-divorce.mjs +16 -0
- package/engine/audio/episodes/ep31-rigged.mjs +11 -0
- package/engine/audio/episodes/ep32-love-lasts.mjs +36 -0
- package/engine/audio/episodes/ep33-teammates.mjs +11 -0
- package/engine/audio/episodes/ep34-song-takeout.mjs +16 -0
- package/engine/audio/episodes/ep35-choke.mjs +11 -0
- package/engine/audio/episodes/ep36-boxed-pigs.mjs +43 -0
- package/engine/audio/episodes/ep37-bhop.mjs +11 -0
- package/engine/audio/episodes/ep38-butterfly.mjs +43 -0
- package/engine/audio/episodes/ep39-latency.mjs +11 -0
- package/engine/audio/episodes/ep40-counter-strafe.mjs +11 -0
- package/engine/audio/episodes/ep41-flying-money.mjs +16 -0
- package/engine/audio/episodes/ep42-tap-fire.mjs +11 -0
- package/engine/audio/episodes/ep43-one-more-game.mjs +11 -0
- package/engine/audio/episodes/ep45-callouts.mjs +11 -0
- package/engine/audio/episodes/ep46-song-ice.mjs +16 -0
- package/engine/audio/episodes/ep47-spotlight.mjs +11 -0
- package/engine/audio/episodes/ep48-jiggle-peek.mjs +11 -0
- package/engine/audio/episodes/ep49-ad-strafe.mjs +11 -0
- package/engine/audio/episodes/ep50-late-night.mjs +11 -0
- package/engine/audio/episodes/ep51-practice.mjs +11 -0
- package/engine/audio/episodes/library-halftone.mjs +32 -0
- package/engine/audio/music.mjs +45 -0
- package/engine/audio/score.mjs +209 -0
- package/engine/audio/sfx-lamplight.mjs +54 -0
- package/engine/audio/sfx-tactical.mjs +76 -0
- package/engine/audio/synth.mjs +510 -0
- package/engine/package-lock.json +5177 -0
- package/engine/package.json +26 -0
- package/engine/public/fonts/LICENSES.md +12 -0
- package/engine/public/fonts/ZCOOLKuaiLe-Regular.ttf +0 -0
- package/engine/public/fonts/vox/Anton-400.woff +0 -0
- package/engine/public/fonts/vox/Caveat-600.woff +0 -0
- package/engine/public/fonts/vox/EBGaramond-400.woff +0 -0
- package/engine/public/fonts/vox/EBGaramond-600.woff +0 -0
- package/engine/public/fonts/vox/LICENSES.md +10 -0
- package/engine/public/fonts/vox/NotoSansSC-900.woff +0 -0
- package/engine/public/fonts/vox/OFL.txt +94 -0
- package/engine/public/fonts/vox/PlayfairDisplay-700.woff +0 -0
- package/engine/public/fonts/vox/PlayfairDisplay-700i.woff +0 -0
- package/engine/public/music/README.md +16 -0
- package/engine/remotion.config.ts +5 -0
- package/engine/scripts/ep-dir.sh +49 -0
- package/engine/scripts/export.sh +28 -0
- package/engine/scripts/mix-stems.sh +17 -0
- package/engine/scripts/srt2json.mjs +29 -0
- package/engine/src/Root.tsx +244 -0
- package/engine/src/episodes/ep00-demo/Ep00Demo.tsx +97 -0
- package/engine/src/episodes/ep00-demo/components/AdjustPanel.tsx +68 -0
- package/engine/src/episodes/ep00-demo/components/Buddy.tsx +58 -0
- package/engine/src/episodes/ep00-demo/components/EditorUI.tsx +39 -0
- package/engine/src/episodes/ep00-demo/components/Icons.tsx +50 -0
- package/engine/src/episodes/ep00-demo/components/MediaPanel.tsx +129 -0
- package/engine/src/episodes/ep00-demo/components/Outro.tsx +123 -0
- package/engine/src/episodes/ep00-demo/components/Phone.tsx +88 -0
- package/engine/src/episodes/ep00-demo/components/SceneArt.tsx +196 -0
- package/engine/src/episodes/ep00-demo/components/Timeline.tsx +206 -0
- package/engine/src/episodes/ep00-demo/lib/buddy.ts +147 -0
- package/engine/src/episodes/ep00-demo/lib/camera.ts +55 -0
- package/engine/src/episodes/ep00-demo/lib/state.ts +231 -0
- package/engine/src/episodes/ep00-demo/lib/timeline.ts +98 -0
- package/engine/src/episodes/ep01-agent/Ep01Agent.tsx +16 -0
- package/engine/src/episodes/ep01-agent/cues.json +530 -0
- package/engine/src/episodes/ep01-agent/cues.ts +8 -0
- package/engine/src/episodes/ep01-agent/scenes/finale.tsx +174 -0
- package/engine/src/episodes/ep01-agent/scenes/index.ts +28 -0
- package/engine/src/episodes/ep01-agent/scenes/intro.tsx +235 -0
- package/engine/src/episodes/ep01-agent/scenes/loop.tsx +284 -0
- package/engine/src/episodes/ep01-agent/scenes/safety.tsx +249 -0
- package/engine/src/episodes/ep01-agent/scenes/setup.tsx +250 -0
- package/engine/src/episodes/ep02-llm/Ep02Llm.tsx +17 -0
- package/engine/src/episodes/ep02-llm/cues.json +254 -0
- package/engine/src/episodes/ep02-llm/cues.ts +5 -0
- package/engine/src/episodes/ep02-llm/scenes/index.ts +21 -0
- package/engine/src/episodes/ep02-llm/scenes/part1.tsx +444 -0
- package/engine/src/episodes/ep02-llm/scenes/part2.tsx +303 -0
- package/engine/src/episodes/ep03-cc/Ep03Cc.tsx +30 -0
- package/engine/src/episodes/ep03-cc/cues.json +692 -0
- package/engine/src/episodes/ep03-cc/cues.ts +5 -0
- package/engine/src/episodes/ep03-cc/scenes/aroll.tsx +265 -0
- package/engine/src/episodes/ep03-cc/scenes/broll1.tsx +343 -0
- package/engine/src/episodes/ep03-cc/scenes/broll2.tsx +571 -0
- package/engine/src/episodes/ep03-cc/scenes/index.ts +30 -0
- package/engine/src/episodes/ep04-opus55/Ep04Opus55.tsx +30 -0
- package/engine/src/episodes/ep04-opus55/cues.json +368 -0
- package/engine/src/episodes/ep04-opus55/cues.ts +5 -0
- package/engine/src/episodes/ep04-opus55/scenes/index.ts +25 -0
- package/engine/src/episodes/ep04-opus55/scenes/part1.tsx +487 -0
- package/engine/src/episodes/ep04-opus55/scenes/part2.tsx +282 -0
- package/engine/src/episodes/ep05-token/Ep05Token.tsx +32 -0
- package/engine/src/episodes/ep05-token/cues.json +314 -0
- package/engine/src/episodes/ep05-token/cues.ts +5 -0
- package/engine/src/episodes/ep05-token/scenes/index.ts +22 -0
- package/engine/src/episodes/ep05-token/scenes/part1.tsx +355 -0
- package/engine/src/episodes/ep05-token/scenes/part2.tsx +385 -0
- package/engine/src/episodes/ep06-context/Ep06Context.tsx +32 -0
- package/engine/src/episodes/ep06-context/Ep06ContextTall.tsx +35 -0
- package/engine/src/episodes/ep06-context/cues.json +332 -0
- package/engine/src/episodes/ep06-context/cues.ts +5 -0
- package/engine/src/episodes/ep06-context/scenes/index.ts +20 -0
- package/engine/src/episodes/ep06-context/scenes/part1.tsx +360 -0
- package/engine/src/episodes/ep06-context/scenes/part2.tsx +256 -0
- package/engine/src/episodes/ep06-context/tall/Cover.tsx +69 -0
- package/engine/src/episodes/ep06-context/tall/index.ts +20 -0
- package/engine/src/episodes/ep06-context/tall/part1.tsx +374 -0
- package/engine/src/episodes/ep06-context/tall/part2.tsx +272 -0
- package/engine/src/episodes/ep07-agent/Ep07Agent.tsx +32 -0
- package/engine/src/episodes/ep07-agent/Ep07AgentTall.tsx +35 -0
- package/engine/src/episodes/ep07-agent/cues.json +302 -0
- package/engine/src/episodes/ep07-agent/cues.ts +5 -0
- package/engine/src/episodes/ep07-agent/scenes/index.ts +18 -0
- package/engine/src/episodes/ep07-agent/scenes/part1.tsx +307 -0
- package/engine/src/episodes/ep07-agent/scenes/part2.tsx +188 -0
- package/engine/src/episodes/ep07-agent/tall/Cover.tsx +59 -0
- package/engine/src/episodes/ep07-agent/tall/index.ts +18 -0
- package/engine/src/episodes/ep07-agent/tall/part1.tsx +306 -0
- package/engine/src/episodes/ep07-agent/tall/part2.tsx +187 -0
- package/engine/src/episodes/ep08-hallucination/Ep08Hallucination.tsx +32 -0
- package/engine/src/episodes/ep08-hallucination/Ep08HallucinationTall.tsx +35 -0
- package/engine/src/episodes/ep08-hallucination/cues.json +314 -0
- package/engine/src/episodes/ep08-hallucination/cues.ts +5 -0
- package/engine/src/episodes/ep08-hallucination/scenes/index.ts +19 -0
- package/engine/src/episodes/ep08-hallucination/scenes/part1.tsx +282 -0
- package/engine/src/episodes/ep08-hallucination/scenes/part2.tsx +246 -0
- package/engine/src/episodes/ep08-hallucination/tall/Cover.tsx +63 -0
- package/engine/src/episodes/ep08-hallucination/tall/index.ts +19 -0
- package/engine/src/episodes/ep08-hallucination/tall/part1.tsx +273 -0
- package/engine/src/episodes/ep08-hallucination/tall/part2.tsx +247 -0
- package/engine/src/episodes/ep09-prompt/Ep09Prompt.tsx +35 -0
- package/engine/src/episodes/ep09-prompt/cues.json +308 -0
- package/engine/src/episodes/ep09-prompt/cues.ts +5 -0
- package/engine/src/episodes/ep09-prompt/scenes/Cover.tsx +65 -0
- package/engine/src/episodes/ep09-prompt/scenes/index.ts +21 -0
- package/engine/src/episodes/ep09-prompt/scenes/part1.tsx +315 -0
- package/engine/src/episodes/ep09-prompt/scenes/part2.tsx +320 -0
- package/engine/src/episodes/ep10-multimodal/Ep10Multimodal.tsx +35 -0
- package/engine/src/episodes/ep10-multimodal/cues.json +308 -0
- package/engine/src/episodes/ep10-multimodal/cues.ts +5 -0
- package/engine/src/episodes/ep10-multimodal/scenes/Cover.tsx +53 -0
- package/engine/src/episodes/ep10-multimodal/scenes/index.ts +21 -0
- package/engine/src/episodes/ep10-multimodal/scenes/part1.tsx +343 -0
- package/engine/src/episodes/ep10-multimodal/scenes/part2.tsx +437 -0
- package/engine/src/episodes/ep11-mcp/Ep11Mcp.tsx +35 -0
- package/engine/src/episodes/ep11-mcp/cues.json +332 -0
- package/engine/src/episodes/ep11-mcp/cues.ts +5 -0
- package/engine/src/episodes/ep11-mcp/scenes/Cover.tsx +67 -0
- package/engine/src/episodes/ep11-mcp/scenes/index.ts +21 -0
- package/engine/src/episodes/ep11-mcp/scenes/part1.tsx +336 -0
- package/engine/src/episodes/ep11-mcp/scenes/part2.tsx +327 -0
- package/engine/src/episodes/ep12-skill/Ep12Skill.tsx +35 -0
- package/engine/src/episodes/ep12-skill/cues.json +332 -0
- package/engine/src/episodes/ep12-skill/cues.ts +5 -0
- package/engine/src/episodes/ep12-skill/scenes/Cover.tsx +55 -0
- package/engine/src/episodes/ep12-skill/scenes/index.ts +21 -0
- package/engine/src/episodes/ep12-skill/scenes/part1.tsx +368 -0
- package/engine/src/episodes/ep12-skill/scenes/part2.tsx +274 -0
- package/engine/src/episodes/ep13-subagent/Ep13Subagent.tsx +35 -0
- package/engine/src/episodes/ep13-subagent/cues.json +344 -0
- package/engine/src/episodes/ep13-subagent/cues.ts +5 -0
- package/engine/src/episodes/ep13-subagent/scenes/Cover.tsx +61 -0
- package/engine/src/episodes/ep13-subagent/scenes/index.ts +21 -0
- package/engine/src/episodes/ep13-subagent/scenes/part1.tsx +383 -0
- package/engine/src/episodes/ep13-subagent/scenes/part2.tsx +317 -0
- package/engine/src/episodes/ep14-agent-permission/Ep14AgentPermission.tsx +35 -0
- package/engine/src/episodes/ep14-agent-permission/cues.json +326 -0
- package/engine/src/episodes/ep14-agent-permission/cues.ts +5 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/Cover.tsx +62 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/index.ts +20 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/part1.tsx +302 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/part2.tsx +309 -0
- package/engine/src/episodes/ep15-prompt-injection/Ep15PromptInjection.tsx +35 -0
- package/engine/src/episodes/ep15-prompt-injection/cues.json +302 -0
- package/engine/src/episodes/ep15-prompt-injection/cues.ts +5 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/Cover.tsx +60 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/index.ts +20 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/part1.tsx +307 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/part2.tsx +253 -0
- package/engine/src/episodes/ep16-agent-done/Ep16AgentDone.tsx +35 -0
- package/engine/src/episodes/ep16-agent-done/cues.json +320 -0
- package/engine/src/episodes/ep16-agent-done/cues.ts +5 -0
- package/engine/src/episodes/ep16-agent-done/scenes/Cover.tsx +66 -0
- package/engine/src/episodes/ep16-agent-done/scenes/index.ts +19 -0
- package/engine/src/episodes/ep16-agent-done/scenes/part1.tsx +271 -0
- package/engine/src/episodes/ep16-agent-done/scenes/part2.tsx +253 -0
- package/engine/src/episodes/ep17-sycophancy/Ep17Sycophancy.tsx +35 -0
- package/engine/src/episodes/ep17-sycophancy/cues.json +320 -0
- package/engine/src/episodes/ep17-sycophancy/cues.ts +5 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/Cover.tsx +60 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/index.ts +19 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/part1.tsx +236 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/part2.tsx +250 -0
- package/engine/src/episodes/ep18-ai-history/Cover.tsx +60 -0
- package/engine/src/episodes/ep18-ai-history/CoverTall.tsx +29 -0
- package/engine/src/episodes/ep18-ai-history/Ep18AiHistory.tsx +27 -0
- package/engine/src/episodes/ep18-ai-history/art.tsx +141 -0
- package/engine/src/episodes/ep18-ai-history/cues.json +626 -0
- package/engine/src/episodes/ep18-ai-history/cues.ts +5 -0
- package/engine/src/episodes/ep18-ai-history/film.tsx +910 -0
- package/engine/src/episodes/ep18-ai-history/scrapbook.tsx +762 -0
- package/engine/src/episodes/ep18-ai-history/timeline.ts +63 -0
- package/engine/src/episodes/ep19-apple-history/Cover.tsx +45 -0
- package/engine/src/episodes/ep19-apple-history/CoverTall.tsx +29 -0
- package/engine/src/episodes/ep19-apple-history/Ep19AppleHistory.tsx +27 -0
- package/engine/src/episodes/ep19-apple-history/art.tsx +302 -0
- package/engine/src/episodes/ep19-apple-history/cues.json +470 -0
- package/engine/src/episodes/ep19-apple-history/cues.ts +5 -0
- package/engine/src/episodes/ep19-apple-history/film.tsx +1245 -0
- package/engine/src/episodes/ep19-apple-history/timeline.ts +82 -0
- package/engine/src/episodes/ep20-nvidia-history/Cover.tsx +46 -0
- package/engine/src/episodes/ep20-nvidia-history/CoverTall.tsx +30 -0
- package/engine/src/episodes/ep20-nvidia-history/Ep20NvidiaHistory.tsx +27 -0
- package/engine/src/episodes/ep20-nvidia-history/art.tsx +244 -0
- package/engine/src/episodes/ep20-nvidia-history/cues.json +482 -0
- package/engine/src/episodes/ep20-nvidia-history/cues.ts +5 -0
- package/engine/src/episodes/ep20-nvidia-history/film.tsx +1088 -0
- package/engine/src/episodes/ep20-nvidia-history/timeline.ts +78 -0
- package/engine/src/episodes/ep21-nobel-physics/Cover.tsx +75 -0
- package/engine/src/episodes/ep21-nobel-physics/Ep21NobelPhysics.tsx +27 -0
- package/engine/src/episodes/ep21-nobel-physics/cues.json +218 -0
- package/engine/src/episodes/ep21-nobel-physics/cues.ts +5 -0
- package/engine/src/episodes/ep21-nobel-physics/film.tsx +627 -0
- package/engine/src/episodes/ep22-nobel-chemistry/Cover.tsx +64 -0
- package/engine/src/episodes/ep22-nobel-chemistry/Ep22NobelChemistry.tsx +27 -0
- package/engine/src/episodes/ep22-nobel-chemistry/cues.json +212 -0
- package/engine/src/episodes/ep22-nobel-chemistry/cues.ts +5 -0
- package/engine/src/episodes/ep22-nobel-chemistry/film.tsx +563 -0
- package/engine/src/episodes/ep23-wheat-chessboard/Ep23Wheat.tsx +322 -0
- package/engine/src/episodes/ep23-wheat-chessboard/timeline.ts +89 -0
- package/engine/src/episodes/ep24-birthday-paradox/Cover.tsx +53 -0
- package/engine/src/episodes/ep24-birthday-paradox/Ep24Birthday.tsx +233 -0
- package/engine/src/episodes/ep24-birthday-paradox/ring.tsx +164 -0
- package/engine/src/episodes/ep24-birthday-paradox/scenes.tsx +460 -0
- package/engine/src/episodes/ep24-birthday-paradox/timeline.ts +216 -0
- package/engine/src/episodes/ep25-behind-cover/Ep25Cover.tsx +306 -0
- package/engine/src/episodes/ep25-behind-cover/scenes.tsx +416 -0
- package/engine/src/episodes/ep25-behind-cover/timeline.ts +209 -0
- package/engine/src/episodes/ep26-opus-video/Cover.tsx +18 -0
- package/engine/src/episodes/ep26-opus-video/Ep26OpusVideo.tsx +53 -0
- package/engine/src/episodes/ep26-opus-video/cues.json +140 -0
- package/engine/src/episodes/ep26-opus-video/cues.ts +6 -0
- package/engine/src/episodes/ep26-opus-video/scenes.tsx +301 -0
- package/engine/src/episodes/ep27-opus-video-full/Cover.tsx +18 -0
- package/engine/src/episodes/ep27-opus-video-full/Ep27OpusVideoFull.tsx +65 -0
- package/engine/src/episodes/ep27-opus-video-full/assets.ts +36 -0
- package/engine/src/episodes/ep27-opus-video-full/cues.json +860 -0
- package/engine/src/episodes/ep27-opus-video-full/cues.ts +6 -0
- package/engine/src/episodes/ep27-opus-video-full/scenes/index.tsx +730 -0
- package/engine/src/episodes/ep27-opus-video-full/scenes/kit.tsx +334 -0
- package/engine/src/episodes/ep28-express-relay/CoverTall.tsx +98 -0
- package/engine/src/episodes/ep28-express-relay/Ep28Relay.tsx +453 -0
- package/engine/src/episodes/ep28-express-relay/scenes.tsx +2 -0
- package/engine/src/episodes/ep28-express-relay/timeline.ts +261 -0
- package/engine/src/episodes/ep29-footsteps/Ep29Footsteps.tsx +328 -0
- package/engine/src/episodes/ep29-footsteps/scenes.tsx +418 -0
- package/engine/src/episodes/ep29-footsteps/timeline.ts +250 -0
- package/engine/src/episodes/ep30-tang-divorce/CoverTall.tsx +85 -0
- package/engine/src/episodes/ep30-tang-divorce/Ep30Divorce.tsx +453 -0
- package/engine/src/episodes/ep30-tang-divorce/timeline.ts +235 -0
- package/engine/src/episodes/ep31-rigged/Ep31Rigged.tsx +334 -0
- package/engine/src/episodes/ep31-rigged/scenes.tsx +175 -0
- package/engine/src/episodes/ep31-rigged/timeline.ts +273 -0
- package/engine/src/episodes/ep32-love-lasts/Ep32Love.tsx +228 -0
- package/engine/src/episodes/ep32-love-lasts/scenes.tsx +219 -0
- package/engine/src/episodes/ep32-love-lasts/timeline.ts +165 -0
- package/engine/src/episodes/ep33-teammates/Ep33Teammates.tsx +304 -0
- package/engine/src/episodes/ep33-teammates/scenes.tsx +395 -0
- package/engine/src/episodes/ep33-teammates/timeline.ts +239 -0
- package/engine/src/episodes/ep34-song-takeout/CoverTall.tsx +70 -0
- package/engine/src/episodes/ep34-song-takeout/Ep34Takeout.tsx +362 -0
- package/engine/src/episodes/ep34-song-takeout/timeline.ts +219 -0
- package/engine/src/episodes/ep35-choke/Ep35Choke.tsx +318 -0
- package/engine/src/episodes/ep35-choke/scenes.tsx +252 -0
- package/engine/src/episodes/ep35-choke/timeline.ts +230 -0
- package/engine/src/episodes/ep36-boxed-pigs/CoverTall.tsx +65 -0
- package/engine/src/episodes/ep36-boxed-pigs/Ep36Pigs.tsx +519 -0
- package/engine/src/episodes/ep36-boxed-pigs/scenes.tsx +18 -0
- package/engine/src/episodes/ep36-boxed-pigs/timeline.ts +192 -0
- package/engine/src/episodes/ep37-bhop/Ep37Bhop.tsx +379 -0
- package/engine/src/episodes/ep37-bhop/scenes.tsx +166 -0
- package/engine/src/episodes/ep37-bhop/timeline.ts +232 -0
- package/engine/src/episodes/ep38-butterfly/CoverTall.tsx +55 -0
- package/engine/src/episodes/ep38-butterfly/Ep38Butterfly.tsx +434 -0
- package/engine/src/episodes/ep38-butterfly/timeline.ts +218 -0
- package/engine/src/episodes/ep39-latency/Ep39Latency.tsx +461 -0
- package/engine/src/episodes/ep39-latency/scenes.tsx +194 -0
- package/engine/src/episodes/ep39-latency/timeline.ts +248 -0
- package/engine/src/episodes/ep40-counter-strafe/Ep40CounterStrafe.tsx +410 -0
- package/engine/src/episodes/ep40-counter-strafe/scenes.tsx +124 -0
- package/engine/src/episodes/ep40-counter-strafe/timeline.ts +277 -0
- package/engine/src/episodes/ep41-flying-money/CoverTall.tsx +50 -0
- package/engine/src/episodes/ep41-flying-money/Ep41FlyingMoney.tsx +447 -0
- package/engine/src/episodes/ep41-flying-money/timeline.ts +239 -0
- package/engine/src/episodes/ep42-tap-fire/Ep42TapFire.tsx +376 -0
- package/engine/src/episodes/ep42-tap-fire/scenes.tsx +174 -0
- package/engine/src/episodes/ep42-tap-fire/timeline.ts +262 -0
- package/engine/src/episodes/ep43-one-more-game/Ep43OneMoreGame.tsx +376 -0
- package/engine/src/episodes/ep43-one-more-game/scenes.tsx +202 -0
- package/engine/src/episodes/ep43-one-more-game/timeline.ts +241 -0
- package/engine/src/episodes/ep45-callouts/Ep45Callouts.tsx +435 -0
- package/engine/src/episodes/ep45-callouts/scenes.tsx +170 -0
- package/engine/src/episodes/ep45-callouts/timeline.ts +260 -0
- package/engine/src/episodes/ep46-song-ice/CoverTall.tsx +51 -0
- package/engine/src/episodes/ep46-song-ice/Ep46SongIce.tsx +414 -0
- package/engine/src/episodes/ep46-song-ice/scenes.tsx +172 -0
- package/engine/src/episodes/ep46-song-ice/timeline.ts +257 -0
- package/engine/src/episodes/ep47-spotlight/Ep47Spotlight.tsx +416 -0
- package/engine/src/episodes/ep47-spotlight/scenes.tsx +146 -0
- package/engine/src/episodes/ep47-spotlight/timeline.ts +272 -0
- package/engine/src/episodes/ep48-jiggle-peek/Ep48JigglePeek.tsx +468 -0
- package/engine/src/episodes/ep48-jiggle-peek/scenes.tsx +86 -0
- package/engine/src/episodes/ep48-jiggle-peek/timeline.ts +264 -0
- package/engine/src/episodes/ep49-ad-strafe/Ep49AdStrafe.tsx +392 -0
- package/engine/src/episodes/ep49-ad-strafe/scenes.tsx +89 -0
- package/engine/src/episodes/ep49-ad-strafe/timeline.ts +266 -0
- package/engine/src/episodes/ep50-late-night/Ep50LateNight.tsx +380 -0
- package/engine/src/episodes/ep50-late-night/scenes.tsx +161 -0
- package/engine/src/episodes/ep50-late-night/timeline.ts +253 -0
- package/engine/src/episodes/ep51-practice/Ep51Practice.tsx +402 -0
- package/engine/src/episodes/ep51-practice/scenes.tsx +122 -0
- package/engine/src/episodes/ep51-practice/timeline.ts +241 -0
- package/engine/src/index.ts +4 -0
- package/engine/src/library/README.md +205 -0
- package/engine/src/library/Show.tsx +107 -0
- package/engine/src/library/Subtitles.tsx +105 -0
- package/engine/src/library/anim.ts +49 -0
- package/engine/src/library/blackgold/chaos.tsx +203 -0
- package/engine/src/library/blackgold/charts.tsx +578 -0
- package/engine/src/library/blackgold/pen.tsx +331 -0
- package/engine/src/library/blackgold/props.tsx +176 -0
- package/engine/src/library/blackgold/stage.tsx +262 -0
- package/engine/src/library/blackgold/theme.ts +62 -0
- package/engine/src/library/character/Accessories.tsx +172 -0
- package/engine/src/library/character/Arm.tsx +16 -0
- package/engine/src/library/character/BuddyFigure.tsx +127 -0
- package/engine/src/library/character/Char.tsx +71 -0
- package/engine/src/library/character/PixelBuddy.tsx +150 -0
- package/engine/src/library/character/types.ts +2 -0
- package/engine/src/library/cues.ts +49 -0
- package/engine/src/library/editor-room/canvas.tsx +264 -0
- package/engine/src/library/editor-room/mascots.tsx +92 -0
- package/engine/src/library/editor-room/stage.tsx +400 -0
- package/engine/src/library/editor-room/theme.ts +66 -0
- package/engine/src/library/fonts.ts +24 -0
- package/engine/src/library/fx.tsx +233 -0
- package/engine/src/library/gilded/charts.tsx +283 -0
- package/engine/src/library/gilded/props.tsx +245 -0
- package/engine/src/library/gilded/stage.tsx +312 -0
- package/engine/src/library/gilded/theme.ts +62 -0
- package/engine/src/library/halftone/props.tsx +332 -0
- package/engine/src/library/halftone/stage.tsx +435 -0
- package/engine/src/library/halftone/suspect.tsx +86 -0
- package/engine/src/library/halftone/theme.ts +71 -0
- package/engine/src/library/icons.tsx +318 -0
- package/engine/src/library/items/apps.tsx +161 -0
- package/engine/src/library/items/media.tsx +80 -0
- package/engine/src/library/items/objects.tsx +252 -0
- package/engine/src/library/lamplight/charts.tsx +530 -0
- package/engine/src/library/lamplight/ice.tsx +401 -0
- package/engine/src/library/lamplight/props.tsx +1072 -0
- package/engine/src/library/lamplight/scenes.tsx +187 -0
- package/engine/src/library/lamplight/stage.tsx +451 -0
- package/engine/src/library/lamplight/theme.ts +81 -0
- package/engine/src/library/previews/BlackGoldDemo.tsx +195 -0
- package/engine/src/library/previews/EditorRoomDemo.tsx +190 -0
- package/engine/src/library/previews/GildedDemo.tsx +185 -0
- package/engine/src/library/previews/HalftoneDemo.tsx +426 -0
- package/engine/src/library/previews/LamplightDemo.tsx +202 -0
- package/engine/src/library/previews/PixelWardrobe.tsx +39 -0
- package/engine/src/library/previews/TacticalDemo.tsx +280 -0
- package/engine/src/library/previews/Wardrobe.tsx +49 -0
- package/engine/src/library/previews/WarmDeskDemo.tsx +291 -0
- package/engine/src/library/previews/WarmDeskShowDemo.tsx +79 -0
- package/engine/src/library/sets/Studio.tsx +164 -0
- package/engine/src/library/tactical/attention.tsx +340 -0
- package/engine/src/library/tactical/charts.tsx +373 -0
- package/engine/src/library/tactical/hearing.tsx +189 -0
- package/engine/src/library/tactical/movement.tsx +163 -0
- package/engine/src/library/tactical/pipeline.tsx +236 -0
- package/engine/src/library/tactical/practice.tsx +84 -0
- package/engine/src/library/tactical/range.tsx +338 -0
- package/engine/src/library/tactical/ranked.tsx +267 -0
- package/engine/src/library/tactical/reward.tsx +204 -0
- package/engine/src/library/tactical/sleep.tsx +90 -0
- package/engine/src/library/tactical/spread.tsx +200 -0
- package/engine/src/library/tactical/stage.tsx +379 -0
- package/engine/src/library/tactical/theme.ts +48 -0
- package/engine/src/library/tactical/tracking.tsx +146 -0
- package/engine/src/library/tactical/vectors.tsx +161 -0
- package/engine/src/library/tactical/window.tsx +93 -0
- package/engine/src/library/theme.ts +55 -0
- package/engine/src/library/types.ts +11 -0
- package/engine/src/library/ui.tsx +137 -0
- package/engine/src/library/vox/CoverTall.tsx +92 -0
- package/engine/src/library/vox/VoxShow.tsx +136 -0
- package/engine/src/library/vox/desk.tsx +31 -0
- package/engine/src/library/vox/footage.tsx +74 -0
- package/engine/src/library/vox/hud.tsx +51 -0
- package/engine/src/library/vox/portrait.tsx +80 -0
- package/engine/src/library/vox/props.tsx +256 -0
- package/engine/src/library/vox/shots.tsx +66 -0
- package/engine/src/library/vox/stickers.tsx +132 -0
- package/engine/src/library/vox/theme.ts +77 -0
- package/engine/src/library/warm-desk/CoverTall.tsx +111 -0
- package/engine/src/library/warm-desk/DeskShow.tsx +127 -0
- package/engine/src/library/warm-desk/HostCam.tsx +30 -0
- package/engine/src/library/warm-desk/Slot.tsx +67 -0
- package/engine/src/library/warm-desk/immersive.tsx +105 -0
- package/engine/src/library/warm-desk/mascot.tsx +48 -0
- package/engine/src/library/warm-desk/motifs.tsx +277 -0
- package/engine/src/library/warm-desk/props.tsx +318 -0
- package/engine/src/library/warm-desk/stage.tsx +268 -0
- package/engine/src/library/warm-desk/theme.ts +83 -0
- package/engine/styles/LICENSE-huashu-art-motion +21 -0
- package/engine/styles/README.md +143 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216/README.md +18 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216/README.md +37 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216/README.md +59 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216/README.md +64 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//347/210/206/346/254/276/350/247/243/346/236/220.md +62 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216/README.md +54 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216/README.md +30 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216/README.md +55 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216/README.md +19 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216/README.md +50 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216/README.md +70 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +364 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/205/215/346/226/271/345/215/241.md +46 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +524 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +64 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//345/234/272/346/231/257/344/273/243/347/240/201.js +448 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/205/215/346/226/271/345/215/241.md +50 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +555 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/205/215/346/226/271/345/215/241.md +99 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//345/234/272/346/231/257/344/273/243/347/240/201.js +522 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//345/234/272/346/231/257/344/273/243/347/240/201.js +273 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/205/215/346/226/271/345/215/241.md +50 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +215 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +49 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +195 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/205/215/346/226/271/345/215/241.md +40 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//345/234/272/346/231/257/344/273/243/347/240/201.js +338 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/205/215/346/226/271/345/215/241.md +41 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//345/234/272/346/231/257/344/273/243/347/240/201.js +217 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//345/234/272/346/231/257/344/273/243/347/240/201.js +206 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/205/215/346/226/271/345/215/241.md +34 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//345/234/272/346/231/257/344/273/243/347/240/201.js +183 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/205/215/346/226/271/345/215/241.md +17 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//345/234/272/346/231/257/344/273/243/347/240/201.js +176 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/205/215/346/226/271/345/215/241.md +39 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +104 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +334 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +265 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//345/234/272/346/231/257/344/273/243/347/240/201.js +214 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//345/234/272/346/231/257/344/273/243/347/240/201.js +227 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/205/215/346/226/271/345/215/241.md +37 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +153 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/205/215/346/226/271/345/215/241.md +42 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +205 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +35 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//345/234/272/346/231/257/344/273/243/347/240/201.js +221 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//345/234/272/346/231/257/344/273/243/347/240/201.js +150 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//345/234/272/346/231/257/344/273/243/347/240/201.js +151 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/205/215/346/226/271/345/215/241.md +26 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//345/234/272/346/231/257/344/273/243/347/240/201.js +123 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/205/215/346/226/271/345/215/241.md +25 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +269 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//345/234/272/346/231/257/344/273/243/347/240/201.js +124 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//345/234/272/346/231/257/344/273/243/347/240/201.js +255 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//345/234/272/346/231/257/344/273/243/347/240/201.js +109 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/205/215/346/226/271/345/215/241.md +22 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +565 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/205/215/346/226/271/345/215/241.md +55 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +251 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//345/234/272/346/231/257/344/273/243/347/240/201.js +219 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +197 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/205/215/346/226/271/345/215/241.md +34 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//345/234/272/346/231/257/344/273/243/347/240/201.js +238 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/205/215/346/226/271/345/215/241.md +27 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//345/234/272/346/231/257/344/273/243/347/240/201.js +300 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//345/234/272/346/231/257/344/273/243/347/240/201.js +191 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/205/215/346/226/271/345/215/241.md +27 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//345/216/237/347/211/210/346/200/273/347/264/242/345/274/225.md +47 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//350/275/254/345/234/272_/350/277/201/347/247/273/346/265/213/350/257/225.md +53 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//351/237/263/350/275/250_/350/211/272/346/234/257/345/217/262/351/200/237/351/200/232.md +135 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//345/217/202/346/225/260/347/244/272/344/276/213.json +20 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/211/207/346/256/265/344/273/243/347/240/201.js +197 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s1.js +101 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s2.js +74 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s3.js +65 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//350/257/255/346/263/225/345/215/241.md +114 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//345/217/202/346/225/260/347/244/272/344/276/213.json +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/211/207/346/256/265/344/273/243/347/240/201.js +143 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/kurzgesagt.js +347 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//350/257/255/346/263/225/345/215/241.md +183 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/211/207/346/256/265/344/273/243/347/240/201.js +206 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/whiteboard.js +162 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//350/257/255/346/263/225/345/215/241.md +182 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/211/207/346/256/265/344/273/243/347/240/201.js +243 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s1.js +57 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s2.js +70 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s3.js +61 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//350/257/255/346/263/225/345/215/241.md +109 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//345/217/202/346/225/260/347/244/272/344/276/213.json +27 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/211/207/346/256/265/344/273/243/347/240/201.js +174 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s1.js +48 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s2.js +42 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s3.js +51 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//350/257/255/346/263/225/345/215/241.md +107 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/211/207/346/256/265/344/273/243/347/240/201.js +141 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/vox.js +240 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//350/257/255/346/263/225/345/215/241.md +185 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/211/207/346/256/265/344/273/243/347/240/201.js +168 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s1_desk.js +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s2_screen.js +82 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s3_react.js +39 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s4_wide.js +16 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s5_close.js +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/story.js +25 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/vo_env.js +2 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/world.js +73 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//350/257/255/346/263/225/345/215/241.md +166 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/211/207/346/256/265/344/273/243/347/240/201.js +126 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +16 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k1_title.js +38 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k2_complete.js +55 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k3_chat.js +47 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k4_agent.js +49 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/kinetic.js +52 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//350/257/255/346/263/225/345/215/241.md +150 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y6_presenter_explainer_/350/256/262/350/247/243/345/221/230//350/257/255/346/263/225/345/215/241.md +24 -0
- package/engine/tests/episodes/ep00-demo.test.ts +69 -0
- package/engine/tests/episodes/ep01-agent-cues.test.ts +25 -0
- package/engine/tests/episodes/ep01-agent-scenes.test.ts +25 -0
- package/engine/tests/episodes/ep02-llm.test.ts +31 -0
- package/engine/tests/episodes/ep03-cc.test.ts +24 -0
- package/engine/tests/episodes/ep04-opus55.test.ts +24 -0
- package/engine/tests/episodes/ep05-token.test.ts +24 -0
- package/engine/tests/episodes/ep06-context.test.ts +24 -0
- package/engine/tests/episodes/ep07-agent.test.ts +24 -0
- package/engine/tests/episodes/ep08-hallucination.test.ts +24 -0
- package/engine/tests/episodes/ep09-prompt.test.ts +24 -0
- package/engine/tests/episodes/ep10-multimodal.test.ts +24 -0
- package/engine/tests/episodes/ep11-mcp.test.ts +24 -0
- package/engine/tests/episodes/ep12-skill.test.ts +24 -0
- package/engine/tests/episodes/ep13-subagent.test.ts +24 -0
- package/engine/tests/episodes/ep14-agent-permission.test.ts +24 -0
- package/engine/tests/episodes/ep15-prompt-injection.test.ts +24 -0
- package/engine/tests/episodes/ep16-agent-done.test.ts +24 -0
- package/engine/tests/episodes/ep17-sycophancy.test.ts +24 -0
- package/engine/tests/episodes/ep18-ai-history.test.ts +19 -0
- package/engine/tests/episodes/ep19-apple-history.test.ts +19 -0
- package/engine/tests/episodes/ep20-nvidia-history.test.ts +19 -0
- package/engine/tests/episodes/ep21-nobel-physics.test.ts +19 -0
- package/engine/tests/episodes/ep22-nobel-chemistry.test.ts +19 -0
- package/engine/tests/episodes/ep23-wheat-chessboard.test.ts +55 -0
- package/engine/tests/episodes/ep24-birthday-paradox.test.ts +140 -0
- package/engine/tests/episodes/ep25-behind-cover.test.ts +83 -0
- package/engine/tests/episodes/ep26-opus-video.test.ts +39 -0
- package/engine/tests/episodes/ep27-opus-video-full.test.ts +51 -0
- package/engine/tests/episodes/ep28-express-relay.test.ts +107 -0
- package/engine/tests/episodes/ep29-footsteps.test.ts +101 -0
- package/engine/tests/episodes/ep30-tang-divorce.test.ts +101 -0
- package/engine/tests/episodes/ep31-rigged.test.ts +108 -0
- package/engine/tests/episodes/ep32-love-lasts.test.ts +104 -0
- package/engine/tests/episodes/ep33-teammates.test.ts +113 -0
- package/engine/tests/episodes/ep34-song-takeout.test.ts +98 -0
- package/engine/tests/episodes/ep35-choke.test.ts +109 -0
- package/engine/tests/episodes/ep36-boxed-pigs.test.ts +98 -0
- package/engine/tests/episodes/ep37-bhop.test.ts +114 -0
- package/engine/tests/episodes/ep38-butterfly.test.ts +118 -0
- package/engine/tests/episodes/ep39-latency.test.ts +150 -0
- package/engine/tests/episodes/ep40-counter-strafe.test.ts +145 -0
- package/engine/tests/episodes/ep41-flying-money.test.ts +97 -0
- package/engine/tests/episodes/ep42-tap-fire.test.ts +137 -0
- package/engine/tests/episodes/ep43-one-more-game.test.ts +129 -0
- package/engine/tests/episodes/ep45-callouts.test.ts +150 -0
- package/engine/tests/episodes/ep46-song-ice.test.ts +117 -0
- package/engine/tests/episodes/ep47-spotlight.test.ts +159 -0
- package/engine/tests/episodes/ep48-jiggle-peek.test.ts +154 -0
- package/engine/tests/episodes/ep49-ad-strafe.test.ts +139 -0
- package/engine/tests/episodes/ep50-late-night.test.ts +156 -0
- package/engine/tests/episodes/ep51-practice.test.ts +117 -0
- package/engine/tests/library/anim.test.ts +37 -0
- package/engine/tests/library/bgm.test.ts +29 -0
- package/engine/tests/library/blackgold.test.ts +37 -0
- package/engine/tests/library/halftone.test.ts +40 -0
- package/engine/tests/library/lamplight.test.ts +60 -0
- package/engine/tests/library/srt.test.ts +13 -0
- package/engine/tests/library/subtitles.test.ts +12 -0
- package/engine/tests/library/synth.test.ts +29 -0
- package/engine/tests/library/tactical.test.ts +37 -0
- package/engine/tests/library/warm-desk.test.ts +25 -0
- package/engine/tsconfig.json +15 -0
- package/engine/vitest.config.ts +3 -0
- package/lib/host.mjs +654 -0
- package/manifest.json +51 -0
- package/package.json +8 -4
- package/skills/biuvibe/SKILL.md +28 -0
- package/studio/app.js +258 -0
- package/studio/assert-panel-permit.mjs +67 -0
- package/studio/composer.css +438 -0
- package/studio/composer.js +307 -0
- package/studio/index.html +82 -0
- package/studio/select-menu.js +433 -0
- package/studio/styles.css +2 -0
- package/studio/thumbs/blackgold.jpg +0 -0
- package/studio/thumbs/desk.jpg +0 -0
- package/studio/thumbs/editor.jpg +0 -0
- package/studio/thumbs/fps.jpg +0 -0
- package/studio/thumbs/gilded.jpg +0 -0
- package/studio/thumbs/halftone.jpg +0 -0
- package/studio/thumbs/lamplight.jpg +0 -0
- package/studio/thumbs/pixel-hand.jpg +0 -0
- package/studio/thumbs/pixel-sticker.jpg +0 -0
- package/studio/thumbs/vector.jpg +0 -0
- package/studio/thumbs/vox-cut.jpg +0 -0
- package/studio/thumbs/vox-timeline.jpg +0 -0
- package/README.md +0 -3
package/bin/server.js
ADDED
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import {
|
|
5
|
+
createAgentServer,
|
|
6
|
+
ensureDir,
|
|
7
|
+
writeJson,
|
|
8
|
+
reportProgress,
|
|
9
|
+
requestKickoff,
|
|
10
|
+
requestRunPermit,
|
|
11
|
+
seedSkillIntoProject,
|
|
12
|
+
watchForFilm,
|
|
13
|
+
locateJobFilm,
|
|
14
|
+
isIntermediateMp4,
|
|
15
|
+
readJson,
|
|
16
|
+
} from '../lib/host.mjs';
|
|
17
|
+
|
|
18
|
+
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
19
|
+
const COLUMNS = readJson(path.join(root, 'data', 'columns.json'), []);
|
|
20
|
+
|
|
21
|
+
function normalizeDuration(value) {
|
|
22
|
+
if (value == null || value === '' || value === 'auto') return null;
|
|
23
|
+
const n = Number(value);
|
|
24
|
+
if (!Number.isFinite(n)) return null;
|
|
25
|
+
return Math.min(180, Math.max(30, Math.round(n)));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function slugify(title) {
|
|
29
|
+
return String(title || 'film')
|
|
30
|
+
.toLowerCase()
|
|
31
|
+
.replace(/[^a-z0-9\u4e00-\u9fff]+/gi, '-')
|
|
32
|
+
.replace(/^-|-$/g, '')
|
|
33
|
+
.slice(0, 48) || 'film';
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function isAudioFile(file) {
|
|
37
|
+
const name = String(file?.name || '');
|
|
38
|
+
const kind = String(file?.kind || '');
|
|
39
|
+
return kind.startsWith('audio') || /\.(mp3|wav|m4a|flac|ogg|aac)$/i.test(name);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function columnNeeds(column) {
|
|
43
|
+
return {
|
|
44
|
+
label: column?.label || (column?.voice ? '口播录音' : '有授权的配乐'),
|
|
45
|
+
accept: column?.accept || 'audio/*',
|
|
46
|
+
hint: column?.hint || (column?.voice ? '上传口播录音。' : '上传一首你有权使用的配乐。'),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function saveUploads(workspace, jobId, files) {
|
|
51
|
+
const dir = ensureDir(path.join(workspace, 'films', jobId, 'assets'));
|
|
52
|
+
const saved = [];
|
|
53
|
+
for (const f of files || []) {
|
|
54
|
+
if (!f?.name || !f?.dataBase64) continue;
|
|
55
|
+
const safe = f.name.replace(/[^\w.\-()\u4e00-\u9fff]+/g, '_').slice(0, 120);
|
|
56
|
+
const dest = path.join(dir, safe);
|
|
57
|
+
fs.writeFileSync(dest, Buffer.from(f.dataBase64, 'base64'));
|
|
58
|
+
saved.push({ name: safe, path: dest, kind: f.kind || 'file' });
|
|
59
|
+
}
|
|
60
|
+
return saved;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
createAgentServer({
|
|
64
|
+
root,
|
|
65
|
+
api: async ({ req, res, pathname, cfg, jobs, sendJson, readJsonBody }) => {
|
|
66
|
+
if (pathname === '/api/meta' && req.method === 'GET') {
|
|
67
|
+
const manifest = JSON.parse(fs.readFileSync(path.join(root, 'manifest.json'), 'utf8'));
|
|
68
|
+
const engineRoot = cfg.engineRoot || '';
|
|
69
|
+
sendJson(res, 200, {
|
|
70
|
+
agent: 'biuvibe',
|
|
71
|
+
name: manifest.name || 'BiuVibe',
|
|
72
|
+
description: manifest.description || '',
|
|
73
|
+
styles: COLUMNS,
|
|
74
|
+
canExport: cfg.canExport,
|
|
75
|
+
enginePresent: !!(engineRoot && fs.existsSync(path.join(engineRoot, 'AGENTS.md'))),
|
|
76
|
+
engineRoot: engineRoot || null,
|
|
77
|
+
});
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (pathname === '/api/create' && req.method === 'POST') {
|
|
82
|
+
if (!cfg.canExport) {
|
|
83
|
+
sendJson(res, 403, { error: '当前产品未授权导出/新建,请先激活 biuvibe 许可证' });
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
const body = await readJsonBody(req);
|
|
87
|
+
const column = COLUMNS.find((item) => item.slug === body.style);
|
|
88
|
+
if (!column) {
|
|
89
|
+
sendJson(res, 400, { error: '请选择一个栏目' });
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
const prompt = String(body.prompt || '').trim();
|
|
93
|
+
if (!prompt) {
|
|
94
|
+
sendJson(res, 400, { error: '请填写选题' });
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
const files = Array.isArray(body.files) ? body.files : [];
|
|
98
|
+
if (column.music && !files.some(isAudioFile)) {
|
|
99
|
+
sendJson(res, 400, { error: '请上传一首有授权的配乐' });
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if (column.voice && !files.some(isAudioFile)) {
|
|
103
|
+
sendJson(res, 400, { error: '请上传口播录音' });
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
const title = String(body.title || prompt.slice(0, 40) || column.cn).slice(0, 120);
|
|
107
|
+
const storyboard = body.storyboard == null ? column.confirm !== false : !!body.storyboard;
|
|
108
|
+
const durationSec = normalizeDuration(body.durationSec);
|
|
109
|
+
const durationLine = durationSec == null
|
|
110
|
+
? 'Duration: decide from the content, usually 45–90s, never over 180s.'
|
|
111
|
+
: `Duration target: ~${durationSec}s, never over 180s.`;
|
|
112
|
+
const durationKick = durationSec == null
|
|
113
|
+
? '时长按内容决定,一般 45–90 秒,不得超过 180 秒。'
|
|
114
|
+
: `目标约 ${durationSec} 秒,不得超过 180 秒。`;
|
|
115
|
+
const filmSlug = `${slugify(title)}-${Date.now().toString(36)}`;
|
|
116
|
+
|
|
117
|
+
const job = jobs.create({
|
|
118
|
+
kind: 'create',
|
|
119
|
+
title,
|
|
120
|
+
style: column.slug,
|
|
121
|
+
styleName: column.cn,
|
|
122
|
+
prompt,
|
|
123
|
+
storyboard,
|
|
124
|
+
durationSec,
|
|
125
|
+
status: 'running',
|
|
126
|
+
progress: 5,
|
|
127
|
+
message: '写入选题',
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
const filmDir = ensureDir(path.join(cfg.workspace, 'films', job.id));
|
|
131
|
+
const filmRoots = [{ dir: filmDir, sinceMs: 0 }];
|
|
132
|
+
if (cfg.engineRoot) {
|
|
133
|
+
filmRoots.push({
|
|
134
|
+
dir: path.join(cfg.engineRoot, 'out'),
|
|
135
|
+
sinceMs: Date.parse(job.createdAt) || Date.now(),
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
jobs.update(job.id, { projectPath: filmDir, filmRoots });
|
|
139
|
+
const uploads = await saveUploads(cfg.workspace, job.id, files);
|
|
140
|
+
const brief = {
|
|
141
|
+
agent: 'biuvibe',
|
|
142
|
+
title,
|
|
143
|
+
style: column.slug,
|
|
144
|
+
styleName: column.cn,
|
|
145
|
+
skill: column.skill,
|
|
146
|
+
sample: column.sample,
|
|
147
|
+
card: column.card,
|
|
148
|
+
library: column.library,
|
|
149
|
+
screen: column.screen,
|
|
150
|
+
voice: !!column.voice,
|
|
151
|
+
music: !!column.music,
|
|
152
|
+
prompt,
|
|
153
|
+
storyboard,
|
|
154
|
+
durationMode: durationSec == null ? 'auto' : 'fixed',
|
|
155
|
+
durationSec,
|
|
156
|
+
filmSlug,
|
|
157
|
+
uploads: uploads.map((item) => ({ name: item.name, kind: item.kind })),
|
|
158
|
+
createdAt: new Date().toISOString(),
|
|
159
|
+
};
|
|
160
|
+
writeJson(path.join(filmDir, 'brief.json'), brief);
|
|
161
|
+
fs.writeFileSync(
|
|
162
|
+
path.join(filmDir, 'TREATMENT.md'),
|
|
163
|
+
[
|
|
164
|
+
`# ${title}`,
|
|
165
|
+
'',
|
|
166
|
+
`Column: **${column.cn}** (\`${column.slug}\`)`,
|
|
167
|
+
`Screen: ${column.screen}`,
|
|
168
|
+
durationLine,
|
|
169
|
+
`Preview first: ${storyboard ? 'yes' : 'no'}`,
|
|
170
|
+
`Voice: ${column.voice ? 'required recording' : 'none'}`,
|
|
171
|
+
`Music: ${column.music ? 'user upload, beat-locked' : 'optional'}`,
|
|
172
|
+
'',
|
|
173
|
+
'## Prompt',
|
|
174
|
+
'',
|
|
175
|
+
prompt,
|
|
176
|
+
'',
|
|
177
|
+
'## Look',
|
|
178
|
+
'',
|
|
179
|
+
column.line || '',
|
|
180
|
+
'',
|
|
181
|
+
'## Assets',
|
|
182
|
+
'',
|
|
183
|
+
...(uploads.length ? uploads.map((item) => `- ${item.name}`) : ['- (none)']),
|
|
184
|
+
'',
|
|
185
|
+
].join('\n'),
|
|
186
|
+
);
|
|
187
|
+
fs.writeFileSync(
|
|
188
|
+
path.join(filmDir, 'READY_FOR_AGENT.md'),
|
|
189
|
+
[
|
|
190
|
+
'# Ready for BiuVibe',
|
|
191
|
+
'',
|
|
192
|
+
cfg.engineRoot
|
|
193
|
+
? `Library: ${cfg.engineRoot}`
|
|
194
|
+
: 'ENGINE_ROOT not set — point panel settings.engineRoots["biuvibe"] at weilanx-claude-videos.',
|
|
195
|
+
'',
|
|
196
|
+
column.skill
|
|
197
|
+
? `Follow AGENTS.md and .claude/skills/${column.skill}/SKILL.md`
|
|
198
|
+
: `Follow AGENTS.md and ${column.card}`,
|
|
199
|
+
column.card ? `Style card: ${column.card}` : '',
|
|
200
|
+
`Copy the structure of ${column.sample}. Do not edit that sample.`,
|
|
201
|
+
`Component library: ${column.library}`,
|
|
202
|
+
`Project folder: ${filmDir}`,
|
|
203
|
+
storyboard ? 'Stop once with the beat sheet before the full film.' : 'Continue through to the delivered mp4.',
|
|
204
|
+
'The mastered mp4 must sit in the project folder beside brief.json.',
|
|
205
|
+
'',
|
|
206
|
+
].join('\n'),
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
const kickoffPrompt = [
|
|
210
|
+
'按 biuvibe skill 做一条知识短片直到成片。',
|
|
211
|
+
`项目目录:${filmDir}`,
|
|
212
|
+
`阅读 brief.json 与 TREATMENT.md。栏目 ${column.cn}(${column.slug})。${column.skill ? `技能 ${column.skill}。` : `配方 ${column.card}。`}样片 ${column.sample}。`,
|
|
213
|
+
storyboard ? '先给出卡点稿再出片。' : '不用中途停顿。',
|
|
214
|
+
durationKick,
|
|
215
|
+
column.music ? '配乐只用 assets 里上传的文件,测重拍后再切镜。' : '这是口播栏目,只用上传的录音。',
|
|
216
|
+
`选题:${prompt}`,
|
|
217
|
+
'成片必须复制到项目目录,和 brief.json 放在一起。引擎 out 目录里的文件不是交付。',
|
|
218
|
+
'完成后告诉我 MP4 路径。',
|
|
219
|
+
].join('\n');
|
|
220
|
+
const kickoff = path.join(filmDir, 'START_IN_DSH.md');
|
|
221
|
+
fs.writeFileSync(
|
|
222
|
+
kickoff,
|
|
223
|
+
[
|
|
224
|
+
'# 在 DSH 中继续',
|
|
225
|
+
'',
|
|
226
|
+
'面板会自动在 DSH 对话中启用 **biuvibe** skill 并发送下列需求;若未自动开拍,请手动粘贴:',
|
|
227
|
+
'',
|
|
228
|
+
'```',
|
|
229
|
+
kickoffPrompt,
|
|
230
|
+
'```',
|
|
231
|
+
'',
|
|
232
|
+
].join('\n'),
|
|
233
|
+
);
|
|
234
|
+
seedSkillIntoProject(filmDir, root, 'biuvibe');
|
|
235
|
+
|
|
236
|
+
const permitRes = await requestRunPermit(cfg, { projectPath: filmDir, jobId: job.id });
|
|
237
|
+
if (!permitRes?.ok) {
|
|
238
|
+
sendJson(res, 403, {
|
|
239
|
+
error: permitRes?.error || '无法签发 Run Permit(请确认产品已授权且面板回调可用)',
|
|
240
|
+
code: permitRes?.code || 'PERMIT_DENIED',
|
|
241
|
+
});
|
|
242
|
+
jobs.update(job.id, { status: 'failed', message: 'Run Permit 签发失败', error: permitRes?.error });
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
const panelTask = await reportProgress(cfg, {
|
|
247
|
+
title: `BiuVibe · ${column.cn} · ${title}`,
|
|
248
|
+
progress: 80,
|
|
249
|
+
message: '选题已就绪,正在提交开拍…',
|
|
250
|
+
artifact: filmDir,
|
|
251
|
+
});
|
|
252
|
+
if (panelTask?.taskId) jobs.update(job.id, { panelTaskId: panelTask.taskId });
|
|
253
|
+
|
|
254
|
+
const kick = await requestKickoff(cfg, {
|
|
255
|
+
taskId: panelTask?.taskId,
|
|
256
|
+
skill: 'biuvibe',
|
|
257
|
+
projectPath: filmDir,
|
|
258
|
+
kickoffPath: kickoff,
|
|
259
|
+
promptText: kickoffPrompt,
|
|
260
|
+
title: `BiuVibe · ${column.cn} · ${title}`,
|
|
261
|
+
});
|
|
262
|
+
const kicked = !!(kick?.ok || kick?.kickoff?.ok);
|
|
263
|
+
const sessionId = kick?.kickoff?.sessionId || kick?.sessionId || null;
|
|
264
|
+
const existingFilm = locateJobFilm(jobs.get(job.id));
|
|
265
|
+
if (existingFilm && !isIntermediateMp4(existingFilm.path)) {
|
|
266
|
+
const message = `成片已就绪 · ${path.basename(existingFilm.path)}`;
|
|
267
|
+
jobs.update(job.id, {
|
|
268
|
+
status: 'done',
|
|
269
|
+
progress: 100,
|
|
270
|
+
phase: 'film',
|
|
271
|
+
message,
|
|
272
|
+
artifact: existingFilm.path,
|
|
273
|
+
outputMp4: existingFilm.path,
|
|
274
|
+
projectPath: filmDir,
|
|
275
|
+
kickoff,
|
|
276
|
+
dshSessionId: sessionId,
|
|
277
|
+
kickoffOk: kicked,
|
|
278
|
+
});
|
|
279
|
+
await reportProgress(cfg, {
|
|
280
|
+
taskId: jobs.get(job.id)?.panelTaskId,
|
|
281
|
+
progress: 100,
|
|
282
|
+
message,
|
|
283
|
+
done: true,
|
|
284
|
+
artifact: existingFilm.path,
|
|
285
|
+
});
|
|
286
|
+
} else {
|
|
287
|
+
const message = kicked
|
|
288
|
+
? '已接通,正在创作,成片会显示在这里'
|
|
289
|
+
: '选题已就绪,自动开拍未成功';
|
|
290
|
+
jobs.update(job.id, {
|
|
291
|
+
status: 'running',
|
|
292
|
+
progress: kicked ? 55 : 40,
|
|
293
|
+
phase: kicked ? 'dsh' : 'brief',
|
|
294
|
+
message,
|
|
295
|
+
artifact: filmDir,
|
|
296
|
+
projectPath: filmDir,
|
|
297
|
+
kickoff,
|
|
298
|
+
dshSessionId: sessionId,
|
|
299
|
+
kickoffOk: kicked,
|
|
300
|
+
});
|
|
301
|
+
await reportProgress(cfg, {
|
|
302
|
+
taskId: jobs.get(job.id)?.panelTaskId,
|
|
303
|
+
progress: kicked ? 55 : 40,
|
|
304
|
+
message,
|
|
305
|
+
artifact: filmDir,
|
|
306
|
+
});
|
|
307
|
+
watchForFilm(cfg, jobs, job.id, {
|
|
308
|
+
projectPath: filmDir,
|
|
309
|
+
title: `BiuVibe · ${column.cn} · ${title}`,
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
sendJson(res, 202, {
|
|
314
|
+
job: jobs.get(job.id),
|
|
315
|
+
brief,
|
|
316
|
+
kickoff,
|
|
317
|
+
kickoffOk: kicked,
|
|
318
|
+
dshSessionId: sessionId,
|
|
319
|
+
});
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
return false;
|
|
324
|
+
},
|
|
325
|
+
});
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"slug": "blackgold",
|
|
4
|
+
"cn": "黑金光影",
|
|
5
|
+
"en": "Black gold",
|
|
6
|
+
"cat": "卡点",
|
|
7
|
+
"line": "近黑底、暖色烟雾、金粒子标题。讲一个反直觉的道理,中英字幕,没有口播。",
|
|
8
|
+
"skill": "weilanx-creator-blackgold-video",
|
|
9
|
+
"sample": "ep36-boxed-pigs",
|
|
10
|
+
"card": "styles/我的风格/黑金光影风/README.md",
|
|
11
|
+
"library": "src/library/blackgold",
|
|
12
|
+
"voice": false,
|
|
13
|
+
"music": true,
|
|
14
|
+
"confirm": false,
|
|
15
|
+
"screen": "16:9",
|
|
16
|
+
"label": "有授权的配乐",
|
|
17
|
+
"accept": "audio/*",
|
|
18
|
+
"hint": "上传一首你有权使用的配乐,片子会卡在它的重拍上。",
|
|
19
|
+
"thumb": "/thumbs/blackgold.jpg"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"slug": "gilded",
|
|
23
|
+
"cn": "暗金文献",
|
|
24
|
+
"en": "Gilded",
|
|
25
|
+
"cat": "卡点",
|
|
26
|
+
"line": "近黑底、金线图表、衬线字。锚词砸在配乐重拍上,没有口播。",
|
|
27
|
+
"skill": "weilanx-creator-gilded-video",
|
|
28
|
+
"sample": "ep23-wheat-chessboard",
|
|
29
|
+
"card": "styles/我的风格/暗金文献风/README.md",
|
|
30
|
+
"library": "src/library/gilded",
|
|
31
|
+
"voice": false,
|
|
32
|
+
"music": true,
|
|
33
|
+
"confirm": true,
|
|
34
|
+
"screen": "16:9",
|
|
35
|
+
"label": "有授权的配乐",
|
|
36
|
+
"accept": "audio/*",
|
|
37
|
+
"hint": "上传一首你有权使用的配乐,高潮会落在重拍上。",
|
|
38
|
+
"thumb": "/thumbs/gilded.jpg"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"slug": "lamplight",
|
|
42
|
+
"cn": "灯火史话",
|
|
43
|
+
"en": "Lamplight",
|
|
44
|
+
"cat": "卡点",
|
|
45
|
+
"line": "暖黑夜色和火光。讲一条古代制度或冷知识,没有口播。",
|
|
46
|
+
"skill": "weilanx-creator-lamplight-video",
|
|
47
|
+
"sample": "ep28-express-relay",
|
|
48
|
+
"card": "styles/我的风格/灯火史话风/README.md",
|
|
49
|
+
"library": "src/library/lamplight",
|
|
50
|
+
"voice": false,
|
|
51
|
+
"music": true,
|
|
52
|
+
"confirm": true,
|
|
53
|
+
"screen": "16:9",
|
|
54
|
+
"label": "有授权的配乐",
|
|
55
|
+
"accept": "audio/*",
|
|
56
|
+
"hint": "上传一首你有权使用的配乐。",
|
|
57
|
+
"thumb": "/thumbs/lamplight.jpg"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"slug": "fps",
|
|
61
|
+
"cn": "战术屏",
|
|
62
|
+
"en": "Tactical",
|
|
63
|
+
"cat": "卡点",
|
|
64
|
+
"line": "游戏 HUD 和发光图表。讲一个挫败瞬间背后的道理,不画真实游戏的角色和枪械。",
|
|
65
|
+
"skill": "weilanx-creator-fps-video",
|
|
66
|
+
"sample": "ep25-behind-cover",
|
|
67
|
+
"card": "styles/我的风格/战术屏科普风/README.md",
|
|
68
|
+
"library": "src/library/tactical",
|
|
69
|
+
"voice": false,
|
|
70
|
+
"music": true,
|
|
71
|
+
"confirm": false,
|
|
72
|
+
"screen": "16:9",
|
|
73
|
+
"label": "有授权的配乐",
|
|
74
|
+
"accept": "audio/*",
|
|
75
|
+
"hint": "上传一首你有权使用的配乐。",
|
|
76
|
+
"thumb": "/thumbs/fps.jpg"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"slug": "halftone",
|
|
80
|
+
"cn": "网点档案",
|
|
81
|
+
"en": "Halftone",
|
|
82
|
+
"cat": "卡点",
|
|
83
|
+
"line": "旧纸或藏青夜色,粗宋大字,印章砸下来。没有口播。",
|
|
84
|
+
"skill": "",
|
|
85
|
+
"sample": "library-halftone",
|
|
86
|
+
"card": "styles/我的风格/网点档案风/README.md",
|
|
87
|
+
"library": "src/library/halftone",
|
|
88
|
+
"voice": false,
|
|
89
|
+
"music": true,
|
|
90
|
+
"confirm": true,
|
|
91
|
+
"screen": "16:9",
|
|
92
|
+
"label": "有授权的配乐",
|
|
93
|
+
"accept": "audio/*",
|
|
94
|
+
"hint": "上传一首你有权使用的配乐。",
|
|
95
|
+
"thumb": "/thumbs/halftone.jpg"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"slug": "desk",
|
|
99
|
+
"cn": "暖纸工作台",
|
|
100
|
+
"en": "Warm desk",
|
|
101
|
+
"cat": "口播",
|
|
102
|
+
"line": "暖米色纸面、步骤条和窗口卡片。讲一件事分几步做成。",
|
|
103
|
+
"skill": "weilanx-creator-desk-video",
|
|
104
|
+
"sample": "ep26-opus-video",
|
|
105
|
+
"card": "styles/我的风格/暖纸工作台风/README.md",
|
|
106
|
+
"library": "src/library/warm-desk",
|
|
107
|
+
"voice": true,
|
|
108
|
+
"music": false,
|
|
109
|
+
"confirm": true,
|
|
110
|
+
"screen": "16:9",
|
|
111
|
+
"label": "口播录音",
|
|
112
|
+
"accept": "audio/*",
|
|
113
|
+
"hint": "上传口播录音。配乐可以不传。",
|
|
114
|
+
"thumb": "/thumbs/desk.jpg"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"slug": "editor",
|
|
118
|
+
"cn": "剪辑台",
|
|
119
|
+
"en": "Editor room",
|
|
120
|
+
"cat": "口播",
|
|
121
|
+
"line": "软件界面一镜到底:群聊、画布和时间轴。适合讲一个产品怎么做成。",
|
|
122
|
+
"skill": "",
|
|
123
|
+
"sample": "library-editor-room",
|
|
124
|
+
"card": "styles/我的风格/协作剪辑台风/README.md",
|
|
125
|
+
"library": "src/library/editor-room",
|
|
126
|
+
"voice": true,
|
|
127
|
+
"music": false,
|
|
128
|
+
"confirm": true,
|
|
129
|
+
"screen": "16:9",
|
|
130
|
+
"label": "口播录音",
|
|
131
|
+
"accept": "audio/*,image/*,video/*",
|
|
132
|
+
"hint": "上传口播录音。产品截图可以一起传。",
|
|
133
|
+
"thumb": "/thumbs/editor.jpg"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"slug": "pixel-sticker",
|
|
137
|
+
"cn": "像素贴纸",
|
|
138
|
+
"en": "Pixel sticker",
|
|
139
|
+
"cat": "口播",
|
|
140
|
+
"line": "像素小人和贴纸大字。竖屏,一个词讲清楚一件事。",
|
|
141
|
+
"skill": "weilanx-creator-pixel-video",
|
|
142
|
+
"sample": "ep06-context",
|
|
143
|
+
"card": "styles/我的风格/像素贴纸风/README.md",
|
|
144
|
+
"library": "src/library",
|
|
145
|
+
"voice": true,
|
|
146
|
+
"music": false,
|
|
147
|
+
"confirm": true,
|
|
148
|
+
"screen": "3:4",
|
|
149
|
+
"label": "口播录音",
|
|
150
|
+
"accept": "audio/*",
|
|
151
|
+
"hint": "上传口播录音。",
|
|
152
|
+
"thumb": "/thumbs/pixel-sticker.jpg"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"slug": "pixel-hand",
|
|
156
|
+
"cn": "像素手绘",
|
|
157
|
+
"en": "Pixel hand-drawn",
|
|
158
|
+
"cat": "口播",
|
|
159
|
+
"line": "像素主持人加细线手绘卡片。横屏,演播室和旁切交替。",
|
|
160
|
+
"skill": "",
|
|
161
|
+
"sample": "ep03-cc",
|
|
162
|
+
"card": "styles/我的风格/像素手绘风/README.md",
|
|
163
|
+
"library": "src/library",
|
|
164
|
+
"voice": true,
|
|
165
|
+
"music": false,
|
|
166
|
+
"confirm": true,
|
|
167
|
+
"screen": "16:9",
|
|
168
|
+
"label": "口播录音",
|
|
169
|
+
"accept": "audio/*",
|
|
170
|
+
"hint": "上传口播录音。",
|
|
171
|
+
"thumb": "/thumbs/pixel-hand.jpg"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"slug": "vector",
|
|
175
|
+
"cn": "矢量手绘",
|
|
176
|
+
"en": "Vector",
|
|
177
|
+
"cat": "口播",
|
|
178
|
+
"line": "带表情的矢量小人。竖屏口播。",
|
|
179
|
+
"skill": "",
|
|
180
|
+
"sample": "ep00-demo",
|
|
181
|
+
"card": "styles/我的风格/矢量手绘风/README.md",
|
|
182
|
+
"library": "src/library",
|
|
183
|
+
"voice": true,
|
|
184
|
+
"music": false,
|
|
185
|
+
"confirm": true,
|
|
186
|
+
"screen": "9:16",
|
|
187
|
+
"label": "口播录音",
|
|
188
|
+
"accept": "audio/*",
|
|
189
|
+
"hint": "上传口播录音。",
|
|
190
|
+
"thumb": "/thumbs/vector.jpg"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"slug": "vox-timeline",
|
|
194
|
+
"cn": "时间轴长卷",
|
|
195
|
+
"en": "Vox timeline",
|
|
196
|
+
"cat": "拼贴",
|
|
197
|
+
"line": "旧纸桌面上的时间尺。适合讲一段历史怎么走到今天。",
|
|
198
|
+
"skill": "",
|
|
199
|
+
"sample": "ep18-ai-history",
|
|
200
|
+
"card": "styles/解说语法/02_新闻与数据/y2_vox_Vox/语法卡.md",
|
|
201
|
+
"library": "src/library/vox",
|
|
202
|
+
"voice": false,
|
|
203
|
+
"music": true,
|
|
204
|
+
"confirm": true,
|
|
205
|
+
"screen": "16:9",
|
|
206
|
+
"label": "有授权的配乐",
|
|
207
|
+
"accept": "audio/*,image/*",
|
|
208
|
+
"hint": "上传配乐。年份图片可以一起传。",
|
|
209
|
+
"thumb": "/thumbs/vox-timeline.jpg"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"slug": "vox-cut",
|
|
213
|
+
"cn": "硬切拼贴",
|
|
214
|
+
"en": "Vox cut",
|
|
215
|
+
"cat": "拼贴",
|
|
216
|
+
"line": "黑卡大字和钉在桌面上的真实素材来回切。需要口播,也需要你有权使用的图片或视频。",
|
|
217
|
+
"skill": "weilanx-creator-vox-video",
|
|
218
|
+
"sample": "ep21-nobel-physics",
|
|
219
|
+
"card": "styles/解说语法/02_新闻与数据/y2_vox_Vox/语法卡.md",
|
|
220
|
+
"library": "src/library/vox",
|
|
221
|
+
"voice": true,
|
|
222
|
+
"music": false,
|
|
223
|
+
"confirm": true,
|
|
224
|
+
"screen": "16:9",
|
|
225
|
+
"label": "口播和素材",
|
|
226
|
+
"accept": "audio/*,image/*,video/*",
|
|
227
|
+
"hint": "上传口播录音,再带上你有权使用的图片或视频。",
|
|
228
|
+
"thumb": "/thumbs/vox-cut.jpg"
|
|
229
|
+
}
|
|
230
|
+
]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weilanx-creator-blackgold-video
|
|
3
|
+
description: 「黑金光影风」知识短片一键成片工作流:用户只给一个选题(或者只说「做一期」),就一条龙做完:查一手资料 → 定锚词、写选题与分镜脚本 → 卡 we-never 的拍子写时间表 → 合成音效 → 为选题设计专属画面 → 测试 → 自动抽帧和测响度、自己修 → 直接导出成片 → 代码渲染的 3:4 封面 + 发布文案 + 双语字幕稿,全程不停下来问用户确认。成片是横屏 16:9、约 2 分 18 秒、无口播:近黑底暖色烟雾、一切发光,金粒子聚成标题,霓虹收益矩阵 / 天平 / 对账卡把推理画出来,发光角色在聚光灯下演出模型,底部中英双语字幕,两个爆点踩配乐重拍,片尾停在评论区问题。用户说「黑金风做一期」「黑金光影风」「这期做 XX 博弈 / 悖论 / 效应」「用博弈论讲讲 XX」「做个智猪博弈那样的视频」「一条龙做一期知识视频」时都用这个 skill;只要是用一个模型解释一个反直觉现象(博弈论、经济学、决策、认知偏差、概率、AI 原理)的无口播短片,就用它。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 一个反直觉模型 → 一期黑金光影风成片(一键到底)
|
|
7
|
+
|
|
8
|
+
> **目录约定**:`materials/` 和 `out/` 按风格分类、风格内从 00 编号。本 skill 的风格目录是 `09-黑金光影风`。下文 `<期>` = 作品 ID(如 `ep36-boxed-pigs`),`<素材目录>` / `<成片目录>` 用 `bash scripts/ep-dir.sh <期> materials|out` 查。
|
|
9
|
+
|
|
10
|
+
**用户调用这个 skill = 授权你从头做到交付**:成片 mp4、3:4 封面、发布文案、双语字幕稿(md + srt),全部放进 `<成片目录>/`。中途**不问用户确认、不停在 Studio 等预览**,每做完一步用一句话同步进度;要拿主意的地方按本文默认值自己定,最后在交付报告里说明替他定了什么。**不提交 git**,除非用户另外要求(要提交走 `git-commit-cc`)。
|
|
11
|
+
|
|
12
|
+
只有两种情况才停下来问:① 选题查不到任何一手资料、也没有可替换的相近角度;② 工具连续失败两次(渲染崩溃、导出报错)。
|
|
13
|
+
|
|
14
|
+
**样片:`ep36-boxed-pigs`(智猪博弈:躺平的小猪吃得更多)。新一期先照它的代码改,不要从空白写**:
|
|
15
|
+
`src/episodes/ep36-boxed-pigs/`(`timeline.ts` `Ep36Pigs.tsx` `scenes.tsx` `CoverTall.tsx`)、`tests/episodes/ep36-boxed-pigs.test.ts`、`audio/episodes/ep36-boxed-pigs.mjs`。
|
|
16
|
+
|
|
17
|
+
动手前读:工程根目录 `CLAUDE.md`、`src/library/README.md`「黑金光影风 blackgold/」一节、`styles/我的风格/黑金光影风/README.md`(配方卡,尤其「出彩的手法」)、本 skill 的四份 `references/`。所有 npm / npx / node 命令前先 `export NODE_OPTIONS=--max-old-space-size=4096`。
|
|
18
|
+
|
|
19
|
+
## 依赖(开源版说明)
|
|
20
|
+
|
|
21
|
+
这个一锅出工作流不依赖作者的私人工具:画面、封面、字幕稿、发布文案、QA 脚本都在仓库里。唯一要自己准备的是配乐:
|
|
22
|
+
|
|
23
|
+
- **配乐**:示例统一用音乐库的 we-never,这是作者已获授权的自用曲目,mp3 不随仓库分发。换成你自己有授权的曲子放进 `public/music/`,在 `audio/music.mjs` 的 `TRACKS` 登记,再用 `weilanx-creator-gilded-video/scripts/beats.py` 重测起音、小节长和重拍,改 `timeline.ts` 的网格,画面会跟着对齐。
|
|
24
|
+
|
|
25
|
+
## 规格(默认值)
|
|
26
|
+
|
|
27
|
+
| 项 | 默认 |
|
|
28
|
+
|---|---|
|
|
29
|
+
| 画面 | 横屏 1920×1080、30fps,黑金光影风(`src/library/blackgold/`),独立组件,不走 `Show` |
|
|
30
|
+
| 时长 | 256 拍 + 1 秒 ≈ 2 分 17.5 秒 |
|
|
31
|
+
| 口播 | 无。底部双语字幕就是旁白:中文宋体 Black 一行(≤ 18 字,`【】`青 = 术语、`〖〗`红 = 亏 / 零 / 陷阱、`〔〕`金 = 数字 / 锚词),下面一行英文斜体意译 |
|
|
32
|
+
| 配乐 | **统一用音乐库 we-never**(已授权),从第 0 秒放,−16 LUFS;整片约 −15.5 LUFS、真峰值 ≤ −1 dBFS |
|
|
33
|
+
| 爆点 | 17.45 秒(第 32 拍)金粒子聚成标题;102.52 秒(第 192 拍)锚词砸出 + 术语小字 |
|
|
34
|
+
| 结尾 | 重新定义锚词 → 评论区问题放到片尾(大号居中);**不做下期预告** |
|
|
35
|
+
| 交付 | `<成片目录>/<期>.mp4`、`封面-3x4.png`、`发布文案.md`、`字幕稿.md`、`字幕.srt`;素材目录里另有 `文案与卡点.md`(选题与分镜脚本) |
|
|
36
|
+
|
|
37
|
+
## 0. 选题和期号
|
|
38
|
+
|
|
39
|
+
- **用户给了选题**:直接用。标题写成「现象 + 反常识」的一句话(≤ 12 字,可带冒号副题),副题用观众的处境说(「躺平的小猪吃得更多」)。
|
|
40
|
+
- **用户没给**:从 `materials/09-黑金光影风/选题.md` 挑,⭐ 优先;做完把那一行移进「做过的」,写上目录编号和作品 ID。
|
|
41
|
+
- **期号**:别的会话也在加期数,**写第一个文件前**再 `ls src/episodes | tail -3`,取最大号 + 1,作品 ID `epNN-英文短名`;撞号就顺延,不动别人的目录。
|
|
42
|
+
- **建目录**:`bash scripts/ep-dir.sh <期> materials --new 09-黑金光影风 <中文短题>`(自动编号,materials 和 out 一起建)。
|
|
43
|
+
|
|
44
|
+
## 1. 查一手资料(不能跳过)
|
|
45
|
+
|
|
46
|
+
详见 `references/选题与脚本.md`「事实」一节。论文读到摘要、书读到原文段落(网络副本也行),搜索摘要不算数。每个上画面的数字写进 `timeline.ts` 常量并在测试里断言;**能由规则算出来的数(收益矩阵、概率、均衡)写成函数在测试里复算**(ep36 的 `payoff()` 和纳什均衡检验)。
|
|
47
|
+
|
|
48
|
+
**标题和事实打架时,片里说准确的话**(ep36:课本数字里小猪和大猪净得一样,片里说「躺着拿 4,自己去按只拿 1」,不说「比大猪多」),并在发布文案内部核对里写明口径。
|
|
49
|
+
|
|
50
|
+
## 2. 选题与分镜脚本(写进 `<素材目录>/文案与卡点.md`)
|
|
51
|
+
|
|
52
|
+
结构、句子规则、锚词怎么找,照 `references/选题与脚本.md`:锚词(2~4 字,处境不是术语)、钩子 5 条、章节骨架(固定拍号)、逐句双语字幕、卡点表、事实清单、有意不说的、**本期专属的 3~5 个出彩设计**。ep36 那份就是模板。
|
|
53
|
+
|
|
54
|
+
## 3. 写 timeline.ts(全片唯一时间表)
|
|
55
|
+
|
|
56
|
+
照 `src/episodes/ep36-boxed-pigs/timeline.ts` 改:网格(`beatSec` / `fbt` / `fb`)、`HIT` / `HIT2` / `DARK_FROM`(`fr(16.7)`)/ `DARK_FROM2`(`fr(101.75)`)/ `FREEZE = 3` / `DURATION`、实测重音数组、`ANCHOR` / `TERM` / `TITLE` / `TITLE_EN` / `TITLE_SUB`、`CUES: [拍号, 中文 | null, 英文][]`(null 行同一行写 `// 说明`)、`HALF_BEATS`、`SHOTS`(首尾相接、每行 `// 说明`)、事实常量和计算函数、舞台布局常量、`SFX`。
|
|
57
|
+
|
|
58
|
+
硬规则:**timeline.ts 不能 import 别的 .ts / .tsx**(`qa.mjs` 和 `subtitles.mjs` 用 Node 直接加载它);画面里每个元素的出场帧必须落在所在镜头的时间范围内。卡点和音效表见 `references/卡点与音效.md`。
|
|
59
|
+
|
|
60
|
+
## 4. 音频
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
sed 's/ep36-boxed-pigs/<期>/g' audio/episodes/ep36-boxed-pigs.mjs > audio/episodes/<期>.mjs # 再改注释和本期专属音效
|
|
64
|
+
node audio/episodes/<期>.mjs
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
本期的动作音(ep36 的拉杆咔哒、食粒落槽、小碎步)按选题换成自己的(ffmpeg `aevalsrc` 合成,峰值压到约 −6 dBFS),通用的 chime / impact / room / riser 保留。
|
|
68
|
+
|
|
69
|
+
## 5. 画面
|
|
70
|
+
|
|
71
|
+
详见 `references/画面与镜头.md`。先复用 `src/library/blackgold/`(`stage` 舞台和字幕、`props` 道具、`charts` 模型图、`pen` 动物实验场),再**为这个选题设计 3~5 个只属于它的出彩元素**(用户 2026-10-13 明确要求:不要局限于素材包,要发挥想象力;好用的全部沉淀进素材库)。本期新写的组件下次还能用的,挪进 `src/library/blackgold/` 并补 README 和配方卡。
|
|
72
|
+
|
|
73
|
+
硬规则:动画是帧号的纯函数,随机只用 `rand(seed)`;素材库不 import `src/episodes/`;不画真实人物肖像和第三方 logo;示意画面标「示意」。
|
|
74
|
+
|
|
75
|
+
## 6. 注册和测试
|
|
76
|
+
|
|
77
|
+
- `src/Root.tsx` 在 `<Folder name="09-黑金光影风">` 里、最近一期后面注册 `<Composition id="<期>" …>` 和封面 `<Still id="<期>-cover-tall" … width={1080} height={1440} />`(import 变量名带期号)。
|
|
78
|
+
- 测试照 `tests/episodes/ep36-boxed-pigs.test.ts` 改:卡点 ±2 帧、片长、字幕规则(≤ 18 字、都有英文、话说一半以「——」结尾、锚词开头结尾都出现、最后一句是问题)、镜头首尾相接、事实和计算、音效在片长内且文件存在。
|
|
79
|
+
- `npm run typecheck && npm test`,全绿才往下走。
|
|
80
|
+
|
|
81
|
+
## 7. 自动自查(自己修,最多三轮)
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
node .claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs <期>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
每个镜头切走前一帧 + 两个爆点 −16 / −3 / +2 帧拼成网格,测整片响度和被配乐盖住的音效,产物在 `/tmp/<期>/qa/`。Read 逐张看 `sheet-*.jpg` 和 `hits.jpg`,按 `references/画面与镜头.md` 末尾清单查;改完只重渲改过的镜头:`qa.mjs <期> --frames-only=镜头A,镜头B`,改了音量再跑 `--audio`。另外抽几帧镜头**中段**看动画过程(天平在晃、角色在跑、对账卡在跳)。三轮后的小瑕疵写进交付报告。
|
|
88
|
+
|
|
89
|
+
## 8. 导出 → 9. 封面、文案、字幕(导出在后台跑的同时做)
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
npm run export -- <期> # 后台跑,约 5 分钟 → <成片目录>/<期>.mp4
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- 导完 `ffprobe` 看分辨率和时长、`ebur128=peak=true` 看响度,从成片抽 4 帧(17.6、中段、102.7、结尾)拼起来 Read 一眼。
|
|
96
|
+
- **封面**:代码渲染(`CoverTall.tsx`,1080×1440),不用 AI 生图;`npx remotion still src/index.ts <期>-cover-tall <素材目录>/封面-3x4.png`,Read 检查。
|
|
97
|
+
- **字幕**:`node .claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs <期> <素材目录>` → `字幕稿.md` + `字幕.srt`。
|
|
98
|
+
- **发布文案**:`<素材目录>/发布文案.md`。
|
|
99
|
+
- 详见 `references/封面与发布.md`。封面、文案、字幕稿、srt 都复制到 `<成片目录>/`。
|
|
100
|
+
|
|
101
|
+
## 10. 收尾登记
|
|
102
|
+
|
|
103
|
+
- `styles/我的风格/黑金光影风/README.md` 期数表补一行(用到的组件 + 本期新手法补进「出彩的手法」);`styles/README.md` 黑金那一行期数补上。
|
|
104
|
+
- `materials/09-黑金光影风/README.md`、`out/09-黑金光影风/README.md` 的目录表补一行;`选题.md` 把这题移进「做过的」。
|
|
105
|
+
- `public/music/README.md` we-never 那一行补上期号。
|
|
106
|
+
- 新组件进 `src/library/blackgold/` 并补 `src/library/README.md`。
|
|
107
|
+
- 最后再跑一次 `npm run typecheck && npm test`。
|
|
108
|
+
|
|
109
|
+
## 11. 交付报告(回复用户)
|
|
110
|
+
|
|
111
|
+
1. `<成片目录>/` 里的五样东西;成片分辨率、时长、响度、峰值;Studio 地址 `http://localhost:3000/<期>`。
|
|
112
|
+
2. 锚词和它出现的位置;分镜表(时间 | 配乐 | 画面 | 讲什么)。
|
|
113
|
+
3. 事实来源(全名 + 年份),哪些读到原文、哪些只读到摘要、哪些是自己算的、哪些是示意;标题和事实之间的口径。
|
|
114
|
+
4. 本期新设计的出彩元素,以及沉淀进素材库的组件。
|
|
115
|
+
5. 替他定了什么(标题改写、期号顺延、锚词);自查修了什么、剩什么小瑕疵。
|
|
116
|
+
6. 听感要他自己确认(你听不到声音,只报数字)。
|