@mevdragon/vidfarm-devcli 0.13.0 → 0.15.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.
Files changed (427) hide show
  1. package/.agents/skills/embedded-captions/CATALOG.md +93 -0
  2. package/.agents/skills/embedded-captions/SKILL.md +286 -0
  3. package/.agents/skills/embedded-captions/assets/brand/CDPR-fankit-terms.txt +35 -0
  4. package/.agents/skills/embedded-captions/assets/brand/cyberpunk-widths.json +115 -0
  5. package/.agents/skills/embedded-captions/assets/fonts/char-widths.json +2211 -0
  6. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScript1.svg +242 -0
  7. package/.agents/skills/embedded-captions/assets/strokefonts/HersheyScriptMed.svg +242 -0
  8. package/.agents/skills/embedded-captions/dna/README.md +148 -0
  9. package/.agents/skills/embedded-captions/dna/chrome.json +68 -0
  10. package/.agents/skills/embedded-captions/dna/cream.json +69 -0
  11. package/.agents/skills/embedded-captions/dna/documentary.json +62 -0
  12. package/.agents/skills/embedded-captions/dna/editorial.json +70 -0
  13. package/.agents/skills/embedded-captions/dna/glitch.json +82 -0
  14. package/.agents/skills/embedded-captions/dna/ink.json +65 -0
  15. package/.agents/skills/embedded-captions/dna/keynote.json +62 -0
  16. package/.agents/skills/embedded-captions/dna/loud.json +75 -0
  17. package/.agents/skills/embedded-captions/dna/neon.json +58 -0
  18. package/.agents/skills/embedded-captions/dna/velocity.json +89 -0
  19. package/.agents/skills/embedded-captions/modes/cinematic/README.md +48 -0
  20. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/spec.md +98 -0
  21. package/.agents/skills/embedded-captions/modes/cinematic/_archive/champion/template.html +188 -0
  22. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/spec.md +134 -0
  23. package/.agents/skills/embedded-captions/modes/cinematic/_archive/memory-wall/template.html +179 -0
  24. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/spec.md +81 -0
  25. package/.agents/skills/embedded-captions/modes/cinematic/_archive/portrait-header/template.html +170 -0
  26. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/spec.md +16 -0
  27. package/.agents/skills/embedded-captions/modes/cinematic/cinematic-cream/template.html +226 -0
  28. package/.agents/skills/embedded-captions/modes/cinematic/engine.html +355 -0
  29. package/.agents/skills/embedded-captions/modes/standard/_anatomy.md +233 -0
  30. package/.agents/skills/embedded-captions/modes/standard/_motion.md +192 -0
  31. package/.agents/skills/embedded-captions/modes/standard/fonts/build-fonts-css.cjs +97 -0
  32. package/.agents/skills/embedded-captions/references/aesthetic-principles.md +168 -0
  33. package/.agents/skills/embedded-captions/references/anti-patterns.md +188 -0
  34. package/.agents/skills/embedded-captions/references/bespoke-vs-presets.md +178 -0
  35. package/.agents/skills/embedded-captions/references/caption-grouping.md +130 -0
  36. package/.agents/skills/embedded-captions/references/composition-craft.md +522 -0
  37. package/.agents/skills/embedded-captions/references/direction-catalog.md +138 -0
  38. package/.agents/skills/embedded-captions/references/example-renders/champion.html +371 -0
  39. package/.agents/skills/embedded-captions/references/example-renders/memory-wall.html +334 -0
  40. package/.agents/skills/embedded-captions/references/failure-modes.md +145 -0
  41. package/.agents/skills/embedded-captions/references/layout-heuristics.md +238 -0
  42. package/.agents/skills/embedded-captions/references/motion-vocabulary.md +148 -0
  43. package/.agents/skills/embedded-captions/references/rail.md +68 -0
  44. package/.agents/skills/embedded-captions/references/reference-bar.md +47 -0
  45. package/.agents/skills/embedded-captions/references/scene-types.md +94 -0
  46. package/.agents/skills/embedded-captions/references/test-set.md +66 -0
  47. package/.agents/skills/embedded-captions/references/typographic-moves.md +266 -0
  48. package/.agents/skills/embedded-captions/references/typography-presets.md +63 -0
  49. package/.agents/skills/embedded-captions/scripts/audio-envelope.cjs +95 -0
  50. package/.agents/skills/embedded-captions/scripts/check-occlusion.cjs +250 -0
  51. package/.agents/skills/embedded-captions/scripts/check-overflow.cjs +194 -0
  52. package/.agents/skills/embedded-captions/scripts/check-rail-climax.cjs +233 -0
  53. package/.agents/skills/embedded-captions/scripts/check-timing.cjs +173 -0
  54. package/.agents/skills/embedded-captions/scripts/fill-timings.cjs +124 -0
  55. package/.agents/skills/embedded-captions/scripts/fit-fonts.cjs +158 -0
  56. package/.agents/skills/embedded-captions/scripts/gen-stroke-path.py +46 -0
  57. package/.agents/skills/embedded-captions/scripts/inject-fonts.cjs +169 -0
  58. package/.agents/skills/embedded-captions/scripts/lib-dna.cjs +201 -0
  59. package/.agents/skills/embedded-captions/scripts/make-cinematic.cjs +1205 -0
  60. package/.agents/skills/embedded-captions/scripts/make-composition.cjs +404 -0
  61. package/.agents/skills/embedded-captions/scripts/make-theme.cjs +8781 -0
  62. package/.agents/skills/embedded-captions/scripts/matte.cjs +294 -0
  63. package/.agents/skills/embedded-captions/scripts/measure-layout.cjs +293 -0
  64. package/.agents/skills/embedded-captions/scripts/prepare.sh +39 -0
  65. package/.agents/skills/embedded-captions/scripts/preview-frames.cjs +268 -0
  66. package/.agents/skills/embedded-captions/scripts/render-and-composite.sh +509 -0
  67. package/.agents/skills/embedded-captions/scripts/render-theme.sh +34 -0
  68. package/.agents/skills/embedded-captions/scripts/safe-zones.cjs +813 -0
  69. package/.agents/skills/embedded-captions/scripts/transcribe.cjs +349 -0
  70. package/.agents/skills/embedded-captions/themes/PORTING.md +49 -0
  71. package/.agents/skills/embedded-captions/themes/README.md +244 -0
  72. package/.agents/skills/embedded-captions/themes/anchor.json +27 -0
  73. package/.agents/skills/embedded-captions/themes/arcade.json +51 -0
  74. package/.agents/skills/embedded-captions/themes/aurora.json +41 -0
  75. package/.agents/skills/embedded-captions/themes/biolume.json +35 -0
  76. package/.agents/skills/embedded-captions/themes/brush.json +74 -0
  77. package/.agents/skills/embedded-captions/themes/chalkboard.json +52 -0
  78. package/.agents/skills/embedded-captions/themes/dossier.json +56 -0
  79. package/.agents/skills/embedded-captions/themes/graffiti.json +62 -0
  80. package/.agents/skills/embedded-captions/themes/hologram.json +41 -0
  81. package/.agents/skills/embedded-captions/themes/inkwater.json +43 -0
  82. package/.agents/skills/embedded-captions/themes/laser.json +46 -0
  83. package/.agents/skills/embedded-captions/themes/lastpage.json +33 -0
  84. package/.agents/skills/embedded-captions/themes/neonsign.json +53 -0
  85. package/.agents/skills/embedded-captions/themes/nightcity.json +56 -0
  86. package/.agents/skills/embedded-captions/themes/ordnance.json +54 -0
  87. package/.agents/skills/embedded-captions/themes/papercut.json +37 -0
  88. package/.agents/skills/embedded-captions/themes/popup.json +46 -0
  89. package/.agents/skills/embedded-captions/themes/ransom.json +62 -0
  90. package/.agents/skills/embedded-captions/themes/scoreboard.json +54 -0
  91. package/.agents/skills/embedded-captions/themes/spectrum.json +46 -0
  92. package/.agents/skills/embedded-captions/themes/stardust.json +29 -0
  93. package/.agents/skills/embedded-captions/themes/stomp.json +43 -0
  94. package/.agents/skills/embedded-captions/themes/terminal.json +49 -0
  95. package/.agents/skills/embedded-captions/themes/thunder.json +44 -0
  96. package/.agents/skills/embedded-captions/themes/transit.json +44 -0
  97. package/.agents/skills/embedded-captions/themes/vhs.json +47 -0
  98. package/.agents/skills/faceless-explainer/SKILL.md +209 -0
  99. package/.agents/skills/faceless-explainer/references/cut-catalog.md +215 -0
  100. package/.agents/skills/faceless-explainer/references/motion-language.md +156 -0
  101. package/.agents/skills/faceless-explainer/references/story-design.md +248 -0
  102. package/.agents/skills/faceless-explainer/references/visual-design.md +146 -0
  103. package/.agents/skills/faceless-explainer/scripts/assemble-index.mjs +570 -0
  104. package/.agents/skills/faceless-explainer/scripts/audio.mjs +260 -0
  105. package/.agents/skills/faceless-explainer/scripts/build-frame.mjs +536 -0
  106. package/.agents/skills/faceless-explainer/scripts/captions.mjs +508 -0
  107. package/.agents/skills/faceless-explainer/scripts/lib/assets.mjs +55 -0
  108. package/.agents/skills/faceless-explainer/scripts/lib/dimensions.mjs +45 -0
  109. package/.agents/skills/faceless-explainer/scripts/lib/storyboard.mjs +249 -0
  110. package/.agents/skills/faceless-explainer/scripts/lib/tokens.mjs +204 -0
  111. package/.agents/skills/faceless-explainer/scripts/lib/transition-registry.mjs +38 -0
  112. package/.agents/skills/faceless-explainer/scripts/lib/transitions.json +71 -0
  113. package/.agents/skills/faceless-explainer/scripts/transitions.mjs +320 -0
  114. package/.agents/skills/faceless-explainer/sub-agents/frame-worker.md +75 -0
  115. package/.agents/skills/flockposter/LICENSE +17 -0
  116. package/.agents/skills/flockposter/README.md +72 -0
  117. package/.agents/skills/flockposter/SKILL.md +562 -0
  118. package/.agents/skills/flockposter/examples/cli-instagram-reel.sh +21 -0
  119. package/.agents/skills/flockposter/examples/cli-multi-platform.json +69 -0
  120. package/.agents/skills/flockposter/examples/cli-tiktok-upload-only.sh +22 -0
  121. package/.agents/skills/flockposter/examples/cli-x-thread.sh +17 -0
  122. package/.agents/skills/flockposter/examples/cli-youtube-short.sh +21 -0
  123. package/.agents/skills/flockposter/examples/public-api-instagram-reel.json +28 -0
  124. package/.agents/skills/general-video/SKILL.md +143 -0
  125. package/.agents/skills/hyperframes/SKILL.md +160 -0
  126. package/.agents/skills/hyperframes-animation/SKILL.md +84 -0
  127. package/.agents/skills/hyperframes-animation/adapters/animate-text.md +64 -0
  128. package/.agents/skills/hyperframes-animation/adapters/animejs.md +114 -0
  129. package/.agents/skills/hyperframes-animation/adapters/css-animations.md +143 -0
  130. package/.agents/skills/hyperframes-animation/adapters/gsap-easing-and-stagger.md +118 -0
  131. package/.agents/skills/hyperframes-animation/adapters/gsap-timeline-and-labels.md +96 -0
  132. package/.agents/skills/hyperframes-animation/adapters/gsap-transforms-and-perf.md +96 -0
  133. package/.agents/skills/hyperframes-animation/adapters/gsap.md +105 -0
  134. package/.agents/skills/hyperframes-animation/adapters/html-in-canvas-patterns.md +507 -0
  135. package/.agents/skills/hyperframes-animation/adapters/lottie.md +117 -0
  136. package/.agents/skills/hyperframes-animation/adapters/three.md +131 -0
  137. package/.agents/skills/hyperframes-animation/adapters/typegpu.md +178 -0
  138. package/.agents/skills/hyperframes-animation/adapters/waapi.md +101 -0
  139. package/.agents/skills/hyperframes-animation/blueprints/comparison-split.md +27 -0
  140. package/.agents/skills/hyperframes-animation/blueprints/constellation-hub.md +44 -0
  141. package/.agents/skills/hyperframes-animation/blueprints/cta-morph-press.md +28 -0
  142. package/.agents/skills/hyperframes-animation/blueprints/cursor-ui-demo.md +57 -0
  143. package/.agents/skills/hyperframes-animation/blueprints/dataviz-countup.md +46 -0
  144. package/.agents/skills/hyperframes-animation/blueprints/device-surface-showcase.md +53 -0
  145. package/.agents/skills/hyperframes-animation/blueprints/grid-card-assemble.md +66 -0
  146. package/.agents/skills/hyperframes-animation/blueprints/kinetic-type-beats.md +78 -0
  147. package/.agents/skills/hyperframes-animation/blueprints/logo-assemble-lockup.md +69 -0
  148. package/.agents/skills/hyperframes-animation/blueprints/overwhelm-surround.md +28 -0
  149. package/.agents/skills/hyperframes-animation/blueprints/spatial-pan-stations.md +37 -0
  150. package/.agents/skills/hyperframes-animation/blueprints/ticker-takeover.md +29 -0
  151. package/.agents/skills/hyperframes-animation/blueprints/titlecard-reveal.md +42 -0
  152. package/.agents/skills/hyperframes-animation/blueprints/typewriter-reveal.md +51 -0
  153. package/.agents/skills/hyperframes-animation/blueprints/video-text-pivot.md +30 -0
  154. package/.agents/skills/hyperframes-animation/blueprints-index.md +146 -0
  155. package/.agents/skills/hyperframes-animation/examples/assets/avatars/02.avif +0 -0
  156. package/.agents/skills/hyperframes-animation/examples/assets/brands/github.avif +0 -0
  157. package/.agents/skills/hyperframes-animation/examples/assets/brands/nvidia.avif +0 -0
  158. package/.agents/skills/hyperframes-animation/examples/assets/brands/visa.avif +0 -0
  159. package/.agents/skills/hyperframes-animation/examples/assets/brands/zoominfo.avif +0 -0
  160. package/.agents/skills/hyperframes-animation/examples/brand-reveal-assemble-zoom.html +382 -0
  161. package/.agents/skills/hyperframes-animation/examples/comparison-split-cards.html +649 -0
  162. package/.agents/skills/hyperframes-animation/examples/concept-demo-decode-pan.html +520 -0
  163. package/.agents/skills/hyperframes-animation/examples/cta-morph-press.html +468 -0
  164. package/.agents/skills/hyperframes-animation/examples/cta-orbit-collapse.html +1298 -0
  165. package/.agents/skills/hyperframes-animation/examples/demo-page-scroll-spotlight.html +759 -0
  166. package/.agents/skills/hyperframes-animation/examples/hook-counter-burst.html +729 -0
  167. package/.agents/skills/hyperframes-animation/examples/messaging-multi-phrase.html +352 -0
  168. package/.agents/skills/hyperframes-animation/examples/metric-video-text-pivot.html +779 -0
  169. package/.agents/skills/hyperframes-animation/examples/problem-mockup-overwhelm.html +1374 -0
  170. package/.agents/skills/hyperframes-animation/examples/proof-logo-chain.html +861 -0
  171. package/.agents/skills/hyperframes-animation/examples/takeover-ticker-displace.html +347 -0
  172. package/.agents/skills/hyperframes-animation/examples/workflow-approve-press.html +606 -0
  173. package/.agents/skills/hyperframes-animation/rules/3d-page-scroll.md +227 -0
  174. package/.agents/skills/hyperframes-animation/rules/3d-text-depth-layers.md +297 -0
  175. package/.agents/skills/hyperframes-animation/rules/ai-tracking-box.md +382 -0
  176. package/.agents/skills/hyperframes-animation/rules/ambient-glow-bloom.md +305 -0
  177. package/.agents/skills/hyperframes-animation/rules/asr-keyword-glow.md +286 -0
  178. package/.agents/skills/hyperframes-animation/rules/avatar-cloud-network.md +371 -0
  179. package/.agents/skills/hyperframes-animation/rules/camera-cursor-tracking.md +246 -0
  180. package/.agents/skills/hyperframes-animation/rules/card-morph-anchor.md +267 -0
  181. package/.agents/skills/hyperframes-animation/rules/center-outward-expansion.md +227 -0
  182. package/.agents/skills/hyperframes-animation/rules/context-sensitive-cursor.md +257 -0
  183. package/.agents/skills/hyperframes-animation/rules/coordinate-target-zoom.md +332 -0
  184. package/.agents/skills/hyperframes-animation/rules/counting-dynamic-scale.md +283 -0
  185. package/.agents/skills/hyperframes-animation/rules/css-marker-patterns.md +373 -0
  186. package/.agents/skills/hyperframes-animation/rules/cursor-click-ripple.md +262 -0
  187. package/.agents/skills/hyperframes-animation/rules/depth-of-field-blur.md +313 -0
  188. package/.agents/skills/hyperframes-animation/rules/depth-scatter-assemble.md +303 -0
  189. package/.agents/skills/hyperframes-animation/rules/discrete-text-sequence.md +273 -0
  190. package/.agents/skills/hyperframes-animation/rules/dynamic-content-sequencing.md +307 -0
  191. package/.agents/skills/hyperframes-animation/rules/gsap-effects.md +299 -0
  192. package/.agents/skills/hyperframes-animation/rules/hacker-flip-3d.md +223 -0
  193. package/.agents/skills/hyperframes-animation/rules/kinetic-beat-slam.md +183 -0
  194. package/.agents/skills/hyperframes-animation/rules/motion-blur-streak.md +328 -0
  195. package/.agents/skills/hyperframes-animation/rules/multi-phase-camera.md +273 -0
  196. package/.agents/skills/hyperframes-animation/rules/orbit-3d-entry.md +301 -0
  197. package/.agents/skills/hyperframes-animation/rules/physics-press-reaction.md +350 -0
  198. package/.agents/skills/hyperframes-animation/rules/press-release-spring.md +296 -0
  199. package/.agents/skills/hyperframes-animation/rules/reactive-displacement.md +277 -0
  200. package/.agents/skills/hyperframes-animation/rules/scale-swap-transition.md +298 -0
  201. package/.agents/skills/hyperframes-animation/rules/sine-wave-loop.md +278 -0
  202. package/.agents/skills/hyperframes-animation/rules/split-tilt-cards.md +277 -0
  203. package/.agents/skills/hyperframes-animation/rules/spring-pop-entrance.md +273 -0
  204. package/.agents/skills/hyperframes-animation/rules/stat-bars-and-fills.md +156 -0
  205. package/.agents/skills/hyperframes-animation/rules/svg-icon-enrichment.md +329 -0
  206. package/.agents/skills/hyperframes-animation/rules/svg-path-draw.md +274 -0
  207. package/.agents/skills/hyperframes-animation/rules/vertical-spring-ticker.md +239 -0
  208. package/.agents/skills/hyperframes-animation/rules/viewport-change.md +349 -0
  209. package/.agents/skills/hyperframes-animation/rules-index.md +86 -0
  210. package/.agents/skills/hyperframes-animation/scripts/animation-map.mjs +606 -0
  211. package/.agents/skills/hyperframes-animation/scripts/package-loader.mjs +288 -0
  212. package/.agents/skills/hyperframes-animation/scripts/package-loader.test.mjs +62 -0
  213. package/.agents/skills/hyperframes-animation/techniques.md +507 -0
  214. package/.agents/skills/hyperframes-animation/transitions/TRANSITION-REGISTRY.md +167 -0
  215. package/.agents/skills/hyperframes-animation/transitions/catalog.md +127 -0
  216. package/.agents/skills/hyperframes-animation/transitions/css-3d.md +12 -0
  217. package/.agents/skills/hyperframes-animation/transitions/css-blur.md +51 -0
  218. package/.agents/skills/hyperframes-animation/transitions/css-cover.md +43 -0
  219. package/.agents/skills/hyperframes-animation/transitions/css-destruction.md +95 -0
  220. package/.agents/skills/hyperframes-animation/transitions/css-dissolve.md +66 -0
  221. package/.agents/skills/hyperframes-animation/transitions/css-distortion.md +45 -0
  222. package/.agents/skills/hyperframes-animation/transitions/css-grid.md +10 -0
  223. package/.agents/skills/hyperframes-animation/transitions/css-light.md +49 -0
  224. package/.agents/skills/hyperframes-animation/transitions/css-mechanical.md +30 -0
  225. package/.agents/skills/hyperframes-animation/transitions/css-other.md +25 -0
  226. package/.agents/skills/hyperframes-animation/transitions/css-push.md +41 -0
  227. package/.agents/skills/hyperframes-animation/transitions/css-radial.md +37 -0
  228. package/.agents/skills/hyperframes-animation/transitions/css-scale.md +24 -0
  229. package/.agents/skills/hyperframes-animation/transitions/overview.md +153 -0
  230. package/.agents/skills/hyperframes-cli/SKILL.md +113 -0
  231. package/.agents/skills/hyperframes-cli/references/doctor-browser.md +45 -0
  232. package/.agents/skills/hyperframes-cli/references/init-and-scaffold.md +55 -0
  233. package/.agents/skills/hyperframes-cli/references/lambda.md +132 -0
  234. package/.agents/skills/hyperframes-cli/references/lint-validate-inspect.md +121 -0
  235. package/.agents/skills/hyperframes-cli/references/preview-render.md +149 -0
  236. package/.agents/skills/hyperframes-cli/references/upgrade-info-misc.md +75 -0
  237. package/.agents/skills/hyperframes-core/SKILL.md +78 -0
  238. package/.agents/skills/hyperframes-core/references/composition-patterns.md +263 -0
  239. package/.agents/skills/hyperframes-core/references/data-attributes.md +70 -0
  240. package/.agents/skills/hyperframes-core/references/determinism-rules.md +68 -0
  241. package/.agents/skills/hyperframes-core/references/full-screen-motion.md +62 -0
  242. package/.agents/skills/hyperframes-core/references/minimal-composition.md +66 -0
  243. package/.agents/skills/hyperframes-core/references/script-format.md +49 -0
  244. package/.agents/skills/hyperframes-core/references/storyboard-format.md +95 -0
  245. package/.agents/skills/hyperframes-core/references/sub-compositions.md +237 -0
  246. package/.agents/skills/hyperframes-core/references/subagent-dispatch.md +41 -0
  247. package/.agents/skills/hyperframes-core/references/tailwind.md +125 -0
  248. package/.agents/skills/hyperframes-core/references/tracks-and-clips.md +76 -0
  249. package/.agents/skills/hyperframes-core/references/variables-and-media.md +90 -0
  250. package/.agents/skills/hyperframes-creative/SKILL.md +70 -0
  251. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/FRAME.md +289 -0
  252. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/caption-skin.html +221 -0
  253. package/.agents/skills/hyperframes-creative/frame-presets/biennale-yellow/frame-showcase.html +1214 -0
  254. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/FRAME.md +275 -0
  255. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/caption-skin.html +224 -0
  256. package/.agents/skills/hyperframes-creative/frame-presets/blockframe/frame-showcase.html +1347 -0
  257. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/FRAME.md +307 -0
  258. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/caption-skin.html +223 -0
  259. package/.agents/skills/hyperframes-creative/frame-presets/blue-professional/frame-showcase.html +1372 -0
  260. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/FRAME.md +275 -0
  261. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/caption-skin.html +230 -0
  262. package/.agents/skills/hyperframes-creative/frame-presets/bold-poster/frame-showcase.html +1140 -0
  263. package/.agents/skills/hyperframes-creative/frame-presets/broadside/FRAME.md +284 -0
  264. package/.agents/skills/hyperframes-creative/frame-presets/broadside/caption-skin.html +225 -0
  265. package/.agents/skills/hyperframes-creative/frame-presets/broadside/frame-showcase.html +1166 -0
  266. package/.agents/skills/hyperframes-creative/frame-presets/capsule/FRAME.md +284 -0
  267. package/.agents/skills/hyperframes-creative/frame-presets/capsule/caption-skin.html +224 -0
  268. package/.agents/skills/hyperframes-creative/frame-presets/capsule/frame-showcase.html +1465 -0
  269. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/FRAME.md +278 -0
  270. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/caption-skin.html +222 -0
  271. package/.agents/skills/hyperframes-creative/frame-presets/cartesian/frame-showcase.html +1263 -0
  272. package/.agents/skills/hyperframes-creative/frame-presets/claude/FRAME.md +277 -0
  273. package/.agents/skills/hyperframes-creative/frame-presets/claude/caption-skin.html +224 -0
  274. package/.agents/skills/hyperframes-creative/frame-presets/claude/frame-showcase.html +1439 -0
  275. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/FRAME.md +265 -0
  276. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/caption-skin.html +238 -0
  277. package/.agents/skills/hyperframes-creative/frame-presets/cobalt-grid/frame-showcase.html +1468 -0
  278. package/.agents/skills/hyperframes-creative/frame-presets/coral/FRAME.md +314 -0
  279. package/.agents/skills/hyperframes-creative/frame-presets/coral/caption-skin.html +226 -0
  280. package/.agents/skills/hyperframes-creative/frame-presets/coral/frame-showcase.html +1268 -0
  281. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/FRAME.md +333 -0
  282. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/caption-skin.html +227 -0
  283. package/.agents/skills/hyperframes-creative/frame-presets/creative-mode/frame-showcase.html +1330 -0
  284. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/FRAME.md +274 -0
  285. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/caption-skin.html +230 -0
  286. package/.agents/skills/hyperframes-creative/frame-presets/daisy-days/frame-showcase.html +1444 -0
  287. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/FRAME.md +265 -0
  288. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/caption-skin.html +223 -0
  289. package/.agents/skills/hyperframes-creative/frame-presets/editorial-forest/frame-showcase.html +1273 -0
  290. package/.agents/skills/hyperframes-creative/palettes/bold-energetic.md +14 -0
  291. package/.agents/skills/hyperframes-creative/palettes/clean-corporate.md +14 -0
  292. package/.agents/skills/hyperframes-creative/palettes/dark-premium.md +14 -0
  293. package/.agents/skills/hyperframes-creative/palettes/jewel-rich.md +14 -0
  294. package/.agents/skills/hyperframes-creative/palettes/monochrome.md +14 -0
  295. package/.agents/skills/hyperframes-creative/palettes/nature-earth.md +14 -0
  296. package/.agents/skills/hyperframes-creative/palettes/neon-electric.md +14 -0
  297. package/.agents/skills/hyperframes-creative/palettes/pastel-soft.md +14 -0
  298. package/.agents/skills/hyperframes-creative/palettes/warm-editorial.md +14 -0
  299. package/.agents/skills/hyperframes-creative/references/audio-reactive.md +76 -0
  300. package/.agents/skills/hyperframes-creative/references/beat-direction.md +164 -0
  301. package/.agents/skills/hyperframes-creative/references/composition-patterns.md +199 -0
  302. package/.agents/skills/hyperframes-creative/references/data-in-motion.md +19 -0
  303. package/.agents/skills/hyperframes-creative/references/design-adherence.md +19 -0
  304. package/.agents/skills/hyperframes-creative/references/design-picker.md +123 -0
  305. package/.agents/skills/hyperframes-creative/references/design-spec.md +55 -0
  306. package/.agents/skills/hyperframes-creative/references/house-style.md +73 -0
  307. package/.agents/skills/hyperframes-creative/references/motion-principles.md +150 -0
  308. package/.agents/skills/hyperframes-creative/references/narration.md +92 -0
  309. package/.agents/skills/hyperframes-creative/references/prompt-expansion.md +68 -0
  310. package/.agents/skills/hyperframes-creative/references/typography.md +218 -0
  311. package/.agents/skills/hyperframes-creative/references/video-composition.md +63 -0
  312. package/.agents/skills/hyperframes-creative/references/visual-styles.md +457 -0
  313. package/.agents/skills/hyperframes-creative/scripts/contrast-report.mjs +353 -0
  314. package/.agents/skills/hyperframes-creative/scripts/extract-audio-data.py +188 -0
  315. package/.agents/skills/hyperframes-creative/scripts/package-loader.mjs +288 -0
  316. package/.agents/skills/hyperframes-creative/scripts/package-loader.test.mjs +62 -0
  317. package/.agents/skills/hyperframes-creative/templates/design-picker.html +1432 -0
  318. package/.agents/skills/hyperframes-keyframes/SKILL.md +237 -0
  319. package/.agents/skills/hyperframes-keyframes/agents/openai.yaml +4 -0
  320. package/.agents/skills/hyperframes-keyframes/references/keyframe-patterns.md +106 -0
  321. package/.agents/skills/motion-graphics/SKILL.md +172 -0
  322. package/.agents/skills/motion-graphics/agents/builder.md +40 -0
  323. package/.agents/skills/motion-graphics/agents/director.md +53 -0
  324. package/.agents/skills/motion-graphics/agents/finalize.md +17 -0
  325. package/.agents/skills/motion-graphics/catalog-map.md +40 -0
  326. package/.agents/skills/motion-graphics/categories/asset-fusion/module.md +37 -0
  327. package/.agents/skills/motion-graphics/categories/charts/module.md +21 -0
  328. package/.agents/skills/motion-graphics/categories/kinetic-type/module.md +19 -0
  329. package/.agents/skills/motion-graphics/categories/logo-reveal/module.md +17 -0
  330. package/.agents/skills/motion-graphics/categories/lower-thirds/module.md +16 -0
  331. package/.agents/skills/motion-graphics/categories/maps/bake-basemap.mjs +273 -0
  332. package/.agents/skills/motion-graphics/categories/maps/module.md +61 -0
  333. package/.agents/skills/motion-graphics/categories/news/module.md +56 -0
  334. package/.agents/skills/motion-graphics/categories/stat/module.md +21 -0
  335. package/.agents/skills/motion-graphics/categories/tweet/module.md +16 -0
  336. package/.agents/skills/motion-graphics/categories/webpage/module.md +21 -0
  337. package/.agents/skills/motion-graphics/grounding/PROTOCOL.md +64 -0
  338. package/.agents/skills/motion-graphics/grounding/locate.mjs +227 -0
  339. package/.agents/skills/motion-graphics/phases/source/guide.md +21 -0
  340. package/.agents/skills/motion-graphics/references/builder-contract.md +38 -0
  341. package/.agents/skills/motion-graphics/references/motion-vocabulary.md +43 -0
  342. package/.agents/skills/motion-graphics/references/shot-plan-ir.md +54 -0
  343. package/.agents/skills/motion-graphics/samples/asset-fusion/_ref-circle-highlight.html +306 -0
  344. package/.agents/skills/product-launch-video/SKILL.md +208 -0
  345. package/.agents/skills/product-launch-video/references/cut-catalog.md +220 -0
  346. package/.agents/skills/product-launch-video/references/motion-language.md +156 -0
  347. package/.agents/skills/product-launch-video/references/story-design.md +373 -0
  348. package/.agents/skills/product-launch-video/references/visual-design.md +126 -0
  349. package/.agents/skills/product-launch-video/scripts/assemble-index.mjs +570 -0
  350. package/.agents/skills/product-launch-video/scripts/audio.mjs +260 -0
  351. package/.agents/skills/product-launch-video/scripts/build-frame.mjs +536 -0
  352. package/.agents/skills/product-launch-video/scripts/captions.mjs +508 -0
  353. package/.agents/skills/product-launch-video/scripts/lib/assets.mjs +55 -0
  354. package/.agents/skills/product-launch-video/scripts/lib/dimensions.mjs +45 -0
  355. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.mjs +36 -0
  356. package/.agents/skills/product-launch-video/scripts/lib/pad-frame-duration.test.mjs +76 -0
  357. package/.agents/skills/product-launch-video/scripts/lib/storyboard.mjs +249 -0
  358. package/.agents/skills/product-launch-video/scripts/lib/tokens.mjs +204 -0
  359. package/.agents/skills/product-launch-video/scripts/lib/transition-registry.mjs +38 -0
  360. package/.agents/skills/product-launch-video/scripts/lib/transitions.json +71 -0
  361. package/.agents/skills/product-launch-video/scripts/stage-assets.mjs +39 -0
  362. package/.agents/skills/product-launch-video/scripts/transitions.mjs +327 -0
  363. package/.agents/skills/product-launch-video/sub-agents/frame-worker.md +75 -0
  364. package/.agents/skills/slideshow/SKILL.md +550 -0
  365. package/.agents/skills/slideshow/references/standalone-harness.md +1020 -0
  366. package/.agents/skills/talking-head-recut/NOTICE.md +39 -0
  367. package/.agents/skills/talking-head-recut/SKILL.md +1195 -0
  368. package/.agents/skills/talking-head-recut/assets/vendor/gsap.min.js +10 -0
  369. package/.agents/skills/talking-head-recut/references/DESIGN_INDEX.md +145 -0
  370. package/.agents/skills/talking-head-recut/references/frames/clean.html +92 -0
  371. package/.agents/skills/talking-head-recut/references/frames/hairline.html +171 -0
  372. package/.agents/skills/talking-head-recut/references/frames/polaroid.html +131 -0
  373. package/.agents/skills/talking-head-recut/references/layouts/overlay.html +164 -0
  374. package/.agents/skills/talking-head-recut/references/layouts/pip.html +143 -0
  375. package/.agents/skills/talking-head-recut/references/layouts/split.html +121 -0
  376. package/.agents/skills/talking-head-recut/references/layouts/stack.html +109 -0
  377. package/.agents/skills/talking-head-recut/references/styles/academic.html +172 -0
  378. package/.agents/skills/talking-head-recut/references/styles/audit.html +170 -0
  379. package/.agents/skills/talking-head-recut/references/styles/editorial.html +189 -0
  380. package/.agents/skills/talking-head-recut/references/styles/geom.html +181 -0
  381. package/.agents/skills/talking-head-recut/references/styles/minimal.html +130 -0
  382. package/.agents/skills/talking-head-recut/references/styles/spotlight.html +142 -0
  383. package/.agents/skills/talking-head-recut/references/styles/swiss.html +188 -0
  384. package/.agents/skills/talking-head-recut/references/styles/terminal.html +196 -0
  385. package/.agents/skills/talking-head-recut/references/styles/whiteboard.html +170 -0
  386. package/.agents/skills/talking-head-recut/references/styles/xhs.html +206 -0
  387. package/.agents/skills/vidfarm-media/SKILL.md +85 -0
  388. package/.agents/skills/vidfarm-media/references/tts.md +54 -0
  389. package/.agents/skills/vidfarm-media/scripts/audio.mjs +628 -0
  390. package/.agents/skills/vidfarm-media/scripts/wait-bgm.mjs +31 -0
  391. package/.agents/skills/website-to-video/SKILL.md +145 -0
  392. package/.agents/skills/website-to-video/assets/sfx/CREDITS.md +35 -0
  393. package/.agents/skills/website-to-video/assets/sfx/manifest.json +97 -0
  394. package/.agents/skills/website-to-video/references/beat-builder-guide.md +263 -0
  395. package/.agents/skills/website-to-video/references/capabilities.md +713 -0
  396. package/.agents/skills/website-to-video/references/step-0-capture.md +55 -0
  397. package/.agents/skills/website-to-video/references/step-1-design.md +333 -0
  398. package/.agents/skills/website-to-video/references/step-2-brief.md +178 -0
  399. package/.agents/skills/website-to-video/references/step-3-storyboard.md +572 -0
  400. package/.agents/skills/website-to-video/references/step-4-vo.md +225 -0
  401. package/.agents/skills/website-to-video/references/step-5-build.md +483 -0
  402. package/.agents/skills/website-to-video/references/step-6-validate.md +341 -0
  403. package/.agents/skills/website-to-video/scripts/w2h-verify.mjs +759 -0
  404. package/SKILL.director.md +60 -4
  405. package/SKILL.platform.md +7 -2
  406. package/demo/dist/app.css +1 -1
  407. package/demo/dist/app.js +485 -86
  408. package/dist/src/account-pages-legacy.js +9 -14
  409. package/dist/src/app.js +659 -159
  410. package/dist/src/cli.js +618 -17
  411. package/dist/src/composition-runtime.js +286 -6
  412. package/dist/src/devcli/composition-edit.js +176 -8
  413. package/dist/src/devcli/doctor.js +192 -0
  414. package/dist/src/devcli/hyperframes-cli.js +118 -0
  415. package/dist/src/devcli/skills.js +476 -0
  416. package/dist/src/devcli/stills.js +249 -0
  417. package/dist/src/devcli/transitions.js +205 -0
  418. package/dist/src/editor-chat.js +260 -4
  419. package/dist/src/frontend/template-editor-chat.js +6 -5
  420. package/dist/src/homepage.js +2 -48
  421. package/dist/src/hyperframes/composition.js +188 -7
  422. package/dist/src/services/composition-lint.js +199 -0
  423. package/dist/src/services/hyperframes.js +127 -28
  424. package/dist/src/services/serverless-records.js +7 -0
  425. package/dist/src/template-editor-shell.js +87 -48
  426. package/package.json +2 -1
  427. package/public/assets/page-runtime-client-app.js +31 -31
@@ -0,0 +1,196 @@
1
+ <!--
2
+ Style: terminal — dark · JetBrains Mono · ASCII border · prompt · multi-color highlight
3
+ ─────────────────────────────────────────────────────────────────────
4
+ Tokens
5
+ bg #0d1117 (deep terminal)
6
+ ink #e6edf3
7
+ muted #7d8590
8
+ accent #4ade80 (green — primary output)
9
+ accent2#fbbf24 (amber — string/warn)
10
+ accent3#f472b6 (magenta — variable)
11
+ accent4#60a5fa (blue — function/path)
12
+ Fonts
13
+ mono (everything) — ui-monospace, "SF Mono", Menlo, monospace
14
+ (Real JetBrains Mono would need a woff2 ship; mono fallback fine.)
15
+ Best with
16
+ layouts: split, pip
17
+ frames: hairline, clean
18
+ content: 技术分析 / 代码片段 / 性能数据 / 工程思考
19
+ Notes
20
+ - "Blinking cursor" must be a CSS animation, NOT a data-anim. Allowed
21
+ because pure CSS @keyframes on a single visual indicator is harmless.
22
+ - For animated reveal of lines, use data-anim="fade-in" per line.
23
+ -->
24
+ <!doctype html>
25
+ <html lang="zh-CN">
26
+ <head>
27
+ <meta charset="utf-8" />
28
+ <title>style · terminal</title>
29
+ <style>
30
+ html,
31
+ body {
32
+ margin: 0;
33
+ padding: 0;
34
+ background: #0a0c12;
35
+ font-family: ui-sans-serif, system-ui, sans-serif;
36
+ }
37
+ .stage {
38
+ position: relative;
39
+ width: 1920px;
40
+ height: 1080px;
41
+ transform-origin: top left;
42
+ transform: scale(0.5);
43
+ overflow: hidden;
44
+ }
45
+ .card-host {
46
+ position: absolute;
47
+ left: 0;
48
+ top: 0;
49
+ width: 1920px;
50
+ height: 1080px;
51
+ }
52
+ </style>
53
+ </head>
54
+ <body>
55
+ <div class="stage">
56
+ <div class="card-host">
57
+ <div class="card" data-card-id="ref-terminal">
58
+ <style>
59
+ .card[data-card-id="ref-terminal"] .root {
60
+ --bg: #0d1117;
61
+ --ink: #e6edf3;
62
+ --muted: #7d8590;
63
+ --green: #4ade80;
64
+ --amber: #fbbf24;
65
+ --magenta: #f472b6;
66
+ --blue: #60a5fa;
67
+ --font-mono: ui-monospace, "SF Mono", Menlo, "Courier New", monospace;
68
+
69
+ width: 100%;
70
+ height: 100%;
71
+ position: relative;
72
+ overflow: hidden;
73
+ background: var(--bg);
74
+ color: var(--ink);
75
+ padding: 36px 48px;
76
+ box-sizing: border-box;
77
+ font: 28px/1.55 var(--font-mono);
78
+ }
79
+ .card[data-card-id="ref-terminal"] .ascii-frame {
80
+ position: absolute;
81
+ inset: 16px;
82
+ border: 2px solid #2c333e;
83
+ border-radius: 6px;
84
+ box-shadow:
85
+ inset 0 0 0 1px #1a1f27,
86
+ 0 0 0 1px #06080c;
87
+ }
88
+ .card[data-card-id="ref-terminal"] .titlebar {
89
+ position: absolute;
90
+ left: 36px;
91
+ top: 12px;
92
+ padding: 0 8px;
93
+ background: var(--bg);
94
+ font: 600 14px/1 var(--font-mono);
95
+ color: var(--muted);
96
+ letter-spacing: 0.12em;
97
+ }
98
+ .card[data-card-id="ref-terminal"] .content {
99
+ position: relative;
100
+ padding: 18px 12px;
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: 14px;
104
+ }
105
+ .card[data-card-id="ref-terminal"] .prompt {
106
+ color: var(--green);
107
+ }
108
+ .card[data-card-id="ref-terminal"] .line .blue {
109
+ color: var(--blue);
110
+ }
111
+ .card[data-card-id="ref-terminal"] .line .amber {
112
+ color: var(--amber);
113
+ }
114
+ .card[data-card-id="ref-terminal"] .line .pink {
115
+ color: var(--magenta);
116
+ }
117
+ .card[data-card-id="ref-terminal"] .line .green {
118
+ color: var(--green);
119
+ }
120
+ .card[data-card-id="ref-terminal"] .line .muted {
121
+ color: var(--muted);
122
+ }
123
+ .card[data-card-id="ref-terminal"] .kicker {
124
+ color: var(--muted);
125
+ font: 600 16px/1 var(--font-mono);
126
+ letter-spacing: 0.22em;
127
+ margin-bottom: 4px;
128
+ }
129
+ .card[data-card-id="ref-terminal"] .headline {
130
+ font: 700 56px/1.15 var(--font-mono);
131
+ color: var(--ink);
132
+ margin: 4px 0 14px;
133
+ }
134
+ .card[data-card-id="ref-terminal"] .headline .hl {
135
+ background: rgba(74, 222, 128, 0.18);
136
+ color: var(--green);
137
+ padding: 0 6px;
138
+ }
139
+ .card[data-card-id="ref-terminal"] .cursor {
140
+ display: inline-block;
141
+ width: 14px;
142
+ height: 28px;
143
+ background: var(--green);
144
+ margin-left: 4px;
145
+ vertical-align: -4px;
146
+ animation: ref-term-blink 1s steps(1) infinite;
147
+ }
148
+ @keyframes ref-term-blink {
149
+ 50% {
150
+ opacity: 0;
151
+ }
152
+ }
153
+ </style>
154
+
155
+ <div class="root">
156
+ <div class="ascii-frame"></div>
157
+ <span class="titlebar">~/notes/takeaway-007.md</span>
158
+
159
+ <div class="content">
160
+ <div class="kicker" data-anim="fade-in" data-anim-at="0.05" data-anim-duration="0.3">
161
+ $ cat takeaway
162
+ </div>
163
+
164
+ <h2
165
+ class="headline"
166
+ data-anim="fade-in"
167
+ data-anim-at="0.25"
168
+ data-anim-duration="0.45"
169
+ >
170
+ 缓存命中率提升到 <span class="hl">92%</span>
171
+ </h2>
172
+
173
+ <div class="line" data-anim="fade-in" data-anim-at="0.55" data-anim-duration="0.35">
174
+ <span class="prompt">$</span> bench --tier <span class="amber">"hot"</span>
175
+ <span class="muted">--n 10k</span>
176
+ </div>
177
+ <div class="line" data-anim="fade-in" data-anim-at="0.8" data-anim-duration="0.35">
178
+ <span class="muted">→</span> <span class="blue">p50</span>=<span class="green"
179
+ >12ms</span
180
+ >
181
+ <span class="blue">p99</span>=<span class="green">38ms</span>
182
+ <span class="pink">hit</span>=<span class="green">92.4%</span>
183
+ </div>
184
+ <div class="line" data-anim="fade-in" data-anim-at="1.05" data-anim-duration="0.35">
185
+ <span class="muted">// before this change: hit=63%, p99=210ms</span>
186
+ </div>
187
+ <div class="line" data-anim="fade-in" data-anim-at="1.35" data-anim-duration="0.3">
188
+ <span class="prompt">$</span><span class="cursor"></span>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </body>
196
+ </html>
@@ -0,0 +1,170 @@
1
+ <!--
2
+ Style: whiteboard — paper · Caveat handwriting · sketched borders · marker highlight
3
+ ─────────────────────────────────────────────────────────────────────
4
+ Tokens
5
+ bg #fdf6e3 (warm paper)
6
+ ink #1a1a1a
7
+ muted #6e6a5b
8
+ accent #ff6b35 (orange marker)
9
+ accent2#2557a7 (blue pen — annotations)
10
+ accent3#ffe066 (yellow highlighter)
11
+ Fonts
12
+ headline & body — Caveat (handwriting); falls back to "ui-serif, cursive"
13
+ annotations — Caveat
14
+ Best with
15
+ layouts: pip, overlay, split
16
+ frames: polaroid, clean
17
+ content: 教程 / 解构 / 草图思考 / 灵感整理
18
+ Notes
19
+ - SVG strokes have subtle path jitter to look hand-drawn.
20
+ - data-anim "draw-path" is ideal for the sketched border + highlights.
21
+ -->
22
+ <!doctype html>
23
+ <html lang="zh-CN">
24
+ <head>
25
+ <meta charset="utf-8" />
26
+ <title>style · whiteboard</title>
27
+ <style>
28
+ html,
29
+ body {
30
+ margin: 0;
31
+ padding: 0;
32
+ background: #0a0c12;
33
+ font-family: ui-sans-serif, system-ui, sans-serif;
34
+ }
35
+ .stage {
36
+ position: relative;
37
+ width: 1920px;
38
+ height: 1080px;
39
+ transform-origin: top left;
40
+ transform: scale(0.5);
41
+ overflow: hidden;
42
+ }
43
+ .card-host {
44
+ position: absolute;
45
+ left: 0;
46
+ top: 0;
47
+ width: 1920px;
48
+ height: 1080px;
49
+ }
50
+ </style>
51
+ </head>
52
+ <body>
53
+ <div class="stage">
54
+ <div class="card-host">
55
+ <div class="card" data-card-id="ref-whiteboard">
56
+ <style>
57
+ .card[data-card-id="ref-whiteboard"] .root {
58
+ --bg: #fdf6e3;
59
+ --ink: #1a1a1a;
60
+ --muted: #6e6a5b;
61
+ --accent: #ff6b35;
62
+ --accent2: #2557a7;
63
+ --accent3: #ffe066;
64
+ --font-hand: "Caveat", "LXGW WenKai TC", ui-serif, cursive;
65
+
66
+ width: 100%;
67
+ height: 100%;
68
+ position: relative;
69
+ overflow: hidden;
70
+ background-color: var(--bg);
71
+ background-image:
72
+ radial-gradient(circle at 30% 20%, rgba(0, 0, 0, 0.025) 0%, transparent 50%),
73
+ radial-gradient(circle at 80% 70%, rgba(0, 0, 0, 0.02) 0%, transparent 50%);
74
+ padding: 48px 56px;
75
+ box-sizing: border-box;
76
+ display: flex;
77
+ flex-direction: column;
78
+ justify-content: center;
79
+ gap: 26px;
80
+ color: var(--ink);
81
+ font-family: var(--font-hand);
82
+ }
83
+ .card[data-card-id="ref-whiteboard"] .sketch-border {
84
+ position: absolute;
85
+ inset: 16px;
86
+ pointer-events: none;
87
+ }
88
+ .card[data-card-id="ref-whiteboard"] .sketch-border path {
89
+ stroke: var(--ink);
90
+ stroke-width: 3;
91
+ fill: none;
92
+ stroke-linecap: round;
93
+ stroke-linejoin: round;
94
+ }
95
+ .card[data-card-id="ref-whiteboard"] .kicker {
96
+ align-self: flex-start;
97
+ font: 700 32px/1 var(--font-hand);
98
+ color: var(--accent);
99
+ transform: rotate(-2deg);
100
+ padding-left: 8px;
101
+ }
102
+ .card[data-card-id="ref-whiteboard"] .title {
103
+ margin: 0;
104
+ font: 700 120px/1 var(--font-hand);
105
+ color: var(--ink);
106
+ }
107
+ .card[data-card-id="ref-whiteboard"] .marker {
108
+ position: relative;
109
+ display: inline-block;
110
+ padding: 0 8px;
111
+ color: var(--ink);
112
+ }
113
+ .card[data-card-id="ref-whiteboard"] .marker::before {
114
+ content: "";
115
+ position: absolute;
116
+ left: 0;
117
+ right: 0;
118
+ top: 30%;
119
+ bottom: 18%;
120
+ background: var(--accent3);
121
+ z-index: -1;
122
+ transform: skewX(-4deg);
123
+ }
124
+ .card[data-card-id="ref-whiteboard"] .detail {
125
+ margin: 0;
126
+ font: 400 40px/1.4 var(--font-hand);
127
+ color: var(--muted);
128
+ max-width: 92%;
129
+ }
130
+ .card[data-card-id="ref-whiteboard"] .note {
131
+ align-self: flex-start;
132
+ padding: 6px 12px;
133
+ font: 600 28px/1 var(--font-hand);
134
+ color: var(--accent2);
135
+ border-bottom: 3px wavy var(--accent2);
136
+ transform: rotate(-1deg);
137
+ }
138
+ </style>
139
+
140
+ <div class="root">
141
+ <svg class="sketch-border" viewBox="0 0 1888 1048" preserveAspectRatio="none">
142
+ <path
143
+ d="M 12 12 L 1876 16 L 1872 1036 L 16 1032 Z"
144
+ data-anim="draw-path"
145
+ data-anim-at="0.05"
146
+ data-anim-duration="0.8"
147
+ />
148
+ </svg>
149
+
150
+ <span class="kicker" data-anim="fade-in" data-anim-at="0.1" data-anim-duration="0.4">
151
+ ✎ TAKEAWAY
152
+ </span>
153
+
154
+ <h2 class="title" data-anim="fade-in" data-anim-at="0.4" data-anim-duration="0.5">
155
+ 把复杂问题<span class="marker">画出来</span>。
156
+ </h2>
157
+
158
+ <p class="detail" data-anim="fade-in" data-anim-at="0.85" data-anim-duration="0.45">
159
+ 文字让人争辩,图让人对齐。当所有人都在白板前看同一张图,分歧自然消失。
160
+ </p>
161
+
162
+ <span class="note" data-anim="fade-in" data-anim-at="1.2" data-anim-duration="0.4">
163
+ ← 试试每次会议都画
164
+ </span>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </body>
170
+ </html>
@@ -0,0 +1,206 @@
1
+ <!--
2
+ Style: xhs (小红书) — cream + hot pink · chips · #hashtags · ❤️💬 row
3
+ ─────────────────────────────────────────────────────────────────────
4
+ Tokens
5
+ bg #fff5e9 (warm cream)
6
+ ink #1d1418
7
+ muted #8a7a78
8
+ accent #ff2e63 (hot pink — chip + interaction icon)
9
+ accent2#ff8a4c (orange — tag)
10
+ accent3#f0c419 (yellow — pin)
11
+ Fonts
12
+ headline & body — Noto Sans SC fallback: ui-sans-serif, system-ui, "PingFang SC", sans-serif
13
+ Best with
14
+ layouts: overlay, stack (especially in portrait/9:16)
15
+ frames: clean, polaroid
16
+ content: 社交剪辑 / 生活方式 / 种草 / 短视频高光
17
+ -->
18
+ <!doctype html>
19
+ <html lang="zh-CN">
20
+ <head>
21
+ <meta charset="utf-8" />
22
+ <title>style · xhs (小红书)</title>
23
+ <style>
24
+ html,
25
+ body {
26
+ margin: 0;
27
+ padding: 0;
28
+ background: #0a0c12;
29
+ font-family: ui-sans-serif, system-ui, sans-serif;
30
+ }
31
+ .stage {
32
+ position: relative;
33
+ width: 1920px;
34
+ height: 1080px;
35
+ transform-origin: top left;
36
+ transform: scale(0.5);
37
+ overflow: hidden;
38
+ }
39
+ .card-host {
40
+ position: absolute;
41
+ left: 0;
42
+ top: 0;
43
+ width: 1920px;
44
+ height: 1080px;
45
+ }
46
+ </style>
47
+ </head>
48
+ <body>
49
+ <div class="stage">
50
+ <div class="card-host">
51
+ <div class="card" data-card-id="ref-xhs">
52
+ <style>
53
+ .card[data-card-id="ref-xhs"] .root {
54
+ --bg: #fff5e9;
55
+ --ink: #1d1418;
56
+ --muted: #8a7a78;
57
+ --accent: #ff2e63;
58
+ --accent2: #ff8a4c;
59
+ --accent3: #f0c419;
60
+ --font-sans: ui-sans-serif, system-ui, "PingFang SC", "Hiragino Sans GB", sans-serif;
61
+
62
+ width: 100%;
63
+ height: 100%;
64
+ position: relative;
65
+ overflow: hidden;
66
+ background: var(--bg);
67
+ color: var(--ink);
68
+ font-family: var(--font-sans);
69
+ padding: 36px 44px;
70
+ box-sizing: border-box;
71
+ display: flex;
72
+ flex-direction: column;
73
+ gap: 22px;
74
+ }
75
+ .card[data-card-id="ref-xhs"] .user-row {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: 14px;
79
+ }
80
+ .card[data-card-id="ref-xhs"] .avatar {
81
+ width: 56px;
82
+ height: 56px;
83
+ border-radius: 50%;
84
+ background: linear-gradient(135deg, #ff2e63, #ff8a4c);
85
+ box-shadow:
86
+ 0 0 0 3px #fff,
87
+ 0 0 0 4px rgba(255, 46, 99, 0.3);
88
+ }
89
+ .card[data-card-id="ref-xhs"] .user-info {
90
+ flex: 1;
91
+ }
92
+ .card[data-card-id="ref-xhs"] .user-name {
93
+ font: 700 22px/1.1 var(--font-sans);
94
+ color: var(--ink);
95
+ }
96
+ .card[data-card-id="ref-xhs"] .user-sub {
97
+ font: 400 16px/1.3 var(--font-sans);
98
+ color: var(--muted);
99
+ }
100
+ .card[data-card-id="ref-xhs"] .follow {
101
+ padding: 8px 20px;
102
+ border-radius: 999px;
103
+ background: var(--accent);
104
+ color: #fff;
105
+ font: 700 16px/1 var(--font-sans);
106
+ }
107
+ .card[data-card-id="ref-xhs"] .title {
108
+ margin: 0;
109
+ font: 800 84px/1.1 var(--font-sans);
110
+ color: var(--ink);
111
+ letter-spacing: -0.01em;
112
+ }
113
+ .card[data-card-id="ref-xhs"] .title .heart {
114
+ color: var(--accent);
115
+ }
116
+ .card[data-card-id="ref-xhs"] .detail {
117
+ margin: 0;
118
+ font: 500 28px/1.5 var(--font-sans);
119
+ color: var(--ink);
120
+ max-width: 94%;
121
+ }
122
+ .card[data-card-id="ref-xhs"] .tags {
123
+ display: flex;
124
+ flex-wrap: wrap;
125
+ gap: 10px;
126
+ }
127
+ .card[data-card-id="ref-xhs"] .tag {
128
+ padding: 8px 18px;
129
+ border-radius: 999px;
130
+ background: rgba(255, 46, 99, 0.12);
131
+ color: var(--accent);
132
+ font: 600 18px/1 var(--font-sans);
133
+ }
134
+ .card[data-card-id="ref-xhs"] .tag.orange {
135
+ background: rgba(255, 138, 76, 0.16);
136
+ color: var(--accent2);
137
+ }
138
+ .card[data-card-id="ref-xhs"] .tag.yellow {
139
+ background: rgba(240, 196, 25, 0.18);
140
+ color: #a98209;
141
+ }
142
+ .card[data-card-id="ref-xhs"] .interactions {
143
+ display: flex;
144
+ gap: 28px;
145
+ margin-top: auto;
146
+ padding-top: 14px;
147
+ border-top: 1px solid rgba(0, 0, 0, 0.06);
148
+ font: 700 22px/1 var(--font-sans);
149
+ color: var(--ink);
150
+ }
151
+ .card[data-card-id="ref-xhs"] .interactions span {
152
+ display: inline-flex;
153
+ align-items: center;
154
+ gap: 8px;
155
+ }
156
+ .card[data-card-id="ref-xhs"] .interactions .heart-ic {
157
+ color: var(--accent);
158
+ font-size: 26px;
159
+ }
160
+ </style>
161
+
162
+ <div class="root">
163
+ <div class="user-row" data-anim="fade-in" data-anim-at="0.05" data-anim-duration="0.4">
164
+ <div class="avatar"></div>
165
+ <div class="user-info">
166
+ <div class="user-name">@小研究员</div>
167
+ <div class="user-sub">关注我,看我每天拆一段视频 · 18分钟前</div>
168
+ </div>
169
+ <div class="follow">+ 关注</div>
170
+ </div>
171
+
172
+ <h2 class="title" data-anim="fade-in" data-anim-at="0.3" data-anim-duration="0.5">
173
+ 亲测有效!<span class="heart">♥</span> 30 秒抓住注意力的小技巧
174
+ </h2>
175
+
176
+ <p class="detail" data-anim="fade-in" data-anim-at="0.7" data-anim-duration="0.45">
177
+ 开头别废话——直接抛结论。听众的大脑在前 3 秒就决定要不要继续,
178
+ 这是平台算法之外,最朴素也最重要的事实。
179
+ </p>
180
+
181
+ <div class="tags" data-anim="fade-in" data-anim-at="1.0" data-anim-duration="0.4">
182
+ <span class="tag">#内容创作</span>
183
+ <span class="tag orange">#播客剪辑</span>
184
+ <span class="tag yellow">#开头技巧</span>
185
+ </div>
186
+
187
+ <div
188
+ class="interactions"
189
+ data-anim="fade-in"
190
+ data-anim-at="1.25"
191
+ data-anim-duration="0.4"
192
+ >
193
+ <span><span class="heart-ic">♥</span> 12.4k</span>
194
+ <span>💬 386</span>
195
+ <span>⭐ 891</span>
196
+ <span
197
+ style="margin-left: auto; color: var(--muted); font-weight: 400; font-size: 18px"
198
+ >📤 分享</span
199
+ >
200
+ </div>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ </div>
205
+ </body>
206
+ </html>
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: vidfarm-media
3
+ description: Media resolution for video workflows — narration TTS, word-level timings, BGM, SFX, and image/clip sourcing through vidfarm. Use when a video needs audio (voiceover/narration, music, sound effects), caption word timings, or media assets. Ships the shared audio engine scripts/audio.mjs (audio_request.json → audio_meta.json) used by faceless-explainer, product-launch-video, and general-video; documents vidfarm tts/stt BYOK primitives, the keyless local Kokoro + whisper.cpp engines, and My Files / clip-library / generation sourcing. No third-party media accounts — everything is user-owned or generated on the user's keys.
4
+ ---
5
+
6
+ # vidfarm-media
7
+
8
+ One engine and one rule. The engine: `scripts/audio.mjs` turns a neutral `audio_request.json` into narration files, word timings, a music bed, and SFX — written into the project and described by one meta JSON. The rule: **no third-party media accounts, ever** — audio and images are the user's own files, found in the user's My Files / clip library, generated on the user's provider keys, or produced by keyless local models. If a source needs a sign-up, it is not a source.
9
+
10
+ ## Preflight (run once, before the brief)
11
+
12
+ Check which engines this run will use and say so in one line — then continue. There is nothing to sign in to and no reason to stop.
13
+
14
+ - Saved keys: `vidfarm provider-keys`, or env `OPENAI_API_KEY` / `GEMINI_API_KEY` / `OPENROUTER_API_KEY`.
15
+ - Key present → BYOK cloud speech: `vidfarm tts` (promptable voice via `--style`) and `vidfarm stt` (real word timestamps on an OpenAI whisper-1 key).
16
+ - No key → keyless local engines: Kokoro-82M TTS (`npx hyperframes tts`) and whisper.cpp timings (`npx hyperframes transcribe`). They download model weights on first use and never need an account.
17
+ - Don't write keys into a per-repo `.env`. Details: `references/tts.md`.
18
+
19
+ ## The audio engine
20
+
21
+ ```bash
22
+ node <SKILL_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json [--only tts,bgm,sfx]
23
+ ```
24
+
25
+ Adapters in faceless-explainer and product-launch-video resolve this engine at `../../vidfarm-media/scripts/audio.mjs` (override with `$HF_MEDIA_ENGINE`); general-video calls it directly. Full schema lives in the script's header comment; the shape:
26
+
27
+ ```jsonc
28
+ // audio_request.json — one line per narrated segment; `id` is the caller's join key
29
+ {
30
+ "provider": "auto", // auto = keyless local Kokoro; openai/gemini/openrouter = vidfarm BYOK
31
+ "voice": "af_heart", // Kokoro id, or a cloud preset (alloy…, Kore…) — see references/tts.md
32
+ "speed": 1.0, // Kokoro only
33
+ "lines": [
34
+ { "id": "01", "text": "Opening line.", "sfx": ["whoosh"] },
35
+ { "id": "02", "sfx": ["click"] } // sfx-only lines are how adapters fetch SFX later
36
+ ],
37
+ "bgm": { "mode": "retrieve", "query": "calm cinematic underscore" } // "none" disables; no generate mode exists
38
+ }
39
+ ```
40
+
41
+ ```jsonc
42
+ // audio_meta.json — id-keyed; every path RELATIVE to --hyperframes
43
+ {
44
+ "voices": [{ "id": "01", "path": "assets/voice/01.wav", "duration_s": 4.21,
45
+ "words": [{ "id": "w0", "text": "Opening", "start": 0.02, "end": 0.31 }] }],
46
+ "bgm": { "path": "assets/bgm/track.mp3", "query": "…", "duration_s": 22.4 }, // or null + a note
47
+ "sfx": [{ "id": "01", "file": "assets/sfx/whoosh.mp3", "offset_s": 0, "duration_s": 0.9, "volume": 0.35 }],
48
+ "notes": ["bgm: skipped — …"] // every graceful skip is explained here
49
+ }
50
+ ```
51
+
52
+ Contract points:
53
+
54
+ - `--only` **merges**: sections not listed are preserved from the existing `--out` meta (generate `--only tts,bgm`, then `--only sfx` later — nothing is lost).
55
+ - Word timings are real (local whisper.cpp) when possible, else estimated by proportional character weighting. Timings never fail the run.
56
+ - BGM is **not** loop-extended by the engine — the workflow assemblers loop-extend short beds to the video length at mount time. `bgm_pending` is never set; `scripts/wait-bgm.mjs` exists as an exit-0 shim.
57
+ - Mount the results per `hyperframes-core`: each `voices[].path` and (`bgm.path`, `sfx[]`) as `<audio>` tracks; `voices[].words` drive captions.
58
+
59
+ ## TTS / STT providers
60
+
61
+ | Need | Command | Notes |
62
+ | --- | --- | --- |
63
+ | Narration, promptable voice (BYOK) | `vidfarm tts "…" --style "calm, warm narrator"` | Local-first on your env key; `--voice alloy`/`Kore`…; `--cloud` = saved-key platform job → `POST /api/v1/primitives/audio/speech` |
64
+ | Narration, zero keys | `npx hyperframes tts "…" -v af_heart --json` | Kokoro-82M, local, WAV + duration in JSON |
65
+ | Transcript + SRT (BYOK) | `vidfarm stt <file\|url>` | Gemini key labels speakers; OpenAI whisper-1 gives real word timestamps |
66
+ | Word timings, zero keys | `npx hyperframes transcribe <audio> --json` | whisper.cpp; writes word-level `transcript.json` |
67
+ | Captions straight into a composition | `vidfarm captions generate <dir>` | whisper-1 real timings when an OpenAI key exists; estimates otherwise |
68
+
69
+ Voices, styles, formats, and the exact word-timestamp paths: `references/tts.md`.
70
+
71
+ ## BGM and SFX resolution order
72
+
73
+ 1. **User file / URL** — `bgm.file` / `bgm.url` in the request; copied or downloaded into `assets/bgm/`.
74
+ 2. **My Files** — `vidfarm files --search "<query> music"` (needs `$VIDFARM_API_KEY`); the user's own uploaded library, searchable by meaning when notes are annotated.
75
+ 3. **Local dir** — `$MUSIC_DIR` / `$SFX_DIR` (or request `bgm.dir` / `sfx_dir`), picked by filename keyword match against the query.
76
+ 4. **Skip, with a note** — a silent bed or a missing whoosh is fine; a stock-audio account is not. The meta's `notes[]` says exactly what was skipped and why.
77
+
78
+ ## Sourcing images and footage
79
+
80
+ Same ownership rule, different surfaces:
81
+
82
+ - **My Files** — `vidfarm files --search "<meaning>"`; annotate assets with `vidfarm annotate-file <id> --notes "…"` so search finds them later; write with `vidfarm put-file`.
83
+ - **Clip library** — `vidfarm clips search "<text>"` over clips hunted from the user's long-form footage (`vidfarm clips scan <video>`).
84
+ - **Generate on the user's keys** — `vidfarm generate image|video --prompt "…"` (BYOK primitives; `--place <dir>` drops the result straight into a composition).
85
+ - Never hotlink or scrape third-party stock; a capture workflow's own screenshots and the user's brand assets are always fair game.