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
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-XBX4QJP7.js";
9
+ } from "./chunk-TH4OXAWY.js";
10
10
  import "./chunk-K2FLNJVB.js";
11
11
  import {
12
12
  DEFAULT_HISTORY_ROOT,
@@ -14,9 +14,10 @@ import {
14
14
  HistoryIdError,
15
15
  MAX_WINDOW_IDLE_MS,
16
16
  START,
17
- openProjectHistory
18
- } from "./chunk-QZ3AZTXI.js";
19
- import "./chunk-G75ENCEZ.js";
17
+ openProjectHistory,
18
+ readProjectHistory
19
+ } from "./chunk-FJWEYVEM.js";
20
+ import "./chunk-AIJS74LG.js";
20
21
  import "./chunk-EOVYQ3IG.js";
21
22
  import {
22
23
  AmbiguousPreviewServerError,
@@ -25,10 +26,10 @@ import {
25
26
  } from "./chunk-DQBY7FRR.js";
26
27
  import {
27
28
  trackHistoryAction
28
- } from "./chunk-ICKDMTLA.js";
29
- import "./chunk-ZF7SXQJ7.js";
29
+ } from "./chunk-QSSPIATO.js";
30
+ import "./chunk-2NAUEDA6.js";
30
31
  import "./chunk-VWG7OQKU.js";
31
- import "./chunk-GQJZORQP.js";
32
+ import "./chunk-XBSPQ52S.js";
32
33
  import "./chunk-AMKC3AXA.js";
33
34
  import {
34
35
  defineCommand
@@ -37,19 +38,19 @@ import "./chunk-54HJ63Q2.js";
37
38
  import {
38
39
  setCommandExitCode
39
40
  } from "./chunk-PBN6GBJE.js";
40
- import "./chunk-KC5XXX3X.js";
41
- import "./chunk-USDEMXXL.js";
41
+ import "./chunk-EOOEC32M.js";
42
+ import "./chunk-JYVGYKXG.js";
42
43
  import "./chunk-OFQWTKPW.js";
43
44
  import "./chunk-T76PLPD6.js";
44
45
  import "./chunk-FXMKHHPO.js";
45
46
  import {
46
47
  withMeta
47
- } from "./chunk-PLR7Z6TC.js";
48
+ } from "./chunk-K7ES5RSK.js";
48
49
  import "./chunk-K4WIOZFP.js";
49
50
  import "./chunk-XUXGIA7H.js";
50
51
  import "./chunk-WERLJGIC.js";
51
52
  import "./chunk-ISN5GRYI.js";
52
- import "./chunk-BFACGEII.js";
53
+ import "./chunk-TBOMPYG6.js";
53
54
  import "./chunk-KNU5COPB.js";
54
55
  import "./chunk-ZTZA4UWZ.js";
55
56
  import "./chunk-M2WBOQ2Q.js";
@@ -69,6 +70,7 @@ var historyDeps = {
69
70
  findServer: (projectDir) => findPreviewServerForProject(projectDir),
70
71
  /** A turn with no write for this long has ended, through a preview or not. */
71
72
  turnIdleMs: MAX_WINDOW_IDLE_MS,
73
+ ownerWaitMs: void 0,
72
74
  now: () => Date.now()
73
75
  };
74
76
  var Refusal = class extends Error {
@@ -150,6 +152,7 @@ async function directOwner(projectDir, turn) {
150
152
  historyRoot: historyDeps.historyRoot,
151
153
  now: () => historyDeps.now(),
152
154
  pruneGoneProjectsBudgetMs: 1e3,
155
+ ownerWaitMs: historyDeps.ownerWaitMs,
153
156
  // A turn begun through a preview that has since stopped is still the agent's, until its idle limit.
154
157
  ...turn && {
155
158
  closedWindow: {
@@ -209,6 +212,26 @@ async function withOwner(dir, task) {
209
212
  }
210
213
  }
211
214
  }
215
+ async function withReader(dir, task) {
216
+ try {
217
+ return await withOwner(dir, (owner) => task(owner));
218
+ } catch (error) {
219
+ if (!(error instanceof HistoryBusyError)) throw error;
220
+ }
221
+ const view = readProjectHistory({
222
+ projectDir: resolveProject(dir).dir,
223
+ historyRoot: historyDeps.historyRoot
224
+ });
225
+ return task({
226
+ via: "direct",
227
+ list: async () => view.list(),
228
+ peek: async (point) => view.peek(point),
229
+ // The owner may have pruned a blob since its log was read.
230
+ blob: (hash) => view.readBlob(hash).catch((error) => {
231
+ throw error.code === "ENOENT" ? new Refusal("That point is no longer kept") : error;
232
+ })
233
+ });
234
+ }
212
235
 
213
236
  // src/commands/history.ts
214
237
  var examples = [
@@ -227,6 +250,10 @@ var withOwner2 = (action, dir, task) => withOwner(dir, (owner, turn, projectDir)
227
250
  trackHistoryAction({ action, via: owner.via });
228
251
  return task(owner, turn, projectDir);
229
252
  });
253
+ var withReader2 = (action, dir, task) => withReader(dir, (reader) => {
254
+ trackHistoryAction({ action, via: reader.via });
255
+ return task(reader);
256
+ });
230
257
  var whoOf = (name) => name ? { kind: "agent", name } : YOU;
231
258
  var short = (id) => id.slice(0, 8);
232
259
  function lastIndex(items, match) {
@@ -290,13 +317,13 @@ var changeOf = (file) => file.before === null ? "added" : file.after === null ?
290
317
  function print(json, data, text) {
291
318
  console.log(json ? JSON.stringify(withMeta(data), null, 2) : text);
292
319
  }
293
- async function textDiff(owner, entry) {
320
+ async function textDiff(reader, entry) {
294
321
  const work = mkdtempSync(join2(tmpdir(), "hf-history-diff-"));
295
322
  try {
296
323
  const out = [];
297
324
  for (const file of entry.files) {
298
325
  const sides = await Promise.all(
299
- [file.before, file.after].map((hash) => hash ? owner.blob(hash) : Buffer.alloc(0))
326
+ [file.before, file.after].map((hash) => hash ? reader.blob(hash) : Buffer.alloc(0))
300
327
  );
301
328
  if (sides.some((bytes) => bytes.subarray(0, 8e3).includes(0))) {
302
329
  out.push(`Binary ${file.path} changed`);
@@ -387,7 +414,7 @@ function guarded(run) {
387
414
  const refused = error instanceof Refusal || error instanceof AmbiguousPreviewServerError || error instanceof HistoryBusyError || error instanceof HistoryIdError;
388
415
  if (!refused) throw error;
389
416
  setCommandExitCode(2);
390
- const { message } = error;
417
+ const message = error instanceof HistoryBusyError ? `This project is open in another app (pid ${error.pid}), which keeps its history: undo, restore or pin there.` : error.message;
391
418
  if (args.json) print(true, { ok: false, error: message }, message);
392
419
  else console.error(message);
393
420
  }
@@ -404,8 +431,8 @@ var sub = (name, description, args, run) => defineCommand({
404
431
  });
405
432
  var listEntries = async (args) => {
406
433
  if (args._?.[0]) return;
407
- await withOwner2("list", args.dir, async (owner) => {
408
- const all = await owner.list();
434
+ await withReader2("list", args.dir, async (reader) => {
435
+ const all = await reader.list();
409
436
  const picked = args.since ? since(all, args.since, whoOf(args.who)) : all;
410
437
  const limit = Number(args.limit ?? 20);
411
438
  if (!Number.isInteger(limit) || limit < 1)
@@ -434,13 +461,13 @@ var history_default = defineCommand({
434
461
  "show",
435
462
  "One entry's files, before and after",
436
463
  { ref: { type: "positional", required: true }, diff: { type: "boolean", default: false } },
437
- (args) => withOwner2("show", args.dir, async (owner) => {
438
- const entry = entryOf(await owner.list(), args.ref);
464
+ (args) => withReader2("show", args.dir, async (reader) => {
465
+ const entry = entryOf(await reader.list(), args.ref);
439
466
  const changes = entry.files.map((file) => ({
440
467
  path: file.path,
441
468
  change: changeOf(file)
442
469
  }));
443
- const diff = args.diff ? await textDiff(owner, entry) : void 0;
470
+ const diff = args.diff ? await textDiff(reader, entry) : void 0;
444
471
  const marks = changes.map((file) => ` ${file.change[0].toUpperCase()} ${file.path}`);
445
472
  print(
446
473
  args.json,
@@ -484,13 +511,13 @@ ${diff ?? marks.join("\n")}`
484
511
  ref: { type: "positional", required: true },
485
512
  path: { type: "positional", required: false }
486
513
  },
487
- (args) => withOwner2("peek", args.dir, async (owner) => {
488
- const files = await owner.peek(pointOf(await owner.list(), args.ref));
514
+ (args) => withReader2("peek", args.dir, async (reader) => {
515
+ const files = await reader.peek(pointOf(await reader.list(), args.ref));
489
516
  if (!files) throw new Refusal("That point is no longer kept");
490
517
  if (!args.path) return print(args.json, { files }, Object.keys(files).join("\n"));
491
518
  const hash = files[args.path];
492
519
  if (!hash) throw new Refusal(`${args.path} did not exist then`);
493
- process.stdout.write(await owner.blob(hash));
520
+ process.stdout.write(await reader.blob(hash));
494
521
  })
495
522
  ),
496
523
  pin: () => sub(