@vfrey/vfrey 0.0.1 → 1.0.0-beta.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 (603) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +78 -3
  3. package/accounts.example.json +61 -0
  4. package/accounts.first-run.json +41 -0
  5. package/bin/vfrey.mjs +36 -0
  6. package/integration-tools/README.md +43 -0
  7. package/integration-tools/image/pillow.md +32 -0
  8. package/integration-tools/image/playwright.md +33 -0
  9. package/integration-tools/image/resvg.md +36 -0
  10. package/integration-tools/image/satori.md +36 -0
  11. package/integration-tools/image/sharp.md +38 -0
  12. package/integration-tools/video/blender.md +34 -0
  13. package/integration-tools/video/ffmpeg.md +41 -0
  14. package/integration-tools/video/manim.md +37 -0
  15. package/integration-tools/video/motion-canvas.md +37 -0
  16. package/integration-tools/video/remotion.md +50 -0
  17. package/integration-tools/video/revideo.md +32 -0
  18. package/package.json +74 -6
  19. package/skills/vfrey-orchestrator/SKILL.md +15 -0
  20. package/skills/vfrey-orchestrator/channel-video/SKILL.md +41 -0
  21. package/skills/vfrey-product/SKILL.md +63 -0
  22. package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/cook-one.svg +14 -0
  23. package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/cook-two.svg +22 -0
  24. package/skills/vfrey-product/examples/concurrency-vs-parallelism/framey/index.html +70 -0
  25. package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/cook-one.svg +14 -0
  26. package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/cook-two.svg +22 -0
  27. package/skills/vfrey-product/examples/concurrency-vs-parallelism/remotion/index.tsx +49 -0
  28. package/skills/vfrey-product/examples/concurrency-vs-parallelism/script.json +15 -0
  29. package/skills/vfrey-product/examples/octopus-facts/index.html +60 -0
  30. package/skills/vfrey-product/examples/octopus-facts/octopus.svg +8 -0
  31. package/skills/vfrey-product/examples/octopus-facts/script.json +14 -0
  32. package/skills/vfrey-product/push/SKILL.md +15 -0
  33. package/skills/vfrey-product/scenes/NOTICE +5 -0
  34. package/skills/vfrey-product/scenes/blocks.md +57 -0
  35. package/skills/vfrey-product/scenes/craft.md +118 -0
  36. package/skills/vfrey-product/scenes/motion.md +88 -0
  37. package/src/analytics/dashboard.ts +109 -0
  38. package/src/analytics/index.ts +260 -0
  39. package/src/api/client.ts +282 -0
  40. package/src/api/commands.ts +330 -0
  41. package/src/api/config.ts +34 -0
  42. package/src/api/creators.ts +463 -0
  43. package/src/api/credentials.ts +152 -0
  44. package/src/api/mail.ts +333 -0
  45. package/src/api/topics.ts +207 -0
  46. package/src/api/types.ts +205 -0
  47. package/src/cli.ts +467 -0
  48. package/src/cloud/executor.ts +281 -0
  49. package/src/cloud/job.ts +106 -0
  50. package/src/cloud/render-job.ts +187 -0
  51. package/src/config.ts +309 -0
  52. package/src/dashboard-link.ts +180 -0
  53. package/src/dashboard-start.ts +103 -0
  54. package/src/desk/channel.ts +64 -0
  55. package/src/desk/cli.ts +216 -0
  56. package/src/desk/creators-route.ts +129 -0
  57. package/src/desk/fonts/JetBrainsMono-OFL.txt +93 -0
  58. package/src/desk/fonts/google-sans-flex-latin.woff2 +0 -0
  59. package/src/desk/fonts/jetbrains-mono-medium.woff2 +0 -0
  60. package/src/desk/http.ts +460 -0
  61. package/src/desk/mail-route.ts +103 -0
  62. package/src/desk/overlay.ts +112 -0
  63. package/src/desk/preview.ts +422 -0
  64. package/src/desk/screens.ts +149 -0
  65. package/src/desk/secrets.ts +143 -0
  66. package/src/desk/series.ts +127 -0
  67. package/src/desk/state.ts +77 -0
  68. package/src/desk/studio-route.ts +119 -0
  69. package/src/desk/tick-runner.ts +66 -0
  70. package/src/desk/tick.ts +56 -0
  71. package/src/desk/topics-route.ts +41 -0
  72. package/src/desk/ui/app.css +505 -0
  73. package/src/desk/ui/app.js +185 -0
  74. package/src/desk/ui/apple-icon.png +0 -0
  75. package/src/desk/ui/components.js +79 -0
  76. package/src/desk/ui/core.js +156 -0
  77. package/src/desk/ui/favicon.ico +0 -0
  78. package/src/desk/ui/icon.svg +1 -0
  79. package/src/desk/ui/icons.js +49 -0
  80. package/src/desk/ui/index.html +41 -0
  81. package/src/desk/ui/metrics-math.d.ts +22 -0
  82. package/src/desk/ui/metrics-math.js +135 -0
  83. package/src/desk/ui/theme.js +5 -0
  84. package/src/desk/ui/views-creators.js +209 -0
  85. package/src/desk/ui/views-keys.js +114 -0
  86. package/src/desk/ui/views-mail.js +188 -0
  87. package/src/desk/ui/views-misc.js +123 -0
  88. package/src/desk/ui/views-review.js +119 -0
  89. package/src/desk/ui/views-runs.js +350 -0
  90. package/src/desk/ui/views-screens.js +163 -0
  91. package/src/desk/ui/views-series.js +318 -0
  92. package/src/desk/ui/views-topics.js +87 -0
  93. package/src/desk/verbs.ts +361 -0
  94. package/src/doctor.ts +212 -0
  95. package/src/drain.ts +14 -0
  96. package/src/engage/index.ts +217 -0
  97. package/src/generate/index.ts +110 -0
  98. package/src/generate/script.ts +152 -0
  99. package/src/generate/title.ts +78 -0
  100. package/src/help.ts +233 -0
  101. package/src/home.ts +45 -0
  102. package/src/llm/client.ts +177 -0
  103. package/src/log.ts +7 -0
  104. package/src/oauth/tokens.ts +189 -0
  105. package/src/oauth/vault.ts +72 -0
  106. package/src/pipeline/review.ts +642 -0
  107. package/src/pipeline/run.ts +443 -0
  108. package/src/pipeline/series-guard.ts +26 -0
  109. package/src/pipeline/source-fetch.ts +69 -0
  110. package/src/pipeline/stages.ts +728 -0
  111. package/src/pipeline/topics-source.ts +90 -0
  112. package/src/product/commands.ts +296 -0
  113. package/src/product/config-file.ts +38 -0
  114. package/src/product/engine-choice.ts +89 -0
  115. package/src/product/engines.ts +103 -0
  116. package/src/product/insights.ts +50 -0
  117. package/src/product/keys.ts +67 -0
  118. package/src/product/paths.ts +18 -0
  119. package/src/product/probes.ts +88 -0
  120. package/src/product/push-flow.ts +90 -0
  121. package/src/product/render-video.ts +21 -0
  122. package/src/product/short.ts +62 -0
  123. package/src/product/update.ts +32 -0
  124. package/src/project/canonical.ts +14 -0
  125. package/src/project/commands.ts +177 -0
  126. package/src/project/dashboard-status.ts +28 -0
  127. package/src/project/discover.ts +19 -0
  128. package/src/project/index-file.ts +73 -0
  129. package/src/project/marker.ts +87 -0
  130. package/src/project/migrate.ts +201 -0
  131. package/src/project/names.ts +27 -0
  132. package/src/project/notice.ts +16 -0
  133. package/src/project/open.ts +88 -0
  134. package/src/project/scaffold.ts +112 -0
  135. package/src/project/templates.ts +42 -0
  136. package/src/project/videos.ts +64 -0
  137. package/src/publish/facebook.ts +91 -0
  138. package/src/publish/index.ts +12 -0
  139. package/src/publish/instagram.ts +97 -0
  140. package/src/publish/rate.ts +62 -0
  141. package/src/publish/session.ts +242 -0
  142. package/src/publish/tiktok.ts +202 -0
  143. package/src/publish/youtube.ts +177 -0
  144. package/src/queue/desk-ops.ts +1170 -0
  145. package/src/queue/seal.ts +3 -0
  146. package/src/queue/store.ts +1006 -0
  147. package/src/remotion/AiLabel.tsx +26 -0
  148. package/src/remotion/Root.tsx +73 -0
  149. package/src/remotion/defaults.ts +26 -0
  150. package/src/remotion/films/claude/ClaudeFilm.tsx +1014 -0
  151. package/src/remotion/films/engine/EngineMark.tsx +17 -0
  152. package/src/remotion/films/rea/ReaShort.tsx +552 -0
  153. package/src/remotion/films/rea/drawings.tsx +907 -0
  154. package/src/remotion/films/rea/timing.ts +144 -0
  155. package/src/remotion/index.ts +4 -0
  156. package/src/remotion/templates/EditorialSplit.tsx +39 -0
  157. package/src/remotion/templates/KineticType.tsx +39 -0
  158. package/src/remotion/templates/SignalBoard.tsx +50 -0
  159. package/src/remotion/timing.ts +22 -0
  160. package/src/render/chrome.ts +78 -0
  161. package/src/render/engine-mark.ts +29 -0
  162. package/src/render/framey-template.ts +130 -0
  163. package/src/render/html-engine.ts +149 -0
  164. package/src/render/node-crypto-stub.ts +11 -0
  165. package/src/render/probe.ts +29 -0
  166. package/src/render/props.ts +17 -0
  167. package/src/render/vertical-short.ts +35 -0
  168. package/src/render/webpack.ts +33 -0
  169. package/src/render/worker.ts +65 -0
  170. package/src/scene/assets/fonts/TitanOne-OFL.txt +94 -0
  171. package/src/scene/assets/fonts/titan-one.woff2 +0 -0
  172. package/src/scene/assets/gsap/LICENSE.txt +8 -0
  173. package/src/scene/assets/gsap/gsap.min.js +11 -0
  174. package/src/scene/audio.ts +54 -0
  175. package/src/scene/blocks/LICENSE +190 -0
  176. package/src/scene/blocks/NOTICE +5 -0
  177. package/src/scene/blocks/bar-chart-race/bar-chart-race.html +585 -0
  178. package/src/scene/blocks/beat-freeze-cut/beat-freeze-cut.html +874 -0
  179. package/src/scene/blocks/camcorder-hud/camcorder-hud.html +164 -0
  180. package/src/scene/blocks/camera-dolly-zoom/camera-dolly-zoom.html +355 -0
  181. package/src/scene/blocks/code-diff/code-diff.html +817 -0
  182. package/src/scene/blocks/code-snippet-apple-terminal-pro/code-snippet-apple-terminal-pro.html +248 -0
  183. package/src/scene/blocks/code-typing/code-typing.html +764 -0
  184. package/src/scene/blocks/data-chart/data-chart.html +452 -0
  185. package/src/scene/blocks/flowchart-vertical/flowchart-vertical.html +454 -0
  186. package/src/scene/blocks/hw-scribble-transition/hw-scribble-transition.html +153 -0
  187. package/src/scene/blocks/index.json +824 -0
  188. package/src/scene/blocks/lt-accent-underline/lt-accent-underline.html +107 -0
  189. package/src/scene/blocks/lt-bold-block/lt-bold-block.html +109 -0
  190. package/src/scene/blocks/lt-clean-bar/lt-clean-bar.html +112 -0
  191. package/src/scene/blocks/lt-dark-card/lt-dark-card.html +111 -0
  192. package/src/scene/blocks/lt-kicker-name/lt-kicker-name.html +114 -0
  193. package/src/scene/blocks/lt-mask-reveal/lt-mask-reveal.html +120 -0
  194. package/src/scene/blocks/lt-neon-border/lt-neon-border.html +391 -0
  195. package/src/scene/blocks/lt-stack-bars/lt-stack-bars.html +109 -0
  196. package/src/scene/blocks/macos-notification/macos-notification.html +194 -0
  197. package/src/scene/blocks/mk-background/mk-background.html +236 -0
  198. package/src/scene/blocks/mk-callout-highlight/mk-callout-highlight.html +183 -0
  199. package/src/scene/blocks/mk-clone-wall-transition/mk-clone-wall-transition.html +226 -0
  200. package/src/scene/blocks/mk-line-graph/mk-line-graph.html +293 -0
  201. package/src/scene/blocks/mk-progress-stat/mk-progress-stat.html +186 -0
  202. package/src/scene/blocks/mk-specs-list/mk-specs-list.html +223 -0
  203. package/src/scene/blocks/news-ticker/news-ticker.html +409 -0
  204. package/src/scene/blocks/organic-light-leak-overlay/organic-light-leak-overlay.html +126 -0
  205. package/src/scene/blocks/oscilloscope-trace/oscilloscope-trace.html +519 -0
  206. package/src/scene/blocks/snow/snow.html +205 -0
  207. package/src/scene/blocks/split-flap-board/split-flap-board.html +347 -0
  208. package/src/scene/blocks/spotify-card/spotify-card.html +294 -0
  209. package/src/scene/blocks/starfield/starfield.html +188 -0
  210. package/src/scene/blocks/thread-message-stack/thread-message-stack.html +239 -0
  211. package/src/scene/blocks/week-in-merges/week-in-merges.html +470 -0
  212. package/src/scene/blocks/x-post/x-post.html +437 -0
  213. package/src/scene/blocks/yt-comment-card/yt-comment-card.html +319 -0
  214. package/src/scene/blocks/yt-lcd-background/yt-lcd-background.html +307 -0
  215. package/src/scene/blocks/yt-prism-title/yt-prism-title.html +205 -0
  216. package/src/scene/blocks.ts +229 -0
  217. package/src/scene/command.ts +272 -0
  218. package/src/scene/figure.ts +181 -0
  219. package/src/scene/glyphs.ts +107 -0
  220. package/src/scene/init.ts +86 -0
  221. package/src/scene/inspect/css-tree.d.ts +6 -0
  222. package/src/scene/inspect/page-scripts.ts +272 -0
  223. package/src/scene/inspect/report.ts +405 -0
  224. package/src/scene/inspect/run.ts +200 -0
  225. package/src/scene/inspect/source.ts +236 -0
  226. package/src/scene/label.ts +131 -0
  227. package/src/scene/net-guard.ts +74 -0
  228. package/src/scene/render.ts +292 -0
  229. package/src/scene/runtime/browser.ts +199 -0
  230. package/src/scene/runtime/core.ts +181 -0
  231. package/src/scene/runtime/react.tsx +115 -0
  232. package/src/scene/runtime/transitions.ts +133 -0
  233. package/src/scene/sanitize.ts +181 -0
  234. package/src/scene/scene.ts +152 -0
  235. package/src/scene/studio-command.ts +48 -0
  236. package/src/scene/studio-skin.ts +59 -0
  237. package/src/scene/studio.ts +337 -0
  238. package/src/scene/supply.ts +111 -0
  239. package/src/scene/timing.ts +288 -0
  240. package/src/scene/transitions/LICENSE +190 -0
  241. package/src/scene/transitions/NOTICE +5 -0
  242. package/src/scene/transitions/SOURCE.json +24 -0
  243. package/src/scene/transitions/transitions.global.js +38 -0
  244. package/src/scene/transitions.ts +26 -0
  245. package/src/service/all-projects.ts +153 -0
  246. package/src/service/commands.ts +256 -0
  247. package/src/service/due.ts +82 -0
  248. package/src/service/lock.ts +101 -0
  249. package/src/service/log-file.ts +56 -0
  250. package/src/service/state.ts +41 -0
  251. package/src/service/units.ts +90 -0
  252. package/src/service/worker.ts +51 -0
  253. package/src/skill-agents.ts +74 -0
  254. package/src/skill-install.ts +334 -0
  255. package/src/sync-write.ts +21 -0
  256. package/src/tick-report.ts +205 -0
  257. package/src/tts.ts +124 -0
  258. package/vendor/@vfrey/contracts/dist/account.d.ts +97 -0
  259. package/vendor/@vfrey/contracts/dist/account.js +27 -0
  260. package/vendor/@vfrey/contracts/dist/checks.d.ts +8 -0
  261. package/vendor/@vfrey/contracts/dist/checks.js +1 -0
  262. package/vendor/@vfrey/contracts/dist/credentials/crypto.d.ts +4 -0
  263. package/vendor/@vfrey/contracts/dist/credentials/crypto.js +38 -0
  264. package/vendor/@vfrey/contracts/dist/domain/advice-persona.d.ts +10 -0
  265. package/vendor/@vfrey/contracts/dist/domain/advice-persona.js +24 -0
  266. package/vendor/@vfrey/contracts/dist/domain/backoff.d.ts +13 -0
  267. package/vendor/@vfrey/contracts/dist/domain/backoff.js +27 -0
  268. package/vendor/@vfrey/contracts/dist/domain/cadence.d.ts +29 -0
  269. package/vendor/@vfrey/contracts/dist/domain/cadence.js +95 -0
  270. package/vendor/@vfrey/contracts/dist/domain/creators.d.ts +146 -0
  271. package/vendor/@vfrey/contracts/dist/domain/creators.js +2 -0
  272. package/vendor/@vfrey/contracts/dist/domain/disclosure.d.ts +127 -0
  273. package/vendor/@vfrey/contracts/dist/domain/disclosure.js +250 -0
  274. package/vendor/@vfrey/contracts/dist/domain/errors.d.ts +34 -0
  275. package/vendor/@vfrey/contracts/dist/domain/errors.js +68 -0
  276. package/vendor/@vfrey/contracts/dist/domain/redact.d.ts +1 -0
  277. package/vendor/@vfrey/contracts/dist/domain/redact.js +21 -0
  278. package/vendor/@vfrey/contracts/dist/domain/revenue.d.ts +13 -0
  279. package/vendor/@vfrey/contracts/dist/domain/revenue.js +16 -0
  280. package/vendor/@vfrey/contracts/dist/domain/safety.d.ts +20 -0
  281. package/vendor/@vfrey/contracts/dist/domain/safety.js +61 -0
  282. package/vendor/@vfrey/contracts/dist/domain/similarity.d.ts +13 -0
  283. package/vendor/@vfrey/contracts/dist/domain/similarity.js +100 -0
  284. package/vendor/@vfrey/contracts/dist/domain/templates.d.ts +18 -0
  285. package/vendor/@vfrey/contracts/dist/domain/templates.js +67 -0
  286. package/vendor/@vfrey/contracts/dist/domain/tiktok-chunks.d.ts +19 -0
  287. package/vendor/@vfrey/contracts/dist/domain/tiktok-chunks.js +52 -0
  288. package/vendor/@vfrey/contracts/dist/domain/topics.d.ts +78 -0
  289. package/vendor/@vfrey/contracts/dist/domain/topics.js +4 -0
  290. package/vendor/@vfrey/contracts/dist/domain/types.d.ts +216 -0
  291. package/vendor/@vfrey/contracts/dist/domain/types.js +1 -0
  292. package/vendor/@vfrey/contracts/dist/domain/variation.d.ts +57 -0
  293. package/vendor/@vfrey/contracts/dist/domain/variation.js +278 -0
  294. package/vendor/@vfrey/contracts/dist/events.d.ts +20 -0
  295. package/vendor/@vfrey/contracts/dist/events.js +1 -0
  296. package/vendor/@vfrey/contracts/dist/http.d.ts +11 -0
  297. package/vendor/@vfrey/contracts/dist/http.js +37 -0
  298. package/vendor/@vfrey/contracts/dist/index.d.ts +22 -0
  299. package/vendor/@vfrey/contracts/dist/index.js +22 -0
  300. package/vendor/@vfrey/contracts/dist/log.d.ts +2 -0
  301. package/vendor/@vfrey/contracts/dist/log.js +10 -0
  302. package/vendor/@vfrey/contracts/dist/mail.d.ts +55 -0
  303. package/vendor/@vfrey/contracts/dist/mail.js +1 -0
  304. package/vendor/@vfrey/contracts/package.json +18 -0
  305. package/vendor/@vfrey/ingest/dist/index.d.ts +41 -0
  306. package/vendor/@vfrey/ingest/dist/index.js +221 -0
  307. package/vendor/@vfrey/ingest/dist/parse.d.ts +5 -0
  308. package/vendor/@vfrey/ingest/dist/parse.js +165 -0
  309. package/vendor/@vfrey/ingest/package.json +21 -0
  310. package/vendor/framey/LICENSE +190 -0
  311. package/vendor/framey/NOTICE +15 -0
  312. package/vendor/framey/SOURCE.json +24 -0
  313. package/vendor/framey/STUDIO-SOURCE.json +9 -0
  314. package/vendor/framey/bin/framey-localize-fonts.mjs +12 -0
  315. package/vendor/framey/bin/framey.mjs +16 -0
  316. package/vendor/framey/dist/add-VMJD5KBS.js +75 -0
  317. package/vendor/framey/dist/animatedGifPrep-QPKGJ6PM.js +43 -0
  318. package/vendor/framey/dist/api.d.ts +211 -0
  319. package/vendor/framey/dist/api.js +76 -0
  320. package/vendor/framey/dist/appHistory-WW56FZTT.js +31 -0
  321. package/vendor/framey/dist/asset-WQKGOELE.js +26 -0
  322. package/vendor/framey/dist/audio-RSJWVWRA.js +1936 -0
  323. package/vendor/framey/dist/batchRender-3HPICDCT.js +366 -0
  324. package/vendor/framey/dist/beats-HL2BDUZI.js +273 -0
  325. package/vendor/framey/dist/benchmark-RWCWHI5Z.js +230 -0
  326. package/vendor/framey/dist/browser-ECYET3Q2.js +206 -0
  327. package/vendor/framey/dist/bundleWithLocalizedFonts-ALYBQEQT.js +52 -0
  328. package/vendor/framey/dist/captureCompositionFrame-4DA6SEH2.js +94 -0
  329. package/vendor/framey/dist/catalog-5JVDEUWK.js +979 -0
  330. package/vendor/framey/dist/catch-up-NEBCL5NO.js +106 -0
  331. package/vendor/framey/dist/check-F5N544ML.js +111 -0
  332. package/vendor/framey/dist/checkBrowser-LZ66CMJG.js +110 -0
  333. package/vendor/framey/dist/chunk-2K7Z2HVP.js +372 -0
  334. package/vendor/framey/dist/chunk-2UZQHDM7.js +323 -0
  335. package/vendor/framey/dist/chunk-2X4PQEYM.js +34 -0
  336. package/vendor/framey/dist/chunk-3422KMTD.js +168 -0
  337. package/vendor/framey/dist/chunk-3FYD4YEK.js +72 -0
  338. package/vendor/framey/dist/chunk-3GXQPCJC.js +682 -0
  339. package/vendor/framey/dist/chunk-3LM6YPBR.js +179 -0
  340. package/vendor/framey/dist/chunk-442JNXRM.js +20 -0
  341. package/vendor/framey/dist/chunk-4BNN5FGX.js +182 -0
  342. package/vendor/framey/dist/chunk-4P7NX5BM.js +11532 -0
  343. package/vendor/framey/dist/chunk-4UMPIPCQ.js +88 -0
  344. package/vendor/framey/dist/chunk-4YYJOFKS.js +28 -0
  345. package/vendor/framey/dist/chunk-54HJ63Q2.js +29 -0
  346. package/vendor/framey/dist/chunk-5ETJX6WM.js +89 -0
  347. package/vendor/framey/dist/chunk-5SG54JRS.js +68 -0
  348. package/vendor/framey/dist/chunk-634HSJ3J.js +58 -0
  349. package/vendor/framey/dist/chunk-66LREXGS.js +48 -0
  350. package/vendor/framey/dist/chunk-6BEFEWFB.js +25 -0
  351. package/vendor/framey/dist/chunk-6BNTGNGD.js +286 -0
  352. package/vendor/framey/dist/chunk-6DDPOHMK.js +140 -0
  353. package/vendor/framey/dist/chunk-6GV5XSOR.js +214 -0
  354. package/vendor/framey/dist/chunk-6JR2XUEE.js +127 -0
  355. package/vendor/framey/dist/chunk-73QVATIM.js +362 -0
  356. package/vendor/framey/dist/chunk-7FMUTGOH.js +279 -0
  357. package/vendor/framey/dist/chunk-7JQFJ6JJ.js +291 -0
  358. package/vendor/framey/dist/chunk-AHPGAESX.js +113 -0
  359. package/vendor/framey/dist/chunk-AHX34EFP.js +15 -0
  360. package/vendor/framey/dist/chunk-AJ5CSAEZ.js +487 -0
  361. package/vendor/framey/dist/chunk-B7RJV74O.js +5047 -0
  362. package/vendor/framey/dist/chunk-BL4U6U52.js +254 -0
  363. package/vendor/framey/dist/chunk-BSQ7XANM.js +210 -0
  364. package/vendor/framey/dist/chunk-BZ56MTDX.js +6 -0
  365. package/vendor/framey/dist/chunk-C5BO7PMT.js +282 -0
  366. package/vendor/framey/dist/chunk-CFUCHO4T.js +358 -0
  367. package/vendor/framey/dist/chunk-CZGHFATT.js +31 -0
  368. package/vendor/framey/dist/chunk-DLA44CMS.js +5649 -0
  369. package/vendor/framey/dist/chunk-DPVXBVLL.js +31292 -0
  370. package/vendor/framey/dist/chunk-DQBY7FRR.js +397 -0
  371. package/vendor/framey/dist/chunk-EAMLBAHA.js +154 -0
  372. package/vendor/framey/dist/chunk-EOVYQ3IG.js +143 -0
  373. package/vendor/framey/dist/chunk-EVMY7IPL.js +612 -0
  374. package/vendor/framey/dist/chunk-FG4BBFZI.js +122 -0
  375. package/vendor/framey/dist/chunk-FI4I7CME.js +56 -0
  376. package/vendor/framey/dist/chunk-FLREUEHW.js +2081 -0
  377. package/vendor/framey/dist/chunk-FUFP7A7S.js +1126 -0
  378. package/vendor/framey/dist/chunk-FV3PIKGH.js +56 -0
  379. package/vendor/framey/dist/chunk-FXMKHHPO.js +123 -0
  380. package/vendor/framey/dist/chunk-GGZAM5VH.js +1187 -0
  381. package/vendor/framey/dist/chunk-GKZEVJIB.js +39 -0
  382. package/vendor/framey/dist/chunk-GMECXFAN.js +57 -0
  383. package/vendor/framey/dist/chunk-GNEFDLFB.js +621 -0
  384. package/vendor/framey/dist/chunk-GPMLSOEG.js +19274 -0
  385. package/vendor/framey/dist/chunk-GPYVT5EE.js +59 -0
  386. package/vendor/framey/dist/chunk-H6IEMZEV.js +40 -0
  387. package/vendor/framey/dist/chunk-HEFQCIXR.js +170 -0
  388. package/vendor/framey/dist/chunk-HFQ4CWHA.js +118 -0
  389. package/vendor/framey/dist/chunk-HPDTCOKE.js +304 -0
  390. package/vendor/framey/dist/chunk-HTUHQKDB.js +548 -0
  391. package/vendor/framey/dist/chunk-HU2SPFNG.js +103 -0
  392. package/vendor/framey/dist/chunk-HVW7ABXD.js +19 -0
  393. package/vendor/framey/dist/chunk-IG7NDKXO.js +26 -0
  394. package/vendor/framey/dist/chunk-II3J3WXK.js +246 -0
  395. package/vendor/framey/dist/chunk-IR35BCLK.js +13 -0
  396. package/vendor/framey/dist/chunk-ISN5GRYI.js +20 -0
  397. package/vendor/framey/dist/chunk-IUONB55J.js +669 -0
  398. package/vendor/framey/dist/chunk-IVSUQR2B.js +161 -0
  399. package/vendor/framey/dist/chunk-IXU6PQSW.js +259 -0
  400. package/vendor/framey/dist/chunk-IZCW2NKT.js +29 -0
  401. package/vendor/framey/dist/chunk-JGXJU5PF.js +68 -0
  402. package/vendor/framey/dist/chunk-JHOCK3DG.js +27 -0
  403. package/vendor/framey/dist/chunk-JVBRJMOP.js +121 -0
  404. package/vendor/framey/dist/chunk-K4MJX7SR.js +17 -0
  405. package/vendor/framey/dist/chunk-K4WKGXRC.js +18 -0
  406. package/vendor/framey/dist/chunk-KGPLIH7B.js +127 -0
  407. package/vendor/framey/dist/chunk-KLIKCX6Q.js +63 -0
  408. package/vendor/framey/dist/chunk-KXTKKBOC.js +61 -0
  409. package/vendor/framey/dist/chunk-KZI44OPA.js +185 -0
  410. package/vendor/framey/dist/chunk-LEKZNRKI.js +45 -0
  411. package/vendor/framey/dist/chunk-LFGJWOVA.js +61 -0
  412. package/vendor/framey/dist/chunk-LLMSX6V6.js +17 -0
  413. package/vendor/framey/dist/chunk-LTGTN2TH.js +195 -0
  414. package/vendor/framey/dist/chunk-M2WBOQ2Q.js +54 -0
  415. package/vendor/framey/dist/chunk-MI5FTLYK.js +399 -0
  416. package/vendor/framey/dist/chunk-MLQP2QUF.js +1809 -0
  417. package/vendor/framey/dist/chunk-MMQ52NIZ.js +956 -0
  418. package/vendor/framey/dist/chunk-ND46XKK3.js +742 -0
  419. package/vendor/framey/dist/chunk-NYEXNSHM.js +504 -0
  420. package/vendor/framey/dist/chunk-O4YRB27L.js +57 -0
  421. package/vendor/framey/dist/chunk-O7BGSQ5F.js +92 -0
  422. package/vendor/framey/dist/chunk-OFQWTKPW.js +117 -0
  423. package/vendor/framey/dist/chunk-P5ZBLXJ6.js +91 -0
  424. package/vendor/framey/dist/chunk-P6LJ4Y32.js +4662 -0
  425. package/vendor/framey/dist/chunk-PKZ7RK5N.js +281 -0
  426. package/vendor/framey/dist/chunk-PURHAXFL.js +15 -0
  427. package/vendor/framey/dist/chunk-Q5X2B5WT.js +29 -0
  428. package/vendor/framey/dist/chunk-QAMKOG67.js +248 -0
  429. package/vendor/framey/dist/chunk-R6YBK4XX.js +514 -0
  430. package/vendor/framey/dist/chunk-RGLQURIX.js +2997 -0
  431. package/vendor/framey/dist/chunk-RNV3DM4S.js +3573 -0
  432. package/vendor/framey/dist/chunk-ROEW726S.js +4638 -0
  433. package/vendor/framey/dist/chunk-RQVDTPGD.js +6 -0
  434. package/vendor/framey/dist/chunk-RVZHGOGR.js +26 -0
  435. package/vendor/framey/dist/chunk-RXATE6FZ.js +385 -0
  436. package/vendor/framey/dist/chunk-S3S4TGEH.js +424 -0
  437. package/vendor/framey/dist/chunk-SDYDNHEE.js +11202 -0
  438. package/vendor/framey/dist/chunk-SSWBU67I.js +173 -0
  439. package/vendor/framey/dist/chunk-ST35C4K6.js +28 -0
  440. package/vendor/framey/dist/chunk-SZNTYTIV.js +990 -0
  441. package/vendor/framey/dist/chunk-T2EUWCJE.js +29 -0
  442. package/vendor/framey/dist/chunk-T6AGUTZJ.js +444 -0
  443. package/vendor/framey/dist/chunk-THJALHFJ.js +11131 -0
  444. package/vendor/framey/dist/chunk-TIQB63MX.js +18128 -0
  445. package/vendor/framey/dist/chunk-U242RTCT.js +134 -0
  446. package/vendor/framey/dist/chunk-UJZREAV6.js +3901 -0
  447. package/vendor/framey/dist/chunk-UMD3V7CU.js +264 -0
  448. package/vendor/framey/dist/chunk-UOFAE5RF.js +42 -0
  449. package/vendor/framey/dist/chunk-UTEIUGAZ.js +29 -0
  450. package/vendor/framey/dist/chunk-VAS6HQX3.js +138 -0
  451. package/vendor/framey/dist/chunk-VC76R6W2.js +27 -0
  452. package/vendor/framey/dist/chunk-VFZ7W5W7.js +226 -0
  453. package/vendor/framey/dist/chunk-VHNLZAE2.js +348 -0
  454. package/vendor/framey/dist/chunk-VMC4WSH5.js +278 -0
  455. package/vendor/framey/dist/chunk-VORQIH64.js +108 -0
  456. package/vendor/framey/dist/chunk-VTXFRIHO.js +186 -0
  457. package/vendor/framey/dist/chunk-W2LGJSEN.js +182 -0
  458. package/vendor/framey/dist/chunk-WKBM7NDG.js +32 -0
  459. package/vendor/framey/dist/chunk-WMQNIQDJ.js +2057 -0
  460. package/vendor/framey/dist/chunk-WN4XZC5F.js +504 -0
  461. package/vendor/framey/dist/chunk-WQ6ZXHFQ.js +133 -0
  462. package/vendor/framey/dist/chunk-X7HBSTCZ.js +53 -0
  463. package/vendor/framey/dist/chunk-X7MTZ4T2.js +6 -0
  464. package/vendor/framey/dist/chunk-XPTOJZJF.js +308 -0
  465. package/vendor/framey/dist/chunk-XT6MXC7A.js +6 -0
  466. package/vendor/framey/dist/chunk-XT7X6QCP.js +6 -0
  467. package/vendor/framey/dist/chunk-XTMDWNEC.js +2820 -0
  468. package/vendor/framey/dist/chunk-XUHOIDKG.js +6 -0
  469. package/vendor/framey/dist/chunk-XX7LTW5Y.js +138 -0
  470. package/vendor/framey/dist/chunk-Y3YGTZEG.js +382 -0
  471. package/vendor/framey/dist/chunk-Y5SBSGN7.js +346 -0
  472. package/vendor/framey/dist/chunk-YCMVI4MZ.js +625 -0
  473. package/vendor/framey/dist/chunk-YOR4CTCE.js +261 -0
  474. package/vendor/framey/dist/chunk-YPRBGITP.js +2748 -0
  475. package/vendor/framey/dist/chunk-ZKDMAOFU.js +32 -0
  476. package/vendor/framey/dist/chunk-ZW6DURPF.js +1318 -0
  477. package/vendor/framey/dist/clean-ZJOGDKDM.js +336 -0
  478. package/vendor/framey/dist/cli.js +439 -0
  479. package/vendor/framey/dist/cloudrun-HGJ3B6ZV.js +767 -0
  480. package/vendor/framey/dist/commands/contrast-audit.browser.js +643 -0
  481. package/vendor/framey/dist/commands/layout-audit.browser.js +2914 -0
  482. package/vendor/framey/dist/commands/motion-sample.browser.js +74 -0
  483. package/vendor/framey/dist/commands/motion-signature.browser.js +475 -0
  484. package/vendor/framey/dist/compare-W7UY3BAZ.js +463 -0
  485. package/vendor/framey/dist/compiler-TM3W6GYF.js +136 -0
  486. package/vendor/framey/dist/component-QF5VGYMU.js +176 -0
  487. package/vendor/framey/dist/compositions-XT3PMNDF.js +238 -0
  488. package/vendor/framey/dist/contactSheet-7W6GYHBQ.js +24 -0
  489. package/vendor/framey/dist/deploy-6FJPWKF2.js +299 -0
  490. package/vendor/framey/dist/destroy-HE2RIPKZ.js +57 -0
  491. package/vendor/framey/dist/deterministicFonts-RADD3BSX.js +50 -0
  492. package/vendor/framey/dist/dist-4S2FGGVY.js +422 -0
  493. package/vendor/framey/dist/dist-BE4B2EZE.js +32 -0
  494. package/vendor/framey/dist/dist-EWXJGN63.js +129 -0
  495. package/vendor/framey/dist/docs-VKIRFEEX.js +131 -0
  496. package/vendor/framey/dist/doctor-2UNJ2G7U.js +74 -0
  497. package/vendor/framey/dist/dom-37K6YOH4.js +14 -0
  498. package/vendor/framey/dist/dotEnv-7PZQTVIM.js +54 -0
  499. package/vendor/framey/dist/events-ACY3P2PA.js +76 -0
  500. package/vendor/framey/dist/events-IHB3B2MK.js +69 -0
  501. package/vendor/framey/dist/ffmpeg-DR5LGGSK.js +63 -0
  502. package/vendor/framey/dist/figma-BODVUPHB.js +63 -0
  503. package/vendor/framey/dist/fontData.generated-NXAOI4GH.js +13 -0
  504. package/vendor/framey/dist/fontLocalizeCli.js +142 -0
  505. package/vendor/framey/dist/gpuPolicy-XLEXORZY.js +49 -0
  506. package/vendor/framey/dist/grade-compare-GAXFQ74C.js +661 -0
  507. package/vendor/framey/dist/gsapParser-IEUSLYDJ.js +2885 -0
  508. package/vendor/framey/dist/gsapParserAcorn-LZJKCFQI.js +30 -0
  509. package/vendor/framey/dist/help-VCB5X2HS.js +184 -0
  510. package/vendor/framey/dist/history-ENGZEVFT.js +471 -0
  511. package/vendor/framey/dist/hyperframe.manifest.json +22 -0
  512. package/vendor/framey/dist/hyperframe.runtime.iife.js +1132 -0
  513. package/vendor/framey/dist/hyperframes-player.global.js +478 -0
  514. package/vendor/framey/dist/hyperframes-slideshow.global.js +148 -0
  515. package/vendor/framey/dist/info-WPCJHBMU.js +182 -0
  516. package/vendor/framey/dist/init-G4WGLYGD.js +1176 -0
  517. package/vendor/framey/dist/inspect-5IQ6CNEQ.js +106 -0
  518. package/vendor/framey/dist/installer-ML4HWUV7.js +40 -0
  519. package/vendor/framey/dist/keyframes-Q6XJO7VW.js +2755 -0
  520. package/vendor/framey/dist/lambda-A7JC74JF.js +468 -0
  521. package/vendor/framey/dist/layout-YET6XNXA.js +95 -0
  522. package/vendor/framey/dist/lint-I7FZN2VJ.js +162 -0
  523. package/vendor/framey/dist/lintProject-PDB3UN72.js +30 -0
  524. package/vendor/framey/dist/manager-CD6LJ7ZN.js +45 -0
  525. package/vendor/framey/dist/manager-WA4F2GST.js +67 -0
  526. package/vendor/framey/dist/media-treatment-BXYS4WVA.js +1030 -0
  527. package/vendor/framey/dist/media-use-LWH3MANK.js +113 -0
  528. package/vendor/framey/dist/models-K363FYM4.js +195 -0
  529. package/vendor/framey/dist/motionShot-GPAVWXLH.js +640 -0
  530. package/vendor/framey/dist/normalize-FASIPBUM.js +24 -0
  531. package/vendor/framey/dist/normalize-audio-VDWYRHN6.js +268 -0
  532. package/vendor/framey/dist/open-E3TB6P6J.js +128 -0
  533. package/vendor/framey/dist/parakeetRunner-UP34UOI2.js +58 -0
  534. package/vendor/framey/dist/pipeline-VXIUYEBU.js +64 -0
  535. package/vendor/framey/dist/play-BUTDQ4DV.js +353 -0
  536. package/vendor/framey/dist/policies-OLDYGFK5.js +309 -0
  537. package/vendor/framey/dist/preflight-2KZ2GWAZ.js +55 -0
  538. package/vendor/framey/dist/present-GXYSM7NX.js +353 -0
  539. package/vendor/framey/dist/preview-EKZ33JOJ.js +1910 -0
  540. package/vendor/framey/dist/producer-SKU5EV3J.js +13 -0
  541. package/vendor/framey/dist/progress-ZWB4Z4ET.js +76 -0
  542. package/vendor/framey/dist/projectConfig-3MZAYVTS.js +60 -0
  543. package/vendor/framey/dist/publication-DTKWNF74.js +33 -0
  544. package/vendor/framey/dist/remove-background-OY5L7XN2.js +265 -0
  545. package/vendor/framey/dist/render-CDV4GDFX.js +187 -0
  546. package/vendor/framey/dist/render-YE5YAMOD.js +2620 -0
  547. package/vendor/framey/dist/render-batch-ZAMFPCLL.js +274 -0
  548. package/vendor/framey/dist/renderSetupWorker.js +120 -0
  549. package/vendor/framey/dist/resolver-D5BIPSEW.js +42 -0
  550. package/vendor/framey/dist/runtimeVersion.js +18 -0
  551. package/vendor/framey/dist/sam-WFZXI4F7.js +23 -0
  552. package/vendor/framey/dist/shaderTransitionWorker.js +44 -0
  553. package/vendor/framey/dist/sherpa-RQWLV7I3.js +79 -0
  554. package/vendor/framey/dist/sherpaWorker.js +84 -0
  555. package/vendor/framey/dist/sites-AMOVABTK.js +54 -0
  556. package/vendor/framey/dist/skill-ZHVLH7KX.js +15 -0
  557. package/vendor/framey/dist/slideshow-SJGK4RQS.js +24 -0
  558. package/vendor/framey/dist/snapshot-TUXL6LBQ.js +1515 -0
  559. package/vendor/framey/dist/src-JHQGB2S6.js +215 -0
  560. package/vendor/framey/dist/src-Z5PGEMXB.js +532 -0
  561. package/vendor/framey/dist/state-B6H3WHCF.js +28 -0
  562. package/vendor/framey/dist/staticProjectServer-DFVZOUGI.js +63 -0
  563. package/vendor/framey/dist/studio/assets/hyperframes-player-DLaKjw0L.js +478 -0
  564. package/vendor/framey/dist/studio/assets/index-BX3KHhGX.js +71 -0
  565. package/vendor/framey/dist/studio/assets/index-CYbvOVp-.css +1 -0
  566. package/vendor/framey/dist/studio/assets/index-Dp3QEUGL.js +402 -0
  567. package/vendor/framey/dist/studio/assets/index-qrTAXbqc.js +531 -0
  568. package/vendor/framey/dist/studio/favicon.svg +14 -0
  569. package/vendor/framey/dist/studio/icons/timeline/audio.svg +7 -0
  570. package/vendor/framey/dist/studio/icons/timeline/captions.svg +5 -0
  571. package/vendor/framey/dist/studio/icons/timeline/composition.svg +12 -0
  572. package/vendor/framey/dist/studio/icons/timeline/image.svg +18 -0
  573. package/vendor/framey/dist/studio/icons/timeline/music.svg +10 -0
  574. package/vendor/framey/dist/studio/icons/timeline/text.svg +3 -0
  575. package/vendor/framey/dist/studio/index.html +23 -0
  576. package/vendor/framey/dist/studio-api-2NECGRMB.js +179 -0
  577. package/vendor/framey/dist/studioSelectionClient-IUUPKUHZ.js +25 -0
  578. package/vendor/framey/dist/studioServer-N2OPUMOQ.js +1569 -0
  579. package/vendor/framey/dist/synthesize-PKTB5ATG.js +183 -0
  580. package/vendor/framey/dist/system-7F3UEHQT.js +27 -0
  581. package/vendor/framey/dist/telemetry-DQGPEKM6.js +145 -0
  582. package/vendor/framey/dist/telemetry-UN55N6U6.js +77 -0
  583. package/vendor/framey/dist/timeline-LHUUMK63.js +1295 -0
  584. package/vendor/framey/dist/tokens-OLECWDFK.js +92 -0
  585. package/vendor/framey/dist/transcribe-O7HQKMIV.js +331 -0
  586. package/vendor/framey/dist/transcribe-UJESPBT5.js +76 -0
  587. package/vendor/framey/dist/tts-YCCQHZD4.js +234 -0
  588. package/vendor/framey/dist/urlDownloader-H2LXLG4U.js +48 -0
  589. package/vendor/framey/dist/usage-HG4WMM7A.js +2167 -0
  590. package/vendor/framey/dist/validate-F2XMN6EV.js +87 -0
  591. package/vendor/framey/dist/vendor/npm/gsap@3.15.0/GSAP-LICENSE.txt +8 -0
  592. package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/CustomEase.min.js +11 -0
  593. package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/MotionPathPlugin.min.js +11 -0
  594. package/vendor/framey/dist/vendor/npm/gsap@3.15.0/dist/gsap.min.js +11 -0
  595. package/vendor/framey/dist/warmCheck.js +220 -0
  596. package/vendor/framey/dist/warmCheckClient.js +139 -0
  597. package/vendor/framey/dist/workspaceBuildCheck-XYD2YTFW.js +133 -0
  598. package/vendor/framey-player/LICENSE +190 -0
  599. package/vendor/framey-player/NOTICE +16 -0
  600. package/vendor/framey-player/SOURCE.json +6 -0
  601. package/vendor/framey-player/hyperframes-player.global.js +478 -0
  602. package/vendor/framey.pin +1 -0
  603. package/bin/index.js +0 -3
@@ -0,0 +1,468 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ parseOutputResolutionFlag
9
+ } from "./chunk-ST35C4K6.js";
10
+ import {
11
+ isMissingPackageError,
12
+ missingPackageMessage
13
+ } from "./chunk-RVZHGOGR.js";
14
+ import {
15
+ defaultCloudFps
16
+ } from "./chunk-KXTKKBOC.js";
17
+ import {
18
+ defineCommand
19
+ } from "./chunk-S3S4TGEH.js";
20
+ import {
21
+ c
22
+ } from "./chunk-VORQIH64.js";
23
+ import {
24
+ failCommand
25
+ } from "./chunk-JVBRJMOP.js";
26
+ import {
27
+ DISTRIBUTED_FPS,
28
+ isDistributedFps
29
+ } from "./chunk-DLA44CMS.js";
30
+ import "./chunk-UJZREAV6.js";
31
+ import "./chunk-VC76R6W2.js";
32
+ import "./chunk-X7HBSTCZ.js";
33
+ import "./chunk-B7RJV74O.js";
34
+ import "./chunk-DPVXBVLL.js";
35
+ import "./chunk-OFQWTKPW.js";
36
+ import "./chunk-634HSJ3J.js";
37
+ import "./chunk-FXMKHHPO.js";
38
+ import "./chunk-RQVDTPGD.js";
39
+ import "./chunk-MMQ52NIZ.js";
40
+ import "./chunk-BSQ7XANM.js";
41
+ import "./chunk-SDYDNHEE.js";
42
+ import "./chunk-RXATE6FZ.js";
43
+ import "./chunk-3422KMTD.js";
44
+ import "./chunk-M2WBOQ2Q.js";
45
+
46
+ // src/commands/lambda.ts
47
+ var examples = [
48
+ ["Deploy the Lambda render stack to AWS", "framey lambda deploy"],
49
+ [
50
+ "Render a composition on the deployed stack",
51
+ "framey lambda render ./my-project --width 1920 --height 1080"
52
+ ],
53
+ [
54
+ "Render and stream progress until done",
55
+ "framey lambda render ./my-project --width 1920 --height 1080 --wait"
56
+ ],
57
+ [
58
+ "Supersample a 1080p composition to 4K via Chrome deviceScaleFactor",
59
+ "framey lambda render ./my-project --width 1920 --height 1080 --output-resolution 4k --wait"
60
+ ],
61
+ [
62
+ "Render with composition variables (personalised template)",
63
+ `framey lambda render ./my-template --site-id abc1234deadbeef0 --width 1920 --height 1080 --variables '{"title":"Hello Alice","accent":"#ff0000"}'`
64
+ ],
65
+ [
66
+ "Render with variables from a JSON file",
67
+ "framey lambda render ./my-template --site-id abc1234deadbeef0 --width 1920 --height 1080 --variables-file ./alice.json"
68
+ ],
69
+ [
70
+ "Batch-render N personalised videos from a JSONL file (deploys the site once)",
71
+ "framey lambda render-batch ./my-template --batch ./users.jsonl --width 1920 --height 1080 --max-concurrent 10"
72
+ ],
73
+ ["Check progress for a started render", "framey lambda progress hf-render-abcd1234"],
74
+ [
75
+ "Pre-upload a project so multiple renders share the upload",
76
+ "framey lambda sites create ./my-project"
77
+ ],
78
+ ["Tear the stack down", "framey lambda destroy"],
79
+ ["Print the IAM policy the CLI needs", "framey lambda policies user"],
80
+ [
81
+ "Validate a checked-in IAM policy still covers the CLI",
82
+ "hyperframes lambda policies validate ./infra/iam/hyperframes.json"
83
+ ]
84
+ ];
85
+ var HELP = `
86
+ ${c.bold("framey lambda")} ${c.dim("<subcommand> [args]")}
87
+
88
+ Deploy + drive distributed video renders on AWS Lambda.
89
+
90
+ ${c.bold("SUBCOMMANDS:")}
91
+ ${c.accent("deploy")} ${c.dim("Provision the Lambda + Step Functions + S3 stack via SAM")}
92
+ ${c.accent("sites create")} ${c.dim("Tar + upload a project to S3 (reusable across renders)")}
93
+ ${c.accent("render")} ${c.dim("Start a distributed render (returns a renderId)")}
94
+ ${c.accent("render-batch")} ${c.dim("Fan out N personalised renders from a JSONL batch file")}
95
+ ${c.accent("progress")} ${c.dim("Print progress + cost for an in-flight or finished render")}
96
+ ${c.accent("destroy")} ${c.dim("Tear the stack down (S3 bucket is retained)")}
97
+ ${c.accent("policies")} ${c.dim("Print or validate the IAM permissions the CLI needs")}
98
+
99
+ ${c.bold("FIRST RUN:")}
100
+ ${c.accent("framey lambda deploy")}
101
+ ${c.accent("framey lambda render ./my-project --width 1920 --height 1080 --wait")}
102
+
103
+ ${c.bold("REQUIREMENTS:")}
104
+ \u2022 AWS CLI configured (env vars, ~/.aws/credentials, or SSO)
105
+ \u2022 AWS SAM CLI installed (https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)
106
+ \u2022 bun on PATH (used to build the handler ZIP)
107
+ `;
108
+ var lambda_default = defineCommand({
109
+ meta: { name: "lambda", description: "Deploy and drive renders on AWS Lambda" },
110
+ args: {
111
+ subcommand: {
112
+ type: "positional",
113
+ required: false,
114
+ description: "deploy | sites | render | progress | destroy | policies"
115
+ },
116
+ target: {
117
+ type: "positional",
118
+ required: false,
119
+ description: "Subcommand-specific positional (project dir, render id, policies verb, etc.)"
120
+ },
121
+ extra: {
122
+ type: "positional",
123
+ required: false,
124
+ description: "Extra positional (e.g. `sites create <projectDir>` or `policies validate <policy.json>`)"
125
+ },
126
+ // Stack identity
127
+ "stack-name": {
128
+ type: "string",
129
+ description: "CloudFormation stack name (default: hyperframes-default)"
130
+ },
131
+ region: { type: "string", description: "AWS region (default: AWS_REGION env or us-east-1)" },
132
+ profile: { type: "string", description: "AWS profile name (default: AWS_PROFILE env)" },
133
+ // deploy
134
+ concurrency: {
135
+ type: "string",
136
+ description: "Lambda reserved concurrency, or none to remove it (default: keep the stack's; a new stack reserves none and each render runs up to 90% of the account's unreserved concurrency)"
137
+ },
138
+ "chrome-source": {
139
+ type: "string",
140
+ description: "sparticuz | chrome-headless-shell (default: sparticuz)"
141
+ },
142
+ memory: { type: "string", description: "Lambda memory MB (default: 10240)" },
143
+ "video-arch": {
144
+ type: "string",
145
+ description: "arm64 | x86_64: where the plan and chunks run; arm64 adds a container-image function (default: arm64)"
146
+ },
147
+ "skip-build": { type: "boolean", description: "Reuse existing handler.zip (deploy)" },
148
+ // sites / render
149
+ "site-id": { type: "string", description: "Explicit site id (overrides content hash)" },
150
+ width: { type: "string", description: "Render width in pixels" },
151
+ height: { type: "string", description: "Render height in pixels" },
152
+ "output-resolution": {
153
+ type: "string",
154
+ description: "Output resolution preset that engages Chrome deviceScaleFactor supersampling. Accepts canonical names (landscape, landscape-4k, portrait, portrait-4k, square, square-4k) and aliases (1080p, 4k, uhd, hd). When set, the composition's authored data-width/data-height is supersampled to the target preset without changing the layout."
155
+ },
156
+ fps: { type: "string", description: `Render fps (${DISTRIBUTED_FPS.join(" | ")})` },
157
+ format: { type: "string", description: "mp4 | mov | png-sequence | webm (default: mp4)" },
158
+ codec: { type: "string", description: "h264 | h265 (mp4 only)" },
159
+ quality: { type: "string", description: "draft | standard | high" },
160
+ "chunk-size": {
161
+ type: "string",
162
+ description: "Frames per chunk (default: sized so each chunk fits the Lambda timeout, one wave across --concurrency)"
163
+ },
164
+ "max-parallel-chunks": {
165
+ type: "string",
166
+ description: "Max chunks per render (default: one wave across the deploy's --concurrency, widened to fit the Lambda timeout)"
167
+ },
168
+ "target-chunk-frames": {
169
+ type: "string",
170
+ description: "Cap per-chunk frames; auto-adds chunks (up to --max-parallel-chunks) to keep each under this. Ignored if --chunk-size is set."
171
+ },
172
+ "execution-name": {
173
+ type: "string",
174
+ description: "Step Functions execution name (default: hf-render-<uuid>)"
175
+ },
176
+ "output-key": {
177
+ type: "string",
178
+ description: "Final output S3 key (default: renders/<exec>/output.<ext>)"
179
+ },
180
+ // Variables — mirrors the local `framey render` UX. Inline JSON or
181
+ // file path, plus --strict-variables for type-checked validation against
182
+ // the composition's `data-composition-variables` declaration.
183
+ variables: {
184
+ type: "string",
185
+ description: `JSON object of variable values for the composition. Example: --variables '{"title":"Hello"}'. Values flow into window.__hfVariables on the Lambda chunk workers.`
186
+ },
187
+ "variables-file": {
188
+ type: "string",
189
+ description: "Path to a JSON file with variable values (alternative to --variables). The file must contain a single JSON object."
190
+ },
191
+ "strict-variables": {
192
+ type: "boolean",
193
+ description: "Fail the render command if any --variables key is undeclared or has a wrong type vs the composition's data-composition-variables. Without this flag, mismatches are warnings.",
194
+ default: false
195
+ },
196
+ // render-batch
197
+ batch: {
198
+ type: "string",
199
+ description: 'Path to a JSONL batch file for `render-batch`. Each line: {"outputKey":"...","variables":{...}}'
200
+ },
201
+ "max-concurrent": {
202
+ type: "string",
203
+ description: "Max in-flight Step Functions executions for `render-batch` (default: 50). Distinct from --max-parallel-chunks (which caps chunks per render)."
204
+ },
205
+ "dry-run": {
206
+ type: "boolean",
207
+ description: "For `render-batch`: parse the batch file and print the manifest without invoking AWS. Every entry's status becomes `would-invoke`.",
208
+ default: false
209
+ },
210
+ wait: { type: "boolean", description: "Block until the render finishes" },
211
+ "wait-interval-ms": {
212
+ type: "string",
213
+ description: "Poll cadence in ms when --wait is set (default: 5000)"
214
+ },
215
+ // shared
216
+ json: { type: "boolean", description: "Emit machine-readable JSON" }
217
+ },
218
+ async run({ args }) {
219
+ const subcommand = args.subcommand;
220
+ if (!subcommand) {
221
+ console.log(HELP);
222
+ return;
223
+ }
224
+ const stackName = args["stack-name"] ?? // Lazy-imported so the dispatcher doesn't pull state.ts (and its
225
+ // node:fs deps) on every CLI invocation — only on lambda runs.
226
+ (await import("./state-B6H3WHCF.js")).DEFAULT_STACK_NAME;
227
+ const profileFlag = args.profile;
228
+ if (profileFlag) process.env.AWS_PROFILE = profileFlag;
229
+ const regionFlag = args.region;
230
+ if (regionFlag) process.env.AWS_REGION = regionFlag;
231
+ const verbsNeedingSDK = /* @__PURE__ */ new Set(["sites", "render", "render-batch", "progress"]);
232
+ if (verbsNeedingSDK.has(subcommand)) {
233
+ try {
234
+ await import("@framey/aws-lambda/sdk");
235
+ } catch (err) {
236
+ if (isMissingPackageError(err, "@framey/aws-lambda")) {
237
+ console.error(missingPackageMessage("@framey/aws-lambda", `framey lambda ${subcommand}`));
238
+ failCommand();
239
+ }
240
+ throw err;
241
+ }
242
+ }
243
+ switch (subcommand) {
244
+ case "deploy": {
245
+ const { runDeploy } = await import("./deploy-6FJPWKF2.js");
246
+ const { parseReservedConcurrency } = await import("./sam-WFZXI4F7.js");
247
+ await runDeploy({
248
+ stackName,
249
+ region: args.region,
250
+ awsProfile: args.profile,
251
+ reservedConcurrency: parseReservedConcurrency(args.concurrency),
252
+ chromeSource: parseChromeSource(args["chrome-source"]),
253
+ lambdaMemoryMb: parsePositiveInt(args.memory, "--memory"),
254
+ videoArch: parseVideoArch(args["video-arch"]),
255
+ skipBuild: Boolean(args["skip-build"])
256
+ });
257
+ return;
258
+ }
259
+ case "sites": {
260
+ if (args.target !== "create") {
261
+ console.error(
262
+ `[lambda sites] unknown verb "${String(args.target)}". Only "create" is supported.`
263
+ );
264
+ failCommand();
265
+ }
266
+ const projectDir = args.extra;
267
+ if (!projectDir) {
268
+ console.error("[lambda sites create] usage: framey lambda sites create <projectDir>");
269
+ failCommand();
270
+ }
271
+ const { runSitesCreate } = await import("./sites-AMOVABTK.js");
272
+ await runSitesCreate({
273
+ projectDir,
274
+ stackName,
275
+ siteId: args["site-id"],
276
+ json: Boolean(args.json)
277
+ });
278
+ return;
279
+ }
280
+ case "render": {
281
+ const projectDir = args.target;
282
+ if (!projectDir) {
283
+ console.error(
284
+ "[lambda render] usage: framey lambda render <projectDir> --width <px> --height <px>"
285
+ );
286
+ failCommand();
287
+ }
288
+ const width = parsePositiveInt(args.width, "--width");
289
+ const height = parsePositiveInt(args.height, "--height");
290
+ if (width === void 0 || height === void 0) {
291
+ console.error("[lambda render] --width and --height are required.");
292
+ failCommand();
293
+ }
294
+ const fpsRaw = parseIntFlag(args.fps) ?? defaultCloudFps(projectDir);
295
+ if (!isDistributedFps(fpsRaw)) {
296
+ console.error(
297
+ `[lambda render] --fps must be one of ${DISTRIBUTED_FPS.join(", ")}; got ${fpsRaw}.`
298
+ );
299
+ failCommand();
300
+ }
301
+ const { runRender } = await import("./render-CDV4GDFX.js");
302
+ const renderResolution = parseOutputResolution(args["output-resolution"]);
303
+ await runRender({
304
+ projectDir,
305
+ stackName,
306
+ siteId: args["site-id"],
307
+ fps: fpsRaw,
308
+ width,
309
+ height,
310
+ outputResolution: renderResolution.outputResolution,
311
+ outputResolutionAspectAgnostic: renderResolution.outputResolutionAspectAgnostic,
312
+ format: parseFormat(args.format),
313
+ codec: parseCodec(args.codec),
314
+ quality: parseQuality(args.quality),
315
+ chunkSize: parsePositiveInt(args["chunk-size"], "--chunk-size"),
316
+ maxParallelChunks: parsePositiveInt(args["max-parallel-chunks"], "--max-parallel-chunks"),
317
+ targetChunkFrames: parsePositiveInt(args["target-chunk-frames"], "--target-chunk-frames"),
318
+ executionName: args["execution-name"],
319
+ outputKey: args["output-key"],
320
+ variables: args.variables,
321
+ variablesFile: args["variables-file"],
322
+ strictVariables: Boolean(args["strict-variables"]),
323
+ json: Boolean(args.json),
324
+ wait: Boolean(args.wait),
325
+ waitIntervalMs: parsePositiveInt(args["wait-interval-ms"], "--wait-interval-ms") ?? 5e3
326
+ });
327
+ return;
328
+ }
329
+ case "render-batch": {
330
+ const projectDir = args.target;
331
+ if (!projectDir) {
332
+ console.error(
333
+ "[lambda render-batch] usage: framey lambda render-batch <projectDir> --batch <path.jsonl> --width <px> --height <px>"
334
+ );
335
+ failCommand();
336
+ }
337
+ const batch = args.batch;
338
+ if (!batch) {
339
+ console.error(
340
+ "[lambda render-batch] --batch <path.jsonl> is required. Each line is a JSON object with at least { outputKey: '...' }."
341
+ );
342
+ failCommand();
343
+ }
344
+ const width = parsePositiveInt(args.width, "--width");
345
+ const height = parsePositiveInt(args.height, "--height");
346
+ if (width === void 0 || height === void 0) {
347
+ console.error("[lambda render-batch] --width and --height are required.");
348
+ failCommand();
349
+ }
350
+ const fpsRaw = parseIntFlag(args.fps) ?? defaultCloudFps(projectDir);
351
+ if (!isDistributedFps(fpsRaw)) {
352
+ console.error(
353
+ `[lambda render-batch] --fps must be one of ${DISTRIBUTED_FPS.join(", ")}; got ${fpsRaw}.`
354
+ );
355
+ failCommand();
356
+ }
357
+ const { runRenderBatch } = await import("./render-batch-ZAMFPCLL.js");
358
+ const batchResolution = parseOutputResolution(args["output-resolution"]);
359
+ await runRenderBatch({
360
+ projectDir,
361
+ stackName,
362
+ batch,
363
+ siteId: args["site-id"],
364
+ fps: fpsRaw,
365
+ width,
366
+ height,
367
+ outputResolution: batchResolution.outputResolution,
368
+ outputResolutionAspectAgnostic: batchResolution.outputResolutionAspectAgnostic,
369
+ format: parseFormat(args.format),
370
+ codec: parseCodec(args.codec),
371
+ quality: parseQuality(args.quality),
372
+ chunkSize: parsePositiveInt(args["chunk-size"], "--chunk-size"),
373
+ maxParallelChunks: parsePositiveInt(args["max-parallel-chunks"], "--max-parallel-chunks"),
374
+ targetChunkFrames: parsePositiveInt(args["target-chunk-frames"], "--target-chunk-frames"),
375
+ maxConcurrent: parsePositiveInt(args["max-concurrent"], "--max-concurrent"),
376
+ strictVariables: Boolean(args["strict-variables"]),
377
+ dryRun: Boolean(args["dry-run"]),
378
+ json: Boolean(args.json)
379
+ });
380
+ return;
381
+ }
382
+ case "progress": {
383
+ const target = args.target;
384
+ if (!target) {
385
+ console.error(
386
+ "[lambda progress] usage: framey lambda progress <renderId | executionArn>"
387
+ );
388
+ failCommand();
389
+ }
390
+ const { runProgress } = await import("./progress-ZWB4Z4ET.js");
391
+ await runProgress({ target, stackName, json: Boolean(args.json) });
392
+ return;
393
+ }
394
+ case "destroy": {
395
+ const { runDestroy } = await import("./destroy-HE2RIPKZ.js");
396
+ await runDestroy({ stackName, awsProfile: args.profile });
397
+ return;
398
+ }
399
+ case "policies": {
400
+ const verb = args.target;
401
+ if (verb !== "role" && verb !== "user" && verb !== "validate") {
402
+ console.error(
403
+ `[lambda policies] usage: framey lambda policies <role|user|validate> [args]`
404
+ );
405
+ failCommand();
406
+ }
407
+ const { runPolicies } = await import("./policies-OLDYGFK5.js");
408
+ await runPolicies({
409
+ verb,
410
+ inputPath: args.extra,
411
+ json: Boolean(args.json)
412
+ });
413
+ return;
414
+ }
415
+ default:
416
+ console.error(`${c.error("Unknown subcommand:")} ${subcommand}
417
+ ${HELP}`);
418
+ failCommand();
419
+ }
420
+ }
421
+ });
422
+ function parseIntFlag(raw) {
423
+ if (raw === void 0 || raw === null || raw === "") return void 0;
424
+ const n = Number.parseInt(String(raw), 10);
425
+ return Number.isFinite(n) ? n : void 0;
426
+ }
427
+ function parsePositiveInt(raw, flagName) {
428
+ const n = parseIntFlag(raw);
429
+ if (n === void 0) return void 0;
430
+ if (!Number.isInteger(n) || n < 1) {
431
+ throw new Error(`[lambda] ${flagName} must be a positive integer; got ${n}`);
432
+ }
433
+ return n;
434
+ }
435
+ function parseEnum(raw, allowed, errorPrefix, defaultValue) {
436
+ if (raw === void 0 || raw === null || raw === "") return defaultValue;
437
+ const s = String(raw);
438
+ if (allowed.includes(s)) return s;
439
+ throw new Error(`${errorPrefix} must be ${allowed.join("|")}; got ${s}`);
440
+ }
441
+ var FORMATS = [
442
+ "mp4",
443
+ "mov",
444
+ "png-sequence",
445
+ "webm"
446
+ ];
447
+ var CODECS = ["h264", "h265"];
448
+ var QUALITIES = ["draft", "standard", "high"];
449
+ var CHROME_SOURCES = ["sparticuz", "chrome-headless-shell"];
450
+ var parseFormat = (raw) => parseEnum(raw, FORMATS, "[lambda render] --format", "mp4");
451
+ var parseCodec = (raw) => parseEnum(raw, CODECS, "[lambda render] --codec", void 0);
452
+ var parseQuality = (raw) => parseEnum(raw, QUALITIES, "[lambda render] --quality", void 0);
453
+ var parseChromeSource = (raw) => parseEnum(raw, CHROME_SOURCES, "[lambda deploy] --chrome-source", "sparticuz");
454
+ var VIDEO_ARCHS = ["x86_64", "arm64"];
455
+ var parseVideoArch = (raw) => parseEnum(raw, VIDEO_ARCHS, "[lambda deploy] --video-arch", void 0);
456
+ function parseOutputResolution(raw) {
457
+ return parseOutputResolutionFlag(raw, {
458
+ surfaceLabel: "[lambda render]",
459
+ // The Lambda `--output-resolution` help text advertises the full alias
460
+ // list (tier-only + orientation-suffixed) — keep the error message
461
+ // faithful to that surface's docs.
462
+ aliasHint: "1080p, 4k, uhd, hd, 1080p-portrait, portrait-1080p, 4k-portrait, 1080p-square, square-1080p, 4k-square"
463
+ });
464
+ }
465
+ export {
466
+ lambda_default as default,
467
+ examples
468
+ };
@@ -0,0 +1,95 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ createInspectCommand,
9
+ examples,
10
+ layout_default,
11
+ loadBrowserScript,
12
+ parseAt
13
+ } from "./chunk-FUFP7A7S.js";
14
+ import "./chunk-O4YRB27L.js";
15
+ import "./chunk-O7BGSQ5F.js";
16
+ import "./chunk-C5BO7PMT.js";
17
+ import "./chunk-X7MTZ4T2.js";
18
+ import "./chunk-6DDPOHMK.js";
19
+ import "./chunk-XUHOIDKG.js";
20
+ import "./chunk-THJALHFJ.js";
21
+ import "./chunk-IUONB55J.js";
22
+ import "./chunk-6JR2XUEE.js";
23
+ import "./chunk-MI5FTLYK.js";
24
+ import "./chunk-YPRBGITP.js";
25
+ import "./chunk-7JQFJ6JJ.js";
26
+ import "./chunk-SZNTYTIV.js";
27
+ import "./chunk-YOR4CTCE.js";
28
+ import "./chunk-KXTKKBOC.js";
29
+ import "./chunk-P5ZBLXJ6.js";
30
+ import "./chunk-LEKZNRKI.js";
31
+ import "./chunk-442JNXRM.js";
32
+ import "./chunk-4BNN5FGX.js";
33
+ import "./chunk-XT7X6QCP.js";
34
+ import "./chunk-4YYJOFKS.js";
35
+ import "./chunk-HVW7ABXD.js";
36
+ import "./chunk-WKBM7NDG.js";
37
+ import "./chunk-XX7LTW5Y.js";
38
+ import "./chunk-JHOCK3DG.js";
39
+ import "./chunk-XPTOJZJF.js";
40
+ import "./chunk-RGLQURIX.js";
41
+ import "./chunk-P6LJ4Y32.js";
42
+ import "./chunk-GMECXFAN.js";
43
+ import "./chunk-FLREUEHW.js";
44
+ import "./chunk-EOVYQ3IG.js";
45
+ import "./chunk-GNEFDLFB.js";
46
+ import "./chunk-2UZQHDM7.js";
47
+ import "./chunk-NYEXNSHM.js";
48
+ import "./chunk-S3S4TGEH.js";
49
+ import "./chunk-54HJ63Q2.js";
50
+ import "./chunk-ISN5GRYI.js";
51
+ import "./chunk-VORQIH64.js";
52
+ import "./chunk-JVBRJMOP.js";
53
+ import "./chunk-KLIKCX6Q.js";
54
+ import "./chunk-EVMY7IPL.js";
55
+ import "./chunk-7FMUTGOH.js";
56
+ import "./chunk-TIQB63MX.js";
57
+ import "./chunk-IZCW2NKT.js";
58
+ import "./chunk-RNV3DM4S.js";
59
+ import "./chunk-DLA44CMS.js";
60
+ import "./chunk-UJZREAV6.js";
61
+ import "./chunk-VC76R6W2.js";
62
+ import "./chunk-X7HBSTCZ.js";
63
+ import "./chunk-B7RJV74O.js";
64
+ import "./chunk-DPVXBVLL.js";
65
+ import "./chunk-OFQWTKPW.js";
66
+ import "./chunk-634HSJ3J.js";
67
+ import "./chunk-FXMKHHPO.js";
68
+ import "./chunk-RQVDTPGD.js";
69
+ import "./chunk-AHX34EFP.js";
70
+ import "./chunk-T2EUWCJE.js";
71
+ import "./chunk-T6AGUTZJ.js";
72
+ import "./chunk-XT6MXC7A.js";
73
+ import "./chunk-K4MJX7SR.js";
74
+ import "./chunk-4UMPIPCQ.js";
75
+ import "./chunk-4P7NX5BM.js";
76
+ import "./chunk-VAS6HQX3.js";
77
+ import "./chunk-6BNTGNGD.js";
78
+ import "./chunk-CZGHFATT.js";
79
+ import "./chunk-PKZ7RK5N.js";
80
+ import "./chunk-W2LGJSEN.js";
81
+ import "./chunk-MMQ52NIZ.js";
82
+ import "./chunk-BSQ7XANM.js";
83
+ import "./chunk-SDYDNHEE.js";
84
+ import "./chunk-RXATE6FZ.js";
85
+ import "./chunk-3422KMTD.js";
86
+ import "./chunk-KGPLIH7B.js";
87
+ import "./chunk-3GXQPCJC.js";
88
+ import "./chunk-M2WBOQ2Q.js";
89
+ export {
90
+ createInspectCommand,
91
+ layout_default as default,
92
+ examples,
93
+ loadBrowserScript,
94
+ parseAt
95
+ };