hyperframes 0.8.157 → 0.8.158
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-XKIJJAC6.js → add-VBBOJ3RB.js} +5 -5
- package/dist/{asset-TEWIJMG5.js → asset-3MLXYJCT.js} +2 -2
- package/dist/{auth-ERW6EOVW.js → auth-RJCTHSMH.js} +1 -1
- package/dist/{autoUpdate-IHYT5BQF.js → autoUpdate-VD6R34HF.js} +2 -2
- package/dist/{backgroundChecks-DTKZTDHN.js → backgroundChecks-CWWIZDTW.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{beats-AE4ZKJ3I.js → beats-6CN4BEXJ.js} +6 -5
- package/dist/{benchmark-Q3YSQVWW.js → benchmark-4QSNJZXI.js} +5 -5
- package/dist/{browser-IRRLG5FG.js → browser-H7PRFBJV.js} +3 -3
- package/dist/{capture-MVH3XNAE.js → capture-GZSY7LZJ.js} +1 -1
- package/dist/{capture-ANATPLOS.js → capture-IEEQTPAS.js} +11 -1
- package/dist/{catalog-5BJJW3G4.js → catalog-PD25CVG3.js} +5 -5
- package/dist/{catch-up-DU2O72RS.js → catch-up-2TGBK342.js} +4 -4
- package/dist/{check-P5D3YU2H.js → check-HFNJEV3O.js} +18 -17
- package/dist/{checkBrowser-RNIDFQZZ.js → checkBrowser-767LAZKF.js} +14 -13
- package/dist/{chunk-XRRZZFGI.js → chunk-2XUQPJ3W.js} +1 -1
- package/dist/{chunk-ZY4A2R7C.js → chunk-3MQBIZHG.js} +2 -2
- package/dist/{chunk-25IXEZXH.js → chunk-3UMNI4XZ.js} +2 -2
- package/dist/{chunk-UGIIDY6C.js → chunk-4R6OZQGX.js} +2 -2
- package/dist/{chunk-EYNN5DJG.js → chunk-7FGHFHWD.js} +1 -1
- package/dist/{chunk-TQ62EMUI.js → chunk-DCQCGE2W.js} +2 -2
- package/dist/{chunk-ZFZNPLRJ.js → chunk-DISITOR6.js} +3 -2
- package/dist/{chunk-6B6G3QMQ.js → chunk-EDEFAJI5.js} +5 -5
- package/dist/{chunk-SMPG26EL.js → chunk-EY6ISRP3.js} +1 -1
- package/dist/{chunk-HQG7B5ZE.js → chunk-H6BWNY56.js} +1 -1
- package/dist/{chunk-WK375PPO.js → chunk-J4SSEVRU.js} +1 -1
- package/dist/{chunk-WZBGU46C.js → chunk-L6AJC7UQ.js} +1 -1
- package/dist/{chunk-CA7IDB4Z.js → chunk-LAAGHMRC.js} +12 -1
- package/dist/{chunk-YBKIAQNU.js → chunk-LAPUMJOC.js} +2 -2
- package/dist/{chunk-LZ7C6CXD.js → chunk-NNQP5TNO.js} +2 -2
- package/dist/{chunk-NIT2ZCNI.js → chunk-PKHDQELW.js} +5 -5
- package/dist/{chunk-O4ZB2LUC.js → chunk-QH2PL6J4.js} +1 -1
- package/dist/{chunk-ZTUZDPHE.js → chunk-RU6AIVON.js} +2 -2
- package/dist/{chunk-SWRIMG46.js → chunk-SHEVPNUR.js} +1 -1
- package/dist/{chunk-OGJFYVRC.js → chunk-W2SNLHKF.js} +1 -1
- package/dist/{chunk-BPTKOTF2.js → chunk-Y6E2PW7Z.js} +1 -1
- package/dist/{chunk-QAWCWGQG.js → chunk-YVD5M26L.js} +2 -2
- package/dist/{chunk-DRT6ZQI2.js → chunk-Z347DFOL.js} +1 -1
- package/dist/{clean-4WDZ3TFN.js → clean-FQUVFH6H.js} +5 -5
- package/dist/cli.js +48 -48
- package/dist/{cloud-FL6VP6IU.js → cloud-BHAYVT6F.js} +4 -4
- package/dist/{compare-MXZ7QKBN.js → compare-2FRBIK5Z.js} +11 -10
- package/dist/{component-XKBA5ON2.js → component-DRKXJVXB.js} +3 -3
- package/dist/{compositions-2LUY6RQW.js → compositions-D3SN64J3.js} +5 -5
- package/dist/{delete-OBAOZCXI.js → delete-NA5WC2IR.js} +2 -2
- package/dist/{doctor-BLXWRHAE.js → doctor-VXCMPOY3.js} +3 -3
- package/dist/{events-V4LYF3MW.js → events-QAHWXFFG.js} +2 -2
- package/dist/{events-LSJDXTXK.js → events-ZJEPMUWT.js} +3 -3
- package/dist/{feedback-LMDNGTYB.js → feedback-UGOQ57TU.js} +4 -4
- package/dist/{figma-BXHFTYCT.js → figma-YO2MJZDP.js} +3 -3
- package/dist/fontLocalizeCli.js +1 -1
- package/dist/{get-2ZKWMYCG.js → get-WMJAYRNF.js} +2 -2
- package/dist/{grade-compare-F7JNDXGF.js → grade-compare-QZ7BG2AP.js} +10 -10
- package/dist/{help-WGANCPIE.js → help-AR4MX2AH.js} +1 -1
- package/dist/{history-FILLGPWB.js → history-NF764OFQ.js} +6 -6
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-QQJ7C6SO.js → info-476ERK4G.js} +5 -5
- package/dist/{init-BQYTOLTG.js → init-M6YUOBBZ.js} +16 -11
- package/dist/{inspect-BTBKTW5W.js → inspect-QYPUG3UZ.js} +13 -12
- package/dist/{keyframes-Y5QDNXST.js → keyframes-MTZRE34W.js} +6 -6
- package/dist/{layout-HITFK2H5.js → layout-DLX4HQFL.js} +13 -12
- package/dist/{lint-6HH5X4NJ.js → lint-OQ5QWCHZ.js} +6 -6
- package/dist/{list-KBERMLPP.js → list-AZ6OIOIK.js} +2 -2
- package/dist/{login-MZNDV73I.js → login-DJPYT4YZ.js} +4 -4
- package/dist/{media-treatment-YACCPVXX.js → media-treatment-4YKC4LGB.js} +5 -5
- package/dist/{motionShot-CRQTWUJB.js → motionShot-KEHC5AMK.js} +4 -3
- package/dist/{normalize-audio-Z7UQTZ5J.js → normalize-audio-ATAQGUPX.js} +4 -4
- package/dist/{open-GM2J5QEA.js → open-4DXBEX2U.js} +4 -4
- package/dist/{play-JGMRZO6G.js → play-SKTSHZM5.js} +8 -8
- package/dist/{present-SI7ZE6IB.js → present-KSQ5GASH.js} +8 -8
- package/dist/{preview-PZOQHOIO.js → preview-TDD3QDR3.js} +5 -5
- package/dist/{publish-UT3L777Q.js → publish-5TZIKVLW.js} +1 -1
- package/dist/{render-SFIX3O3B.js → render-ADBL3C7S.js} +7 -7
- package/dist/{render-6CJXA7UA.js → render-KJCDJEGI.js} +5 -5
- package/dist/skills/hyperframes/SKILL.md +1 -1
- package/dist/skills/hyperframes/references/frame-worker-core.md +1 -1
- package/dist/skills/hyperframes/references/intent-interview.md +2 -2
- package/dist/skills/hyperframes/references/production-loop.md +11 -11
- package/dist/skills/hyperframes/references/review-loop.md +6 -6
- package/dist/skills/hyperframes/references/storyboard-format.md +1 -1
- package/dist/skills/hyperframes-cli/SKILL.md +1 -1
- package/dist/{skills-G26XO2BY.js → skills-E75DFHGG.js} +5 -5
- package/dist/{skillsUpdateCheck-ZNDQSDB4.js → skillsUpdateCheck-EPTKOBR6.js} +3 -3
- package/dist/{snapshot-SN7I7O7I.js → snapshot-Z6T4I5TE.js} +12 -12
- package/dist/{staticProjectServer-TTC3LYHO.js → staticProjectServer-ITNEQNQ7.js} +4 -4
- package/dist/studio/assets/{hyperframes-player-D3ufdOJ_.js → hyperframes-player-DX8LgKgb.js} +1 -1
- package/dist/studio/assets/{index-DYk4U8BS.js → index-7Ljcoa9s.js} +4 -4
- package/dist/studio/assets/{index-CALVHgsJ.js → index-BdnuQ7ta.js} +1 -1
- package/dist/studio/assets/{index-7oKTFwYd.js → index-DB0YwjiT.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-TVIDDUZG.js → studio-api-JMWUSAG7.js} +2 -2
- package/dist/{studioServer-WBV2Q3SH.js → studioServer-MWZNMAVJ.js} +8 -8
- package/dist/{telemetry-RVFKZEOH.js → telemetry-D6A2TRK6.js} +3 -3
- package/dist/{timeline-BUYUBI5X.js → timeline-VIF4G3IT.js} +7 -7
- package/dist/{tokens-PUA5FQKP.js → tokens-ORS6MFMG.js} +2 -2
- package/dist/{transcribe-L2QHSNHO.js → transcribe-DNRG7OGE.js} +3 -3
- package/dist/{updateCheck-PULEO7CW.js → updateCheck-YY4BPYNT.js} +2 -2
- package/dist/{upgrade-UJJIVNHJ.js → upgrade-CUDVTTF5.js} +2 -2
- package/dist/{validate-DJAZMEQB.js → validate-CQCQVHUX.js} +11 -10
- package/package.json +1 -1
|
@@ -10,23 +10,23 @@ import {
|
|
|
10
10
|
layout_default,
|
|
11
11
|
loadBrowserScript,
|
|
12
12
|
parseAt
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-EDEFAJI5.js";
|
|
14
|
+
import "./chunk-4R6OZQGX.js";
|
|
15
15
|
import "./chunk-XUHOIDKG.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-J4SSEVRU.js";
|
|
17
17
|
import "./chunk-X7MTZ4T2.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-7FGHFHWD.js";
|
|
19
19
|
import "./chunk-FH7WODJH.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-LAAGHMRC.js";
|
|
21
21
|
import "./chunk-J7WFHOCW.js";
|
|
22
22
|
import "./chunk-WPNE5NEP.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-DCQCGE2W.js";
|
|
24
24
|
import "./chunk-56QTFOWH.js";
|
|
25
25
|
import "./chunk-C6TPGUWD.js";
|
|
26
26
|
import "./chunk-6PIGOKTE.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-DISITOR6.js";
|
|
28
28
|
import "./chunk-FFDC5OWV.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-L6AJC7UQ.js";
|
|
30
30
|
import "./chunk-K2FLNJVB.js";
|
|
31
31
|
import "./chunk-YB26LWR2.js";
|
|
32
32
|
import "./chunk-442JNXRM.js";
|
|
@@ -41,8 +41,8 @@ import "./chunk-AWDFDFI3.js";
|
|
|
41
41
|
import "./chunk-P6LJ4Y32.js";
|
|
42
42
|
import "./chunk-GMECXFAN.js";
|
|
43
43
|
import "./chunk-5CS4T6C6.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-2XUQPJ3W.js";
|
|
45
|
+
import "./chunk-H6BWNY56.js";
|
|
46
46
|
import "./chunk-VWG7OQKU.js";
|
|
47
47
|
import "./chunk-QWQ6GQTI.js";
|
|
48
48
|
import "./chunk-S3S4TGEH.js";
|
|
@@ -52,12 +52,12 @@ import "./chunk-ZTZA4UWZ.js";
|
|
|
52
52
|
import "./chunk-KLIKCX6Q.js";
|
|
53
53
|
import "./chunk-EOOEC32M.js";
|
|
54
54
|
import "./chunk-TJSTGSAW.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-QH2PL6J4.js";
|
|
56
56
|
import "./chunk-K4WIOZFP.js";
|
|
57
57
|
import "./chunk-XUXGIA7H.js";
|
|
58
58
|
import "./chunk-WERLJGIC.js";
|
|
59
59
|
import "./chunk-ISN5GRYI.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-RU6AIVON.js";
|
|
61
61
|
import "./chunk-EOVYQ3IG.js";
|
|
62
62
|
import "./chunk-XT6MXC7A.js";
|
|
63
63
|
import "./chunk-IRRRH66M.js";
|
|
@@ -86,6 +86,7 @@ import "./chunk-SDYDNHEE.js";
|
|
|
86
86
|
import "./chunk-TYXH3EKP.js";
|
|
87
87
|
import "./chunk-IXLUTE6N.js";
|
|
88
88
|
import "./chunk-KNU5COPB.js";
|
|
89
|
+
import "./chunk-KGPLIH7B.js";
|
|
89
90
|
import "./chunk-3GXQPCJC.js";
|
|
90
91
|
import "./chunk-M2WBOQ2Q.js";
|
|
91
92
|
export {
|
|
@@ -6,16 +6,16 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
trackLintRun
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NNQP5TNO.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveProject
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
13
13
|
import {
|
|
14
14
|
formatLintFindings
|
|
15
15
|
} from "./chunk-6CSYCFQV.js";
|
|
16
16
|
import "./chunk-K2FLNJVB.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-2XUQPJ3W.js";
|
|
18
|
+
import "./chunk-H6BWNY56.js";
|
|
19
19
|
import "./chunk-VWG7OQKU.js";
|
|
20
20
|
import "./chunk-QWQ6GQTI.js";
|
|
21
21
|
import {
|
|
@@ -33,12 +33,12 @@ import {
|
|
|
33
33
|
import "./chunk-Q5X2B5WT.js";
|
|
34
34
|
import {
|
|
35
35
|
withMeta
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QH2PL6J4.js";
|
|
37
37
|
import "./chunk-K4WIOZFP.js";
|
|
38
38
|
import "./chunk-XUXGIA7H.js";
|
|
39
39
|
import "./chunk-WERLJGIC.js";
|
|
40
40
|
import "./chunk-ISN5GRYI.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-RU6AIVON.js";
|
|
42
42
|
import "./chunk-XT6MXC7A.js";
|
|
43
43
|
import "./chunk-JYVGYKXG.js";
|
|
44
44
|
import "./chunk-7KDQAD2W.js";
|
|
@@ -30,12 +30,12 @@ import {
|
|
|
30
30
|
} from "./chunk-ZTZA4UWZ.js";
|
|
31
31
|
import {
|
|
32
32
|
withMeta
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-QH2PL6J4.js";
|
|
34
34
|
import "./chunk-K4WIOZFP.js";
|
|
35
35
|
import "./chunk-XUXGIA7H.js";
|
|
36
36
|
import "./chunk-WERLJGIC.js";
|
|
37
37
|
import "./chunk-ISN5GRYI.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-RU6AIVON.js";
|
|
39
39
|
import "./chunk-BXCMXMJQ.js";
|
|
40
40
|
import "./chunk-EOVYQ3IG.js";
|
|
41
41
|
import "./chunk-OFQWTKPW.js";
|
|
@@ -112,7 +112,7 @@ function assertAttendedDeviceFlow() {
|
|
|
112
112
|
async function runDeviceLogin() {
|
|
113
113
|
assertAttendedDeviceFlow();
|
|
114
114
|
assertOAuthConfiguredOrExit();
|
|
115
|
-
const { trackAuthLoginStarted, trackAuthLoginCompleted, trackAuthLoginFailed, identifyUser } = await import("./telemetry-
|
|
115
|
+
const { trackAuthLoginStarted, trackAuthLoginCompleted, trackAuthLoginFailed, identifyUser } = await import("./telemetry-D6A2TRK6.js");
|
|
116
116
|
trackAuthLoginStarted("device");
|
|
117
117
|
let tokens;
|
|
118
118
|
try {
|
|
@@ -179,7 +179,7 @@ async function revokeDeviceTokens(tokens) {
|
|
|
179
179
|
}
|
|
180
180
|
async function runOAuthLogin() {
|
|
181
181
|
assertOAuthConfiguredOrExit();
|
|
182
|
-
const { trackAuthLoginStarted, trackAuthLoginFailed } = await import("./telemetry-
|
|
182
|
+
const { trackAuthLoginStarted, trackAuthLoginFailed } = await import("./telemetry-D6A2TRK6.js");
|
|
183
183
|
trackAuthLoginStarted("oauth");
|
|
184
184
|
let tokens;
|
|
185
185
|
try {
|
|
@@ -193,7 +193,7 @@ async function runOAuthLogin() {
|
|
|
193
193
|
await reportIdentity(issuedCredential(tokens));
|
|
194
194
|
}
|
|
195
195
|
async function reportIdentity(credential) {
|
|
196
|
-
const { trackAuthLoginCompleted, identifyUser } = await import("./telemetry-
|
|
196
|
+
const { trackAuthLoginCompleted, identifyUser } = await import("./telemetry-D6A2TRK6.js");
|
|
197
197
|
const client = new AuthClient({
|
|
198
198
|
onUnauthenticatedRefresh: async (rt) => await refreshTokens(rt)
|
|
199
199
|
});
|
|
@@ -244,7 +244,7 @@ async function clearUserInfoBestEffort() {
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
async function runApiKeyLogin(inlineKey) {
|
|
247
|
-
const { trackAuthLoginStarted, trackAuthLoginCompleted, trackAuthLoginFailed, identifyUser } = await import("./telemetry-
|
|
247
|
+
const { trackAuthLoginStarted, trackAuthLoginCompleted, trackAuthLoginFailed, identifyUser } = await import("./telemetry-D6A2TRK6.js");
|
|
248
248
|
trackAuthLoginStarted("api_key");
|
|
249
249
|
let key;
|
|
250
250
|
try {
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-56QTFOWH.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveProject
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
17
17
|
import "./chunk-K2FLNJVB.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-2XUQPJ3W.js";
|
|
19
|
+
import "./chunk-H6BWNY56.js";
|
|
20
20
|
import "./chunk-VWG7OQKU.js";
|
|
21
21
|
import "./chunk-QWQ6GQTI.js";
|
|
22
22
|
import {
|
|
@@ -31,12 +31,12 @@ import {
|
|
|
31
31
|
} from "./chunk-ZTZA4UWZ.js";
|
|
32
32
|
import {
|
|
33
33
|
withMeta
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-QH2PL6J4.js";
|
|
35
35
|
import "./chunk-K4WIOZFP.js";
|
|
36
36
|
import "./chunk-XUXGIA7H.js";
|
|
37
37
|
import "./chunk-WERLJGIC.js";
|
|
38
38
|
import "./chunk-ISN5GRYI.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-RU6AIVON.js";
|
|
40
40
|
import {
|
|
41
41
|
findFFmpeg,
|
|
42
42
|
findFFprobe,
|
|
@@ -15,14 +15,14 @@ import {
|
|
|
15
15
|
} from "./chunk-KZI44OPA.js";
|
|
16
16
|
import {
|
|
17
17
|
waitForRuntimeReady
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7FGHFHWD.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveCompositionViewportFromHtml
|
|
21
21
|
} from "./chunk-FH7WODJH.js";
|
|
22
22
|
import {
|
|
23
23
|
launchManagedBrowser,
|
|
24
24
|
resolveManagedGpuMode
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-LAAGHMRC.js";
|
|
26
26
|
import {
|
|
27
27
|
resolveDiagnosticNavigationTimeoutMs
|
|
28
28
|
} from "./chunk-J7WFHOCW.js";
|
|
@@ -64,6 +64,7 @@ import "./chunk-SDYDNHEE.js";
|
|
|
64
64
|
import "./chunk-TYXH3EKP.js";
|
|
65
65
|
import "./chunk-IXLUTE6N.js";
|
|
66
66
|
import "./chunk-KNU5COPB.js";
|
|
67
|
+
import "./chunk-KGPLIH7B.js";
|
|
67
68
|
import "./chunk-3GXQPCJC.js";
|
|
68
69
|
import "./chunk-M2WBOQ2Q.js";
|
|
69
70
|
|
|
@@ -574,7 +575,7 @@ async function captureMotionPathShot(projectDir, requestsIn, outPath, opts = {})
|
|
|
574
575
|
const fit = opts.fit ?? true;
|
|
575
576
|
const camera = parseAngle(opts.angle);
|
|
576
577
|
const { ensureBrowser } = await import("./manager-ZLJD3EAY.js");
|
|
577
|
-
const { serveStaticProjectHtml } = await import("./staticProjectServer-
|
|
578
|
+
const { serveStaticProjectHtml } = await import("./staticProjectServer-ITNEQNQ7.js");
|
|
578
579
|
const { bundleToSingleHtml } = await import("./compiler-VFJVUZWR.js");
|
|
579
580
|
const html = await bundleToSingleHtml(projectDir, { entryFile: opts.entryFile });
|
|
580
581
|
const server = await serveStaticProjectHtml(
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
import "./chunk-FFDC5OWV.js";
|
|
20
20
|
import {
|
|
21
21
|
resolveProject
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
23
23
|
import "./chunk-K2FLNJVB.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-2XUQPJ3W.js";
|
|
25
|
+
import "./chunk-H6BWNY56.js";
|
|
26
26
|
import "./chunk-VWG7OQKU.js";
|
|
27
27
|
import "./chunk-QWQ6GQTI.js";
|
|
28
28
|
import {
|
|
@@ -40,7 +40,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
40
40
|
import "./chunk-XUXGIA7H.js";
|
|
41
41
|
import "./chunk-WERLJGIC.js";
|
|
42
42
|
import "./chunk-ISN5GRYI.js";
|
|
43
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-RU6AIVON.js";
|
|
44
44
|
import "./chunk-XT6MXC7A.js";
|
|
45
45
|
import "./chunk-JYVGYKXG.js";
|
|
46
46
|
import "./chunk-7KDQAD2W.js";
|
|
@@ -7,15 +7,15 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
resolveProject,
|
|
9
9
|
resolveProjectOrThrow
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
11
11
|
import {
|
|
12
12
|
downloadHint,
|
|
13
13
|
openInDesktop
|
|
14
14
|
} from "./chunk-EDUBJPGL.js";
|
|
15
15
|
import "./chunk-K2FLNJVB.js";
|
|
16
16
|
import "./chunk-DCAI5DBR.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-2XUQPJ3W.js";
|
|
18
|
+
import "./chunk-H6BWNY56.js";
|
|
19
19
|
import "./chunk-VWG7OQKU.js";
|
|
20
20
|
import "./chunk-QWQ6GQTI.js";
|
|
21
21
|
import {
|
|
@@ -32,7 +32,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
32
32
|
import "./chunk-XUXGIA7H.js";
|
|
33
33
|
import "./chunk-WERLJGIC.js";
|
|
34
34
|
import "./chunk-ISN5GRYI.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-RU6AIVON.js";
|
|
36
36
|
import "./chunk-EOVYQ3IG.js";
|
|
37
37
|
import "./chunk-XT6MXC7A.js";
|
|
38
38
|
import "./chunk-JYVGYKXG.js";
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
resolvePlayerPath,
|
|
13
13
|
resolveRuntimePath,
|
|
14
14
|
revalidatedResponse
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-J4SSEVRU.js";
|
|
16
16
|
import "./chunk-X7MTZ4T2.js";
|
|
17
17
|
import {
|
|
18
18
|
injectMediaCodecMapIntoHtml
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-DCQCGE2W.js";
|
|
20
20
|
import "./chunk-56QTFOWH.js";
|
|
21
21
|
import {
|
|
22
22
|
requestSubPath
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
recordProxyRequest,
|
|
33
33
|
resolveProxy,
|
|
34
34
|
resolveProxyVariantRequest
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-DISITOR6.js";
|
|
36
36
|
import "./chunk-FFDC5OWV.js";
|
|
37
37
|
import {
|
|
38
38
|
openBrowser,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
} from "./chunk-LFGJWOVA.js";
|
|
42
42
|
import {
|
|
43
43
|
resolveProject
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
45
45
|
import "./chunk-K2FLNJVB.js";
|
|
46
46
|
import {
|
|
47
47
|
resolveAutoProxy
|
|
@@ -56,8 +56,8 @@ import "./chunk-AWDFDFI3.js";
|
|
|
56
56
|
import "./chunk-P6LJ4Y32.js";
|
|
57
57
|
import "./chunk-GMECXFAN.js";
|
|
58
58
|
import "./chunk-5CS4T6C6.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-2XUQPJ3W.js";
|
|
60
|
+
import "./chunk-H6BWNY56.js";
|
|
61
61
|
import "./chunk-VWG7OQKU.js";
|
|
62
62
|
import "./chunk-QWQ6GQTI.js";
|
|
63
63
|
import {
|
|
@@ -82,7 +82,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
82
82
|
import "./chunk-XUXGIA7H.js";
|
|
83
83
|
import "./chunk-WERLJGIC.js";
|
|
84
84
|
import "./chunk-ISN5GRYI.js";
|
|
85
|
-
import "./chunk-
|
|
85
|
+
import "./chunk-RU6AIVON.js";
|
|
86
86
|
import "./chunk-EOVYQ3IG.js";
|
|
87
87
|
import "./chunk-XT6MXC7A.js";
|
|
88
88
|
import "./chunk-FJT35XBA.js";
|
|
@@ -251,7 +251,7 @@ var play_default = defineCommand({
|
|
|
251
251
|
}
|
|
252
252
|
});
|
|
253
253
|
async function registerCompositionRoute(app, project, autoProxy) {
|
|
254
|
-
const { isSafePath } = await import("./studio-api-
|
|
254
|
+
const { isSafePath } = await import("./studio-api-JMWUSAG7.js");
|
|
255
255
|
app.get("/composition/*", async (ctx) => {
|
|
256
256
|
const reqPath = requestSubPath(ctx.req.url, "composition");
|
|
257
257
|
const filePath = resolve(project.dir, reqPath);
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
listenOnFreePort,
|
|
10
10
|
resolvePlayerPath,
|
|
11
11
|
resolveSlideshowPath
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-J4SSEVRU.js";
|
|
13
|
+
import "./chunk-DCQCGE2W.js";
|
|
14
14
|
import "./chunk-56QTFOWH.js";
|
|
15
15
|
import {
|
|
16
16
|
requestSubPath
|
|
17
17
|
} from "./chunk-C6TPGUWD.js";
|
|
18
18
|
import "./chunk-6PIGOKTE.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-DISITOR6.js";
|
|
20
20
|
import "./chunk-FFDC5OWV.js";
|
|
21
21
|
import {
|
|
22
22
|
openBrowser,
|
|
@@ -25,11 +25,11 @@ import {
|
|
|
25
25
|
} from "./chunk-LFGJWOVA.js";
|
|
26
26
|
import {
|
|
27
27
|
resolveProject
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
29
29
|
import "./chunk-K2FLNJVB.js";
|
|
30
30
|
import "./chunk-5CS4T6C6.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-2XUQPJ3W.js";
|
|
32
|
+
import "./chunk-H6BWNY56.js";
|
|
33
33
|
import "./chunk-VWG7OQKU.js";
|
|
34
34
|
import "./chunk-QWQ6GQTI.js";
|
|
35
35
|
import {
|
|
@@ -54,7 +54,7 @@ import "./chunk-K4WIOZFP.js";
|
|
|
54
54
|
import "./chunk-XUXGIA7H.js";
|
|
55
55
|
import "./chunk-WERLJGIC.js";
|
|
56
56
|
import "./chunk-ISN5GRYI.js";
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-RU6AIVON.js";
|
|
58
58
|
import "./chunk-EOVYQ3IG.js";
|
|
59
59
|
import "./chunk-XT6MXC7A.js";
|
|
60
60
|
import "./chunk-FJT35XBA.js";
|
|
@@ -341,7 +341,7 @@ function escHtml(value) {
|
|
|
341
341
|
return value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
342
342
|
}
|
|
343
343
|
async function registerPresentCompositionRoute(app, project) {
|
|
344
|
-
const { isSafePath } = await import("./studio-api-
|
|
344
|
+
const { isSafePath } = await import("./studio-api-JMWUSAG7.js");
|
|
345
345
|
app.get("/composition/*", (ctx) => {
|
|
346
346
|
const reqPath = requestSubPath(ctx.req.url, "composition");
|
|
347
347
|
const filePath = resolve(project.dir, reqPath);
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
resolveProject,
|
|
14
14
|
resolveProjectOrThrow
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
16
16
|
import {
|
|
17
17
|
formatLintStartupMessage
|
|
18
18
|
} from "./chunk-6CSYCFQV.js";
|
|
@@ -44,8 +44,8 @@ import "./chunk-QRPYTJBW.js";
|
|
|
44
44
|
import "./chunk-AWDFDFI3.js";
|
|
45
45
|
import "./chunk-P6LJ4Y32.js";
|
|
46
46
|
import "./chunk-GMECXFAN.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-2XUQPJ3W.js";
|
|
48
|
+
import "./chunk-H6BWNY56.js";
|
|
49
49
|
import "./chunk-VWG7OQKU.js";
|
|
50
50
|
import "./chunk-QWQ6GQTI.js";
|
|
51
51
|
import {
|
|
@@ -70,7 +70,7 @@ import "./chunk-WERLJGIC.js";
|
|
|
70
70
|
import {
|
|
71
71
|
isDevMode
|
|
72
72
|
} from "./chunk-ISN5GRYI.js";
|
|
73
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-RU6AIVON.js";
|
|
74
74
|
import "./chunk-EOVYQ3IG.js";
|
|
75
75
|
import {
|
|
76
76
|
buildNpxCommand
|
|
@@ -1701,7 +1701,7 @@ async function runLocalStudioMode(dir, options) {
|
|
|
1701
1701
|
return waitForStudioChildClose(child);
|
|
1702
1702
|
}
|
|
1703
1703
|
async function runEmbeddedMode(dir, startPort, options) {
|
|
1704
|
-
const { createStudioServer, loadPreviewServerBuildSignature, resolveStudioBundle } = await import("./studioServer-
|
|
1704
|
+
const { createStudioServer, loadPreviewServerBuildSignature, resolveStudioBundle } = await import("./studioServer-MWZNMAVJ.js");
|
|
1705
1705
|
const pName = options?.projectName ?? basename(dir);
|
|
1706
1706
|
const studioBundle = resolveStudioBundle();
|
|
1707
1707
|
if (!options?.json) ge(c.bold("hyperframes preview"));
|
|
@@ -6,11 +6,11 @@ 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-3UMNI4XZ.js";
|
|
10
10
|
import {
|
|
11
11
|
captureArtifactRevision
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-Y6E2PW7Z.js";
|
|
13
|
+
import "./chunk-Z347DFOL.js";
|
|
14
14
|
import {
|
|
15
15
|
reportVariableIssues,
|
|
16
16
|
resolveVariablesArg,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
import "./chunk-FFDC5OWV.js";
|
|
40
40
|
import {
|
|
41
41
|
resolveProject
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-L6AJC7UQ.js";
|
|
43
43
|
import {
|
|
44
44
|
formatLintStartupMessage
|
|
45
45
|
} from "./chunk-6CSYCFQV.js";
|
|
@@ -81,8 +81,8 @@ import {
|
|
|
81
81
|
trackRenderError,
|
|
82
82
|
trackRenderObservation,
|
|
83
83
|
trackRenderPreflightRejected
|
|
84
|
-
} from "./chunk-
|
|
85
|
-
import "./chunk-
|
|
84
|
+
} from "./chunk-2XUQPJ3W.js";
|
|
85
|
+
import "./chunk-H6BWNY56.js";
|
|
86
86
|
import "./chunk-VWG7OQKU.js";
|
|
87
87
|
import {
|
|
88
88
|
bytesToMb
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
} from "./chunk-ISN5GRYI.js";
|
|
124
124
|
import {
|
|
125
125
|
VERSION
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-RU6AIVON.js";
|
|
127
127
|
import "./chunk-EOVYQ3IG.js";
|
|
128
128
|
import {
|
|
129
129
|
createRenderCancellationScope
|
|
@@ -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-L6AJC7UQ.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-2XUQPJ3W.js";
|
|
46
|
+
import "./chunk-H6BWNY56.js";
|
|
47
47
|
import "./chunk-VWG7OQKU.js";
|
|
48
48
|
import "./chunk-QWQ6GQTI.js";
|
|
49
49
|
import {
|
|
@@ -58,12 +58,12 @@ import {
|
|
|
58
58
|
} from "./chunk-ZTZA4UWZ.js";
|
|
59
59
|
import {
|
|
60
60
|
withMeta
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-QH2PL6J4.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-RU6AIVON.js";
|
|
67
67
|
import {
|
|
68
68
|
downloadToFile
|
|
69
69
|
} from "./chunk-BXCMXMJQ.js";
|
|
@@ -80,7 +80,7 @@ Before finalizing the route, read `references/routes/<workflow>.md` — one smal
|
|
|
80
80
|
- An explicitly short motion graphic may use a URL, tweet, article, or screenshot as source material. A generic "make a video from this site" request is `/product-launch-video`.
|
|
81
81
|
- Existing footage with captions routes to `/embedded-captions`; footage with designed information cards routes to `/talking-head-recut`. Retiming, reordering, recoloring, reframing, or remixing footage is a custom edit and falls through to `/general-video`.
|
|
82
82
|
- A music file selects `/music-to-video` only when its beat grid drives the piece. Music used as a bed does not override the subject-matched route.
|
|
83
|
-
- "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use `/general-video`. A confirmed
|
|
83
|
+
- "I want a storyboard" changes the review process, not the workflow. With no other routing signal, use `/general-video`. A confirmed board (`boards/storyboard.html`, format in `/hyperframes-creative` `references/storyboard-recipe.md`) may itself be the requested deliverable; the review loop defines that stop point.
|
|
84
84
|
- Specialized narrative workflows support up to about 3 minutes and are strongest around 30–90s. Route a clearly longer piece to `/general-video`. Length never overrides an explicit port, deck, caption, overlay, or music-driven deliverable.
|
|
85
85
|
|
|
86
86
|
## 3. Route once, then leave
|
|
@@ -29,7 +29,7 @@ You build the frame composition file(s) assigned in your dispatch and nothing el
|
|
|
29
29
|
|
|
30
30
|
## When a confirmed sketch exists
|
|
31
31
|
|
|
32
|
-
In collaborative runs the orchestrator
|
|
32
|
+
In collaborative runs the orchestrator first poses every frame in its composition and shows it as a still on the board (`boards/storyboard.html`, stills in `boards/stills/`, format in `hyperframes-creative/references/storyboard-recipe.md`), so your frame may have a **user-confirmed wireframe**: the posed composition at your target file — your dispatch says whether it does (a target file found on a retry is your own prior output, not a sketch). Read that file and its still first and **keep its composition**: the placement, hierarchy, and copy were approved — don't move or drop them. Everything else is yours to finish: the finished content where the sketch used stand-in blocks (what that content is — real assets, invented visuals, a code block — is the delta's call, since the sketch already carries the full `frame.md` treatment), and the motion — map each Scene onto a timeline phase, reveal each piece on its `voiceover` cue with `fromTo` entrances, adding DOM only where a phase needs it. The frame's landed state must still read as the approved sketch, now moving.
|
|
33
33
|
|
|
34
34
|
## You do NOT decide
|
|
35
35
|
|
|
@@ -26,7 +26,7 @@ A GitHub PR URL is not a website source. A named or adopted recipe already carri
|
|
|
26
26
|
- **Remembered defaults.** Let `<MEDIA_DIR>` be the installed `/media-use` skill directory. For an existing project, `<MEMORY_ROOT>` is its root. Before scaffolding, use a deliberately nonexistent probe path with no `.media`, such as `/tmp/hyperframes-intent-memory-<run-id>`; never use the current workspace. Run `node <MEDIA_DIR>/scripts/prefs.mjs get --hyperframes <MEMORY_ROOT> --json`. Make each remembered value the recommended option and name its source. The pre-project probe sees only the personal tier; do not claim project provenance.
|
|
27
27
|
- **Recipes.** Run `node <MEDIA_DIR>/scripts/recipe.mjs list --hyperframes <MEMORY_ROOT> --json`. If the user names a recipe, says "like last time," or a recipe matches the probable route, ask whether to adopt it before other brief questions — and make the offer earn the yes: say why it matches and what adopting saves ("this matches your launch-promo recipe — adopting fills destination, aspect, language, and the design spec; you'd confirm the message and the two run-shape questions"). When several match, list them and include "none." An adopted recipe locks the fields it contains; ask only its missing fields and the run-shape questions. It does not remove review or render approval gates.
|
|
28
28
|
|
|
29
|
-
**2 — Triage the input.** What is the video about — a website (sold or shown), a PR, a topic, a music track, existing footage? And is the request **formed** — the message, the material, and the occasion readable from what the user gave — or **unformed**, a subject with no take on it? Source material doesn't settle this by itself: a site, document, or PR carries its own thesis, but five tellings of that thesis are five different videos — a request whose only shape comes from its source ("make a video about this URL") is formed about the facts and unformed about the telling, and enters the round to pitch the telling. A formed request runs the layer exactly as it always has; nothing below is added for it. An unformed one goes through the pitch round after routing (step 4) and earns one question here, before anything is generated: what is the user already picturing? Their answer seeds the round (`pitch-round.md`). A user who says they don't know video at all gets that reference's decision map instead of a question sequence. For a genuinely exploratory request ("we need a video but I'm not sure what kind"), don't interrogate — establish the subject and what exists to show, one question at a time, then close by **recommending** a route plus how the run will review: a plan in chat first, with optional
|
|
29
|
+
**2 — Triage the input.** What is the video about — a website (sold or shown), a PR, a topic, a music track, existing footage? And is the request **formed** — the message, the material, and the occasion readable from what the user gave — or **unformed**, a subject with no take on it? Source material doesn't settle this by itself: a site, document, or PR carries its own thesis, but five tellings of that thesis are five different videos — a request whose only shape comes from its source ("make a video about this URL") is formed about the facts and unformed about the telling, and enters the round to pitch the telling. A formed request runs the layer exactly as it always has; nothing below is added for it. An unformed one goes through the pitch round after routing (step 4) and earns one question here, before anything is generated: what is the user already picturing? Their answer seeds the round (`pitch-round.md`). A user who says they don't know video at all gets that reference's decision map instead of a question sequence. For a genuinely exploratory request ("we need a video but I'm not sure what kind"), don't interrogate — establish the subject and what exists to show, one question at a time, then close by **recommending** a route plus how the run will review: a plan in chat first, with optional stills on a board (`boards/storyboard.html`, format in `hyperframes-creative/references/storyboard-recipe.md`) before the full build (`review-loop.md`). The user hears the process before any workflow starts.
|
|
30
30
|
|
|
31
31
|
**3 — Pick the route** (the route table and ambiguity rules in the SKILL.md), then read `routes/<workflow>.md`. Its Interview section lists the must-have questions to ask now, the **deferred asks** to announce, whether the two run-shape questions apply, and which fields the pitch round may answer.
|
|
32
32
|
|
|
@@ -36,7 +36,7 @@ A GitHub PR URL is not a website source. A named or adopted recipe already carri
|
|
|
36
36
|
|
|
37
37
|
**6 — The two run-shape questions** — where the route's entry applies them, asked after the must-haves, each on its own:
|
|
38
38
|
|
|
39
|
-
- **(a) Storyboard?** Review the plan in chat,
|
|
39
|
+
- **(a) Storyboard?** Review the plan in chat, stills on a board (`boards/storyboard.html`, format in `hyperframes-creative/references/storyboard-recipe.md`), and the finished piece pass by pass (`review-loop.md`) — recommended for anything beyond a couple of scenes — or skip the review and get one finished video from the confirmed brief.
|
|
40
40
|
- **(b) Automation or companion?** **Automation** — the matched workflow's pipeline executes the brief end to end. **Companion** — build it together in `/general-video` with every HyperFrames capability on the table; the route's answers still describe the video, general-video executes them.
|
|
41
41
|
|
|
42
42
|
These two are **orthogonal — never merge them into one menu.** All four `flow` × `storyboard` combinations are valid user choices (a companion run runs the same review passes when `storyboard: yes`); a flattened three-option list ("storyboard review / one shot / companion") silently makes companion-with-storyboard unselectable. When a diagram or source material summarizes the outcomes as three branches, that is the derived behavior (`brief-contract.md` § 1), not the question shape. In a form-style question UI, keep (a) and (b) as two separate selects.
|
|
@@ -4,17 +4,17 @@ The stages between a plan the user has agreed to and a video in their hands, wri
|
|
|
4
4
|
|
|
5
5
|
The shipped narrative workflows implement these stages with their own scripts; a freeform build follows this file directly, borrowing tools where the capability menu says they live (`hyperframes/references/capability-menu.md`).
|
|
6
6
|
|
|
7
|
-
| Stage | Needs
|
|
8
|
-
| ------------------- |
|
|
9
|
-
| **Blocks & assets** | the approved plan
|
|
10
|
-
| **Audio** | narration text (when narrated); the storyboard's `music:` mood
|
|
11
|
-
| **Frames** | design spec + the plan (+ a confirmed
|
|
12
|
-
| **Duration sync** | word timings + frames
|
|
13
|
-
| **Assembly** | frames
|
|
14
|
-
| **Transitions** | the assembled index
|
|
15
|
-
| **Captions** | word timings + the index
|
|
16
|
-
| **Verify** | the index (+ captions / transitions when present)
|
|
17
|
-
| **Deliver** | verify passing
|
|
7
|
+
| Stage | Needs | Produces | Where the capability lives |
|
|
8
|
+
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| **Blocks & assets** | the approved plan | registry blocks installed **once, before any parallel work** (parallel workers race the registry); user assets staged; logos / images / grades resolved | `npx hyperframes add <block>` per block the plan names; staging, adoption, and `resolve` via the menu's media rows |
|
|
10
|
+
| **Audio** | narration text (when narrated); the storyboard's `music:` mood | voice files + **word timings** + BGM + SFX → `audio_meta.json`; **when BGM plays under a voice, the bed is carved** (`hyperframes-audio/scripts/carve.mjs`) before Verify — a duck alone is not a finished mix | the one engine — `media-use/audio/scripts/audio.mjs`, run in the background; `wait-bgm.mjs` before render when BGM generates |
|
|
11
|
+
| **Frames** | design spec + the plan (+ a confirmed still on the board (`boards/storyboard.html`, format in `hyperframes-creative/references/storyboard-recipe.md`) when one exists — dress that layout, never redraw it: `review-loop.md` § 3) | each scene at `compositions/frames/NN-*.html`, marked `animated` in the storyboard as it lands | `frame.md` + `hyperframes-animation` blueprints / rules (+ the genre lens, menu § Genre lenses); parallel dispatch per `subagent-dispatch.md` |
|
|
12
|
+
| **Duration sync** | word timings + frames | scene durations trued to real voice length — real duration wins, silent scenes keep estimates, synced values are never hand-edited | a mechanical rule; the narrative workflows' audio scripts apply it, a freeform build applies it by hand |
|
|
13
|
+
| **Assembly** | frames | the index composition — scenes as sub-compositions on tracks | `sub-compositions.md` + `tracks-and-clips.md`; borrowable `assemble-index.mjs` (menu) |
|
|
14
|
+
| **Transitions** | the assembled index | scene handoffs injected | `hyperframes-animation/transitions/overview.md` → `catalog.md`; borrowable `transitions.mjs` (menu) |
|
|
15
|
+
| **Captions** | word timings + the index | the caption track | borrowable `captions.mjs` (menu); no script to time against → `media-use` `scripts/transcribe.mjs` first |
|
|
16
|
+
| **Verify** | the index (+ captions / transitions when present) | `npx hyperframes lint` and `npx hyperframes check` **passing**; a contact-sheet glance (`snapshot --at <frame-midpoints>`) | `hyperframes-cli` |
|
|
17
|
+
| **Deliver** | verify passing | the final-look pause → on approval `render` → optionally `publish` (a stable hosted link, private by default) → the recipe offer | final approval and recipe offer: `review-loop.md` § 4; render / publish: `hyperframes-cli` |
|
|
18
18
|
|
|
19
19
|
The Frames stage follows the plan's citations: a scene planned on a blueprint or on named rules is built by reading that recipe's body (`hyperframes-animation/blueprints/<id>.md`, `rules/<id>.md`) before its motion is written — names come from the indexes, never invented, and a scene the plan left uncited gets its citation at build time, not improvised motion.
|
|
20
20
|
|