hyperframes 0.8.145 → 0.8.146

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/{add-B6OUH46W.js → add-6J4TLUDW.js} +15 -15
  2. package/dist/{animatedGifPrep-MIWRDJIO.js → animatedGifPrep-TPYA45ZZ.js} +10 -10
  3. package/dist/{asset-XJ2B2PU3.js → asset-B4C6ZU4V.js} +2 -2
  4. package/dist/{assetCataloger-A5ZLSCMZ.js → assetCataloger-GX4B55VB.js} +4 -4
  5. package/dist/{auth-5HOVCZMV.js → auth-T2V3URGO.js} +2 -2
  6. package/dist/{autoUpdate-WVNL5K3D.js → autoUpdate-O4R7IOYP.js} +2 -2
  7. package/dist/{backgroundChecks-IGF54SFH.js → backgroundChecks-SQHGZCSH.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-T6JEGCQV.js → batchRender-T7S2CGJE.js} +5 -5
  10. package/dist/{beats-37T6Y6QP.js → beats-RNEXDM7U.js} +16 -16
  11. package/dist/{benchmark-ZVVLOWPP.js → benchmark-IVK6FCEU.js} +12 -12
  12. package/dist/{browser-4SSJOLH4.js → browser-WUE6VK2N.js} +5 -5
  13. package/dist/{bundleWithLocalizedFonts-XWK423QP.js → bundleWithLocalizedFonts-EEIRL7FT.js} +2 -2
  14. package/dist/{capture-2SF7YP57.js → capture-K3EONGGU.js} +2 -2
  15. package/dist/{capture-KZXOPBMO.js → capture-LEKIGJ4G.js} +13 -13
  16. package/dist/{catalog-NLD4A2C6.js → catalog-IXYQ2KXW.js} +15 -15
  17. package/dist/{catch-up-4BSRN6IR.js → catch-up-IIF7HKR6.js} +6 -6
  18. package/dist/{check-IA44QQWM.js → check-W7CDOXNP.js} +38 -38
  19. package/dist/{checkBrowser-VM35KZMW.js → checkBrowser-5VSXEHBZ.js} +118 -61
  20. package/dist/{chunk-ZF7SXQJ7.js → chunk-2NAUEDA6.js} +2 -2
  21. package/dist/{chunk-FXJJCPPB.js → chunk-3HSWLZ6S.js} +1 -1
  22. package/dist/{chunk-ZSVUAVMT.js → chunk-4RUILXS6.js} +5 -5
  23. package/dist/{chunk-FBCULCAL.js → chunk-54UXJKFF.js} +1 -1
  24. package/dist/{chunk-DIRJ322I.js → chunk-66SAATRI.js} +3 -3
  25. package/dist/{chunk-QLSM7K5S.js → chunk-6TTAXMDG.js} +2 -2
  26. package/dist/{chunk-5WVW7P23.js → chunk-A72OAGNB.js} +6 -6
  27. package/dist/{chunk-G75ENCEZ.js → chunk-AIJS74LG.js} +3 -3
  28. package/dist/{chunk-HB7FJOY4.js → chunk-AJ5R4GM6.js} +1 -1
  29. package/dist/{chunk-VRW6EBHV.js → chunk-BAKPN2D2.js} +101 -94
  30. package/dist/{chunk-OTHDVXOJ.js → chunk-CVPWZ5LY.js} +3 -3
  31. package/dist/{chunk-BIAC7IJT.js → chunk-DDNS2674.js} +1 -1
  32. package/dist/{chunk-QFSCCQIR.js → chunk-DMKI64EZ.js} +1 -1
  33. package/dist/{chunk-EPE2HRJK.js → chunk-DUU77E2S.js} +69 -64
  34. package/dist/{chunk-ZIYZ77MR.js → chunk-EGO6Z24R.js} +3 -3
  35. package/dist/{chunk-KC5XXX3X.js → chunk-EOOEC32M.js} +1 -1
  36. package/dist/{chunk-3IBMBNYY.js → chunk-ETNQF37F.js} +10 -10
  37. package/dist/{chunk-XIHCMVMG.js → chunk-FDL4HV44.js} +2 -2
  38. package/dist/{chunk-GBGJ7A3D.js → chunk-FJLHVAPO.js} +6 -6
  39. package/dist/{chunk-QZ3AZTXI.js → chunk-FJWEYVEM.js} +42 -16
  40. package/dist/{chunk-IHTRYDFN.js → chunk-FKLYMV3U.js} +1 -1
  41. package/dist/{chunk-PUGIRFPX.js → chunk-FMNVTKX2.js} +4 -4
  42. package/dist/{chunk-GEMJYBRU.js → chunk-HBGJYBGE.js} +2 -2
  43. package/dist/{chunk-U5QY7KTN.js → chunk-HTM4CIFS.js} +11 -8
  44. package/dist/{chunk-T42U2W2R.js → chunk-IXLUTE6N.js} +1 -1
  45. package/dist/{chunk-FDT6KQV4.js → chunk-JBQJKC23.js} +2 -2
  46. package/dist/{chunk-IEIJRMLZ.js → chunk-JDB65PPT.js} +62 -63
  47. package/dist/{chunk-USDEMXXL.js → chunk-JYVGYKXG.js} +1 -1
  48. package/dist/{chunk-PLR7Z6TC.js → chunk-K7ES5RSK.js} +1 -1
  49. package/dist/{chunk-VHFEMFYL.js → chunk-KFZUUXUN.js} +3 -3
  50. package/dist/{chunk-GRY3PN3K.js → chunk-KG265HQ7.js} +2 -2
  51. package/dist/{chunk-R42WWQVB.js → chunk-KPJMBC4K.js} +2 -2
  52. package/dist/{chunk-MAYCCGMQ.js → chunk-KVGDFUVO.js} +1 -1
  53. package/dist/{chunk-CFUXNBWH.js → chunk-LE7T4ML7.js} +1 -1
  54. package/dist/{chunk-MQZVBHEY.js → chunk-LFNQDTSH.js} +1 -1
  55. package/dist/{chunk-KIFHYXPB.js → chunk-MOL32UKR.js} +45 -11
  56. package/dist/{chunk-ICKDMTLA.js → chunk-QSSPIATO.js} +2 -2
  57. package/dist/{chunk-3KU3PFDW.js → chunk-R6R74HNZ.js} +74 -66
  58. package/dist/{chunk-ADF3X6GM.js → chunk-SYMSKGXI.js} +2 -2
  59. package/dist/{chunk-ZEUONDQG.js → chunk-SYUGVPYH.js} +1 -1
  60. package/dist/{chunk-BFACGEII.js → chunk-TBOMPYG6.js} +2 -2
  61. package/dist/{chunk-XBX4QJP7.js → chunk-TH4OXAWY.js} +1 -1
  62. package/dist/{chunk-GMAJB2P6.js → chunk-UOBYRLDD.js} +1 -1
  63. package/dist/{chunk-4QWD6JYN.js → chunk-UZUUVYAO.js} +3 -3
  64. package/dist/{chunk-PJ3HDUCY.js → chunk-VAS6HQX3.js} +39 -9
  65. package/dist/{chunk-6LGNTUZN.js → chunk-VT563F4O.js} +7 -7
  66. package/dist/{chunk-UXO2L7HJ.js → chunk-WU2B74TL.js} +267 -65
  67. package/dist/{chunk-OB5MJR4W.js → chunk-WUZ6TMAO.js} +1 -1
  68. package/dist/{chunk-GQJZORQP.js → chunk-XBSPQ52S.js} +1 -1
  69. package/dist/{chunk-4ORLNTET.js → chunk-XJUZEB44.js} +1 -1
  70. package/dist/{chunk-LAFJSYDL.js → chunk-XVIYZU3D.js} +1 -1
  71. package/dist/{chunk-GXJEGZL2.js → chunk-Z5C4LEAD.js} +17 -18
  72. package/dist/chunk-Z6FLHIDV.js +3795 -0
  73. package/dist/{chunk-DDIVWXN7.js → chunk-ZFN6GQU4.js} +4 -4
  74. package/dist/{chunk-DWUKJQTO.js → chunk-ZVZSFDW3.js} +2 -2
  75. package/dist/{chunk-5NRXZGKK.js → chunk-ZZ7H4IJ6.js} +9 -9
  76. package/dist/{clean-RDKJB5FK.js → clean-2GDD2B4F.js} +23 -23
  77. package/dist/cli.js +52 -52
  78. package/dist/{cloud-QVPVVNCW.js → cloud-LUKGDTTE.js} +4 -4
  79. package/dist/{cloudrun-3RE2UCQG.js → cloudrun-NQF5KFQI.js} +6 -6
  80. package/dist/{compare-LEDOY7MO.js → compare-4P6O4ONG.js} +32 -32
  81. package/dist/{compiler-F54OZZPM.js → compiler-ACCPOZMQ.js} +6 -6
  82. package/dist/{component-N42M67WY.js → component-SDDOLNJD.js} +3 -3
  83. package/dist/{compositions-VB2J2LZI.js → compositions-P2L6HUVQ.js} +15 -15
  84. package/dist/{delete-Q6RWMJ4Z.js → delete-Q6S4BJ3F.js} +2 -2
  85. package/dist/{deterministicFonts-U2BIMGPG.js → deterministicFonts-C5JQLCTS.js} +2 -2
  86. package/dist/{dist-Q4BI5A73.js → dist-GPDOV3IQ.js} +4 -4
  87. package/dist/{dist-KDJTFJHA.js → dist-HUMFCJ6T.js} +3 -3
  88. package/dist/{doctor-JMMUHDRV.js → doctor-NL73UKHV.js} +15 -15
  89. package/dist/{events-RGUAHIBW.js → events-AVOPOKO3.js} +5 -5
  90. package/dist/{events-6ZBSIBE5.js → events-X7KPU7LG.js} +4 -4
  91. package/dist/{feedback-FIID6MZW.js → feedback-GJZ5NXSH.js} +10 -10
  92. package/dist/{ffmpeg-T5SH2EFJ.js → ffmpeg-5V4FP3R6.js} +2 -2
  93. package/dist/{figma-BL3JJC36.js → figma-V7SVQQI5.js} +3 -3
  94. package/dist/fontLocalizeCli.js +14 -14
  95. package/dist/{get-P46GS7S6.js → get-FO3YZYEU.js} +2 -2
  96. package/dist/{gpuPolicy-AQ2BPLBK.js → gpuPolicy-QGS4TFWP.js} +10 -10
  97. package/dist/{grade-compare-GDCWU7ZZ.js → grade-compare-7ICSN7KE.js} +33 -33
  98. package/dist/{help-HJR3RWFG.js → help-Y5LYZG7K.js} +2 -2
  99. package/dist/{history-GGO5AWJB.js → history-RKGBRNLD.js} +49 -22
  100. package/dist/hyperframe-runtime.js +214 -68
  101. package/dist/hyperframe.manifest.json +1 -1
  102. package/dist/hyperframe.runtime.iife.js +214 -68
  103. package/dist/hyperframes-player.global.js +4 -5
  104. package/dist/hyperframes-slideshow.global.js +3 -4
  105. package/dist/{info-3GFWUBJC.js → info-GGUTL2NR.js} +11 -11
  106. package/dist/{init-36OPU2ZG.js → init-PG7NA5SQ.js} +31 -31
  107. package/dist/{inspect-F2HEL5ON.js → inspect-FCXUB6DE.js} +33 -33
  108. package/dist/{installer-NI6P6GC4.js → installer-LZ4X5TZZ.js} +6 -6
  109. package/dist/{keyframes-7OY3LMAZ.js → keyframes-R3K6WJ3N.js} +8 -8
  110. package/dist/{lambda-6GJIWNJ3.js → lambda-3GAKHMC3.js} +7 -7
  111. package/dist/{layout-FTMLNL5A.js → layout-XNIZIGA2.js} +33 -33
  112. package/dist/{lint-U6POHUON.js → lint-4KDS2F4O.js} +11 -11
  113. package/dist/{lintProject-UBZ3TDHU.js → lintProject-SSEXWCH6.js} +3 -3
  114. package/dist/{list-IP5KI5Q2.js → list-OVPURFPK.js} +2 -2
  115. package/dist/{login-4VWTVPHG.js → login-EE2AX2PE.js} +4 -4
  116. package/dist/{manager-YKMHR6LN.js → manager-5ORDVWJB.js} +3 -3
  117. package/dist/{media-treatment-XGV44AGV.js → media-treatment-UDUEOP67.js} +82 -54
  118. package/dist/{models-UCXB6UR5.js → models-LPK2O4B2.js} +14 -14
  119. package/dist/{motionShot-WPVNBXKA.js → motionShot-G76XBOYI.js} +35 -29
  120. package/dist/{normalize-audio-TYJ3UEHO.js → normalize-audio-TUKWZ3OR.js} +10 -10
  121. package/dist/{open-HENOLVB2.js → open-7XB2TGVB.js} +6 -6
  122. package/dist/{parakeetRunner-VFQ6WFTD.js → parakeetRunner-DL556HXL.js} +14 -14
  123. package/dist/{pipeline-6WPSC3H4.js → pipeline-34N5DLWU.js} +11 -11
  124. package/dist/{play-OI53WNUM.js → play-DDA2UUQF.js} +26 -26
  125. package/dist/{preflight-B4AFK3RG.js → preflight-ONF5AJNO.js} +5 -5
  126. package/dist/{present-NGMEQ4NO.js → present-LLNRKXF5.js} +23 -23
  127. package/dist/{preview-VT2HWRWZ.js → preview-H3ZZS46F.js} +57 -26
  128. package/dist/{producer-7TYEAUF7.js → producer-IFQOZK2G.js} +1 -1
  129. package/dist/{projectConfig-B2AF5DXY.js → projectConfig-SBRMQZGG.js} +8 -8
  130. package/dist/{publication-2PANQVC6.js → publication-5BQICRZO.js} +4 -4
  131. package/dist/{publish-O5OL42BG.js → publish-XDUZA3E3.js} +27 -26
  132. package/dist/{remove-background-T2JM6UVP.js → remove-background-GNKRMFQS.js} +12 -12
  133. package/dist/{render-Z253WHBK.js → render-JM6KNRIA.js} +27 -27
  134. package/dist/{render-OLPKOJRU.js → render-KTTC3EE5.js} +12 -12
  135. package/dist/{render-W7OFXDOJ.js → render-PCFO45RK.js} +5 -5
  136. package/dist/{render-batch-46IIBFKL.js → render-batch-7R2NRNVJ.js} +5 -5
  137. package/dist/{renderCancellation-QTZOCDJ2.js → renderCancellation-GP3XD2FS.js} +10 -10
  138. package/dist/renderSetupWorker.js +3 -3
  139. package/dist/{resolver-J2PL5FVJ.js → resolver-C4FPX72I.js} +6 -6
  140. package/dist/{sherpa-ZF42V3RN.js → sherpa-MZP3MV2X.js} +14 -14
  141. package/dist/skills/media-use/references/media-treatments.md +5 -1
  142. package/dist/{skills-ACDOO3PX.js → skills-OET4XSHR.js} +7 -7
  143. package/dist/{skillsUpdateCheck-L5OXVVPU.js → skillsUpdateCheck-IPFSKKJD.js} +3 -3
  144. package/dist/{slideshow-4OJEPWNZ.js → slideshow-YTWATJRT.js} +1 -1
  145. package/dist/{snapshot-UUVNZOW5.js → snapshot-EC4N75MS.js} +34 -34
  146. package/dist/{src-BSLKXEGX.js → src-LIERUCFW.js} +11 -9
  147. package/dist/{src-KS3AWFGT.js → src-ZZQJOKO6.js} +13 -13
  148. package/dist/{staticProjectServer-2TTVGPQH.js → staticProjectServer-YH2RHYKW.js} +20 -20
  149. package/dist/{status-LXPGSSKY.js → status-PTKNQD2E.js} +2 -2
  150. package/dist/studio/assets/{hyperframes-player-DZ5JrMDg.js → hyperframes-player-tkxyWf5H.js} +3 -3
  151. package/dist/studio/assets/{index-BqFRhNZa.js → index-BrdqOkqP.js} +1 -1
  152. package/dist/studio/assets/{index-D8W0a0Z9.js → index-Cg48BxAo.js} +135 -135
  153. package/dist/studio/assets/{index-BOs6C0aZ.js → index-Dllxg4aU.js} +1 -1
  154. package/dist/studio/index.html +1 -1
  155. package/dist/{studio-api-WYWF7XRC.js → studio-api-T2TS2CHL.js} +16 -14
  156. package/dist/{studioServer-3FG4YTP7.js → studioServer-GJVVJUEL.js} +50 -50
  157. package/dist/{system-OQLOGGPJ.js → system-OXRG57F2.js} +2 -2
  158. package/dist/{telemetry-PAOOB4T4.js → telemetry-ZQ5XVE6Z.js} +5 -5
  159. package/dist/{timeline-JIIJKKPC.js → timeline-I2T5WIPD.js} +34 -25
  160. package/dist/{tokens-3QRAM75Z.js → tokens-ONUWOXEX.js} +2 -2
  161. package/dist/{transcribe-QSBP5MUG.js → transcribe-BCQMA537.js} +12 -12
  162. package/dist/{transcribe-SZB6UMXE.js → transcribe-ZLJF7V5Y.js} +13 -13
  163. package/dist/{updateCheck-V3DSB26K.js → updateCheck-ZWHDXF73.js} +2 -2
  164. package/dist/{upgrade-L5GISOEV.js → upgrade-32JGFZWS.js} +2 -2
  165. package/dist/{urlDownloader-52FERT4X.js → urlDownloader-EVDP43GM.js} +9 -9
  166. package/dist/{validate-HVVLX7KO.js → validate-G4PUGQCI.js} +27 -27
  167. package/dist/{video-MEOWRMFG.js → video-TILEY3VJ.js} +10 -10
  168. package/package.json +3 -2
  169. package/dist/chunk-AUWHD7RA.js +0 -3753
  170. package/dist/studio/chunk-6JY3MTIX.js +0 -1204
  171. package/dist/studio/chunk-EEXSYY5F.js +0 -190
  172. package/dist/studio/chunk-NZPJUZKT.js +0 -1538
  173. package/dist/studio/chunk-PZ5AY32C.js +0 -10
  174. package/dist/studio/chunk-TP6D3U37.js +0 -845
  175. package/dist/studio/chunk-Y2OHHNM2.js +0 -970
  176. package/dist/studio/domEditingLayers-PTP2ICGM.js +0 -47
  177. package/dist/studio/index.css +0 -165
  178. package/dist/studio/index.d.ts +0 -4318
  179. package/dist/studio/index.js +0 -100952
  180. package/dist/studio/player.d.ts +0 -30
  181. package/dist/studio/player.js +0 -10
  182. package/dist/studio/styles/tailwind-preset.d.ts +0 -39
  183. package/dist/studio/styles/tailwind-preset.js +0 -50
  184. package/dist/studio/styles.css +0 -1
  185. package/dist/studio/ui.d.ts +0 -297
  186. package/dist/studio/ui.js +0 -66
@@ -20,30 +20,30 @@ import {
20
20
  } from "./chunk-3DKN5WKL.js";
21
21
  import {
22
22
  runEnvironmentChecks
23
- } from "./chunk-DIRJ322I.js";
23
+ } from "./chunk-66SAATRI.js";
24
24
  import {
25
25
  getAvailableMemoryMb,
26
26
  getFreeDiskMb,
27
27
  getShmSizeMb,
28
28
  getSystemMeta
29
- } from "./chunk-GQJZORQP.js";
29
+ } from "./chunk-XBSPQ52S.js";
30
30
  import {
31
31
  defineCommand
32
32
  } from "./chunk-S3S4TGEH.js";
33
33
  import {
34
34
  resolveExtractCacheDir
35
- } from "./chunk-UXO2L7HJ.js";
35
+ } from "./chunk-WU2B74TL.js";
36
36
  import {
37
37
  getUpdateMeta,
38
38
  withMeta
39
- } from "./chunk-PLR7Z6TC.js";
39
+ } from "./chunk-K7ES5RSK.js";
40
40
  import {
41
41
  CONFIG_PATH,
42
42
  withFileLock
43
43
  } from "./chunk-XUXGIA7H.js";
44
44
  import {
45
45
  VERSION
46
- } from "./chunk-BFACGEII.js";
46
+ } from "./chunk-TBOMPYG6.js";
47
47
  import {
48
48
  normalizeErrorMessage
49
49
  } from "./chunk-KNU5COPB.js";
@@ -232,7 +232,7 @@ function checkEnvironment() {
232
232
  return { ok: true, detail: parts.join(" \xB7 ") };
233
233
  }
234
234
  async function checkWhisper() {
235
- const { findWhisper, getInstallInstructions } = await import("./manager-YKMHR6LN.js");
235
+ const { findWhisper, getInstallInstructions } = await import("./manager-5ORDVWJB.js");
236
236
  const result = findWhisper();
237
237
  if (result) {
238
238
  return { ok: true, detail: result.executablePath };
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  realFilePath
9
- } from "./chunk-G75ENCEZ.js";
9
+ } from "./chunk-AIJS74LG.js";
10
10
  import {
11
11
  atomicTempPath,
12
12
  isAtomicTempPath,
@@ -17,7 +17,7 @@ import {
17
17
  mkdirWithinProject
18
18
  } from "./chunk-OFQWTKPW.js";
19
19
 
20
- // ../studio-server/dist/chunk-K3H6HTVC.js
20
+ // ../studio-server/dist/chunk-Y7V6FJHS.js
21
21
  import { randomUUID as randomUUID6 } from "crypto";
22
22
  import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
23
23
  import {
@@ -310,6 +310,11 @@ function createProjectSignature(projectDir, excluding = /* @__PURE__ */ new Set(
310
310
  return signature;
311
311
  }
312
312
  var BLOB_HASH = /^[0-9a-f]{64}$/;
313
+ function blobPath(dir, hash) {
314
+ if (!BLOB_HASH.test(hash)) throw new Error("That is not a history blob.");
315
+ return join(dir, hash.slice(0, 2), hash);
316
+ }
317
+ var readBlob = (dir, hash) => readFile(blobPath(dir, hash));
313
318
  async function hashFile(path) {
314
319
  const hash = createHash3("sha256");
315
320
  for await (const chunk of createReadStream(path)) hash.update(chunk);
@@ -333,10 +338,7 @@ async function openBlobStore(dir) {
333
338
  for (const shard of await readdir(dir))
334
339
  for (const hash of await readdir(join(dir, shard)).catch(() => []))
335
340
  sizes.set(hash, (await stat(join(dir, shard, hash))).size);
336
- const pathOf = (hash) => {
337
- if (!BLOB_HASH.test(hash)) throw new Error("That is not a history blob.");
338
- return join(dir, hash.slice(0, 2), hash);
339
- };
341
+ const pathOf = (hash) => blobPath(dir, hash);
340
342
  let total = [...sizes.values()].reduce((sum, size) => sum + size, 0);
341
343
  return {
342
344
  async put(absPath) {
@@ -356,7 +358,7 @@ async function openBlobStore(dir) {
356
358
  return hash;
357
359
  },
358
360
  has: (hash) => sizes.has(hash),
359
- read: async (hash) => readFile(pathOf(hash)),
361
+ read: async (hash) => readBlob(dir, hash),
360
362
  writeTo: async (hash, absPath, beforeReplace) => cloneOrCopy(pathOf(hash), absPath, beforeReplace),
361
363
  bytes: () => total,
362
364
  size: (hash) => sizes.get(hash) ?? 0,
@@ -798,6 +800,19 @@ function isHistoryPath(path) {
798
800
  if (KEPT_HIDDEN_PATHS.has(path)) return true;
799
801
  return !path.split("/").some((segment) => segment.startsWith("."));
800
802
  }
803
+ var logFileIn = (home) => join5(home, "log.jsonl");
804
+ function listOf(log) {
805
+ const undone = undoneIds(log.entries);
806
+ return log.entries.map((entry) => ({
807
+ ...entry,
808
+ pinned: log.pins.has(entry.id),
809
+ undone: undone.has(entry.id)
810
+ }));
811
+ }
812
+ function peekOf(log, point) {
813
+ const files = manifestAt(log, point);
814
+ return files && Object.fromEntries(files);
815
+ }
801
816
  function withoutHiddenPaths(log) {
802
817
  for (const path of log.baseline.keys()) if (!isHistoryPath(path)) log.baseline.delete(path);
803
818
  for (const entry of log.entries)
@@ -904,7 +919,7 @@ var Engine = class {
904
919
  return this.foldsCase ? path.toLowerCase() : path;
905
920
  }
906
921
  get logFile() {
907
- return join5(this.home, "log.jsonl");
922
+ return logFileIn(this.home);
908
923
  }
909
924
  now() {
910
925
  return (this.options.now ?? Date.now)();
@@ -1574,12 +1589,7 @@ var Engine = class {
1574
1589
  },
1575
1590
  list: () => {
1576
1591
  this.assertOpen();
1577
- const undone = undoneIds(this.log.entries);
1578
- return this.log.entries.map((entry) => ({
1579
- ...entry,
1580
- pinned: this.log.pins.has(entry.id),
1581
- undone: undone.has(entry.id)
1582
- }));
1592
+ return listOf(this.log);
1583
1593
  },
1584
1594
  step: (direction, who, { writeToken } = {}) => this.operation(writeToken, async () => {
1585
1595
  const target = this.next(direction, who);
@@ -1592,8 +1602,7 @@ var Engine = class {
1592
1602
  ),
1593
1603
  peek: (point) => {
1594
1604
  this.assertOpen();
1595
- const files = manifestAt(this.log, point);
1596
- return files && Object.fromEntries(files);
1605
+ return peekOf(this.log, point);
1597
1606
  },
1598
1607
  checkout: (entryId, side, emptyDir) => this.queue(async () => {
1599
1608
  this.entry(entryId);
@@ -1689,6 +1698,22 @@ async function openProjectHistory(options) {
1689
1698
  throw error;
1690
1699
  }
1691
1700
  }
1701
+ function readProjectHistory(options) {
1702
+ const dir = resolve3(options.projectDir);
1703
+ const id = readId(dir);
1704
+ const home = id && isRecordedFolder(join5(options.historyRoot, id), statSync3(dir)) ? join5(options.historyRoot, id) : null;
1705
+ const read = home && readLog(logFileIn(home), () => {
1706
+ });
1707
+ const log = withoutHiddenPaths(read || { baseline: /* @__PURE__ */ new Map(), entries: [], pins: /* @__PURE__ */ new Set() });
1708
+ return {
1709
+ list: () => listOf(log),
1710
+ peek: (point) => peekOf(log, point),
1711
+ readBlob: async (hash) => {
1712
+ if (!home) throw new Error("That is not a history blob.");
1713
+ return readBlob(join5(home, "blobs"), hash);
1714
+ }
1715
+ };
1716
+ }
1692
1717
  function historyCache(open) {
1693
1718
  const histories = /* @__PURE__ */ new Map();
1694
1719
  const get = async (projectDir) => {
@@ -1736,5 +1761,6 @@ export {
1736
1761
  UNDO_MODES,
1737
1762
  HistoryClosedError,
1738
1763
  openProjectHistory,
1764
+ readProjectHistory,
1739
1765
  historyCache
1740
1766
  };
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-UXO2L7HJ.js";
17
+ } from "./chunk-WU2B74TL.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  FONT_ALIAS_MAP,
16
16
  resolveAliasDisplayName
17
- } from "./chunk-MQZVBHEY.js";
17
+ } from "./chunk-LFNQDTSH.js";
18
18
  import {
19
19
  parseHTML
20
20
  } from "./chunk-SDYDNHEE.js";
@@ -3848,9 +3848,9 @@ async function systemFamilyFaceRules(lookupFamily, emitFamily, log) {
3848
3848
  rules.push(buildFontFaceRule(emitFamily, dataUri, variant.weight, variant.style));
3849
3849
  }
3850
3850
  if (totalBytes > SYSTEM_FONT_SIZE_LIMIT) {
3851
- log.warn(`[Compiler] System font "${lookupFamily}" is large (${(totalBytes / 1024 / 1024).toFixed(1)} MB total across ${variants.length} variant(s)) \u2014 embedding anyway. Consider font subsetting for production.`);
3851
+ log.warn(`[Compiler] System font "${lookupFamily}" is large (${(totalBytes / 1024 / 1024).toFixed(1)} MB total across ${variants.length} variant(s)), embedding anyway. Consider font subsetting for production.`);
3852
3852
  }
3853
- log.info(`[Compiler] Embedded system font "${lookupFamily}" \u2014 ${variants.length} variant(s), ${(totalBytes / 1024).toFixed(0)} KB total`);
3853
+ log.info(`[Compiler] Embedded system font "${lookupFamily}": ${variants.length} variant(s), ${(totalBytes / 1024).toFixed(0)} KB total`);
3854
3854
  return rules;
3855
3855
  }
3856
3856
  async function resolveFamilyFaceRules(normalizedFamily, lookupFamily, emitFamily, optional, options, fontText) {
@@ -4064,7 +4064,7 @@ function fontCacheDir(slug) {
4064
4064
  const fallback = join2(ephemeralFontCacheRoot, slug);
4065
4065
  mkdirSync2(fallback, { recursive: true });
4066
4066
  if (firstFallback) {
4067
- STDERR_LOGGER.warn(`Font cache directory is unwritable (${dir}). Using temporary fallback \u2014 fonts will re-download each run. Fix with: chmod 755 ${resolveFontCacheRoot()}`);
4067
+ STDERR_LOGGER.warn(`Font cache directory is unwritable (${dir}). Using temporary fallback, so fonts will re-download each run. Fix with: chmod 755 ${resolveFontCacheRoot()}`);
4068
4068
  }
4069
4069
  return fallback;
4070
4070
  }
@@ -20,13 +20,13 @@ import {
20
20
  import {
21
21
  getPreparedWavDurationSeconds,
22
22
  prepareWav
23
- } from "./chunk-OTHDVXOJ.js";
23
+ } from "./chunk-CVPWZ5LY.js";
24
24
  import {
25
25
  emitWords
26
26
  } from "./chunk-6IHWCZ3W.js";
27
27
  import {
28
28
  stoppedByCancelSignal
29
- } from "./chunk-FBCULCAL.js";
29
+ } from "./chunk-54UXJKFF.js";
30
30
  import {
31
31
  PARAKEET_MODEL_LABEL,
32
32
  SHERPA_ERROR_PREFIX,
@@ -10,19 +10,19 @@ import {
10
10
  import {
11
11
  launchManagedBrowser,
12
12
  resolveManagedGpuMode
13
- } from "./chunk-4ORLNTET.js";
13
+ } from "./chunk-XJUZEB44.js";
14
14
  import {
15
15
  resolveDiagnosticNavigationTimeoutMs,
16
16
  windowsChromeCrashRemediation
17
- } from "./chunk-FXJJCPPB.js";
17
+ } from "./chunk-3HSWLZ6S.js";
18
18
  import {
19
19
  resolveLocalBrowserGpuMode,
20
20
  resolveLocalWebGpu
21
- } from "./chunk-ADF3X6GM.js";
21
+ } from "./chunk-SYMSKGXI.js";
22
22
  import {
23
23
  assertWebGpuAdapterAvailable,
24
24
  compositionRequiresWebGpu
25
- } from "./chunk-UXO2L7HJ.js";
25
+ } from "./chunk-WU2B74TL.js";
26
26
  import {
27
27
  normalizeErrorMessage
28
28
  } from "./chunk-KNU5COPB.js";
@@ -52,7 +52,7 @@ function resolveCliChromeGpuMode(envMode = process.env.PRODUCER_BROWSER_GPU_MODE
52
52
  return resolveLocalBrowserGpuMode(void 0, envMode);
53
53
  }
54
54
  function compositionRuntimeReadyInBrowser() {
55
- return Boolean(Reflect.get(window, "__renderReady"));
55
+ return Boolean(Reflect.get(window, "__renderReady")) || typeof Reflect.get(window, "__hfStartupError") === "string";
56
56
  }
57
57
  function shaderTransitionsReadyInBrowser() {
58
58
  function shaderTransitionRegistryReady() {
@@ -75,8 +75,11 @@ function shaderTransitionsReadyInBrowser() {
75
75
  }
76
76
  return shaderTransitionRegistryReady() ?? shaderLoadingOverlayReady();
77
77
  }
78
- function waitForRuntimeReady(page, timeoutMs) {
79
- return page.waitForFunction(compositionRuntimeReadyInBrowser, { timeout: timeoutMs }).then(() => true).catch(() => false);
78
+ async function waitForRuntimeReady(page, timeoutMs) {
79
+ const settled = await page.waitForFunction(compositionRuntimeReadyInBrowser, { timeout: timeoutMs }).then(() => true).catch(() => false);
80
+ const startupError = await page.evaluate(() => Reflect.get(window, "__hfStartupError")).catch(() => void 0);
81
+ if (typeof startupError === "string") throw new Error(startupError);
82
+ return settled;
80
83
  }
81
84
  async function waitForCompositionSettle(page, options) {
82
85
  const runtimeReady = await waitForRuntimeReady(page, options.renderReadyTimeoutMs);
@@ -104,7 +107,7 @@ async function openSettledCompositionPage(html, url, options) {
104
107
  const { ensureBrowser, findSystemBrowser } = await import("./manager-BPSR6D3V.js");
105
108
  const browser = await ensureBrowser();
106
109
  const puppeteer = await import("puppeteer-core");
107
- const { buildChromeArgs } = await import("./src-BSLKXEGX.js");
110
+ const { buildChromeArgs } = await import("./src-LIERUCFW.js");
108
111
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
109
112
  const requiresWebGpu = compositionRequiresWebGpu(html);
110
113
  let softwareWebGpu = false;
@@ -116,7 +116,7 @@ function resolveSlideshow(manifest, scenes) {
116
116
  const sequences = {};
117
117
  for (const seq of manifest.slideSequences ?? []) {
118
118
  if (Object.prototype.hasOwnProperty.call(sequences, seq.id)) {
119
- errors.push(`duplicate slideSequence id "${seq.id}" \u2014 only the last definition is kept`);
119
+ errors.push(`duplicate slideSequence id "${seq.id}": only the last definition is kept`);
120
120
  }
121
121
  sequences[seq.id] = {
122
122
  id: seq.id,
@@ -38,7 +38,7 @@ import {
38
38
  stripEmbeddedRuntimeScripts,
39
39
  styleElementsFor,
40
40
  warnUnknownEnumValues
41
- } from "./chunk-AUWHD7RA.js";
41
+ } from "./chunk-Z6FLHIDV.js";
42
42
  import {
43
43
  cssVariableName
44
44
  } from "./chunk-VC76R6W2.js";
@@ -48,7 +48,7 @@ import {
48
48
  } from "./chunk-OFQWTKPW.js";
49
49
  import {
50
50
  lintHyperframeHtml
51
- } from "./chunk-IEIJRMLZ.js";
51
+ } from "./chunk-JDB65PPT.js";
52
52
  import {
53
53
  checkSubCompositionUsability,
54
54
  resolveSubCompositionContent