mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
## Problem The Blue Sweater intro HyperFrames project was only available as a standalone exported project zip. It was not installable from the public registry or visible in the Catalog Showcases group. ## What this fixes Adds `blue-sweater-intro-video` as a registry block with its composition, avatar image, and sound mix asset. The block is exposed through the generated catalog page, `docs/public/catalog-index.json`, and the Showcases navigation. The manifest and generated catalog page credit the creator as [Joe Sai](https://x.com/_blue_sweater_). ## Root cause Catalog-visible blocks are driven by `registry/registry.json`, each block's `registry-item.json`, generated docs/catalog files, and CDN-hosted preview media. The exported project had a valid standalone composition, but it had not been converted into that registry/catalog contract or uploaded to the docs preview CDN. ## Verification ### Local checks - `bun install` - `bun run build` - `bunx tsx scripts/generate-catalog-pages.ts` - `bun run generate:catalog-previews -- --only blue-sweater-intro-video` - `bun packages/cli/src/cli.ts add blue-sweater-intro-video --dir /tmp/hf-blue-sweater-install-test --no-clipboard --json` against a locally served registry - `bun packages/cli/src/cli.ts lint /tmp/hf-blue-sweater-install-test` returned 0 errors and 3 static GSAP overlap warnings from the supplied timeline/parser path - `bun packages/cli/src/cli.ts validate /tmp/hf-blue-sweater-install-test --timeout 5000` returned 0 runtime errors and 0 warnings, with contrast audit warnings only - `bun packages/cli/src/cli.ts inspect /tmp/hf-blue-sweater-install-test --at 0.5,2.5,5.5,9.8,11.2 --json` returned 0 layout issues - `bun packages/cli/src/cli.ts render /tmp/hf-blue-sweater-install-test --output /tmp/hf-blue-sweater-install-test/blue-sweater-intro-video-render.mp4 --fps 24 --quality draft --workers 3` - `ffprobe` reported the installed render duration as `12.000000` - `bunx oxfmt --check registry/registry.json registry/blocks/blue-sweater-intro-video/registry-item.json registry/blocks/blue-sweater-intro-video/blue-sweater-intro-video.html docs/docs.json docs/public/catalog-index.json docs/catalog/blocks/blue-sweater-intro-video.mdx` - `git diff --check` - `bunx vitest run packages/cli/src/commands/add.test.ts packages/core/src/registry/types.test.ts` ### Browser verification - Started a real local HyperFrames preview for the installed test project. - Used `agent-browser` to open `http://localhost:5198/api/projects/hf-blue-sweater-install-test/preview` at 1920x1080. - Verified the runtime registered `install-test` and `blue-sweater-intro-video` timelines. - Sought the block to the final card and verified `@_blue_sweater_` and the following state were visible. - Recorded an `agent-browser`-driven full animation pass; `ffprobe` confirmed a 1920x1080 WebM with 110 video frames. - Checked the fresh `agent-browser` session for page errors after the direct preview flow: `errors: []`. - Used `agent-browser` to load an HTML page with the exact generated CDN `video`/`poster` URLs; the browser reported `readyState: 4`, `videoWidth: 1920`, `videoHeight: 1080`, and `paused: false`. ### CDN upload Uploaded the generated preview media with AWS CLI to the existing docs image bucket path: - `s3://heygen-public/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.mp4` - `s3://heygen-public/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png` Verified both public CDN URLs return `HTTP 200` with correct content type and immutable cache headers: - `https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.mp4` (`video/mp4`) - `https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png` (`image/png`) ## Notes - Local-only browser proof artifacts: - `/tmp/hf-blue-sweater-browser-proof/fresh-final-card.png` - `/tmp/hf-blue-sweater-browser-proof/fresh-browser-flow.webm` - `/tmp/hf-blue-sweater-cdn-check.png` - Local-only installed render artifact: - `/tmp/hf-blue-sweater-install-test/blue-sweater-intro-video-render.mp4`
228 lines
4.5 KiB
JSON
228 lines
4.5 KiB
JSON
{
|
|
"$schema": "https://hyperframes.heygen.com/schema/registry.json",
|
|
"name": "hyperframes",
|
|
"homepage": "https://hyperframes.heygen.com",
|
|
"items": [
|
|
{
|
|
"name": "warm-grain",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "play-mode",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "swiss-grid",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "vignelli",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "decision-tree",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "kinetic-type",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "product-promo",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "nyt-graph",
|
|
"type": "hyperframes:example"
|
|
},
|
|
{
|
|
"name": "data-chart",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "flowchart",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "logo-outro",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "grain-overlay",
|
|
"type": "hyperframes:component"
|
|
},
|
|
{
|
|
"name": "shimmer-sweep",
|
|
"type": "hyperframes:component"
|
|
},
|
|
{
|
|
"name": "grid-pixelate-wipe",
|
|
"type": "hyperframes:component"
|
|
},
|
|
{
|
|
"name": "instagram-follow",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "tiktok-follow",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "yt-lower-third",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "x-post",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "reddit-post",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "spotify-card",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "macos-notification",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "app-showcase",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "north-korea-locked-down",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "apple-money-count",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "vpn-youtube-spot",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "blue-sweater-intro-video",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "nyc-paris-flight",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "ui-3d-reveal",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "domain-warp-dissolve",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "ridged-burn",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "whip-pan",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "sdf-iris",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "ripple-waves",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "gravitational-lens",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "cinematic-zoom",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "chromatic-radial-split",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "glitch",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "swirl-vortex",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "thermal-distortion",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "flash-through-white",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "cross-warp-morph",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "light-leak",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-3d",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-blur",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-cover",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-destruction",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-dissolve",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-distortion",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-grid",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-light",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-mechanical",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-other",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-push",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-radial",
|
|
"type": "hyperframes:block"
|
|
},
|
|
{
|
|
"name": "transitions-scale",
|
|
"type": "hyperframes:block"
|
|
}
|
|
]
|
|
}
|