@koda-sl/baker-cli 0.79.0 → 0.80.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/dist/cli.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  defaultRegistry,
10
10
  generateCatalog,
11
11
  validateCanvasDeep
12
- } from "./chunk-CCO34ACK.js";
12
+ } from "./chunk-NBNUNCY7.js";
13
13
 
14
14
  // src/cli.ts
15
15
  import { defineCommand as defineCommand141, runMain } from "citty";
@@ -9200,11 +9200,19 @@ function buildOverlayHtml(input) {
9200
9200
  const blueprint = VideoBlueprint.parse(input);
9201
9201
  const blocks = [
9202
9202
  [
9203
- "<!-- \u2B07 OVERLAY LAYER \u2014 this is YOUR HTML to paint. The reference's overlays are",
9204
- " seeded below as plain elements (text + position class + data-start/data-dur).",
9205
- " Restyle freely in <style>, regroup, animate, swap a logo placeholder for a",
9206
- " real <img> you drop in this dir. The runtime only shows/hides by timestamp;",
9207
- " it makes NO styling decisions. Positions: edit the .pos-* classes or add your own. -->"
9203
+ "<!-- \u2B07 OVERLAY LAYER \u2014 this is YOUR HTML to paint, and it is a REAL Hyperframes",
9204
+ " composition (our hyperframe_render runs the genuine `npx hyperframes` renderer).",
9205
+ " The reference's overlays are seeded below as plain elements (text + position",
9206
+ " class + data-start/data-dur). Restyle freely in <style>, regroup, animate, swap a",
9207
+ " logo placeholder for a real <img> you drop in this dir. But you can do FAR more:",
9208
+ " \u2022 pull a ready-made block \u2014 `npx hyperframes add <id>` (lower-third, social card,",
9209
+ " stat counter, chart, code, logo sting) \u2014 and nest it as a",
9210
+ ' <div data-composition-src="compositions/<id>.html" data-start data-track-index ...> clip;',
9211
+ " \u2022 drive a real caption track off the transcript (karaoke / themed / kinetic);",
9212
+ " \u2022 animate with the named GSAP motion-rule vocabulary, not just fade/slide/pop;",
9213
+ " \u2022 frame a talking head as a video-call / PIP / split.",
9214
+ " See ../.claude/skills/creative-canvas-ads/references/hyperframes/ (start at README.md).",
9215
+ " Positions: edit the .pos-* classes or add your own. -->"
9208
9216
  ].join("\n")
9209
9217
  ];
9210
9218
  for (const scene of blueprint.scenes) {
@@ -9522,14 +9530,17 @@ function buildVideoTodo(report, overlayCount, floatingCount, opts, blueprint) {
9522
9530
  "The hook is VISUAL-FIRST: the feed plays muted, so scene 1's opening frame + its overlay text must read sound-off in ~1 second \u2014 don't bury the hook in the spoken line alone (meta-ads-playbook \xA739 visual-hooks-beat-audio, \xA748 the 1-second/feed-native rule)."
9523
9531
  ]
9524
9532
  },
9525
- transitions: "Scene-to-scene cuts the deconstruct flagged as fade/whip/zoom/dissolve/swipe are reproduced as an ffmpeg xfade at the boundary (everything else stays a hard cut). The overlap is consumed from extra generated footage, so the picture stays exactly on the audio timeline. To change a transition, edit the scene's `transition_out.type` in prompt.json and re-scaffold, or hand-edit the `spine` node's ffmpeg args.",
9533
+ transitions: "Scene-to-scene cuts the deconstruct flagged as fade/whip/zoom/dissolve/swipe are reproduced as an ffmpeg xfade at the boundary (everything else stays a hard cut). The overlap is consumed from extra generated footage, so the picture stays exactly on the audio timeline. To change a transition, edit the scene's `transition_out.type` in prompt.json and re-scaffold, or hand-edit the `spine` node's ffmpeg args. For a richer HERO cut (whip-pan, glitch, light-leak, gravitational-lens\u2026), the overlay layer can run a Hyperframes shader/CSS transition instead \u2014 see references/hyperframes/blueprints-and-transitions.md (pick 2\u20133 transition types total; the motion IS the handoff).",
9534
+ overlay_capabilities: 'The overlay layer (video-overlay-composition/index.html) is a REAL Hyperframes composition, not a plain text layer \u2014 our hyperframe_render node runs the genuine `npx hyperframes` renderer. So it can do far more than fade/slide/pop: (1) PULL a ready-made block \u2014 `npx hyperframes catalog --type block` then `npx hyperframes add <id>` into the composition dir, and nest it with a <div data-composition-src="compositions/<id>.html" data-start data-track-index data-width data-height> clip (~97 blocks: lower-thirds, social-proof cards, stat counters, charts, code, logo stings); (2) animate with the named GSAP motion-rule vocabulary (kinetic-beat-slam, svg-path-draw, counting-dynamic-scale, multi-phase-camera\u2026); (3) frame a talking head as a video-call/PIP/split. The whole engine + how to build new effects is documented in references/hyperframes/ (start at README.md \u2192 catalog.md, motion-rules.md). Reach for this whenever the reference\'s graphics are richer than plain text.',
9535
+ caption_system: "Sound-off feed = burned-in captions carry the message. The deconstruct produced a word-level transcript \u2014 drive a real caption track off it (karaoke highlight \u2192 themed \u2192 kinetic), not hand-typed text. Floor: `npx hyperframes add caption-highlight` (TikTok karaoke); escalate by content register (caption-kinetic-slam for hype, caption-editorial-emphasis for premium, caption-neon-glow for AI/crypto). Group on meaning, sync within 80ms. Full ladder + transcript contract: references/hyperframes/captions-and-audio.md.",
9536
+ talking_head_overlay: "For a scene where a presenter shows something (screen-share, app demo, product, a 'video call' look), frame the talking-head clip in the overlay composition: presenter full-bleed \u2192 shrinks to a rounded corner PIP pill while a content card takes the stage (or split/stack/overlay-glass-card). The pattern, the #video-wrap\u2192corner-pill tween, the glass call card, and the corner-coord presets are in references/hyperframes/talking-head-and-overlays.md. A ready exemplar ships as the `video-call-composition` move \u2014 copy it next to your canvas, drop brand fonts in the dir, point a `hyperframe_render` at it with the presenter clip as its `background`.",
9526
9537
  text_overlays: {
9527
9538
  count: overlayCount,
9528
9539
  note: "Seeded as editable HTML inside `#overlay-root` in video-overlay-composition/index.html (text + a .pos-* class + data-start/data-dur). PAINT it: restyle the CSS, build lower-thirds/tickers, drop brand-*.otf for on-brand type. The runtime only shows/hides by timestamp."
9529
9540
  },
9530
9541
  floating_elements: {
9531
9542
  count: floatingCount,
9532
- note: floatingCount > 0 ? "Seeded as commented <img> stubs in index.html (each names the `baker images icon/sticker/gif/logo` command to source it) \u2014 source the asset, drop it in video-overlay-composition/, uncomment the <img>." : "none detected by the deconstruct \u2014 see `completeness_check`, the reference may still have icons/stickers it missed."
9543
+ note: floatingCount > 0 ? "Seeded as commented <img> stubs in index.html (each names the `baker images icon/sticker/gif/logo` command to source it) \u2014 source the asset, drop it in video-overlay-composition/, uncomment the <img>. For a graphic that should ANIMATE (a lower-third, a social-proof/review card, a stat counter, a chart, a logo sting), prefer a ready-made Hyperframes block instead of a static <img>: `npx hyperframes add <id>` and nest it (see `overlay_capabilities` + references/hyperframes/catalog.md)." : "none detected by the deconstruct \u2014 see `completeness_check`, the reference may still have icons/stickers it missed."
9533
9544
  },
9534
9545
  sound_effects: {
9535
9546
  count: report.sfx_count,