hyperframes 0.8.139 → 0.8.141
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-VYJQ4S3P.js → add-KH2CF4FD.js} +20 -22
- package/dist/{animatedGifPrep-IBMW6FZB.js → animatedGifPrep-QO4BSKR7.js} +15 -8
- package/dist/{asset-FLSUS73X.js → asset-4RDZILVJ.js} +3 -3
- package/dist/{assetCataloger-TGD7TRCR.js → assetCataloger-WGR4LYYN.js} +6 -3
- package/dist/{auth-EZXIN4M4.js → auth-WYQCOYE5.js} +7 -7
- package/dist/{autoUpdate-ZPMY5T3X.js → autoUpdate-PC5TN3NL.js} +2 -2
- package/dist/{backgroundChecks-JIDTAUFE.js → backgroundChecks-7M3T44EP.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-FNZ6TJYY.js → batchRender-GOLLOE4V.js} +11 -8
- package/dist/beat-analyzer.global.js +5 -2
- package/dist/{beats-EAA4U3YN.js → beats-XJ7WP6QS.js} +24 -17
- package/dist/{benchmark-KKZQVK2Y.js → benchmark-HCGFBEZJ.js} +20 -23
- package/dist/{browser-ZIVVJLJT.js → browser-VQKO2FKG.js} +14 -28
- package/dist/{bundleWithLocalizedFonts-2XWC3PEM.js → bundleWithLocalizedFonts-FH7PHTTX.js} +5 -5
- package/dist/{capture-EFYPXI42.js → capture-TFZZSF6F.js} +22 -15
- package/dist/{capture-MKJHABUL.js → capture-XD3P3YQR.js} +2 -2
- package/dist/{catalog-EWX4BBI2.js → catalog-4S33QWJJ.js} +28 -30
- package/dist/{catch-up-FJFH7T4W.js → catch-up-RW7YXXNT.js} +11 -25
- package/dist/{check-YJNVDCBP.js → check-XVTRRN4Y.js} +72 -54
- package/dist/{checkBrowser-I6SPPEGD.js → checkBrowser-HZXJ2EDU.js} +81 -36
- package/dist/chunk-24OWOBQH.js +3656 -0
- package/dist/{chunk-OENM2JVZ.js → chunk-34TXESM7.js} +3 -3
- package/dist/{chunk-GWV2Y36Q.js → chunk-35RSNI77.js} +5 -106
- package/dist/{chunk-BC3OY2ED.js → chunk-3A5AAPMP.js} +1 -1
- package/dist/{chunk-U3HX7WE6.js → chunk-3NBKW2QJ.js} +1 -1
- package/dist/{chunk-A4X2YWNQ.js → chunk-4BB7V6AI.js} +38 -301
- package/dist/{chunk-EJ7OWYF2.js → chunk-6E6CM7WS.js} +19 -163
- package/dist/{chunk-CDMB3PRC.js → chunk-6IFXWJDX.js} +7 -7
- package/dist/{chunk-Z67RZ4XO.js → chunk-6Q6FR4KH.js} +279 -1968
- package/dist/{chunk-R4QIE6UY.js → chunk-7M4KAPAA.js} +92 -31
- package/dist/{chunk-25DHUDOK.js → chunk-7XTZVLE6.js} +12 -3
- package/dist/chunk-A4KQZXZI.js +116 -0
- package/dist/{chunk-DUQJF7FK.js → chunk-A7YQNIQT.js} +8 -8
- package/dist/{chunk-XOZ3J3LB.js → chunk-AVWEIOEN.js} +1 -1
- package/dist/{chunk-UQXOHEQ7.js → chunk-BM5PX3DJ.js} +4 -4
- package/dist/{chunk-SHB5VDMH.js → chunk-BRITLL56.js} +1 -1
- package/dist/{chunk-JX7Y57YY.js → chunk-E4BSCXMU.js} +1 -1
- package/dist/{chunk-QXOFUKBF.js → chunk-E6SDW5FV.js} +168 -165
- package/dist/{chunk-JH556Q42.js → chunk-EDYBFSPE.js} +2 -2
- package/dist/{chunk-R7LWDIKB.js → chunk-EKA4ZZBI.js} +1 -1
- package/dist/chunk-FXMKHHPO.js +123 -0
- package/dist/chunk-G75ENCEZ.js +283 -0
- package/dist/{chunk-PLNWWGE7.js → chunk-GQJZORQP.js} +1 -1
- package/dist/{chunk-U3GEXWI5.js → chunk-GS6FE3IW.js} +1 -1
- package/dist/{chunk-Y6W4DVPS.js → chunk-HKCNZITN.js} +1 -1
- package/dist/{chunk-HOIHGPWO.js → chunk-IKVBTDLO.js} +1 -1
- package/dist/{chunk-YOL4QRSL.js → chunk-INI3TM6I.js} +2 -2
- package/dist/{chunk-SIKMUO45.js → chunk-IO7ZIDRP.js} +12 -12
- package/dist/{chunk-W7SAWBQC.js → chunk-IV7EI5E2.js} +1 -1
- package/dist/{chunk-TCWL4BKK.js → chunk-IYFKBFTW.js} +1 -1
- package/dist/{chunk-JIIIBTN2.js → chunk-J5IPIQU2.js} +1 -1
- package/dist/chunk-JFKL3WAE.js +161 -0
- package/dist/{chunk-IBRZUVTH.js → chunk-K2GOFLTX.js} +2 -2
- package/dist/{chunk-X3TMMIDP.js → chunk-KFH6UD26.js} +8 -8
- package/dist/{chunk-O6K5DWXM.js → chunk-KOEWEFHK.js} +1 -1
- package/dist/{chunk-VTVS4IIP.js → chunk-L3JSAB4L.js} +2 -2
- package/dist/{chunk-3RT6D4P6.js → chunk-N77KD7ZZ.js} +1 -1
- package/dist/{chunk-FLRCVYNE.js → chunk-NORZWWLK.js} +2 -2
- package/dist/{chunk-4VZBKOQJ.js → chunk-O3SKIXQK.js} +1 -1
- package/dist/{chunk-PFI3VD77.js → chunk-OLDDJS3S.js} +10 -10
- package/dist/{chunk-UGI77E35.js → chunk-P6E4HFFU.js} +167 -61
- package/dist/{chunk-GIDHR5OL.js → chunk-Q65ZQFF2.js} +1 -1
- package/dist/chunk-QZ3AZTXI.js +1740 -0
- package/dist/{chunk-NTIOLSFE.js → chunk-R7UDXKI3.js} +3 -3
- package/dist/{chunk-7SI7GCX6.js → chunk-RCFCZT5O.js} +6 -6
- package/dist/{chunk-DW32KBHN.js → chunk-RPYPW5NN.js} +13 -13
- package/dist/chunk-SYKKFAUW.js +3711 -0
- package/dist/chunk-T76PLPD6.js +57 -0
- package/dist/{chunk-JTAYFSLO.js → chunk-TC2FBZJZ.js} +1 -1
- package/dist/{chunk-Q73ISOVQ.js → chunk-U7E736AJ.js} +1 -1
- package/dist/chunk-USDEMXXL.js +110 -0
- package/dist/{chunk-UMWROSIP.js → chunk-W6HTOVHU.js} +2 -2
- package/dist/{chunk-STA43FMY.js → chunk-WY5OODN5.js} +71 -3855
- package/dist/{chunk-EZ2P7LAP.js → chunk-XDSOIJC3.js} +8 -8
- package/dist/{chunk-ZTZ7NCJT.js → chunk-XTFJOR3K.js} +1 -1
- package/dist/{chunk-CDJ7FPPJ.js → chunk-XWVGSEUT.js} +1 -1
- package/dist/chunk-YA62XGXS.js +45 -0
- package/dist/{chunk-EH4VUY27.js → chunk-YURXPGAM.js} +2 -2
- package/dist/{clean-P4KTCOUA.js → clean-L2E4VD57.js} +29 -20
- package/dist/cli.js +55 -55
- package/dist/{cloud-PDY7S4HU.js → cloud-IDUQRYLO.js} +7 -7
- package/dist/{cloudrun-54MA2W5H.js → cloudrun-R3JXWXGG.js} +11 -8
- package/dist/commands/layout-audit.browser.js +37 -8
- package/dist/commands/motion-signature.browser.js +51 -2
- package/dist/{compare-LDWVSPC5.js → compare-VYBWSP3Y.js} +40 -31
- package/dist/{compiler-CWSZ4W7J.js → compiler-ACHWOU5N.js} +7 -3
- package/dist/{component-FIEGC22U.js → component-PYYV2V3F.js} +4 -4
- package/dist/{compositions-JR7PX356.js → compositions-B5GQSXH7.js} +23 -16
- package/dist/{delete-FXA2IHOS.js → delete-EAX2U3WI.js} +8 -8
- package/dist/{deterministicFonts-GTITFRSJ.js → deterministicFonts-F6WIVL2W.js} +1 -1
- package/dist/{dist-OJTEVNJR.js → dist-NZSQCYOF.js} +3 -1
- package/dist/{dist-4JZWRWS6.js → dist-ROUDWGLO.js} +27 -15
- package/dist/{doctor-OTDHPM6K.js → doctor-PJX7MLFG.js} +20 -13
- package/dist/{events-UAFTI24U.js → events-SBC54MHO.js} +6 -22
- package/dist/{events-6T7M2VCO.js → events-YFFXKAQQ.js} +10 -23
- package/dist/{feedback-ZGZODHB6.js → feedback-UETLWREV.js} +67 -45
- package/dist/{figma-D26EJ7ZB.js → figma-QDSJPIRW.js} +6 -6
- package/dist/fontLocalizeCli.js +18 -11
- package/dist/{get-IAREU7IK.js → get-B5TS6C7H.js} +8 -8
- package/dist/{gpuPolicy-NS7WZRDJ.js → gpuPolicy-LYOVBAJP.js} +15 -8
- package/dist/{grade-compare-ZXHFHCD2.js → grade-compare-LBIHMAUN.js} +40 -31
- package/dist/{help-RVNYHW3N.js → help-XBP6A6LT.js} +4 -4
- package/dist/{history-THP4VNMF.js → history-2S42ZXKL.js} +12 -30
- package/dist/hyperframe-runtime.js +59 -59
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +59 -59
- package/dist/hyperframes-player.global.js +3 -3
- package/dist/{info-EOFRHN5A.js → info-I2VDAWT7.js} +17 -20
- package/dist/{init-YLIJE4CG.js → init-BGHSDODI.js} +48 -41
- package/dist/{inspect-3D56ONJD.js → inspect-MZK5B5RP.js} +39 -30
- package/dist/{installer-GRR2GDZK.js → installer-LL4QAKFW.js} +8 -5
- package/dist/{keyframes-NXNCTQPK.js → keyframes-2EBF7OSS.js} +14 -25
- package/dist/{lambda-VGRZD7TR.js → lambda-XKFPAOFE.js} +16 -13
- package/dist/{layout-Z5DOS6DU.js → layout-TP5ERKEF.js} +39 -30
- package/dist/{lint-YD6NJGR2.js → lint-FQ6CEI7E.js} +17 -23
- package/dist/{lintProject-ANMPLBIT.js → lintProject-LM3XZRPZ.js} +3 -1
- package/dist/{list-XGDKILYN.js → list-FRNUJXZ3.js} +8 -8
- package/dist/{login-GD5SA4RD.js → login-C25QU3BQ.js} +9 -9
- package/dist/{logout-Q654A3SI.js → logout-GJXZQKOA.js} +5 -5
- package/dist/{media-treatment-TY4X4GQQ.js → media-treatment-DCANGWSV.js} +21 -20
- package/dist/{models-MXRDH4WJ.js → models-GOD6ARB3.js} +19 -12
- package/dist/{motionShot-6LKR3C2E.js → motionShot-FSKETANX.js} +22 -15
- package/dist/{normalize-O76AC4HE.js → normalize-IGLHCWTF.js} +0 -4
- package/dist/{normalize-audio-5ADDZKPJ.js → normalize-audio-C2IM7OID.js} +13 -26
- package/dist/{open-JXAMO325.js → open-VVISXIII.js} +11 -25
- package/dist/{pipeline-Q5MOPIIX.js → pipeline-7YHZPYIS.js} +15 -8
- package/dist/{play-3SPH5GWZ.js → play-DSELK7G3.js} +38 -32
- package/dist/{preflight-2PWAPKWC.js → preflight-Y5DN5D37.js} +3 -18
- package/dist/{present-ZTJQDKXZ.js → present-N72YFDKP.js} +32 -26
- package/dist/{preview-4A3XZR6J.js → preview-XTYN4NJ2.js} +33 -26
- package/dist/{producer-5ZKKKQPB.js → producer-NDCU3MHK.js} +1 -1
- package/dist/{projectConfig-WA4CS4SN.js → projectConfig-MH4QU4AC.js} +10 -7
- package/dist/{publication-CLG2FRRI.js → publication-KUSHI5MG.js} +6 -3
- package/dist/{publish-YTT2WMXO.js → publish-3XEEFWMF.js} +27 -20
- package/dist/{refresh-K24ETHMA.js → refresh-MFITBIKV.js} +5 -5
- package/dist/{remove-background-W35INR3B.js → remove-background-2QKJ7XOD.js} +22 -15
- package/dist/{render-WUBFQMAH.js → render-2DVYTVLQ.js} +52 -32
- package/dist/{render-7A4P5WMU.js → render-75E342ZU.js} +10 -7
- package/dist/{render-KICXUPNR.js → render-S73DW4KK.js} +23 -26
- package/dist/{render-batch-N7EFGE6S.js → render-batch-YURBS54Q.js} +11 -8
- package/dist/{renderCancellation-LYQPPFAO.js → renderCancellation-373ASJTO.js} +15 -8
- package/dist/renderSetupWorker.js +4 -2
- package/dist/{resolver-YTT2NENF.js → resolver-FE3GBZ4T.js} +8 -5
- package/dist/{sherpa-353MW4UV.js → sherpa-B2D3AGP6.js} +16 -9
- package/dist/skills/hyperframes/references/capability-menu.md +1 -1
- package/dist/skills/hyperframes-cli/SKILL.md +5 -0
- package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +1 -1
- package/dist/skills/hyperframes-cli/references/preview-render.md +1 -1
- package/dist/skills/media-use/SKILL.md +9 -5
- package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +47 -4
- package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +125 -18
- package/dist/skills/media-use/audio/scripts/lib/host-audio.mjs +28 -0
- package/dist/skills/media-use/audio/scripts/lib/host-audio.test.mjs +106 -0
- package/dist/skills/media-use/references/setup-providers.md +16 -2
- package/dist/skills/media-use/scripts/lib/heygen-cli.mjs +21 -1
- package/dist/skills/media-use/scripts/lib/heygen-cli.test.mjs +14 -0
- package/dist/skills/media-use/scripts/resolve.mjs +11 -6
- package/dist/{skills-2XJIOEBT.js → skills-ICJ22CZZ.js} +15 -30
- package/dist/{skillsUpdateCheck-LMCCWGNO.js → skillsUpdateCheck-GXZN56I5.js} +3 -3
- package/dist/{snapshot-WBRSTLJ2.js → snapshot-XHKOAWF4.js} +41 -32
- package/dist/{src-ZS3BLTZ5.js → src-74PFDTDX.js} +17 -10
- package/dist/{src-YWFJILQF.js → src-I7UC3JTL.js} +19 -11
- package/dist/{staticProjectServer-4VKVHPNG.js → staticProjectServer-2DGKD6TF.js} +24 -16
- package/dist/{status-73MBN37B.js → status-JA6SKQVH.js} +7 -24
- package/dist/studio/assets/hyperframes-player-5Vx2AiUz.js +473 -0
- package/dist/studio/assets/{index-DsEkE5_G.js → index-BAnh7cSQ.js} +1 -1
- package/dist/studio/assets/{index-Br1Whc0f.js → index-C0thd4eM.js} +204 -204
- package/dist/studio/assets/{index-BmIPrb8I.js → index-P8fgj_Xa.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js → chunk-H2DUOXTF.js} +2 -1
- package/dist/studio/index.d.ts +19 -3
- package/dist/studio/index.html +1 -1
- package/dist/studio/index.js +6518 -5813
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/player.js +1 -1
- package/dist/{studio-api-5V4TVSQV.js → studio-api-PROBO7JG.js} +40 -28
- package/dist/{studioServer-M5XY3HYC.js → studioServer-ID6UV2NE.js} +100 -69
- package/dist/{system-RCRNX5VF.js → system-OQLOGGPJ.js} +2 -19
- package/dist/{telemetry-LOBRQGUD.js → telemetry-65LFHIWH.js} +8 -23
- package/dist/{timeline-3JCP6PXU.js → timeline-6UV3JJXD.js} +32 -22
- package/dist/{tokens-MLMIJBVF.js → tokens-HIL4TZXI.js} +3 -3
- package/dist/{transcribe-KNFXDEAX.js → transcribe-TIO6W3EQ.js} +16 -9
- package/dist/{transcribe-POH25ZPX.js → transcribe-V7F6QDSN.js} +20 -44
- package/dist/{updateCheck-5ITBSBST.js → updateCheck-GZELANMA.js} +2 -2
- package/dist/{upgrade-K6OK4FKT.js → upgrade-BX3KDDZJ.js} +5 -5
- package/dist/{urlDownloader-TJJQKADT.js → urlDownloader-R76OHFIE.js} +14 -7
- package/dist/{validate-PPPOBJHB.js → validate-7UX4I443.js} +26 -19
- package/dist/{video-OB22HWXZ.js → video-RVGYEFQU.js} +18 -11
- package/package.json +1 -1
- package/dist/chunk-HYYSJI5D.js +0 -3742
- package/dist/studio/assets/hyperframes-player-CckOoCJ8.js +0 -473
- package/dist/{chunk-I465DBM6.js → chunk-246MOR5U.js} +3 -3
- package/dist/{deploy-MX76RZ36.js → deploy-5G4Z6LPA.js} +1 -1
- package/dist/{destroy-H2TZBYHH.js → destroy-GFQLTIY3.js} +1 -1
- package/dist/{docs-QAPJEGLS.js → docs-MPOM3PHH.js} +3 -3
- package/dist/{policies-FSDZVS2E.js → policies-4FEXMXPK.js} +3 -3
- package/dist/{progress-FBIEEB7Y.js → progress-5AM2MZ7V.js} +3 -3
- package/dist/{sites-TNVKZS73.js → sites-HZMADOA3.js} +1 -1
- package/dist/studio/{chunk-E422JDF5.js.map → chunk-H2DUOXTF.js.map} +0 -0
- package/dist/{telemetry-2YC4SGQU.js → telemetry-W5AKPI4R.js} +3 -3
- package/dist/{tts-FU35O6YB.js → tts-TOHSPWEG.js} +4 -4
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
parseStrictFiniteTimingNumber,
|
|
18
18
|
resolveNaturalMediaTimelineDuration,
|
|
19
19
|
resolveTimedImageDurationSeconds
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-SYKKFAUW.js";
|
|
21
21
|
import {
|
|
22
22
|
COMPOSITION_ATTRIBUTES,
|
|
23
23
|
parseStartExpression
|
|
@@ -1158,6 +1158,21 @@ function parseFirstFrameColour(stderr) {
|
|
|
1158
1158
|
return tags ? { colorSpace: tags[1], colorPrimaries: tags[2], colorTransfer: tags[3] } : {};
|
|
1159
1159
|
}
|
|
1160
1160
|
|
|
1161
|
+
// ../core/dist/previewProxyBox.js
|
|
1162
|
+
var PREVIEW_PROXY_BOX_PARAM = "hf-proxy-box";
|
|
1163
|
+
var RUNGS = [256, 362, 512, 724, 1024, 1448, 2048, 2896, 4096, 5792, 8192];
|
|
1164
|
+
function formatPreviewProxyBox(box) {
|
|
1165
|
+
return `${box.width}x${box.height}`;
|
|
1166
|
+
}
|
|
1167
|
+
function parsePreviewProxyBox(raw) {
|
|
1168
|
+
const match = /^(\d{3,4})x(\d{3,4})$/.exec(raw);
|
|
1169
|
+
if (!match)
|
|
1170
|
+
return null;
|
|
1171
|
+
const width = Number(match[1]);
|
|
1172
|
+
const height = Number(match[2]);
|
|
1173
|
+
return RUNGS.includes(width) && RUNGS.includes(height) ? { width, height } : null;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1161
1176
|
// ../core/dist/inline-scripts/hyperframesRuntime.engine.js
|
|
1162
1177
|
import { buildSync } from "esbuild";
|
|
1163
1178
|
import { existsSync } from "fs";
|
|
@@ -1305,52 +1320,6 @@ function copyMediaVisualStyles(targetStyle, sourceStyle, properties = MEDIA_VISU
|
|
|
1305
1320
|
}
|
|
1306
1321
|
}
|
|
1307
1322
|
|
|
1308
|
-
// ../core/dist/telemetryRedaction.js
|
|
1309
|
-
var MAX_TELEMETRY_STRING_LENGTH = 240;
|
|
1310
|
-
function truncateTelemetryString(value, maxLength) {
|
|
1311
|
-
if (value.length <= maxLength)
|
|
1312
|
-
return value;
|
|
1313
|
-
return `${value.slice(0, maxLength - 1)}\u2026`;
|
|
1314
|
-
}
|
|
1315
|
-
function redactUrlQueryStrings(value) {
|
|
1316
|
-
return value.replace(/\b(https?:\/\/[^\s?]+)\?[^\s]*/g, "$1?\u2026");
|
|
1317
|
-
}
|
|
1318
|
-
var SEGMENT = String.raw`[^\s/\\'"]+`;
|
|
1319
|
-
var SEGMENT_NODOT = String.raw`[^\s/\\'".]+`;
|
|
1320
|
-
var TOKEN_TAIL = String.raw`[^\s'")]*`;
|
|
1321
|
-
var ABSOLUTE_PATH = new RegExp(String.raw`(?<![:\w/\\])(?:[A-Za-z]:)?(?:[\\/]${SEGMENT}){2,}${TOKEN_TAIL}`, "g");
|
|
1322
|
-
var RELATIVE_PATH = new RegExp(String.raw`(?<![\w/\\.])\.{1,2}(?:[\\/]${SEGMENT})+${TOKEN_TAIL}`, "g");
|
|
1323
|
-
var ASSET_BASENAME = /(?<![\w/\\])[^\s/\\'"]+\.(?:mp4|mov|mkv|webm|avi|m4v|mpe?g|ts|mp3|wav|aac|m4a|flac|ogg|opus|png|jpe?g|gif|webp|svg|html?|json|srt|vtt|ass)\b/gi;
|
|
1324
|
-
var BARE_RELATIVE_PATH = new RegExp([
|
|
1325
|
-
// Two or more separators: `customer/acme/video.mp4`. No extension needed —
|
|
1326
|
-
// that much structure is already a path.
|
|
1327
|
-
String.raw`(?<![^\s'\"(=,\[])(?:${SEGMENT}[\\/]){2,}${SEGMENT}${TOKEN_TAIL}`,
|
|
1328
|
-
// One separator, but the last segment carries a file extension:
|
|
1329
|
-
// `assets/bgm.mp3`. That segment is dot-free on purpose — SEGMENT includes
|
|
1330
|
-
// `.`, so a greedy one swallows the extension this rule needs.
|
|
1331
|
-
String.raw`(?<![^\s'\"(=,\[])${SEGMENT}[\\/]${SEGMENT_NODOT}\.\w{1,8}\b${TOKEN_TAIL}`
|
|
1332
|
-
].join("|"), "g");
|
|
1333
|
-
function redactKnownPaths(value, paths) {
|
|
1334
|
-
if (typeof value !== "string")
|
|
1335
|
-
return "";
|
|
1336
|
-
let out = value;
|
|
1337
|
-
for (const path of paths) {
|
|
1338
|
-
if (typeof path !== "string" || path.length === 0)
|
|
1339
|
-
continue;
|
|
1340
|
-
const basename = path.split(/[\\/]/).pop() ?? "";
|
|
1341
|
-
for (const literal of [path, basename].filter((v) => v.length > 2)) {
|
|
1342
|
-
out = out.split(literal).join("[path]");
|
|
1343
|
-
}
|
|
1344
|
-
}
|
|
1345
|
-
return out;
|
|
1346
|
-
}
|
|
1347
|
-
function redactFilePaths(value) {
|
|
1348
|
-
return value.replace(/file:\/\/[^\s'")]+/g, "[file-url]").replace(RELATIVE_PATH, "[path]").replace(BARE_RELATIVE_PATH, "[path]").replace(ABSOLUTE_PATH, "[path]").replace(ASSET_BASENAME, "[file]");
|
|
1349
|
-
}
|
|
1350
|
-
function redactTelemetryString(value, maxLength = MAX_TELEMETRY_STRING_LENGTH) {
|
|
1351
|
-
return truncateTelemetryString(redactFilePaths(redactUrlQueryStrings(value)), maxLength);
|
|
1352
|
-
}
|
|
1353
|
-
|
|
1354
1323
|
// ../core/dist/projectRule.js
|
|
1355
1324
|
var PROJECT_MARKER_FILES = ["hyperframes.json", "meta.json", "project.json"];
|
|
1356
1325
|
function isHyperframesProject(fileNames) {
|
|
@@ -4761,112 +4730,6 @@ function isComponentItem(item) {
|
|
|
4761
4730
|
return item.type === "hyperframes:component";
|
|
4762
4731
|
}
|
|
4763
4732
|
|
|
4764
|
-
// ../core/dist/canary.js
|
|
4765
|
-
function fnv1a32(input) {
|
|
4766
|
-
let hash = 2166136261;
|
|
4767
|
-
for (let i = 0; i < input.length; i++) {
|
|
4768
|
-
hash ^= input.charCodeAt(i);
|
|
4769
|
-
hash = hash + ((hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24)) >>> 0;
|
|
4770
|
-
}
|
|
4771
|
-
return hash >>> 0;
|
|
4772
|
-
}
|
|
4773
|
-
function canaryBucket(feature, unitId) {
|
|
4774
|
-
return fnv1a32(`${feature}:${unitId}`) % 100;
|
|
4775
|
-
}
|
|
4776
|
-
function evaluateCanary(input) {
|
|
4777
|
-
if (input.override === true)
|
|
4778
|
-
return { enabled: true, reason: "forced_on" };
|
|
4779
|
-
if (input.override === false)
|
|
4780
|
-
return { enabled: false, reason: "forced_off" };
|
|
4781
|
-
const pct = Math.max(0, Math.min(100, Math.trunc(input.percentage)));
|
|
4782
|
-
if (pct <= 0)
|
|
4783
|
-
return { enabled: false, reason: "out_of_cohort" };
|
|
4784
|
-
if (pct >= 100)
|
|
4785
|
-
return { enabled: true, reason: "in_cohort" };
|
|
4786
|
-
if (input.exclude)
|
|
4787
|
-
return { enabled: false, reason: "excluded" };
|
|
4788
|
-
const unitId = input.unitId?.trim();
|
|
4789
|
-
if (!unitId)
|
|
4790
|
-
return { enabled: false, reason: "no_unit_id" };
|
|
4791
|
-
const bucket = canaryBucket(input.feature, unitId);
|
|
4792
|
-
return bucket < pct ? { enabled: true, reason: "in_cohort", bucket } : { enabled: false, reason: "out_of_cohort", bucket };
|
|
4793
|
-
}
|
|
4794
|
-
function parseCanaryOverride(raw) {
|
|
4795
|
-
const v = raw?.trim().toLowerCase();
|
|
4796
|
-
if (v === void 0 || v === "")
|
|
4797
|
-
return void 0;
|
|
4798
|
-
if (v === "1" || v === "true" || v === "on" || v === "yes")
|
|
4799
|
-
return true;
|
|
4800
|
-
if (v === "0" || v === "false" || v === "off" || v === "no")
|
|
4801
|
-
return false;
|
|
4802
|
-
return void 0;
|
|
4803
|
-
}
|
|
4804
|
-
var CANARY_FEATURE_PREFIX = "$feature/canary-";
|
|
4805
|
-
function canaryFeatureKey(name) {
|
|
4806
|
-
return `${CANARY_FEATURE_PREFIX}${name}`;
|
|
4807
|
-
}
|
|
4808
|
-
function canaryReasonKey(name) {
|
|
4809
|
-
return `canary_reason_${name.replace(/[^A-Za-z0-9]+/g, "_")}`;
|
|
4810
|
-
}
|
|
4811
|
-
function canaryFeatureProperties(entries) {
|
|
4812
|
-
const props = {};
|
|
4813
|
-
for (const entry of entries) {
|
|
4814
|
-
props[canaryFeatureKey(entry.name)] = entry.enabled ? "true" : "false";
|
|
4815
|
-
if (entry.reason !== void 0)
|
|
4816
|
-
props[canaryReasonKey(entry.name)] = entry.reason;
|
|
4817
|
-
}
|
|
4818
|
-
return props;
|
|
4819
|
-
}
|
|
4820
|
-
|
|
4821
|
-
// ../core/dist/canaryRegistry.js
|
|
4822
|
-
var CANARIES = [
|
|
4823
|
-
// ── Calibration ──────────────────────────────────────────────────────────
|
|
4824
|
-
// Two INERT canaries that gate nothing. They exist to validate the rollout
|
|
4825
|
-
// mechanism against real traffic before anything real depends on it, and
|
|
4826
|
-
// they answer questions the synthetic tests cannot:
|
|
4827
|
-
//
|
|
4828
|
-
// 1. Does a requested percentage land on target in the wild? The unit
|
|
4829
|
-
// tests use generated UUIDs and weight every install equally; real
|
|
4830
|
-
// render volume is heavily skewed toward a few heavy installs, so the
|
|
4831
|
-
// render-weighted share could differ from the install-weighted one.
|
|
4832
|
-
// 2. How fast does CUMULATIVE exposure drift above the target? Install
|
|
4833
|
-
// ids churn (measured: 24.7x more distinct ids over 30 days than in
|
|
4834
|
-
// any single day), so the set of installs enrolled AT SOME POINT grows
|
|
4835
|
-
// even though the instantaneous share stays flat. That drift is the
|
|
4836
|
-
// real limit on a canary's blast-radius guarantee.
|
|
4837
|
-
// 3. Are two canaries actually independent on real ids, not just on
|
|
4838
|
-
// generated ones? Overlap should be ~p1*p2, not ~min(p1,p2).
|
|
4839
|
-
//
|
|
4840
|
-
// Two different percentages so the answer is a line, not a point.
|
|
4841
|
-
// Delete both once the calibration window is read.
|
|
4842
|
-
{
|
|
4843
|
-
name: "calibration-10",
|
|
4844
|
-
percentage: 10,
|
|
4845
|
-
description: "Inert. Validates rollout accuracy and cumulative-exposure drift at 10%.",
|
|
4846
|
-
owner: "vance",
|
|
4847
|
-
sunsetAfter: "2026-09-15"
|
|
4848
|
-
},
|
|
4849
|
-
{
|
|
4850
|
-
name: "calibration-50",
|
|
4851
|
-
percentage: 50,
|
|
4852
|
-
description: "Inert. Second calibration point, and an independence check against calibration-10.",
|
|
4853
|
-
owner: "vance",
|
|
4854
|
-
sunsetAfter: "2026-09-15"
|
|
4855
|
-
}
|
|
4856
|
-
];
|
|
4857
|
-
function findCanary(name) {
|
|
4858
|
-
return CANARIES.find((c) => c.name === name);
|
|
4859
|
-
}
|
|
4860
|
-
function canaryEnvVar(name) {
|
|
4861
|
-
return `HF_CANARY_${name.toUpperCase().replace(/[^A-Z0-9]+/g, "_")}`;
|
|
4862
|
-
}
|
|
4863
|
-
function overdueCanaries(now = /* @__PURE__ */ new Date()) {
|
|
4864
|
-
return CANARIES.filter((c) => {
|
|
4865
|
-
const sunsetEnd = Date.parse(`${c.sunsetAfter}T23:59:59.999Z`);
|
|
4866
|
-
return Number.isFinite(sunsetEnd) && now.getTime() > sunsetEnd;
|
|
4867
|
-
}).map((c) => c.name);
|
|
4868
|
-
}
|
|
4869
|
-
|
|
4870
4733
|
// ../core/dist/vfx/fractalNoise.frag.js
|
|
4871
4734
|
var HASH_CONSTANTS = {
|
|
4872
4735
|
/** Odd 32-bit multipliers, one per lattice axis plus one for the seed. */
|
|
@@ -5689,6 +5552,9 @@ export {
|
|
|
5689
5552
|
hdrToSdrToneMapFilter,
|
|
5690
5553
|
firstFrameColourArgs,
|
|
5691
5554
|
parseFirstFrameColour,
|
|
5555
|
+
PREVIEW_PROXY_BOX_PARAM,
|
|
5556
|
+
formatPreviewProxyBox,
|
|
5557
|
+
parsePreviewProxyBox,
|
|
5692
5558
|
buildHyperframesRuntimeScript,
|
|
5693
5559
|
HYPERFRAME_RUNTIME_GLOBALS,
|
|
5694
5560
|
HYPERFRAME_BRIDGE_SOURCES,
|
|
@@ -5701,8 +5567,6 @@ export {
|
|
|
5701
5567
|
quantizeSeekTime,
|
|
5702
5568
|
exportClipWindow,
|
|
5703
5569
|
copyMediaVisualStyles,
|
|
5704
|
-
redactKnownPaths,
|
|
5705
|
-
redactTelemetryString,
|
|
5706
5570
|
PROJECT_MARKER_FILES,
|
|
5707
5571
|
isHyperframesProject,
|
|
5708
5572
|
createGSAPFrameAdapter,
|
|
@@ -5728,14 +5592,6 @@ export {
|
|
|
5728
5592
|
isExampleItem,
|
|
5729
5593
|
isBlockItem,
|
|
5730
5594
|
isComponentItem,
|
|
5731
|
-
canaryBucket,
|
|
5732
|
-
evaluateCanary,
|
|
5733
|
-
parseCanaryOverride,
|
|
5734
|
-
canaryFeatureProperties,
|
|
5735
|
-
CANARIES,
|
|
5736
|
-
findCanary,
|
|
5737
|
-
canaryEnvVar,
|
|
5738
|
-
overdueCanaries,
|
|
5739
5595
|
HF_VFX_ATTR,
|
|
5740
5596
|
HF_VFX_CHAIN_VERSION,
|
|
5741
5597
|
HF_VFX,
|
|
@@ -7,20 +7,20 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
parseFeedbackRating,
|
|
9
9
|
trackRenderFeedback
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-7XTZVLE6.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import {
|
|
15
|
-
c
|
|
16
|
-
} from "./chunk-ZTZA4UWZ.js";
|
|
13
|
+
} from "./chunk-RCFCZT5O.js";
|
|
17
14
|
import {
|
|
18
15
|
detectAgentRuntime
|
|
19
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-GQJZORQP.js";
|
|
20
17
|
import {
|
|
21
18
|
readConfig,
|
|
22
19
|
writeConfig
|
|
23
20
|
} from "./chunk-XUXGIA7H.js";
|
|
21
|
+
import {
|
|
22
|
+
c
|
|
23
|
+
} from "./chunk-ZTZA4UWZ.js";
|
|
24
24
|
|
|
25
25
|
// src/telemetry/feedback.ts
|
|
26
26
|
import * as readline from "readline";
|
|
@@ -83,7 +83,7 @@ async function maybePromptRenderFeedback(opts) {
|
|
|
83
83
|
async function getDoctorSummary() {
|
|
84
84
|
try {
|
|
85
85
|
const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
|
|
86
|
-
import("./system-
|
|
86
|
+
import("./system-OQLOGGPJ.js"),
|
|
87
87
|
import("./ffmpeg-QIUFEFTY.js")
|
|
88
88
|
]);
|
|
89
89
|
const sys = getSystemMeta();
|