hyperframes 0.8.185 → 0.8.188

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 (186) hide show
  1. package/dist/{add-ODTNPRGG.js → add-UORF6235.js} +12 -12
  2. package/dist/{animatedGifPrep-PEP5GWOJ.js → animatedGifPrep-23MLSEXF.js} +7 -7
  3. package/dist/api.js +16 -16
  4. package/dist/{asset-EZG42XPA.js → asset-DOKDVHCW.js} +2 -2
  5. package/dist/{assetCataloger-OHAJFCA7.js → assetCataloger-CD27MHEY.js} +7 -7
  6. package/dist/audio-3NMZHNNU.js +2317 -0
  7. package/dist/{auth-VP2SIZFN.js → auth-AWKTSKGC.js} +1 -1
  8. package/dist/{autoUpdate-RVSUX4SS.js → autoUpdate-VBOI4CNU.js} +2 -2
  9. package/dist/{backgroundChecks-LEHK74NS.js → backgroundChecks-S4R454YU.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-3X6CL7PK.js → batchRender-EGPYNDHK.js} +4 -4
  12. package/dist/{beats-66VPQLSC.js → beats-YENEQUOA.js} +5 -5
  13. package/dist/{benchmark-PBJVTOJP.js → benchmark-THSJIQG7.js} +9 -9
  14. package/dist/{browser-TPL5MWGC.js → browser-BDMVQ6WJ.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-67MLTHKM.js → bundleWithLocalizedFonts-3QG722YD.js} +2 -2
  16. package/dist/{capture-YYRE7EV3.js → capture-WM4XDMFX.js} +2 -2
  17. package/dist/{capture-F3GNMRZM.js → capture-Z6BGCTK3.js} +10 -10
  18. package/dist/{captureCompositionFrame-PXV2ISHD.js → captureCompositionFrame-EMHSAIBZ.js} +15 -11
  19. package/dist/{catalog-6SDD3OHF.js → catalog-7TV6UNCG.js} +12 -12
  20. package/dist/{catch-up-CWIVA5VG.js → catch-up-63IUDZRW.js} +4 -4
  21. package/dist/{check-YQ6REK2S.js → check-7RHZL4DV.js} +32 -32
  22. package/dist/{checkBrowser-5XZCBRXM.js → checkBrowser-PF56CT5X.js} +29 -29
  23. package/dist/{chunk-TAX2ZJAP.js → chunk-2DHCCBCN.js} +9 -9
  24. package/dist/{chunk-K73RJB23.js → chunk-2WUDFZCR.js} +2 -2
  25. package/dist/{chunk-4CTNDBE3.js → chunk-44QWRPGE.js} +2 -2
  26. package/dist/{chunk-X6L6MD5B.js → chunk-46VJ2UAV.js} +6 -6
  27. package/dist/{chunk-BRAPBUPQ.js → chunk-57XL23DE.js} +1 -1
  28. package/dist/{chunk-J36JVBLR.js → chunk-5C7R55BJ.js} +1 -1
  29. package/dist/{chunk-SKYPMHQC.js → chunk-5DPV7LU3.js} +3 -3
  30. package/dist/{chunk-D42NU3DZ.js → chunk-5OZI55AC.js} +1 -1
  31. package/dist/{chunk-5UBZPG74.js → chunk-6A45RKAK.js} +1 -1
  32. package/dist/{chunk-I7QMXZSB.js → chunk-6HYPEIH7.js} +2 -2
  33. package/dist/{chunk-KQ4JEJLF.js → chunk-6HZ7TSJJ.js} +14 -8
  34. package/dist/{chunk-6ASIXMFP.js → chunk-6OWNUXTU.js} +1 -1
  35. package/dist/{chunk-WQLKDL35.js → chunk-6Q5CFUAP.js} +1 -1
  36. package/dist/{chunk-G2UANIDX.js → chunk-B2P4JRUJ.js} +1 -1
  37. package/dist/chunk-BPX7LZG6.js +3896 -0
  38. package/dist/{chunk-EMAWIZ54.js → chunk-BU4HRISA.js} +58 -21
  39. package/dist/{chunk-ESBMUZXZ.js → chunk-BWEZDN6U.js} +1 -1
  40. package/dist/{chunk-5UDRPPN2.js → chunk-CE7EQUBV.js} +8 -5
  41. package/dist/{chunk-UPR3MU6Z.js → chunk-DA4TQFSF.js} +1 -1
  42. package/dist/{chunk-HDIRZGK4.js → chunk-DG4ME554.js} +1 -1
  43. package/dist/{chunk-RTBSA3EA.js → chunk-DLFAVRF3.js} +1 -1
  44. package/dist/{chunk-TTVHYD5R.js → chunk-EI7FP7F3.js} +1 -1
  45. package/dist/{chunk-RUEGYANA.js → chunk-FOLMMQF3.js} +11 -11
  46. package/dist/{chunk-5GUKZRQN.js → chunk-FSTLXRIN.js} +1 -1
  47. package/dist/{chunk-CX3USX23.js → chunk-FWVILDOZ.js} +3 -3
  48. package/dist/{chunk-IVEFOUZI.js → chunk-GYBPAKBM.js} +2287 -2264
  49. package/dist/{chunk-HXUTX5GR.js → chunk-HKUZCSNZ.js} +2 -2
  50. package/dist/{chunk-PMMQRJDE.js → chunk-HPQSUPR7.js} +1 -1
  51. package/dist/{chunk-7RAY4WZP.js → chunk-I7C5GUEQ.js} +3 -3
  52. package/dist/{chunk-55YELV7B.js → chunk-IA2IDJAG.js} +1 -1
  53. package/dist/{chunk-7PS6RVWD.js → chunk-IJYR4TTA.js} +1 -1
  54. package/dist/{chunk-6RIZY7OP.js → chunk-JWRT2IXO.js} +1 -1
  55. package/dist/{chunk-2TAS5O4P.js → chunk-JYC53CW4.js} +108 -20
  56. package/dist/{chunk-IDFNKFPL.js → chunk-KDBPZOXK.js} +18 -7
  57. package/dist/{chunk-ISTRDGIX.js → chunk-KWSEIVR6.js} +1 -1
  58. package/dist/{chunk-IPDKZ5IN.js → chunk-KY7375C4.js} +1 -1
  59. package/dist/{chunk-F3OPUWQX.js → chunk-L243NE72.js} +7 -7
  60. package/dist/{chunk-H6UY725W.js → chunk-LWY3PFJ7.js} +2 -2
  61. package/dist/{chunk-6GPR3G3C.js → chunk-LWYZN7HS.js} +1 -1
  62. package/dist/{chunk-OAG47RE6.js → chunk-MJKUCR3C.js} +1 -1
  63. package/dist/{chunk-SQVRXHOW.js → chunk-MTPPEEYZ.js} +3 -3
  64. package/dist/{chunk-TOI35GN2.js → chunk-MXXX6WVC.js} +1 -1
  65. package/dist/{chunk-BH7TTIPN.js → chunk-NFHRGHCJ.js} +5 -5
  66. package/dist/{chunk-IDGLGXPA.js → chunk-NFLZNSUZ.js} +1 -1
  67. package/dist/{chunk-K2ZKXTVL.js → chunk-NMOTNNP2.js} +1 -1
  68. package/dist/{chunk-LYKSTRAY.js → chunk-OJOZXWLC.js} +3 -3
  69. package/dist/{chunk-FX6RUJUY.js → chunk-OKSYDQHY.js} +3 -3
  70. package/dist/{chunk-H5SM5PJI.js → chunk-PMXR3IUH.js} +1 -1
  71. package/dist/{chunk-A6QCO474.js → chunk-PQLFJYGP.js} +5 -5
  72. package/dist/{chunk-PFD25NAC.js → chunk-RIJHDTM5.js} +4 -0
  73. package/dist/{chunk-Q47FAYYK.js → chunk-SMF6YAUL.js} +9 -11
  74. package/dist/{chunk-EMSDWBG3.js → chunk-T3OXKSRG.js} +2 -2
  75. package/dist/{chunk-VHZ6DL3M.js → chunk-TMK4Q7JA.js} +10 -7
  76. package/dist/{chunk-Q447CX26.js → chunk-TSFA2Y5C.js} +60 -47
  77. package/dist/{chunk-XWC7CNPY.js → chunk-UF6RCYA5.js} +1 -1
  78. package/dist/{chunk-I45HL3VP.js → chunk-V6NM4KL3.js} +3 -3
  79. package/dist/{chunk-FFJ5TDRD.js → chunk-VHBBV5DH.js} +10 -3
  80. package/dist/{chunk-HHSJJFVM.js → chunk-W2KGJHUL.js} +2 -2
  81. package/dist/{chunk-37CNYTQQ.js → chunk-X556BGL7.js} +1 -1
  82. package/dist/{chunk-UJKQWGFF.js → chunk-X7HBSTCZ.js} +8 -0
  83. package/dist/{chunk-CML25PAF.js → chunk-XNFDDVJS.js} +27 -3
  84. package/dist/{chunk-J5XEZ24I.js → chunk-XPVN4R66.js} +3 -3
  85. package/dist/{chunk-I3IH5MV5.js → chunk-YCW345M4.js} +222 -118
  86. package/dist/{chunk-KROXPHXX.js → chunk-YV4WT7CJ.js} +5 -9
  87. package/dist/{chunk-PHMBMOXF.js → chunk-YZ73IPW2.js} +48 -4
  88. package/dist/{clean-7J6ZCCGV.js → clean-43O47OTN.js} +16 -16
  89. package/dist/cli.js +53 -53
  90. package/dist/{cloud-7IJCJCDD.js → cloud-ZFWKFFSU.js} +4 -4
  91. package/dist/{cloudrun-UNZRIIDB.js → cloudrun-XBBESKEU.js} +5 -5
  92. package/dist/{compare-Q7VW5JZT.js → compare-OW4ELTFZ.js} +26 -26
  93. package/dist/{compiler-KPHYGFXL.js → compiler-23MT6CX6.js} +4 -4
  94. package/dist/{component-UUBREJKN.js → component-SDV7LWH6.js} +3 -3
  95. package/dist/{compositions-T4FTKIDP.js → compositions-DI5QZCEK.js} +11 -11
  96. package/dist/{delete-WZQF2IIA.js → delete-QY2NSQ2G.js} +4 -4
  97. package/dist/deploy-MJVC4EFY.js +300 -0
  98. package/dist/{destroy-4B5HW5FH.js → destroy-SSPAKADI.js} +13 -3
  99. package/dist/{dist-LM7AVHOU.js → dist-JH32CBQL.js} +1 -1
  100. package/dist/{dist-ULGTPSU4.js → dist-RFTGYT26.js} +7 -5
  101. package/dist/{doctor-VSNGRKXJ.js → doctor-7ZOECPHR.js} +11 -11
  102. package/dist/{events-E63YBUL2.js → events-WIX4JM2K.js} +3 -3
  103. package/dist/{events-CRW2DYUT.js → events-XVQQGECC.js} +2 -2
  104. package/dist/{feedback-OSZWVR6N.js → feedback-GBYBR6UO.js} +7 -7
  105. package/dist/{ffmpeg-JLH3Z7G7.js → ffmpeg-QGQBYMO3.js} +7 -7
  106. package/dist/{figma-2BQNNR53.js → figma-2CMKUGJQ.js} +3 -3
  107. package/dist/fontLocalizeCli.js +9 -9
  108. package/dist/{get-P2XI53QW.js → get-RWCNUOHU.js} +4 -4
  109. package/dist/{gpuPolicy-NTKQJY75.js → gpuPolicy-UGWSN32D.js} +7 -7
  110. package/dist/{grade-compare-OYASIHIB.js → grade-compare-J2MX7HZL.js} +27 -27
  111. package/dist/{help-HK6K2N4G.js → help-SH3ID7MV.js} +1 -1
  112. package/dist/{history-JMTYKLXW.js → history-C7V5QH7J.js} +6 -6
  113. package/dist/hyperframe.manifest.json +1 -1
  114. package/dist/hyperframe.runtime.iife.js +70 -69
  115. package/dist/hyperframes-player.global.js +3 -3
  116. package/dist/{info-AW7CIVRE.js → info-ZN3JJ3IN.js} +8 -8
  117. package/dist/{init-6KIDG4LB.js → init-KRNGSRNH.js} +65 -47
  118. package/dist/{inspect-B7BLYMRZ.js → inspect-AYDZXTX7.js} +27 -27
  119. package/dist/{installer-ZP2LQZUQ.js → installer-N6AIK6XQ.js} +5 -5
  120. package/dist/{keyframes-EQ36A5JE.js → keyframes-2RFUCEDK.js} +6 -6
  121. package/dist/{lambda-E6VURLIS.js → lambda-VW3CF6EE.js} +20 -13
  122. package/dist/{layout-XYC64QQQ.js → layout-OE64APE7.js} +27 -27
  123. package/dist/{lint-V5DJYWBX.js → lint-UXJTX5WS.js} +7 -7
  124. package/dist/{lintProject-JATQKR64.js → lintProject-XM3DLUKG.js} +1 -1
  125. package/dist/{list-RUGVRTVD.js → list-KOL6JPZJ.js} +7 -7
  126. package/dist/{login-ZTKGKXGS.js → login-MAQXOPDG.js} +4 -4
  127. package/dist/{manager-JUP7PM6N.js → manager-3LZKRK7P.js} +8 -8
  128. package/dist/{media-treatment-VIUPK4OR.js → media-treatment-COLSXXQJ.js} +13 -13
  129. package/dist/{models-LJS2HBOZ.js → models-XXWMGOD7.js} +11 -11
  130. package/dist/{motionShot-3UAXZ7SN.js → motionShot-RECBNTBZ.js} +14 -14
  131. package/dist/{normalize-4UDISLPL.js → normalize-3AYFSN2F.js} +1 -1
  132. package/dist/{normalize-audio-SBYI4YIH.js → normalize-audio-LKVGHZWR.js} +6 -6
  133. package/dist/{open-S27TUD3A.js → open-UEQVSRKH.js} +12 -12
  134. package/dist/{parakeetRunner-ETLMLJ4L.js → parakeetRunner-QVPCZ36U.js} +12 -12
  135. package/dist/{pipeline-I2M22M24.js → pipeline-5VSMQBKW.js} +8 -8
  136. package/dist/{play-COJU6VJK.js → play-MNEABYN4.js} +19 -19
  137. package/dist/{policies-XXNGXWHV.js → policies-MBWGLMWB.js} +17 -0
  138. package/dist/{preflight-FZ24NCHH.js → preflight-ONJ74DWQ.js} +8 -8
  139. package/dist/{present-YAHKLC5D.js → present-GQ24GTYX.js} +15 -15
  140. package/dist/{preview-KQOEU5YE.js → preview-ALL7O4RG.js} +18 -18
  141. package/dist/{producer-DTNNG4T6.js → producer-43L2UDF6.js} +1 -1
  142. package/dist/{progress-NHJIHAAG.js → progress-PX3PVAIM.js} +5 -3
  143. package/dist/{projectConfig-4A76VYUP.js → projectConfig-VJXUXK7U.js} +7 -7
  144. package/dist/{publication-SQPMC2W3.js → publication-L6E5NTFV.js} +3 -3
  145. package/dist/{publish-QUEJBGGT.js → publish-LCLBJEPR.js} +9 -9
  146. package/dist/{remove-background-FP2ETAQH.js → remove-background-PDL4KPR4.js} +9 -9
  147. package/dist/{render-P664SMC7.js → render-7HVKJ7T4.js} +9 -7
  148. package/dist/{render-BIFIL4U6.js → render-J33ZHR6I.js} +44 -28
  149. package/dist/{render-GQFXJWLV.js → render-OPCRLZVL.js} +31 -22
  150. package/dist/{render-batch-ZCPMYH6Z.js → render-batch-ZHHIGXU3.js} +5 -5
  151. package/dist/renderSetupWorker.js +1 -1
  152. package/dist/{resolver-BUC2GFZQ.js → resolver-KNNIMMBM.js} +5 -5
  153. package/dist/{sam-MC24SZHC.js → sam-FHJ7IL7T.js} +3 -1
  154. package/dist/{sherpa-HFT6XEP6.js → sherpa-GI62H3H5.js} +11 -11
  155. package/dist/{sites-MAVH57MO.js → sites-5PWHAMEG.js} +1 -1
  156. package/dist/skills/hyperframes/references/motion.md +1 -0
  157. package/dist/{skills-3WEVO3NU.js → skills-IUTD6VQO.js} +5 -5
  158. package/dist/{skillsUpdateCheck-BFPWFOK5.js → skillsUpdateCheck-XZE7MJG6.js} +3 -3
  159. package/dist/{snapshot-WDQ6S7CJ.js → snapshot-XEXTHLZP.js} +37 -34
  160. package/dist/{src-NPR2JZOJ.js → src-6STRGCDC.js} +8 -8
  161. package/dist/{src-RZ574OKP.js → src-ZPIV4PGX.js} +10 -6
  162. package/dist/{state-ORRPOLMQ.js → state-JPNCCXAV.js} +3 -1
  163. package/dist/{staticProjectServer-FTGTEZI4.js → staticProjectServer-HJLT7MHE.js} +15 -15
  164. package/dist/studio/assets/{hyperframes-player-CoOdf435.js → hyperframes-player-DwWIKKZG.js} +1 -1
  165. package/dist/studio/assets/{index-CR85xg2x.js → index-Cjwz7_13.js} +1 -1
  166. package/dist/studio/assets/{index-C_6rTpaB.js → index-M8lEpS0Q.js} +131 -131
  167. package/dist/studio/index.html +1 -1
  168. package/dist/{studio-api-TAWB7B23.js → studio-api-OBHEB5ND.js} +9 -9
  169. package/dist/{studioServer-HRQGJTBU.js → studioServer-KRIZFYML.js} +47 -46
  170. package/dist/{telemetry-QZ6HJF4W.js → telemetry-N5OOVBCP.js} +3 -3
  171. package/dist/templates/_shared/AGENTS.md +5 -0
  172. package/dist/templates/_shared/CLAUDE.md +5 -0
  173. package/dist/{timeline-IKUEW42T.js → timeline-YUFH65OG.js} +17 -17
  174. package/dist/{tokens-AUGUEWHS.js → tokens-K4VYLSWJ.js} +2 -2
  175. package/dist/{transcribe-7734CG3N.js → transcribe-CY4CVO54.js} +17 -17
  176. package/dist/{transcribe-FWU6EMEO.js → transcribe-GMQXKDYN.js} +10 -10
  177. package/dist/{updateCheck-VIPQ3FPW.js → updateCheck-2625RXK4.js} +2 -2
  178. package/dist/{upgrade-4VNDQTVO.js → upgrade-6ZY5MSBQ.js} +2 -2
  179. package/dist/{urlDownloader-6CXL4CL7.js → urlDownloader-PVJWG7V3.js} +6 -6
  180. package/dist/{validate-QWCMVWID.js → validate-XSRHEE7E.js} +21 -21
  181. package/dist/{video-245Q5WN4.js → video-MBFHC54F.js} +7 -7
  182. package/dist/warmCheck.js +34 -34
  183. package/package.json +18 -2
  184. package/dist/audio-65R4T74I.js +0 -1154
  185. package/dist/chunk-3NPOFC43.js +0 -3805
  186. package/dist/deploy-JU7A3XNC.js +0 -196
@@ -6,24 +6,24 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  gateRegistryItemsCompatibility
9
- } from "./chunk-BRAPBUPQ.js";
9
+ } from "./chunk-57XL23DE.js";
10
10
  import {
11
11
  copyDirSync
12
12
  } from "./chunk-CIWX5UKC.js";
13
13
  import {
14
14
  initialModelForLanguage
15
- } from "./chunk-7RAY4WZP.js";
16
- import "./chunk-IDGLGXPA.js";
15
+ } from "./chunk-I7C5GUEQ.js";
16
+ import "./chunk-NFLZNSUZ.js";
17
17
  import {
18
18
  DEFAULT_MODEL,
19
19
  hasFFmpeg
20
- } from "./chunk-6ASIXMFP.js";
20
+ } from "./chunk-6OWNUXTU.js";
21
21
  import "./chunk-WQ6ZXHFQ.js";
22
22
  import {
23
23
  findFFmpeg,
24
24
  findFFprobe,
25
25
  getFFmpegInstallHint
26
- } from "./chunk-K2ZKXTVL.js";
26
+ } from "./chunk-NMOTNNP2.js";
27
27
  import {
28
28
  Ee,
29
29
  R,
@@ -43,19 +43,19 @@ import {
43
43
  listRegistryItems,
44
44
  loadAllItems,
45
45
  resolveItemWithDependencies
46
- } from "./chunk-RTBSA3EA.js";
46
+ } from "./chunk-DLFAVRF3.js";
47
47
  import "./chunk-JHOCK3DG.js";
48
48
  import {
49
49
  installItem
50
- } from "./chunk-HXUTX5GR.js";
51
- import "./chunk-PMMQRJDE.js";
50
+ } from "./chunk-HKUZCSNZ.js";
51
+ import "./chunk-HPQSUPR7.js";
52
52
  import "./chunk-AWDFDFI3.js";
53
53
  import "./chunk-P6LJ4Y32.js";
54
54
  import "./chunk-GMECXFAN.js";
55
55
  import {
56
56
  trackInitTemplate
57
- } from "./chunk-WQLKDL35.js";
58
- import "./chunk-H5SM5PJI.js";
57
+ } from "./chunk-6Q5CFUAP.js";
58
+ import "./chunk-PMXR3IUH.js";
59
59
  import "./chunk-VWG7OQKU.js";
60
60
  import {
61
61
  defineCommand,
@@ -70,14 +70,14 @@ import {
70
70
  c,
71
71
  isColorSupported
72
72
  } from "./chunk-ZTZA4UWZ.js";
73
- import "./chunk-I3IH5MV5.js";
73
+ import "./chunk-YCW345M4.js";
74
74
  import "./chunk-IZCW2NKT.js";
75
- import "./chunk-KROXPHXX.js";
75
+ import "./chunk-YV4WT7CJ.js";
76
76
  import "./chunk-RQVDTPGD.js";
77
- import "./chunk-Q47FAYYK.js";
78
- import "./chunk-3NPOFC43.js";
77
+ import "./chunk-SMF6YAUL.js";
78
+ import "./chunk-BPX7LZG6.js";
79
79
  import "./chunk-VC76R6W2.js";
80
- import "./chunk-UJKQWGFF.js";
80
+ import "./chunk-X7HBSTCZ.js";
81
81
  import {
82
82
  CANVAS_DIMENSIONS,
83
83
  HTML_BODY_CSS_HEIGHT_FIRST_RE,
@@ -95,7 +95,7 @@ import "./chunk-DYAPHNV6.js";
95
95
  import "./chunk-T6AGUTZJ.js";
96
96
  import "./chunk-XT6MXC7A.js";
97
97
  import "./chunk-4UMPIPCQ.js";
98
- import "./chunk-Q447CX26.js";
98
+ import "./chunk-TSFA2Y5C.js";
99
99
  import "./chunk-VAS6HQX3.js";
100
100
  import "./chunk-6BNTGNGD.js";
101
101
  import "./chunk-RUOG4VB7.js";
@@ -111,7 +111,7 @@ import "./chunk-WERLJGIC.js";
111
111
  import "./chunk-ISN5GRYI.js";
112
112
  import {
113
113
  VERSION
114
- } from "./chunk-I7QMXZSB.js";
114
+ } from "./chunk-6HYPEIH7.js";
115
115
  import "./chunk-KNU5COPB.js";
116
116
  import "./chunk-UOFAE5RF.js";
117
117
  import {
@@ -356,10 +356,18 @@ function probeVideo(filePath) {
356
356
  frameDuration,
357
357
  formatDuration
358
358
  });
359
+ const [sarW, sarH] = (videoStream.sample_aspect_ratio ?? "").split(":").map(Number);
360
+ const sar = sarW && sarH ? sarW / sarH : 1;
361
+ const width = Math.round((videoStream.width ?? 1920) * sar);
362
+ const height = videoStream.height ?? 1080;
363
+ const turn = Number(
364
+ videoStream.side_data_list?.find((d) => d.rotation !== void 0)?.rotation ?? videoStream.tags?.rotate ?? 0
365
+ );
366
+ const turned = Math.abs(turn) % 180 === 90;
359
367
  return {
360
368
  durationSeconds,
361
- width: videoStream.width ?? 1920,
362
- height: videoStream.height ?? 1080,
369
+ width: turned ? height : width,
370
+ height: turned ? width : height,
363
371
  fps,
364
372
  hasAudio,
365
373
  videoCodec: videoStream.codec_name ?? "unknown"
@@ -368,6 +376,12 @@ function probeVideo(filePath) {
368
376
  return void 0;
369
377
  }
370
378
  }
379
+ function clipFrame(templateId, clip) {
380
+ if (templateId !== "from-file" || !clip || !(clip.width > 0 && clip.height > 0)) return void 0;
381
+ const even = (n) => 2 * Math.round(n / 2);
382
+ const frame = clip.width >= clip.height ? { width: even(1080 * clip.width / clip.height), height: 1080 } : { width: 1080, height: even(1080 * clip.height / clip.width) };
383
+ return frame.width === 1920 && frame.height === 1080 ? void 0 : frame;
384
+ }
371
385
  function isWebCompatible(codec) {
372
386
  return WEB_CODECS.has(codec.toLowerCase());
373
387
  }
@@ -521,8 +535,13 @@ function patchVideoSrc(dir, media) {
521
535
  writeFileSync(file, patchMediaPlaceholders(readFileSync(file, "utf-8"), media), "utf-8");
522
536
  }
523
537
  }
538
+ async function finishScaffold(destDir, templateId, tailwind) {
539
+ trackInitTemplate(templateId, { tailwind });
540
+ const transcriptFile = resolve(destDir, TRANSCRIPT_FILE);
541
+ if (existsSync2(transcriptFile)) await patchTranscript(destDir, transcriptFile);
542
+ }
524
543
  async function patchTranscript(dir, transcriptPath) {
525
- const { loadTranscript, patchCaptionHtml } = await import("./normalize-4UDISLPL.js");
544
+ const { loadTranscript, patchCaptionHtml } = await import("./normalize-3AYFSN2F.js");
526
545
  const { words } = loadTranscript(transcriptPath);
527
546
  if (words.length === 0) return;
528
547
  patchCaptionHtml(dir, words);
@@ -610,7 +629,9 @@ async function handleVideoFile(videoPath, destDir, interactive, keepOriginal) {
610
629
  return { meta, localVideoName };
611
630
  }
612
631
  function applyResolutionPreset(destDir, resolution) {
613
- const { width, height } = CANVAS_DIMENSIONS[resolution];
632
+ applyCanvasSize(destDir, CANVAS_DIMENSIONS[resolution], resolution);
633
+ }
634
+ function applyCanvasSize(destDir, { width, height }, resolution) {
614
635
  for (const file of listHtmlFiles(destDir)) {
615
636
  let html = readFileSync(file, "utf-8");
616
637
  let changed = false;
@@ -626,7 +647,7 @@ function applyResolutionPreset(destDir, resolution) {
626
647
  }
627
648
  const htmlOpenRe = /<html\b([^>]*)>/i;
628
649
  const htmlOpen = html.match(htmlOpenRe);
629
- if (htmlOpen) {
650
+ if (htmlOpen && resolution) {
630
651
  const attrs = htmlOpen[1] ?? "";
631
652
  let next;
632
653
  if (/data-resolution=/.test(attrs)) {
@@ -654,7 +675,7 @@ function applyResolutionPreset(destDir, resolution) {
654
675
  if (changed) writeFileSync(file, html, "utf-8");
655
676
  }
656
677
  }
657
- async function scaffoldProject(destDir, name, templateId, media, tailwind = false, resolution, authoringSkill) {
678
+ async function scaffoldProject(destDir, name, templateId, media, tailwind = false, canvas, authoringSkill) {
658
679
  mkdirSync(destDir, { recursive: true });
659
680
  const templateDir = getStaticTemplateDir(templateId);
660
681
  if (existsSync2(join2(templateDir, "index.html"))) {
@@ -664,7 +685,8 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
664
685
  }
665
686
  patchVideoSrc(destDir, media);
666
687
  if (tailwind) writeTailwindSupport(destDir);
667
- if (resolution) applyResolutionPreset(destDir, resolution);
688
+ if (typeof canvas === "string") applyResolutionPreset(destDir, canvas);
689
+ else if (canvas) applyCanvasSize(destDir, canvas);
668
690
  writeFileSync(
669
691
  resolve(destDir, "meta.json"),
670
692
  JSON.stringify(
@@ -679,7 +701,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
679
701
  "utf-8"
680
702
  );
681
703
  if (!existsSync2(resolve(destDir, "hyperframes.json"))) {
682
- const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-4A76VYUP.js");
704
+ const { createProjectConfig, DEFAULT_PROJECT_CONFIG } = await import("./projectConfig-VJXUXK7U.js");
683
705
  const { normalizeSkillSlug } = await import("./skill-ZHVLH7KX.js");
684
706
  const skill = normalizeSkillSlug(authoringSkill);
685
707
  createProjectConfig(
@@ -700,7 +722,7 @@ async function scaffoldProject(destDir, name, templateId, media, tailwind = fals
700
722
  }
701
723
  }
702
724
  async function keepSkillsCurrent(destDir) {
703
- const { updateSkills } = await import("./skills-3WEVO3NU.js");
725
+ const { updateSkills } = await import("./skills-IUTD6VQO.js");
704
726
  console.log();
705
727
  console.log(c.bold("Checking AI coding skills against GitHub..."));
706
728
  try {
@@ -796,7 +818,7 @@ var init_default = defineCommand({
796
818
  },
797
819
  resolution: {
798
820
  type: "string",
799
- description: "Canvas resolution preset: landscape (1920x1080), portrait (1080x1920), landscape-4k (3840x2160), portrait-4k (2160x3840), square (1080x1080), square-4k (2160x2160). Aliases: 1080p, 4k, uhd, 1080p-square, square-1080p, 4k-square. Default: keep template dimensions (typically 1920x1080)."
821
+ description: "Canvas resolution preset: landscape (1920x1080), portrait (1080x1920), landscape-4k (3840x2160), portrait-4k (2160x3840), square (1080x1080), square-4k (2160x2160). Aliases: 1080p, 4k, uhd, 1080p-square, square-1080p, 4k-square. Default: a --video clip's own shape as it plays, 1080 on the short side (4:3 -> 1440x1080), else the template's dimensions (typically 1920x1080)."
800
822
  },
801
823
  skill: {
802
824
  type: "string",
@@ -888,6 +910,7 @@ var init_default = defineCommand({
888
910
  let localVideoName2;
889
911
  let videoHasAudio2 = true;
890
912
  let videoDuration2;
913
+ let videoSize2;
891
914
  let sourceFilePath2;
892
915
  if (videoPath) {
893
916
  sourceFilePath2 = videoPath;
@@ -895,6 +918,7 @@ var init_default = defineCommand({
895
918
  localVideoName2 = result.localVideoName;
896
919
  videoHasAudio2 = result.meta.hasAudio;
897
920
  videoDuration2 = result.meta.durationSeconds;
921
+ videoSize2 = result.meta;
898
922
  console.log(
899
923
  `Video: ${result.meta.width}x${result.meta.height}, ${result.meta.durationSeconds.toFixed(1)}s`
900
924
  );
@@ -902,17 +926,17 @@ var init_default = defineCommand({
902
926
  if (audioPath) {
903
927
  sourceFilePath2 = audioPath;
904
928
  copyFileSync(audioPath, resolve(destDir2, basename(audioPath)));
905
- const { getMediaDurationSeconds } = await import("./transcribe-FWU6EMEO.js");
929
+ const { getMediaDurationSeconds } = await import("./transcribe-GMQXKDYN.js");
906
930
  videoDuration2 = getMediaDurationSeconds(audioPath) ?? void 0;
907
931
  console.log(`Audio: ${basename(audioPath)}`);
908
932
  }
909
933
  if (sourceFilePath2 && !skipTranscribe) {
910
934
  try {
911
- const { ensureWhisper, ensureModel } = await import("./manager-JUP7PM6N.js");
935
+ const { ensureWhisper, ensureModel } = await import("./manager-3LZKRK7P.js");
912
936
  await ensureWhisper();
913
937
  await ensureModel(initialTranscriptionModel);
914
938
  console.log("Transcribing...");
915
- const { transcribe: runTranscribe } = await import("./transcribe-FWU6EMEO.js");
939
+ const { transcribe: runTranscribe } = await import("./transcribe-GMQXKDYN.js");
916
940
  const result = await runTranscribe(sourceFilePath2, destDir2, {
917
941
  model: modelFlag,
918
942
  language: languageFlag
@@ -937,7 +961,7 @@ var init_default = defineCommand({
937
961
  templateId2,
938
962
  media,
939
963
  tailwind,
940
- resolutionPreset,
964
+ resolutionPreset ?? clipFrame(templateId2, videoSize2),
941
965
  args.skill
942
966
  );
943
967
  } catch (err) {
@@ -949,11 +973,7 @@ var init_default = defineCommand({
949
973
  console.error(c.dim("Use --example blank for offline use."));
950
974
  failCommand();
951
975
  }
952
- trackInitTemplate(templateId2, { tailwind });
953
- const transcriptFile2 = resolve(destDir2, TRANSCRIPT_FILE);
954
- if (existsSync2(transcriptFile2)) {
955
- await patchTranscript(destDir2, transcriptFile2);
956
- }
976
+ await finishScaffold(destDir2, templateId2, tailwind);
957
977
  console.log(c.success(`Created ${c.accent(name2 + "/")}`));
958
978
  for (const f of readdirSync(destDir2).filter((f2) => !f2.startsWith("."))) {
959
979
  console.log(` ${c.accent(f)}`);
@@ -1037,6 +1057,7 @@ var init_default = defineCommand({
1037
1057
  let videoHasAudio = true;
1038
1058
  let sourceFilePath;
1039
1059
  let videoDuration;
1060
+ let videoSize;
1040
1061
  if (videoFlag) {
1041
1062
  const videoPath = resolve(videoFlag);
1042
1063
  if (!existsSync2(videoPath)) {
@@ -1050,6 +1071,7 @@ var init_default = defineCommand({
1050
1071
  localVideoName = result.localVideoName;
1051
1072
  videoHasAudio = result.meta.hasAudio;
1052
1073
  videoDuration = result.meta.durationSeconds;
1074
+ videoSize = result.meta;
1053
1075
  } else if (audioFlag) {
1054
1076
  const audioPath = resolve(audioFlag);
1055
1077
  if (!existsSync2(audioPath)) {
@@ -1060,7 +1082,7 @@ var init_default = defineCommand({
1060
1082
  mkdirSync(destDir, { recursive: true });
1061
1083
  sourceFilePath = audioPath;
1062
1084
  copyFileSync(audioPath, resolve(destDir, basename(audioPath)));
1063
- const { getMediaDurationSeconds } = await import("./transcribe-FWU6EMEO.js");
1085
+ const { getMediaDurationSeconds } = await import("./transcribe-GMQXKDYN.js");
1064
1086
  videoDuration = getMediaDurationSeconds(audioPath) ?? void 0;
1065
1087
  R.info(`Audio copied to ${c.accent(basename(audioPath))}`);
1066
1088
  }
@@ -1070,7 +1092,7 @@ var init_default = defineCommand({
1070
1092
  initialValue: true
1071
1093
  });
1072
1094
  if (!q(transcribeChoice) && transcribeChoice) {
1073
- const { findWhisper } = await import("./manager-JUP7PM6N.js");
1095
+ const { findWhisper } = await import("./manager-3LZKRK7P.js");
1074
1096
  const needsInstall = findWhisper() === void 0;
1075
1097
  if (needsInstall) {
1076
1098
  R.info(c.dim("whisper-cpp not found \u2014 installing automatically..."));
@@ -1080,7 +1102,7 @@ var init_default = defineCommand({
1080
1102
  needsInstall ? "Installing whisper-cpp (this may take a moment)..." : "Preparing transcription..."
1081
1103
  );
1082
1104
  try {
1083
- const { ensureWhisper, ensureModel } = await import("./manager-JUP7PM6N.js");
1105
+ const { ensureWhisper, ensureModel } = await import("./manager-3LZKRK7P.js");
1084
1106
  await ensureWhisper({
1085
1107
  onProgress: (msg) => spin2.message(msg)
1086
1108
  });
@@ -1088,7 +1110,7 @@ var init_default = defineCommand({
1088
1110
  onProgress: (msg) => spin2.message(msg)
1089
1111
  });
1090
1112
  spin2.message("Transcribing audio...");
1091
- const { transcribe: runTranscribe } = await import("./transcribe-FWU6EMEO.js");
1113
+ const { transcribe: runTranscribe } = await import("./transcribe-GMQXKDYN.js");
1092
1114
  const transcribeResult = await runTranscribe(sourceFilePath, destDir, {
1093
1115
  model: modelFlag,
1094
1116
  language: languageFlag,
@@ -1142,7 +1164,7 @@ var init_default = defineCommand({
1142
1164
  templateId,
1143
1165
  media,
1144
1166
  tailwind,
1145
- resolutionPreset,
1167
+ resolutionPreset ?? clipFrame(templateId, videoSize),
1146
1168
  args.skill
1147
1169
  );
1148
1170
  if (!isBundled) {
@@ -1158,11 +1180,7 @@ ${c.dim("Use --example blank for offline use.")}`
1158
1180
  );
1159
1181
  failCommand();
1160
1182
  }
1161
- trackInitTemplate(templateId, { tailwind });
1162
- const transcriptFile = resolve(destDir, TRANSCRIPT_FILE);
1163
- if (existsSync2(transcriptFile)) {
1164
- await patchTranscript(destDir, transcriptFile);
1165
- }
1183
+ await finishScaffold(destDir, templateId, tailwind);
1166
1184
  const files = readdirSync(destDir);
1167
1185
  Se(files.map((f) => c.accent(f)).join("\n"), c.success(`Created ${name}/`));
1168
1186
  if (!skipSkills) {
@@ -1170,7 +1188,7 @@ ${c.dim("Use --example blank for offline use.")}`
1170
1188
  }
1171
1189
  R.info("Opening studio preview...");
1172
1190
  try {
1173
- const previewCmd = await import("./preview-KQOEU5YE.js").then((m) => m.default);
1191
+ const previewCmd = await import("./preview-ALL7O4RG.js").then((m) => m.default);
1174
1192
  await runCommand(previewCmd, { rawArgs: [destDir] });
1175
1193
  } catch {
1176
1194
  }
@@ -6,45 +6,45 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  createInspectCommand
9
- } from "./chunk-TAX2ZJAP.js";
10
- import "./chunk-5GUKZRQN.js";
11
- import "./chunk-J5XEZ24I.js";
12
- import "./chunk-H6UY725W.js";
9
+ } from "./chunk-2DHCCBCN.js";
10
+ import "./chunk-FSTLXRIN.js";
11
+ import "./chunk-XPVN4R66.js";
12
+ import "./chunk-LWY3PFJ7.js";
13
13
  import "./chunk-X7MTZ4T2.js";
14
14
  import "./chunk-XUHOIDKG.js";
15
- import "./chunk-KQ4JEJLF.js";
16
- import "./chunk-SKYPMHQC.js";
15
+ import "./chunk-6HZ7TSJJ.js";
16
+ import "./chunk-5DPV7LU3.js";
17
17
  import "./chunk-6JR2XUEE.js";
18
- import "./chunk-TTVHYD5R.js";
18
+ import "./chunk-EI7FP7F3.js";
19
19
  import "./chunk-U6RXZNZE.js";
20
- import "./chunk-6GPR3G3C.js";
20
+ import "./chunk-LWYZN7HS.js";
21
21
  import "./chunk-ALVXFXUG.js";
22
- import "./chunk-IDFNKFPL.js";
22
+ import "./chunk-KDBPZOXK.js";
23
23
  import "./chunk-FH7WODJH.js";
24
- import "./chunk-TOI35GN2.js";
24
+ import "./chunk-MXXX6WVC.js";
25
25
  import "./chunk-MOEGCMKI.js";
26
- import "./chunk-SQVRXHOW.js";
26
+ import "./chunk-MTPPEEYZ.js";
27
27
  import "./chunk-DKPNNYBZ.js";
28
- import "./chunk-G2UANIDX.js";
28
+ import "./chunk-B2P4JRUJ.js";
29
29
  import "./chunk-K2FLNJVB.js";
30
30
  import "./chunk-442JNXRM.js";
31
31
  import "./chunk-EHSBBBR2.js";
32
- import "./chunk-EMSDWBG3.js";
33
- import "./chunk-HDIRZGK4.js";
32
+ import "./chunk-T3OXKSRG.js";
33
+ import "./chunk-DG4ME554.js";
34
34
  import "./chunk-XT7X6QCP.js";
35
35
  import "./chunk-4YYJOFKS.js";
36
36
  import "./chunk-HVW7ABXD.js";
37
- import "./chunk-RTBSA3EA.js";
37
+ import "./chunk-DLFAVRF3.js";
38
38
  import "./chunk-JHOCK3DG.js";
39
- import "./chunk-HXUTX5GR.js";
40
- import "./chunk-PMMQRJDE.js";
39
+ import "./chunk-HKUZCSNZ.js";
40
+ import "./chunk-HPQSUPR7.js";
41
41
  import "./chunk-AWDFDFI3.js";
42
42
  import "./chunk-P6LJ4Y32.js";
43
43
  import "./chunk-GMECXFAN.js";
44
44
  import "./chunk-7L37AB57.js";
45
45
  import "./chunk-EOVYQ3IG.js";
46
- import "./chunk-WQLKDL35.js";
47
- import "./chunk-H5SM5PJI.js";
46
+ import "./chunk-6Q5CFUAP.js";
47
+ import "./chunk-PMXR3IUH.js";
48
48
  import "./chunk-VWG7OQKU.js";
49
49
  import "./chunk-S3S4TGEH.js";
50
50
  import "./chunk-54HJ63Q2.js";
@@ -53,14 +53,14 @@ import "./chunk-ZTZA4UWZ.js";
53
53
  import "./chunk-KLIKCX6Q.js";
54
54
  import "./chunk-EVMY7IPL.js";
55
55
  import "./chunk-7FMUTGOH.js";
56
- import "./chunk-I3IH5MV5.js";
56
+ import "./chunk-YCW345M4.js";
57
57
  import "./chunk-IZCW2NKT.js";
58
- import "./chunk-KROXPHXX.js";
58
+ import "./chunk-YV4WT7CJ.js";
59
59
  import "./chunk-RQVDTPGD.js";
60
- import "./chunk-Q47FAYYK.js";
61
- import "./chunk-3NPOFC43.js";
60
+ import "./chunk-SMF6YAUL.js";
61
+ import "./chunk-BPX7LZG6.js";
62
62
  import "./chunk-VC76R6W2.js";
63
- import "./chunk-UJKQWGFF.js";
63
+ import "./chunk-X7HBSTCZ.js";
64
64
  import "./chunk-B2A56S5C.js";
65
65
  import "./chunk-OFQWTKPW.js";
66
66
  import "./chunk-DPVXBVLL.js";
@@ -70,7 +70,7 @@ import "./chunk-FXMKHHPO.js";
70
70
  import "./chunk-T6AGUTZJ.js";
71
71
  import "./chunk-XT6MXC7A.js";
72
72
  import "./chunk-4UMPIPCQ.js";
73
- import "./chunk-Q447CX26.js";
73
+ import "./chunk-TSFA2Y5C.js";
74
74
  import "./chunk-VAS6HQX3.js";
75
75
  import "./chunk-6BNTGNGD.js";
76
76
  import "./chunk-RUOG4VB7.js";
@@ -80,12 +80,12 @@ import "./chunk-SDYDNHEE.js";
80
80
  import "./chunk-IXLUTE6N.js";
81
81
  import "./chunk-I5JRXMCV.js";
82
82
  import "./chunk-W2LGJSEN.js";
83
- import "./chunk-ISTRDGIX.js";
83
+ import "./chunk-KWSEIVR6.js";
84
84
  import "./chunk-K4WIOZFP.js";
85
85
  import "./chunk-XUXGIA7H.js";
86
86
  import "./chunk-WERLJGIC.js";
87
87
  import "./chunk-ISN5GRYI.js";
88
- import "./chunk-I7QMXZSB.js";
88
+ import "./chunk-6HYPEIH7.js";
89
89
  import "./chunk-KNU5COPB.js";
90
90
  import "./chunk-KGPLIH7B.js";
91
91
  import "./chunk-M2WBOQ2Q.js";
@@ -10,16 +10,16 @@ import {
10
10
  prepareItem,
11
11
  publishItem,
12
12
  recordRewrittenInstall
13
- } from "./chunk-HXUTX5GR.js";
14
- import "./chunk-PMMQRJDE.js";
13
+ } from "./chunk-HKUZCSNZ.js";
14
+ import "./chunk-HPQSUPR7.js";
15
15
  import "./chunk-AWDFDFI3.js";
16
16
  import "./chunk-P6LJ4Y32.js";
17
17
  import "./chunk-GMECXFAN.js";
18
- import "./chunk-KROXPHXX.js";
18
+ import "./chunk-YV4WT7CJ.js";
19
19
  import "./chunk-RQVDTPGD.js";
20
- import "./chunk-3NPOFC43.js";
20
+ import "./chunk-BPX7LZG6.js";
21
21
  import "./chunk-VC76R6W2.js";
22
- import "./chunk-UJKQWGFF.js";
22
+ import "./chunk-X7HBSTCZ.js";
23
23
  import "./chunk-B2A56S5C.js";
24
24
  import "./chunk-OFQWTKPW.js";
25
25
  import "./chunk-DPVXBVLL.js";
@@ -6,13 +6,13 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-5GUKZRQN.js";
9
+ } from "./chunk-FSTLXRIN.js";
10
10
  import "./chunk-K2FLNJVB.js";
11
11
  import {
12
12
  ensureDOMParser
13
13
  } from "./chunk-442JNXRM.js";
14
- import "./chunk-WQLKDL35.js";
15
- import "./chunk-H5SM5PJI.js";
14
+ import "./chunk-6Q5CFUAP.js";
15
+ import "./chunk-PMXR3IUH.js";
16
16
  import "./chunk-VWG7OQKU.js";
17
17
  import {
18
18
  defineCommand
@@ -43,12 +43,12 @@ import {
43
43
  import "./chunk-W2LGJSEN.js";
44
44
  import {
45
45
  withMeta
46
- } from "./chunk-ISTRDGIX.js";
46
+ } from "./chunk-KWSEIVR6.js";
47
47
  import "./chunk-K4WIOZFP.js";
48
48
  import "./chunk-XUXGIA7H.js";
49
49
  import "./chunk-WERLJGIC.js";
50
50
  import "./chunk-ISN5GRYI.js";
51
- import "./chunk-I7QMXZSB.js";
51
+ import "./chunk-6HYPEIH7.js";
52
52
  import "./chunk-KNU5COPB.js";
53
53
  import {
54
54
  __toESM
@@ -2514,7 +2514,7 @@ function printOnionShotSaved(saved, elementCount) {
2514
2514
  console.log();
2515
2515
  }
2516
2516
  async function runOnionShot(comps, allComps, projectDir, entryFile, args) {
2517
- const { captureMotionPathShot } = await import("./motionShot-3UAXZ7SN.js");
2517
+ const { captureMotionPathShot } = await import("./motionShot-RECBNTBZ.js");
2518
2518
  const requests = collectShotSelectors(args.selector ? allComps : comps);
2519
2519
  const guardError = onionShotGuardError(projectDir, requests, args.ghost ?? false);
2520
2520
  if (guardError) {
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-2R5ZKWSV.js";
14
14
  import {
15
15
  defaultCloudFps
16
- } from "./chunk-G2UANIDX.js";
16
+ } from "./chunk-B2P4JRUJ.js";
17
17
  import {
18
18
  defineCommand
19
19
  } from "./chunk-S3S4TGEH.js";
@@ -26,11 +26,11 @@ import {
26
26
  import {
27
27
  DISTRIBUTED_FPS,
28
28
  isDistributedFps
29
- } from "./chunk-KROXPHXX.js";
29
+ } from "./chunk-YV4WT7CJ.js";
30
30
  import "./chunk-RQVDTPGD.js";
31
- import "./chunk-3NPOFC43.js";
31
+ import "./chunk-BPX7LZG6.js";
32
32
  import "./chunk-VC76R6W2.js";
33
- import "./chunk-UJKQWGFF.js";
33
+ import "./chunk-X7HBSTCZ.js";
34
34
  import "./chunk-B2A56S5C.js";
35
35
  import "./chunk-OFQWTKPW.js";
36
36
  import "./chunk-DPVXBVLL.js";
@@ -140,6 +140,10 @@ var lambda_default = defineCommand({
140
140
  description: "sparticuz | chrome-headless-shell (default: sparticuz)"
141
141
  },
142
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
+ },
143
147
  "skip-build": { type: "boolean", description: "Reuse existing handler.zip (deploy)" },
144
148
  // sites / render
145
149
  "site-id": { type: "string", description: "Explicit site id (overrides content hash)" },
@@ -219,7 +223,7 @@ var lambda_default = defineCommand({
219
223
  }
220
224
  const stackName = args["stack-name"] ?? // Lazy-imported so the dispatcher doesn't pull state.ts (and its
221
225
  // node:fs deps) on every CLI invocation — only on lambda runs.
222
- (await import("./state-ORRPOLMQ.js")).DEFAULT_STACK_NAME;
226
+ (await import("./state-JPNCCXAV.js")).DEFAULT_STACK_NAME;
223
227
  const profileFlag = args.profile;
224
228
  if (profileFlag) process.env.AWS_PROFILE = profileFlag;
225
229
  const regionFlag = args.region;
@@ -240,8 +244,8 @@ var lambda_default = defineCommand({
240
244
  }
241
245
  switch (subcommand) {
242
246
  case "deploy": {
243
- const { runDeploy } = await import("./deploy-JU7A3XNC.js");
244
- const { parseReservedConcurrency } = await import("./sam-MC24SZHC.js");
247
+ const { runDeploy } = await import("./deploy-MJVC4EFY.js");
248
+ const { parseReservedConcurrency } = await import("./sam-FHJ7IL7T.js");
245
249
  await runDeploy({
246
250
  stackName,
247
251
  region: args.region,
@@ -249,6 +253,7 @@ var lambda_default = defineCommand({
249
253
  reservedConcurrency: parseReservedConcurrency(args.concurrency),
250
254
  chromeSource: parseChromeSource(args["chrome-source"]),
251
255
  lambdaMemoryMb: parsePositiveInt(args.memory, "--memory"),
256
+ videoArch: parseVideoArch(args["video-arch"]),
252
257
  skipBuild: Boolean(args["skip-build"])
253
258
  });
254
259
  return;
@@ -267,7 +272,7 @@ var lambda_default = defineCommand({
267
272
  );
268
273
  failCommand();
269
274
  }
270
- const { runSitesCreate } = await import("./sites-MAVH57MO.js");
275
+ const { runSitesCreate } = await import("./sites-5PWHAMEG.js");
271
276
  await runSitesCreate({
272
277
  projectDir,
273
278
  stackName,
@@ -297,7 +302,7 @@ var lambda_default = defineCommand({
297
302
  );
298
303
  failCommand();
299
304
  }
300
- const { runRender } = await import("./render-P664SMC7.js");
305
+ const { runRender } = await import("./render-7HVKJ7T4.js");
301
306
  const renderResolution = parseOutputResolution(args["output-resolution"]);
302
307
  await runRender({
303
308
  projectDir,
@@ -353,7 +358,7 @@ var lambda_default = defineCommand({
353
358
  );
354
359
  failCommand();
355
360
  }
356
- const { runRenderBatch } = await import("./render-batch-ZCPMYH6Z.js");
361
+ const { runRenderBatch } = await import("./render-batch-ZHHIGXU3.js");
357
362
  const batchResolution = parseOutputResolution(args["output-resolution"]);
358
363
  await runRenderBatch({
359
364
  projectDir,
@@ -386,12 +391,12 @@ var lambda_default = defineCommand({
386
391
  );
387
392
  failCommand();
388
393
  }
389
- const { runProgress } = await import("./progress-NHJIHAAG.js");
394
+ const { runProgress } = await import("./progress-PX3PVAIM.js");
390
395
  await runProgress({ target, stackName, json: Boolean(args.json) });
391
396
  return;
392
397
  }
393
398
  case "destroy": {
394
- const { runDestroy } = await import("./destroy-4B5HW5FH.js");
399
+ const { runDestroy } = await import("./destroy-SSPAKADI.js");
395
400
  await runDestroy({ stackName, awsProfile: args.profile });
396
401
  return;
397
402
  }
@@ -403,7 +408,7 @@ var lambda_default = defineCommand({
403
408
  );
404
409
  failCommand();
405
410
  }
406
- const { runPolicies } = await import("./policies-XXNGXWHV.js");
411
+ const { runPolicies } = await import("./policies-MBWGLMWB.js");
407
412
  await runPolicies({
408
413
  verb,
409
414
  inputPath: args.extra,
@@ -450,6 +455,8 @@ var parseFormat = (raw) => parseEnum(raw, FORMATS, "[lambda render] --format", "
450
455
  var parseCodec = (raw) => parseEnum(raw, CODECS, "[lambda render] --codec", void 0);
451
456
  var parseQuality = (raw) => parseEnum(raw, QUALITIES, "[lambda render] --quality", void 0);
452
457
  var parseChromeSource = (raw) => parseEnum(raw, CHROME_SOURCES, "[lambda deploy] --chrome-source", "sparticuz");
458
+ var VIDEO_ARCHS = ["x86_64", "arm64"];
459
+ var parseVideoArch = (raw) => parseEnum(raw, VIDEO_ARCHS, "[lambda deploy] --video-arch", void 0);
453
460
  function parseOutputResolution(raw) {
454
461
  return parseOutputResolutionFlag(raw, {
455
462
  surfaceLabel: "[lambda render]",