hyperframes 0.8.150 → 0.8.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-3ZIFEN2U.js → add-QKZZG7A2.js} +11 -11
- package/dist/{animatedGifPrep-77LPFLKJ.js → animatedGifPrep-YQDPYGOD.js} +6 -6
- package/dist/api.js +16 -16
- package/dist/{asset-EYSZEHM6.js → asset-3Q737Y4H.js} +2 -2
- package/dist/{assetCataloger-KX3HD7ZI.js → assetCataloger-BTHEBJJB.js} +2 -2
- package/dist/{auth-L6IWNRXY.js → auth-XL7EU3SO.js} +1 -1
- package/dist/{autoUpdate-2O3HZB65.js → autoUpdate-PJFLTQ3U.js} +2 -2
- package/dist/{backgroundChecks-BH2LMJYE.js → backgroundChecks-T5TIR5WK.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-ZBKAYLWU.js → batchRender-NFLVIDB4.js} +3 -3
- package/dist/{beats-IVLF2566.js → beats-JU4GZ26R.js} +12 -12
- package/dist/{benchmark-SYZFW2G7.js → benchmark-7U2YWLTW.js} +8 -8
- package/dist/{browser-OSW3L25S.js → browser-D57UPYDA.js} +5 -5
- package/dist/{bundleWithLocalizedFonts-I4CWOXLK.js → bundleWithLocalizedFonts-26MXQOZG.js} +2 -2
- package/dist/{capture-AZOQ57TM.js → capture-47BV25G3.js} +2 -2
- package/dist/{capture-V5ICGSVJ.js → capture-LT252COQ.js} +10 -10
- package/dist/{catalog-VBJOA2Y5.js → catalog-BEZXOV4O.js} +11 -11
- package/dist/{catch-up-TKSEDNJK.js → catch-up-KVV5X6BF.js} +4 -4
- package/dist/{check-3HFISKDB.js → check-6KQ433E6.js} +189 -53
- package/dist/{checkBrowser-MXBDNZJB.js → checkBrowser-PRDR6XBY.js} +170 -28
- package/dist/{chunk-AFRXL75S.js → chunk-35PWWBGZ.js} +1 -1
- package/dist/{chunk-WLIUULZQ.js → chunk-3SVC7SW4.js} +28 -14
- package/dist/{chunk-EL5QVJEG.js → chunk-3ZPFRDEJ.js} +1 -1
- package/dist/{chunk-UQYQ7TBA.js → chunk-4LE27ST4.js} +1 -1
- package/dist/{chunk-DUUFDLC4.js → chunk-4MLYMDQ4.js} +1 -1
- package/dist/{chunk-Z6WZDGCS.js → chunk-4PKQEKAI.js} +2 -2
- package/dist/{chunk-VQ7YIURZ.js → chunk-4YZYYP7V.js} +5 -5
- package/dist/{chunk-XPQSL5VS.js → chunk-54DMWFQZ.js} +8 -1
- package/dist/{chunk-UVVI2NJQ.js → chunk-BRF3O35X.js} +6 -6
- package/dist/chunk-DHPFXAUF.js +165 -0
- package/dist/{chunk-6SFPQ2RZ.js → chunk-DIOBKUBV.js} +2 -2
- package/dist/{chunk-XQMEGSHG.js → chunk-FAIYEIZ4.js} +1 -1
- package/dist/{chunk-LW5VFBSY.js → chunk-FLVI7FHU.js} +1 -1
- package/dist/{chunk-JDB65PPT.js → chunk-GNTVYF7E.js} +8 -7
- package/dist/{chunk-423DJVX2.js → chunk-HVXRYMGQ.js} +1 -1
- package/dist/{chunk-F2RLIE7P.js → chunk-IP73NMQT.js} +11 -11
- package/dist/{chunk-2KAL22B5.js → chunk-IPDS2SWI.js} +1 -1
- package/dist/{chunk-6KWA3XPS.js → chunk-IZ7L6V76.js} +1 -1
- package/dist/{chunk-5NAYNDBT.js → chunk-IZPN423R.js} +6 -2
- package/dist/{chunk-4WFNTWKZ.js → chunk-KQGWP4KH.js} +2 -2
- package/dist/{chunk-NFQY7EIC.js → chunk-KXX6NLOT.js} +1 -1
- package/dist/{chunk-S5F26DUL.js → chunk-L3N7RJHS.js} +3 -3
- package/dist/{chunk-73RBX2E7.js → chunk-L6RIMCMG.js} +3 -3
- package/dist/{chunk-7IEGPJ4P.js → chunk-LBT4AMSF.js} +1 -1
- package/dist/{chunk-6NPFJ255.js → chunk-LKQS72D5.js} +1 -1
- package/dist/{chunk-RW7NLGPD.js → chunk-N3I6RAOR.js} +22 -14
- package/dist/{chunk-M6UDJ2E7.js → chunk-N4IXP3MY.js} +2 -2
- package/dist/{chunk-7E4VHPKJ.js → chunk-O3DUX6P2.js} +5 -5
- package/dist/{chunk-O4DC5CHF.js → chunk-OSAH7S5M.js} +1 -1
- package/dist/{chunk-UJB7356Y.js → chunk-OZ4K46OV.js} +3 -3
- package/dist/{chunk-6QB7F2II.js → chunk-POEEDPJI.js} +1 -1
- package/dist/{chunk-DOVJRUFM.js → chunk-PUIELIFA.js} +1 -1
- package/dist/chunk-QBYHNRHU.js +3795 -0
- package/dist/{chunk-XANZ4R4P.js → chunk-QF7AE3DB.js} +3 -3
- package/dist/{chunk-A6ZO4BX7.js → chunk-QLGBNGXC.js} +2 -2
- package/dist/{chunk-FPAT5HTI.js → chunk-RJRGR5KF.js} +10 -10
- package/dist/{chunk-AXPNVC3N.js → chunk-RRBKEHST.js} +1 -1
- package/dist/{chunk-UAIUVPZE.js → chunk-RYL6ZIJP.js} +6 -6
- package/dist/{chunk-TZPZE5PS.js → chunk-S22FKF6G.js} +6 -3
- package/dist/{chunk-I6DATIHC.js → chunk-TCWMDCBX.js} +2 -2
- package/dist/{chunk-M5B42RL5.js → chunk-WUUOFMHU.js} +3 -3
- package/dist/{chunk-BLRJKBKP.js → chunk-XGLNQDLN.js} +1 -1
- package/dist/{chunk-FN6KAS7A.js → chunk-XKKBIFE5.js} +7 -7
- package/dist/{chunk-ZNHAJCEA.js → chunk-XNDXENJQ.js} +27 -12
- package/dist/{chunk-PCWOSS7G.js → chunk-XQKVEQNY.js} +2 -2
- package/dist/{chunk-R5A7454P.js → chunk-XYHBVSWD.js} +2 -2
- package/dist/{chunk-7JTFPUMA.js → chunk-YEBKEWKB.js} +1 -1
- package/dist/{chunk-CZQLCBWY.js → chunk-YG2Y55KF.js} +1 -1
- package/dist/{chunk-B3XLIBFL.js → chunk-YIJMVFEJ.js} +1 -1
- package/dist/{chunk-OQ7XMM3S.js → chunk-YZTVHRJ2.js} +1 -1
- package/dist/{chunk-3UAIVF4L.js → chunk-ZD3RDNZI.js} +1 -1
- package/dist/{chunk-AKYQGZLU.js → chunk-ZGCRVM5M.js} +2 -2
- package/dist/{clean-7HU7S7DT.js → clean-RLTHFTQA.js} +16 -16
- package/dist/cli.js +52 -52
- package/dist/{cloud-HAXHBO25.js → cloud-Q5TGBTW3.js} +4 -4
- package/dist/{cloudrun-A3PIJ6DX.js → cloudrun-4UZF74MV.js} +3 -3
- package/dist/{compare-6IPSQMSM.js → compare-Q5UNR2V4.js} +23 -23
- package/dist/{compiler-UQP2VXN6.js → compiler-ZXT27Z62.js} +3 -3
- package/dist/{component-FF3AU24M.js → component-H734P32V.js} +3 -3
- package/dist/{compositions-JSH4MZXB.js → compositions-YEHDSTDR.js} +10 -10
- package/dist/{delete-G763SW64.js → delete-LDBMPWRT.js} +2 -2
- package/dist/{dist-Z7Q3JS7K.js → dist-7JXLFD6U.js} +2 -2
- package/dist/{dist-HUMFCJ6T.js → dist-RGE4QASU.js} +1 -1
- package/dist/{doctor-WZB6WMBY.js → doctor-XNJFIWJ7.js} +12 -12
- package/dist/{events-MUWJJCC7.js → events-G6UFLNXR.js} +2 -2
- package/dist/{events-T4YFQC5G.js → events-UKCPUWMH.js} +3 -3
- package/dist/{feedback-AUTHQNN2.js → feedback-CK3KZ7DE.js} +6 -6
- package/dist/{ffmpeg-TZB5WAYE.js → ffmpeg-MJFMBBSF.js} +2 -2
- package/dist/{figma-NBG6WBI7.js → figma-3D5C737B.js} +3 -3
- package/dist/fontLocalizeCli.js +8 -8
- package/dist/{get-OXBJLKLV.js → get-QGTQUWFT.js} +2 -2
- package/dist/{gpuPolicy-HBCCEQUS.js → gpuPolicy-G5QAQDYF.js} +6 -6
- package/dist/{grade-compare-2LX4FDH7.js → grade-compare-XIHOM62P.js} +25 -25
- package/dist/{help-LJI46EDO.js → help-U5UBXT52.js} +1 -1
- package/dist/{history-MFKAQEHU.js → history-5J73QZSA.js} +5 -5
- package/dist/hyperframe-runtime.js +54 -54
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +54 -54
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-D6Y5O2QE.js → info-RJHQQQUP.js} +7 -7
- package/dist/{init-47NZPEBI.js → init-M6UQOYYC.js} +28 -28
- package/dist/{inspect-U5UXJK5D.js → inspect-PRQWDBTP.js} +24 -24
- package/dist/{installer-AW7VFVTQ.js → installer-ZL7UKYK5.js} +4 -4
- package/dist/{keyframes-5G334NWB.js → keyframes-VMUJYTCQ.js} +6 -6
- package/dist/{lambda-GASGXN3A.js → lambda-ON42DRQD.js} +4 -4
- package/dist/{layout-OXAQFLJS.js → layout-QKBFVDVY.js} +24 -24
- package/dist/{lint-F36QFSNF.js → lint-ZQHHL2SV.js} +7 -7
- package/dist/{lintProject-SSEXWCH6.js → lintProject-3Z6OJCSO.js} +1 -1
- package/dist/{list-TR6QCI53.js → list-YBRKIWGF.js} +2 -2
- package/dist/{login-6LA2RWTC.js → login-4B2YXGLB.js} +4 -4
- package/dist/{manager-ES2UFT4X.js → manager-X44GKUEL.js} +3 -3
- package/dist/{manager-GWU5J6RJ.js → manager-ZLJD3EAY.js} +2 -2
- package/dist/{media-treatment-BOHYDWVY.js → media-treatment-5C5EJAAP.js} +11 -11
- package/dist/{models-6GW5Q3IW.js → models-R7ZDWBJ6.js} +12 -12
- package/dist/{motionShot-O7AOMPUN.js → motionShot-ZHESZNUL.js} +13 -13
- package/dist/{normalize-audio-UO5B4O76.js → normalize-audio-EVWZVTBM.js} +4 -4
- package/dist/{open-JV2EHVKM.js → open-TV6HT4UT.js} +4 -4
- package/dist/{parakeetRunner-23DZUF6G.js → parakeetRunner-YVVF4CG6.js} +13 -13
- package/dist/{pipeline-KTICSIK7.js → pipeline-ETR5SEBS.js} +8 -8
- package/dist/{play-CMUYPXBC.js → play-C6WONRZV.js} +17 -17
- package/dist/{preflight-JOD4OXGC.js → preflight-JYOX64YP.js} +4 -4
- package/dist/{present-ZDT5FM2H.js → present-RANXTVPA.js} +13 -13
- package/dist/{preview-ASHLGKDD.js → preview-KF6UMBT2.js} +18 -18
- package/dist/{producer-FFH2KUAZ.js → producer-CY2GXBWN.js} +1 -1
- package/dist/{projectConfig-FHIAOPKW.js → projectConfig-KPXCNMBM.js} +6 -6
- package/dist/{publication-WO5ZXURT.js → publication-Y36N4A7E.js} +2 -2
- package/dist/{publish-QWO2W7FB.js → publish-RCQJO35C.js} +8 -8
- package/dist/{remove-background-BO5MQR25.js → remove-background-3ZMXVWLB.js} +9 -9
- package/dist/{render-SDHFXL3Y.js → render-FKVRCDT2.js} +57 -34
- package/dist/{render-XTJKGT3G.js → render-PTNEFO5U.js} +8 -8
- package/dist/{render-HS3YOLSD.js → render-WUSTRMUD.js} +3 -3
- package/dist/{render-batch-J64AJHQY.js → render-batch-AQHU2JWZ.js} +3 -3
- package/dist/renderSetupWorker.js +4 -4
- package/dist/{resolver-IHNWMDJA.js → resolver-L5BDZJKU.js} +4 -4
- package/dist/{sherpa-FXBBYMDR.js → sherpa-3S3ISG7G.js} +12 -12
- package/dist/skills/hyperframes/references/frame-worker-core.md +11 -9
- package/dist/skills/hyperframes/references/subagent-dispatch.md +1 -1
- package/dist/skills/media-use/audio/scripts/lib/tts.cleanup.test.mjs +175 -0
- package/dist/skills/media-use/audio/scripts/lib/tts.mjs +24 -19
- package/dist/skills/media-use/references/grading.md +1 -2
- package/dist/skills/media-use/references/meta.md +17 -17
- package/dist/skills/media-use/references/operations.md +6 -6
- package/dist/skills/media-use/references/setup-providers.md +3 -4
- package/dist/skills/media-use/scripts/lib/cutlist.mjs +9 -2
- package/dist/skills/media-use/scripts/lib/cutlist.test.mjs +12 -0
- package/dist/skills/media-use/scripts/lib/telemetry.mjs +4 -1
- package/dist/skills/media-use/scripts/lib/telemetry.test.mjs +20 -0
- package/dist/skills/media-use/scripts/transcript-cut.mjs +23 -4
- package/dist/skills/media-use/scripts/transcript-cut.test.mjs +224 -0
- package/dist/{skills-ALLSN7TB.js → skills-X4WQEKNF.js} +5 -5
- package/dist/{skillsUpdateCheck-EIT5NWM6.js → skillsUpdateCheck-UYCVHDZ6.js} +3 -3
- package/dist/{snapshot-Y3I76OIZ.js → snapshot-YEYHQEZQ.js} +250 -139
- package/dist/{src-7V6LBC56.js → src-2NN2WB6X.js} +7 -5
- package/dist/{src-S5IZVJUX.js → src-OLBDPEG6.js} +7 -7
- package/dist/{staticProjectServer-QLWWGHZE.js → staticProjectServer-7H35NMWB.js} +13 -13
- package/dist/studio/assets/{hyperframes-player-kup62bDR.js → hyperframes-player-DJt8E7k4.js} +1 -1
- package/dist/studio/assets/{index-CS_m0TkX.js → index-BGks9KLI.js} +73 -73
- package/dist/studio/assets/{index-B8BBYY8L.js → index-DWIHrAY2.js} +1 -1
- package/dist/studio/assets/{index-DQ5jGodF.js → index-DgbLblGR.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-UBFLZ3DA.js → studio-api-HGM2A5I3.js} +7 -7
- package/dist/{studioServer-REOVCIFP.js → studioServer-M6XFL7N6.js} +43 -43
- package/dist/{telemetry-C3GDIXHO.js → telemetry-KVCZKVTE.js} +3 -3
- package/dist/{timeline-H42EGLMT.js → timeline-VYYKZR4V.js} +66 -13
- package/dist/{tokens-2K7ISTKV.js → tokens-B5NFFL55.js} +2 -2
- package/dist/{transcribe-NUPASAUP.js → transcribe-SBETOIWI.js} +11 -11
- package/dist/{transcribe-DVM7UFZZ.js → transcribe-WNFRYZAC.js} +17 -17
- package/dist/{updateCheck-3RWFSEZD.js → updateCheck-5MM2DFUC.js} +2 -2
- package/dist/{upgrade-YKKL36N7.js → upgrade-LWID54R3.js} +2 -2
- package/dist/{urlDownloader-6JNJYLPN.js → urlDownloader-CVLNXFDG.js} +5 -5
- package/dist/{validate-Z7KQT7GO.js → validate-V4CGQ6OF.js} +18 -18
- package/dist/{video-EXL2JDSL.js → video-VJB2KRSS.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-CEND6BLF.js +0 -3795
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
RemoveBackgroundError,
|
|
21
21
|
removeBackground
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-FLVI7FHU.js";
|
|
23
23
|
import {
|
|
24
24
|
DEFAULT_MODEL,
|
|
25
25
|
DEFAULT_QUALITY,
|
|
@@ -31,18 +31,18 @@ import {
|
|
|
31
31
|
listAvailableProviders,
|
|
32
32
|
modelPath,
|
|
33
33
|
selectProviders
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-S22FKF6G.js";
|
|
35
35
|
import "./chunk-3DKN5WKL.js";
|
|
36
36
|
import "./chunk-6BEFEWFB.js";
|
|
37
37
|
import "./chunk-PO2SDVQA.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-4MLYMDQ4.js";
|
|
39
39
|
import "./chunk-AMKC3AXA.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-IZPN423R.js";
|
|
41
|
+
import "./chunk-3SVC7SW4.js";
|
|
42
42
|
import "./chunk-NE55C6S5.js";
|
|
43
43
|
import "./chunk-JYVGYKXG.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-XQKVEQNY.js";
|
|
45
|
+
import "./chunk-QBYHNRHU.js";
|
|
46
46
|
import "./chunk-VC76R6W2.js";
|
|
47
47
|
import "./chunk-UJKQWGFF.js";
|
|
48
48
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -51,9 +51,9 @@ import "./chunk-DPVXBVLL.js";
|
|
|
51
51
|
import "./chunk-T76PLPD6.js";
|
|
52
52
|
import "./chunk-FXMKHHPO.js";
|
|
53
53
|
import "./chunk-RQVDTPGD.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-54DMWFQZ.js";
|
|
55
55
|
import "./chunk-TWWSYAKJ.js";
|
|
56
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-GNTVYF7E.js";
|
|
57
57
|
import "./chunk-IWFLMU2N.js";
|
|
58
58
|
import "./chunk-APDLWWFG.js";
|
|
59
59
|
import "./chunk-VAS6HQX3.js";
|
|
@@ -6,15 +6,15 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
maybePromptRenderFeedback
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OZ4K46OV.js";
|
|
10
10
|
import {
|
|
11
11
|
reportVariableIssues,
|
|
12
12
|
resolveVariablesArg,
|
|
13
13
|
validateVariablesAgainstProject
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4LE27ST4.js";
|
|
15
15
|
import {
|
|
16
16
|
loadProducer
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-POEEDPJI.js";
|
|
18
18
|
import {
|
|
19
19
|
renderJobObservabilityTelemetryPayload
|
|
20
20
|
} from "./chunk-VXVRPIJA.js";
|
|
@@ -26,11 +26,11 @@ import {
|
|
|
26
26
|
resolveCompositionEntryArg,
|
|
27
27
|
resolveDefaultFpsArg,
|
|
28
28
|
windowsChromeCrashRemediation
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-HVXRYMGQ.js";
|
|
30
30
|
import "./chunk-WPNE5NEP.js";
|
|
31
31
|
import {
|
|
32
32
|
resolveProject
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-KXX6NLOT.js";
|
|
34
34
|
import {
|
|
35
35
|
formatLintStartupMessage
|
|
36
36
|
} from "./chunk-6CSYCFQV.js";
|
|
@@ -48,21 +48,21 @@ import {
|
|
|
48
48
|
import "./chunk-DCAI5DBR.js";
|
|
49
49
|
import {
|
|
50
50
|
runEnvironmentChecks
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-WUUOFMHU.js";
|
|
52
52
|
import "./chunk-442JNXRM.js";
|
|
53
53
|
import {
|
|
54
54
|
loadProjectConfig,
|
|
55
55
|
readProjectConfigWithStatus,
|
|
56
56
|
seedProjectAuthoringSkill
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-FAIYEIZ4.js";
|
|
58
58
|
import "./chunk-XT7X6QCP.js";
|
|
59
59
|
import "./chunk-4YYJOFKS.js";
|
|
60
60
|
import {
|
|
61
61
|
normalizeSkillSlug
|
|
62
62
|
} from "./chunk-HVW7ABXD.js";
|
|
63
|
-
import "./chunk-
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-XGLNQDLN.js";
|
|
64
|
+
import "./chunk-N4IXP3MY.js";
|
|
65
|
+
import "./chunk-YZTVHRJ2.js";
|
|
66
66
|
import "./chunk-AWDFDFI3.js";
|
|
67
67
|
import "./chunk-P6LJ4Y32.js";
|
|
68
68
|
import "./chunk-GMECXFAN.js";
|
|
@@ -71,8 +71,8 @@ import {
|
|
|
71
71
|
trackRenderError,
|
|
72
72
|
trackRenderObservation,
|
|
73
73
|
trackRenderPreflightRejected
|
|
74
|
-
} from "./chunk-
|
|
75
|
-
import "./chunk-
|
|
74
|
+
} from "./chunk-ZD3RDNZI.js";
|
|
75
|
+
import "./chunk-IZ7L6V76.js";
|
|
76
76
|
import "./chunk-VWG7OQKU.js";
|
|
77
77
|
import {
|
|
78
78
|
bytesToMb
|
|
@@ -98,7 +98,7 @@ import {
|
|
|
98
98
|
import {
|
|
99
99
|
hasDefinitiveEntryMismatch
|
|
100
100
|
} from "./chunk-Q5X2B5WT.js";
|
|
101
|
-
import "./chunk-
|
|
101
|
+
import "./chunk-LBT4AMSF.js";
|
|
102
102
|
import "./chunk-K4WIOZFP.js";
|
|
103
103
|
import {
|
|
104
104
|
readConfigFresh,
|
|
@@ -112,11 +112,11 @@ import {
|
|
|
112
112
|
} from "./chunk-ISN5GRYI.js";
|
|
113
113
|
import {
|
|
114
114
|
VERSION
|
|
115
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-TCWMDCBX.js";
|
|
116
116
|
import "./chunk-EOVYQ3IG.js";
|
|
117
117
|
import {
|
|
118
118
|
createRenderCancellationScope
|
|
119
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-KQGWP4KH.js";
|
|
120
120
|
import {
|
|
121
121
|
H264EncoderUnavailableError,
|
|
122
122
|
chromeLaunchRemediation,
|
|
@@ -124,15 +124,15 @@ import {
|
|
|
124
124
|
findFFmpeg,
|
|
125
125
|
findFFprobe,
|
|
126
126
|
getFFmpegInstallHint
|
|
127
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-4MLYMDQ4.js";
|
|
128
128
|
import "./chunk-AMKC3AXA.js";
|
|
129
129
|
import {
|
|
130
130
|
EXTRACT_CACHE_DIR_DISABLED_ALIASES,
|
|
131
131
|
MAX_VP9_CPU_USED,
|
|
132
132
|
MIN_VP9_CPU_USED,
|
|
133
133
|
isVideoFrameFormat
|
|
134
|
-
} from "./chunk-
|
|
135
|
-
import "./chunk-
|
|
134
|
+
} from "./chunk-IZPN423R.js";
|
|
135
|
+
import "./chunk-3SVC7SW4.js";
|
|
136
136
|
import "./chunk-NE55C6S5.js";
|
|
137
137
|
import "./chunk-JYVGYKXG.js";
|
|
138
138
|
import {
|
|
@@ -140,8 +140,8 @@ import {
|
|
|
140
140
|
fpsToFfmpegArg,
|
|
141
141
|
fpsToNumber,
|
|
142
142
|
parseFps
|
|
143
|
-
} from "./chunk-
|
|
144
|
-
import "./chunk-
|
|
143
|
+
} from "./chunk-XQKVEQNY.js";
|
|
144
|
+
import "./chunk-QBYHNRHU.js";
|
|
145
145
|
import "./chunk-VC76R6W2.js";
|
|
146
146
|
import "./chunk-UJKQWGFF.js";
|
|
147
147
|
import {
|
|
@@ -157,15 +157,15 @@ import "./chunk-FXMKHHPO.js";
|
|
|
157
157
|
import "./chunk-RQVDTPGD.js";
|
|
158
158
|
import {
|
|
159
159
|
killOrphanedProcessesForRender
|
|
160
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-YIJMVFEJ.js";
|
|
161
161
|
import {
|
|
162
162
|
runRenderSetupWorker
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-54DMWFQZ.js";
|
|
164
164
|
import "./chunk-TWWSYAKJ.js";
|
|
165
165
|
import {
|
|
166
166
|
lintProject,
|
|
167
167
|
shouldBlockRender
|
|
168
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-GNTVYF7E.js";
|
|
169
169
|
import {
|
|
170
170
|
collectSubCompositionSrcs
|
|
171
171
|
} from "./chunk-IWFLMU2N.js";
|
|
@@ -672,7 +672,7 @@ async function executeRenderPlan(plan, dependencies, cancellation) {
|
|
|
672
672
|
let batchModule;
|
|
673
673
|
let preparedBatch;
|
|
674
674
|
if (plan.batchPath) {
|
|
675
|
-
batchModule = await import("./batchRender-
|
|
675
|
+
batchModule = await import("./batchRender-NFLVIDB4.js");
|
|
676
676
|
try {
|
|
677
677
|
preparedBatch = batchModule.prepareBatchRender({
|
|
678
678
|
batchPath: plan.batchPath,
|
|
@@ -761,7 +761,7 @@ function assertRenderActive(cancellation) {
|
|
|
761
761
|
cancellation?.signal.throwIfAborted();
|
|
762
762
|
}
|
|
763
763
|
async function ensureRenderBrowser(plan, signal) {
|
|
764
|
-
const { ensureBrowser } = await import("./manager-
|
|
764
|
+
const { ensureBrowser } = await import("./manager-ZLJD3EAY.js");
|
|
765
765
|
let browserSpinner;
|
|
766
766
|
try {
|
|
767
767
|
if (plan.effectiveQuiet) {
|
|
@@ -1147,6 +1147,34 @@ var DockerRenderExitError = class extends Error {
|
|
|
1147
1147
|
}
|
|
1148
1148
|
};
|
|
1149
1149
|
|
|
1150
|
+
// src/utils/dockerBuildFailure.ts
|
|
1151
|
+
var DOCKER_BUILD_TIMEOUT_MINUTES = 10;
|
|
1152
|
+
function isSpawnTimeout(error) {
|
|
1153
|
+
return error instanceof Error && "code" in error && error.code === "ETIMEDOUT";
|
|
1154
|
+
}
|
|
1155
|
+
function describeDockerBuildFailure(error) {
|
|
1156
|
+
if (error instanceof Error && isSpawnTimeout(error.cause)) {
|
|
1157
|
+
return {
|
|
1158
|
+
title: "Docker image build timed out",
|
|
1159
|
+
message: `Building the render image took longer than ${DOCKER_BUILD_TIMEOUT_MINUTES} minutes, so it was stopped.`,
|
|
1160
|
+
hint: "Run the same command again. Docker keeps the layers it already built, so the build picks up where it stopped."
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1163
|
+
const message = normalizeErrorMessage(error);
|
|
1164
|
+
if (/connect|not found|ENOENT/i.test(message)) {
|
|
1165
|
+
return {
|
|
1166
|
+
title: "Docker not available",
|
|
1167
|
+
message,
|
|
1168
|
+
hint: "Install Docker: https://docs.docker.com/get-docker/"
|
|
1169
|
+
};
|
|
1170
|
+
}
|
|
1171
|
+
return {
|
|
1172
|
+
title: "Docker image build failed",
|
|
1173
|
+
message,
|
|
1174
|
+
hint: "Check Docker is running: docker info"
|
|
1175
|
+
};
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1150
1178
|
// src/browser/macosOldChromeCrash.ts
|
|
1151
1179
|
var DYLD_SYMBOL_NOT_FOUND = /Symbol not found:/i;
|
|
1152
1180
|
var MACOS_13_ONLY_SYMBOL = /_kVTCompressionPropertyKey_ReferenceBufferCount/;
|
|
@@ -1543,11 +1571,11 @@ function ensureDockerImage(version, platform, quiet) {
|
|
|
1543
1571
|
tag,
|
|
1544
1572
|
tmpDir
|
|
1545
1573
|
],
|
|
1546
|
-
{ stdio: quiet ? "pipe" : "inherit", timeout:
|
|
1574
|
+
{ stdio: quiet ? "pipe" : "inherit", timeout: DOCKER_BUILD_TIMEOUT_MINUTES * 6e4 }
|
|
1547
1575
|
);
|
|
1548
1576
|
} catch (error) {
|
|
1549
1577
|
const message = normalizeErrorMessage(error);
|
|
1550
|
-
throw new Error(`Failed to build Docker image: ${message}
|
|
1578
|
+
throw new Error(`Failed to build Docker image: ${message}`, { cause: error });
|
|
1551
1579
|
} finally {
|
|
1552
1580
|
rmSync(tmpDir, { recursive: true, force: true });
|
|
1553
1581
|
}
|
|
@@ -1584,13 +1612,8 @@ async function renderDocker(projectDir, outputPath, options) {
|
|
|
1584
1612
|
try {
|
|
1585
1613
|
imageTag = ensureDockerImage(dockerVersion, platform, options.quiet);
|
|
1586
1614
|
} catch (error) {
|
|
1587
|
-
const
|
|
1588
|
-
|
|
1589
|
-
errorBox(
|
|
1590
|
-
isDockerMissing ? "Docker not available" : "Docker image build failed",
|
|
1591
|
-
message,
|
|
1592
|
-
isDockerMissing ? "Install Docker: https://docs.docker.com/get-docker/" : "Check Docker is running: docker info"
|
|
1593
|
-
);
|
|
1615
|
+
const failure = describeDockerBuildFailure(error);
|
|
1616
|
+
errorBox(failure.title, failure.message, failure.hint);
|
|
1594
1617
|
failCommand();
|
|
1595
1618
|
}
|
|
1596
1619
|
const outputDir = dirname2(outputPath);
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
reportVariableIssues,
|
|
26
26
|
resolveVariablesArg,
|
|
27
27
|
validateVariablesAgainstProject
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-4LE27ST4.js";
|
|
29
29
|
import {
|
|
30
30
|
buildPublishFileMap,
|
|
31
31
|
zipPublishFileMap
|
|
@@ -35,15 +35,15 @@ import "./chunk-KMAAOHLO.js";
|
|
|
35
35
|
import "./chunk-NAMGMP3R.js";
|
|
36
36
|
import {
|
|
37
37
|
resolveProject
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-KXX6NLOT.js";
|
|
39
39
|
import {
|
|
40
40
|
errorBox,
|
|
41
41
|
formatBytes,
|
|
42
42
|
formatDuration
|
|
43
43
|
} from "./chunk-K2FLNJVB.js";
|
|
44
44
|
import "./chunk-442JNXRM.js";
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-ZD3RDNZI.js";
|
|
46
|
+
import "./chunk-IZ7L6V76.js";
|
|
47
47
|
import "./chunk-VWG7OQKU.js";
|
|
48
48
|
import "./chunk-XBSPQ52S.js";
|
|
49
49
|
import {
|
|
@@ -58,20 +58,20 @@ import {
|
|
|
58
58
|
} from "./chunk-ZTZA4UWZ.js";
|
|
59
59
|
import {
|
|
60
60
|
withMeta
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-35PWWBGZ.js";
|
|
62
62
|
import "./chunk-K4WIOZFP.js";
|
|
63
63
|
import "./chunk-XUXGIA7H.js";
|
|
64
64
|
import "./chunk-WERLJGIC.js";
|
|
65
65
|
import "./chunk-ISN5GRYI.js";
|
|
66
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-TCWMDCBX.js";
|
|
67
67
|
import {
|
|
68
68
|
downloadToFile
|
|
69
69
|
} from "./chunk-BXCMXMJQ.js";
|
|
70
70
|
import "./chunk-EOVYQ3IG.js";
|
|
71
71
|
import "./chunk-AMKC3AXA.js";
|
|
72
72
|
import "./chunk-JYVGYKXG.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-XQKVEQNY.js";
|
|
74
|
+
import "./chunk-QBYHNRHU.js";
|
|
75
75
|
import "./chunk-VC76R6W2.js";
|
|
76
76
|
import "./chunk-UJKQWGFF.js";
|
|
77
77
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
resolveVariablesArg,
|
|
17
17
|
validateVariablesAgainstProject
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-4LE27ST4.js";
|
|
19
19
|
import "./chunk-FH7WODJH.js";
|
|
20
20
|
import "./chunk-K2FLNJVB.js";
|
|
21
21
|
import "./chunk-442JNXRM.js";
|
|
@@ -25,8 +25,8 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
c
|
|
27
27
|
} from "./chunk-ZTZA4UWZ.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-XQKVEQNY.js";
|
|
29
|
+
import "./chunk-QBYHNRHU.js";
|
|
30
30
|
import "./chunk-VC76R6W2.js";
|
|
31
31
|
import "./chunk-UJKQWGFF.js";
|
|
32
32
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
loadProjectVariableSchema,
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
validateVariablesAgainstSchema
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4LE27ST4.js";
|
|
18
18
|
import "./chunk-FH7WODJH.js";
|
|
19
19
|
import {
|
|
20
20
|
errorBox
|
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
c
|
|
29
29
|
} from "./chunk-ZTZA4UWZ.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-XQKVEQNY.js";
|
|
31
|
+
import "./chunk-QBYHNRHU.js";
|
|
32
32
|
import "./chunk-VC76R6W2.js";
|
|
33
33
|
import "./chunk-UJKQWGFF.js";
|
|
34
34
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -8,19 +8,19 @@ import "./chunk-Q5X2B5WT.js";
|
|
|
8
8
|
import {
|
|
9
9
|
ensureBrowser,
|
|
10
10
|
releaseOwnedBrowserInstallLock
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LBT4AMSF.js";
|
|
12
12
|
import {
|
|
13
13
|
killOrphanedProcesses
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YIJMVFEJ.js";
|
|
15
15
|
import {
|
|
16
16
|
installRenderSetupSignalHandlers,
|
|
17
17
|
renderSetupErrorLine,
|
|
18
18
|
renderSetupResultLine
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-54DMWFQZ.js";
|
|
20
20
|
import "./chunk-TWWSYAKJ.js";
|
|
21
21
|
import {
|
|
22
22
|
lintProject
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-GNTVYF7E.js";
|
|
24
24
|
import "./chunk-IWFLMU2N.js";
|
|
25
25
|
import "./chunk-APDLWWFG.js";
|
|
26
26
|
import "./chunk-VAS6HQX3.js";
|
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
resolveItemWithDependencies,
|
|
12
12
|
resolveItemsByTag,
|
|
13
13
|
unreachableRegistryMessage
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-XGLNQDLN.js";
|
|
15
|
+
import "./chunk-YZTVHRJ2.js";
|
|
16
16
|
import "./chunk-AWDFDFI3.js";
|
|
17
17
|
import "./chunk-P6LJ4Y32.js";
|
|
18
18
|
import "./chunk-GMECXFAN.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-XQKVEQNY.js";
|
|
20
|
+
import "./chunk-QBYHNRHU.js";
|
|
21
21
|
import "./chunk-VC76R6W2.js";
|
|
22
22
|
import "./chunk-UJKQWGFF.js";
|
|
23
23
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -16,23 +16,23 @@ import {
|
|
|
16
16
|
sherpaRuntimeLoadError,
|
|
17
17
|
sherpaUnsupportedReason,
|
|
18
18
|
transcribeWithSherpa
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-DIOBKUBV.js";
|
|
20
20
|
import "./chunk-BXCMXMJQ.js";
|
|
21
21
|
import "./chunk-3DKN5WKL.js";
|
|
22
22
|
import "./chunk-EOVYQ3IG.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-QF7AE3DB.js";
|
|
24
|
+
import "./chunk-KQGWP4KH.js";
|
|
25
25
|
import "./chunk-6BEFEWFB.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-YG2Y55KF.js";
|
|
27
27
|
import "./chunk-PO2SDVQA.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-4MLYMDQ4.js";
|
|
29
29
|
import "./chunk-AMKC3AXA.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-IZPN423R.js";
|
|
31
|
+
import "./chunk-3SVC7SW4.js";
|
|
32
32
|
import "./chunk-NE55C6S5.js";
|
|
33
33
|
import "./chunk-JYVGYKXG.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-XQKVEQNY.js";
|
|
35
|
+
import "./chunk-QBYHNRHU.js";
|
|
36
36
|
import "./chunk-VC76R6W2.js";
|
|
37
37
|
import "./chunk-UJKQWGFF.js";
|
|
38
38
|
import "./chunk-LFNQDTSH.js";
|
|
@@ -41,10 +41,10 @@ import "./chunk-DPVXBVLL.js";
|
|
|
41
41
|
import "./chunk-T76PLPD6.js";
|
|
42
42
|
import "./chunk-FXMKHHPO.js";
|
|
43
43
|
import "./chunk-RQVDTPGD.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-YIJMVFEJ.js";
|
|
45
|
+
import "./chunk-54DMWFQZ.js";
|
|
46
46
|
import "./chunk-TWWSYAKJ.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-GNTVYF7E.js";
|
|
48
48
|
import "./chunk-IWFLMU2N.js";
|
|
49
49
|
import "./chunk-APDLWWFG.js";
|
|
50
50
|
import "./chunk-VAS6HQX3.js";
|
|
@@ -7,8 +7,9 @@ You build the frame composition file(s) assigned in your dispatch and nothing el
|
|
|
7
7
|
**INPUT** — your dispatch provides this role, your frame packet(s), and:
|
|
8
8
|
|
|
9
9
|
- `PROJECT_DIR` — the project root; all paths are relative to it.
|
|
10
|
-
- `frame_id` — e.g. `03-feature`. Use it **verbatim** as the composition id, the `window.__timelines` key, and the file name
|
|
10
|
+
- `frame_id` — e.g. `03-feature`. Use it **verbatim** as the composition id, the `window.__timelines` key, and the file name. Write to the exact `src` in your packet's storyboard block (e.g. `compositions/frames/<frame_id>.html` or `compositions/<frame_id>.html`); the orchestrator derived `frame_id` from that path, and the assembler reads it verbatim.
|
|
11
11
|
- Your **packet** (`.hyperframes/frame-packets/<frame_id>.md`) — everything selected upstream for this frame. You never open the shared `STORYBOARD.md` (see below); the packet carries your exact **`## Frame N` block**:
|
|
12
|
+
- `src` — the exact output HTML path, relative to `PROJECT_DIR`. Preserve it; do not add or remove a `frames/` directory.
|
|
12
13
|
- `scene` — a one-line contact-sheet caption. **Design intent, never visible DOM text.**
|
|
13
14
|
- `voiceover` — the narration line. **Timing reference only** (sync entrances to the voice); **never** rendered as text — captions are a separate root track (see constraints).
|
|
14
15
|
- `duration` — your render length in seconds. **Fixed upstream; never change it or tween to fill a different length.**
|
|
@@ -24,7 +25,7 @@ You build the frame composition file(s) assigned in your dispatch and nothing el
|
|
|
24
25
|
|
|
25
26
|
**Retry** — if your context carries `lint` / `check` feedback from a prior pass, read it first and re-author so none of those findings recur; treat each as a hard constraint.
|
|
26
27
|
|
|
27
|
-
**OUTPUT** —
|
|
28
|
+
**OUTPUT** — the HTML file at each assigned packet's `src`: exactly one bare `<template>…</template>` fragment. The first non-whitespace bytes are `<template`; the last are `</template>`. Never emit `<!doctype>`, `<html>`, `<head>`, `<body>`, or any markup outside that single template. The workflow delta specifies any required sidecars and the dispatch specifies which packets you own. Writing all assigned HTML files and required sidecars (past the self-check below) is your **terminal action** — you do not edit `STORYBOARD.md`, mint audio, assemble the index, run the CLI, or report back. The orchestrator picks up the file and marks the frame's `status`.
|
|
28
29
|
|
|
29
30
|
## When a confirmed sketch exists
|
|
30
31
|
|
|
@@ -56,24 +57,25 @@ Shared law for every narrative frame, each load-bearing; your workflow's delta a
|
|
|
56
57
|
|
|
57
58
|
1. **Read** — your packet top to bottom (your frame block, the inlined blueprint, the inlined rule recipes), then `frame.md` (the look). Internalize the self-check codes below before you write — most lethal is **template transport**: every `<style>` + `<script>` (including the gsap load) must live INSIDE `<template>`, because the runtime only clones template contents and the assembled-project `lint` / `check` gate can miss an unwired blank sub-composition.
|
|
58
59
|
2. **Design** — turn the time-coded shot sequence into a timeline using `frame.md`'s components and type ramp: each Scene window becomes a phase revealed on its `voiceover` cue, each named motion built from the recipe in your packet, the blueprint's signature move kept recognizable. Find a visual idea that reinforces the beat, not a literal restyle of the words.
|
|
59
|
-
3. **Author** — write the full sub-composition to `
|
|
60
|
+
3. **Author** — write the full sub-composition to the exact `src` in your packet (rewrite to iterate; last write wins). `<template>`-wrapped root carrying `data-composition-id="<frame_id>"` and styled via `#root` (not a class on that element — see the self-check below), exactly one `gsap.timeline({ paused: true })` registered at `window.__timelines["<frame_id>"]`, built synchronously.
|
|
60
61
|
Prefix authored ids and globally reusable class names with `<frame_id>-` so sibling frames assembled from parallel workers cannot collide. Contract selectors such as `#root` and `.clip` are the only exceptions.
|
|
61
|
-
4. **Self-check, then finish** — re-read your file against the checklist below and fix in place; then continue to your next assigned packet, if any. You do **not** run the CLI.
|
|
62
|
+
4. **Self-check, then finish** — re-read your file against the checklist below and fix in place; write any sidecar required by the workflow delta, then continue to your next assigned packet, if any. You do **not** run the CLI.
|
|
62
63
|
|
|
63
64
|
## Self-check before finishing (you do NOT run the CLI)
|
|
64
65
|
|
|
65
|
-
You **can't** meaningfully run `hyperframes lint` / `check` here: they operate on the **assembled project** (the `index.html` graph / bundle), and your frame isn't wired in yet — so they report on _other_ files, not yours (a false green). The **orchestrator** runs them after assembly (the correct unit), and **re-dispatches you with the finding** if your frame fails (see **Retry** above). So get it right on write: re-read your file against this checklist before finishing —
|
|
66
|
+
You **can't** meaningfully run `hyperframes lint` / `check` here: they operate on the **assembled project** (the `index.html` graph / bundle), and your frame isn't wired in yet — so they report on _other_ files, not yours (a false green). The **orchestrator** runs them after assembly (the correct unit), and **re-dispatches you with the finding** if your frame fails (see **Retry** above). So get it right on write: re-read your file against this checklist before finishing — backticked diagnostic codes below are emitted by `hyperframes lint`; bold labels are manual workflow checks, not lint codes:
|
|
66
67
|
|
|
67
|
-
-
|
|
68
|
+
- **Template wrapper (manual)** — the entire file is exactly one bare `<template>…</template>` fragment (no DOCTYPE / full document).
|
|
69
|
+
- `root_missing_composition_id` — root carries `data-composition-id="<frame_id>"`; check that the value matches your assigned frame id.
|
|
68
70
|
- **Template transport** — every `<style>` and `<script>` block, including the GSAP load, lives inside `<template>`.
|
|
69
71
|
- `subcomposition_root_styled_by_class` — **style the frame root via `#root`, never a class on the `data-composition-id` element**: at render a class on the root gets scoped to a descendant selector that can't match it, so the **whole scene renders unstyled** (Studio preview still looks right — trust this rule, not the preview). Descendants use plain selectors.
|
|
70
72
|
- **Full-bleed background on a `class="clip"` layer, never `#root`** — author a frame's full-bleed ground (color field / gradient / grid) as a dedicated full-duration `class="clip"` background element on the lowest content track, **not** as a `background` on the `#root` / `data-composition-id` element. At assembly the frame root is clip-gated to its scene window, so a background painted on the root is not a dependable full-frame ground — dark content can end up over the host `body` (black) and render invisible. The video's base ground is painted separately by the assembler from `frame.md`'s `canvas` color onto the index `#root`; your full-bleed clip rides on top of it.
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
+
- **Clip attributes (manual)** — every `class="clip"` element has `data-start` / `data-duration` / `data-track-index`.
|
|
74
|
+
- **Paused timeline + registration (manual for template frames)** — one paused timeline, registered at `window.__timelines["<frame_id>"]`. `gsap_timeline_not_registered` is a real lint code for standalone compositions, but the rule skips template/sub-compositions; it does not verify your frame registration.
|
|
73
75
|
- `css_transition_used` + repeat / yoyo / non-deterministic logic — none present (the renderer seeks frame-by-frame).
|
|
74
76
|
- `gsap_css_transform_conflict` — never put a CSS `transform` (e.g. `translateY(-50%)` centering) on an element you then GSAP-animate a transform prop on (`x` / `y` / `scale` / `rotation`): GSAP overwrites the whole `transform` and silently drops the CSS centering (the element jumps). Center with `margin` / `inset` (or `top`/`left` + offset), fold the offset into the tween via `xPercent` / `yPercent`, or use `fromTo` (the rule exempts it).
|
|
75
77
|
- **Hero visibility** — the main subject is visible by `t <= 0.5s`; entrance tweens use `fromTo` instead of CSS-hidden starting states.
|
|
76
|
-
-
|
|
78
|
+
- **Non-final exit (manual)** — no exit tween unless you are the final frame.
|
|
77
79
|
- **No front-loading (not a slide)** — the shot's pieces reveal on their `voiceover` cues across the duration, not all fired at `t=0`; a non-still frame keeps content arriving rather than holding a full canvas from ~25%.
|
|
78
80
|
- **Shot-sequence fidelity** — every Scene in the time-coded sequence is realized as a phase, the blueprint's signature move (unless `compose`) is present and recognizable, and the shot reveals to the voiceover (never front-loaded at `t=0`).
|
|
79
81
|
- `font_family_without_font_face` — every font you name has a matching `@font-face` **inside this file**. **Only use fonts that ship as files** with the project: the families declared in `frame.md` (their `.woff2` live in `assets/fonts/` or `capture/assets/fonts/` — point the `@font-face` `src` at the real file you find there). **Never name a font that has no file**, including system CJK / Japanese / Devanagari families (`Hiragino Sans`, `Yu Gothic`, `Noto Sans CJK`, `Noto Sans Devanagari`, …): the render machine is a clean headless Chrome with none of them installed, so the text silently falls back to a generic font and the typography is wrong in the MP4. For non-Latin or multilingual visible text, either use a shipped font that covers the script, or romanize / transliterate it (e.g. `日本語` → `Japanese`); if neither is possible it is out of scope for this frame — do not invent a font name.
|
|
@@ -10,7 +10,7 @@ The video workflows (`product-launch-video` / `faceless-explainer` / `pr-to-vide
|
|
|
10
10
|
|
|
11
11
|
## Concurrency cap → batching rule (cap never changes scope)
|
|
12
12
|
|
|
13
|
-
A harness concurrency limit **reduces parallelism, not work**: every scene still gets built,
|
|
13
|
+
A harness concurrency limit **reduces parallelism, not work**: every scene still gets built, with the available slots chewing through the full list. The workflow sets how many scenes each worker gets (`general-video` assigns 2–3).
|
|
14
14
|
|
|
15
15
|
- When the harness queues excess children internally, submit **all N at once** and let the queue drain.
|
|
16
16
|
- Harness hard-caps active children (e.g. OpenClaw `maxChildrenPerAgent`) → dispatch in **waves of the cap size**: start `cap` workers, wait for their artifacts, start the next wave, until all N scenes exist. Example: 9 scenes on a cap-3 harness = 3 waves of 3 — never drop scenes, never merge scenes into one worker to fit the cap.
|