@higgsfield/video-editor-mcp 1.0.7 → 1.1.1-dev.0

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 (189) hide show
  1. package/THIRD_PARTY_NOTICES.md +24 -24
  2. package/dist/cli.mjs +134 -125
  3. package/dist/index.html +136 -133
  4. package/dist/launcher.mjs +90 -90
  5. package/dist/server.mjs +1553 -1389
  6. package/node_modules/@higgsfield/higgsedit/README.md +181 -1
  7. package/node_modules/@higgsfield/higgsedit/dist/capture-page.js +902 -314
  8. package/node_modules/@higgsfield/higgsedit/dist/chunk-2JYLVSVV.mjs +1594 -0
  9. package/node_modules/@higgsfield/higgsedit/dist/chunk-2WKNH7OL.mjs +16 -0
  10. package/node_modules/@higgsfield/higgsedit/dist/{chunk-OMKZ5BXM.mjs → chunk-5LTTL3Q3.mjs} +1 -1
  11. package/node_modules/@higgsfield/higgsedit/dist/chunk-7PYXSJS7.mjs +717 -0
  12. package/node_modules/@higgsfield/higgsedit/dist/{chunk-MLJAIZGP.mjs → chunk-BH2QF635.mjs} +33 -326
  13. package/node_modules/@higgsfield/higgsedit/dist/{chunk-WZR5PZM7.mjs → chunk-BV5COOQZ.mjs} +250 -161
  14. package/node_modules/@higgsfield/higgsedit/dist/{chunk-HTCYVKFX.mjs → chunk-C3GSB3XZ.mjs} +8 -7
  15. package/node_modules/@higgsfield/higgsedit/dist/{chunk-CYH2EUQV.mjs → chunk-DVN4LUXV.mjs} +13 -4
  16. package/node_modules/@higgsfield/higgsedit/dist/chunk-F4CMIG5G.mjs +36 -0
  17. package/node_modules/@higgsfield/higgsedit/dist/chunk-IEPPEDEU.mjs +33 -0
  18. package/node_modules/@higgsfield/higgsedit/dist/{chunk-UVAZ6I6U.mjs → chunk-KIWGVAPJ.mjs} +16 -12
  19. package/node_modules/@higgsfield/higgsedit/dist/{chunk-L6QDNSL3.mjs → chunk-L5LWBA6A.mjs} +5 -5
  20. package/node_modules/@higgsfield/higgsedit/dist/chunk-LMQR3DHT.mjs +37 -0
  21. package/node_modules/@higgsfield/higgsedit/dist/chunk-LTKMGZ6T.mjs +58 -0
  22. package/node_modules/@higgsfield/higgsedit/dist/{chunk-VI6IV6JP.mjs → chunk-MV2JTTBQ.mjs} +65 -47
  23. package/node_modules/@higgsfield/higgsedit/dist/{chunk-4D6AXU4B.mjs → chunk-NARTAWRN.mjs} +50 -30
  24. package/node_modules/@higgsfield/higgsedit/dist/{chunk-27NBQ5FA.mjs → chunk-NUXTKQNM.mjs} +33 -21
  25. package/node_modules/@higgsfield/higgsedit/dist/chunk-OCIZ36XD.mjs +40 -0
  26. package/node_modules/@higgsfield/higgsedit/dist/{chunk-MK6PL7N4.mjs → chunk-OF6RMSM2.mjs} +19 -17
  27. package/node_modules/@higgsfield/higgsedit/dist/{chunk-6BETMESC.mjs → chunk-P2BGHTRR.mjs} +2 -2
  28. package/node_modules/@higgsfield/higgsedit/dist/{chunk-EKFC4S4M.mjs → chunk-PAHMD6SU.mjs} +5 -0
  29. package/node_modules/@higgsfield/higgsedit/dist/{chunk-QVLAEV3U.mjs → chunk-PFQYUJQL.mjs} +3 -4
  30. package/node_modules/@higgsfield/higgsedit/dist/chunk-QJTILFBS.mjs +335 -0
  31. package/node_modules/@higgsfield/higgsedit/dist/chunk-QQ3GGKDN.mjs +21 -0
  32. package/node_modules/@higgsfield/higgsedit/dist/chunk-TH7TK67K.mjs +23 -0
  33. package/node_modules/@higgsfield/higgsedit/dist/{chunk-SIMO6I3D.mjs → chunk-UDL5AHKO.mjs} +163 -158
  34. package/node_modules/@higgsfield/higgsedit/dist/chunk-UMWOUQN3.mjs +60 -0
  35. package/node_modules/@higgsfield/higgsedit/dist/{chunk-3AIM3THH.mjs → chunk-VLM5EOWJ.mjs} +4 -4
  36. package/node_modules/@higgsfield/higgsedit/dist/chunk-WENFTPXQ.mjs +403 -0
  37. package/node_modules/@higgsfield/higgsedit/dist/chunk-YLVXQIPX.mjs +464 -0
  38. package/node_modules/@higgsfield/higgsedit/dist/editor/.vite/manifest.json +559 -506
  39. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-bottom-q4hZltI-.svg +431 -0
  40. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-top-BJYI-I24.svg +431 -0
  41. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/confirmation-BTnwl3LS.css +1 -0
  42. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/drag-Bt_t4HZO.css +1 -0
  43. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/local-B3OTAV_A.css +1 -0
  44. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/menubar-2Y1Y2XJt.css +1 -0
  45. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/model-DdE4hCgf.css +1 -0
  46. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{IconText1-CzbCrP7v.css → notifications-B08L1jSe.css} +1 -1
  47. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{panel-g852pZf_.css → panel-BRN_AbBM.css} +1 -1
  48. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-CYELNqrv.css +1 -0
  49. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DYLpT6oA.css +1 -0
  50. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-v84HaGTZ.css +1 -0
  51. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Bxb1Or0F.js +1 -0
  52. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCheckmark2Medium-daaES9uF.js → IconCheckmark2Medium-hegaz9mQ.js} +1 -1
  53. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconChevronDownSmall-BhTBJk26.js → IconChevronDownSmall-DaruzJwU.js} +1 -1
  54. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconClosedCaptioning-BPqcqKsD.js +1 -0
  55. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCrossMedium-acfnCXOM.js → IconCrossMedium-BsPFJzc6.js} +1 -1
  56. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconOpenaiFilled-D1fzthmi.js +1 -0
  57. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPause-pTeVSvUe.js → IconPause-ClNg8pao.js} +1 -1
  58. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPlayFilled-CwdgIuDG.js → IconPlayFilled-CHb-7GSx.js} +1 -1
  59. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconSparklesSoftFilled-o7o33KRn.js +1 -0
  60. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-B9h-eaki.js +567 -0
  61. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/auto-layout-BO20Tg4B.js +1 -0
  62. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{button-CjG6GcgF.js → button-Cg0U0zpV.js} +1 -1
  63. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/canvas-Bw4CVzfw.js +1 -0
  64. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/capabilities-BCd4-zPF.js +1 -0
  65. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/commands-QeSqAbCt.js +1 -0
  66. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-tXMtIZNL.js +51 -0
  67. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/confirmation-CO2PHR_z.js +1 -0
  68. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dom-6aoQn29n.js +1 -0
  69. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-Dw8b_vO2.js +1 -0
  70. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{editing-CjWbiCxv.js → editing-Cy-SaOyB.js} +1 -1
  71. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-CqLBqir0.js +1 -0
  72. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-BjBskOe3.js +2 -0
  73. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/factories-Bw_iQrUL.js +1 -0
  74. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/id3-CSR0NCRI.js +2 -0
  75. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-DP49i4ke.js +1 -0
  76. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMz9sLPe.js +1 -0
  77. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ingest-DsmIc415.js +1 -0
  78. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B5yqYJvp.js +1 -0
  79. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{media-Bwjxu-0U.js → media-DQw6vU_T.js} +1 -1
  80. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-D31srALX.js +1 -0
  81. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-D0nZVEJs.js +1 -0
  82. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/mode-DEG6doKF.js +1 -0
  83. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-Duf9fszJ.js +2 -0
  84. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-DyAkLA69.js +1 -0
  85. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/notifications-DqWZNIrK.js +9 -0
  86. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-HT83gWgL.js +1 -0
  87. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-B5Mvm6dg.js +7 -0
  88. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BC90wyvd.js +1 -0
  89. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Bw_ZJ2JI.js +3 -0
  90. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DNS060Nt.js +3 -0
  91. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DSgxIrEq.js +2 -0
  92. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DgBttE5O.js +1 -0
  93. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-_T2bHsHW.js +771 -0
  94. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DfHvAt5X.js +2 -0
  95. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-nBZvHlkA.js +1 -0
  96. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-DsCpJVSt.js +327 -0
  97. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-CEhZwZ67.js +280 -0
  98. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-2_tW9Do7.js +1 -0
  99. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/react-dom-1uB7Vbbb.js +1 -0
  100. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/schemas-CddYAOcj.js +64 -0
  101. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-BpFeKAI2.js +1 -0
  102. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/src-BLG3tYBa.js +2 -0
  103. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/styles-e2n2A_JN.js +284 -0
  104. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CuV0zYKd.js +24 -0
  105. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-XeAgs9cs.js +1 -0
  106. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-DbNEaSIl.js +1 -0
  107. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-C8Ll3qFl.js +69 -0
  108. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-Dv1LPFbu.js +1 -0
  109. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-HWSfSsp2.js +1 -0
  110. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-D4SOg3N_.js +1 -0
  111. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/value-EB7YmAdS.js +1 -0
  112. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-fj5rA9k3.js +1 -0
  113. package/node_modules/@higgsfield/higgsedit/dist/editor/editor-B-WAkLt7.js +372 -0
  114. package/node_modules/@higgsfield/higgsedit/dist/higgsedit.mjs +39 -24
  115. package/node_modules/@higgsfield/higgsedit/dist/jsx/hooks.d.ts +26 -0
  116. package/node_modules/@higgsfield/higgsedit/dist/jsx/index.d.ts +17 -0
  117. package/node_modules/@higgsfield/higgsedit/dist/jsx/inspect.d.ts +42 -0
  118. package/node_modules/@higgsfield/higgsedit/dist/jsx/jsx-runtime.d.ts +28 -0
  119. package/node_modules/@higgsfield/higgsedit/dist/jsx/svg.d.ts +9 -0
  120. package/node_modules/@higgsfield/higgsedit/dist/jsx/time.d.ts +6 -0
  121. package/node_modules/@higgsfield/higgsedit/dist/jsx/types.d.ts +420 -0
  122. package/node_modules/@higgsfield/higgsedit/package.json +28 -20
  123. package/package.json +4 -3
  124. package/plugin/.codex-plugin/plugin.json +1 -1
  125. package/plugin/plugin.json +1 -1
  126. package/plugin/skills/video-editing/references/caption-titling.md +1 -1
  127. package/plugin/skills/video-editing/references/local-setup.md +3 -3
  128. package/node_modules/@higgsfield/higgsedit/dist/chunk-C6SASQHE.mjs +0 -424
  129. package/node_modules/@higgsfield/higgsedit/dist/chunk-FZ5U36SQ.mjs +0 -83
  130. package/node_modules/@higgsfield/higgsedit/dist/chunk-QLPCYN6K.mjs +0 -292
  131. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/edit-drag-D2EV5ddd.css +0 -1
  132. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/editor-CuRHT75g.css +0 -1
  133. package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DnuQD7ja.css +0 -1
  134. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/FieldControl-B0fenhBJ.js +0 -2
  135. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Cwv1X7hi.js +0 -1
  136. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeOpen-BqTT9_VV.js +0 -1
  137. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeSlash-Whv58c1m.js +0 -1
  138. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPencil-Dr17k_7e.js +0 -1
  139. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlay-BroH3ziH.js +0 -1
  140. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlusSmall-43T9aE3d.js +0 -1
  141. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconText1-BaP_p9DW.js +0 -1
  142. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconTrashCan-DX2w2AIC.js +0 -1
  143. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-C-l0eIdP.js +0 -560
  144. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/captions-Cd-bDG3G.js +0 -1
  145. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/clip-highlight-DpAvcA4x.js +0 -1
  146. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-e3ZbUVns.js +0 -1
  147. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/disposables-CwUPjcuA.js +0 -1
  148. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-HLBkto5o.js +0 -1
  149. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dropdown-BJ04G_X3.js +0 -1
  150. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edit-drag-Bg6LggKC.js +0 -1
  151. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-a2IixhrN.js +0 -1
  152. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-4I4gqI5V.js +0 -2
  153. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/face-tracker-DzVfjVOO.js +0 -1
  154. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/fit-imported-media-CaCB0x0b.js +0 -1
  155. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/generation-queue-DuL2F4-_.js +0 -1
  156. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMARA0Hy.js +0 -1
  157. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B-hcVAMW.js +0 -1
  158. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-Bs26OdwP.js +0 -1
  159. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-YEr9OQjq.js +0 -1
  160. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/paints-DS2Msf91.js +0 -67
  161. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-CcS9IcAC.js +0 -1
  162. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-7M3uQokX.js +0 -1
  163. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BBK1NyG-.js +0 -1
  164. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-CHZTs7By.js +0 -4
  165. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DaSOa3MP.js +0 -2
  166. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DlK3RYVo.js +0 -1
  167. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Dst5OKWu.js +0 -2
  168. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-H_ZoDiKK.js +0 -2
  169. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Rn9Z7Eek.js +0 -3
  170. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-FAghGFG3.js +0 -678
  171. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DEqULBNF.js +0 -260
  172. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-0GYNz1uc.js +0 -333
  173. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-DOWjJi5-.js +0 -317
  174. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-BBJc7h5_.js +0 -2
  175. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-B9sZaFKC.js +0 -1
  176. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CX-LCL6Y.js +0 -24
  177. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-CvKQ-eas.js +0 -1
  178. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-CrzrwiDZ.js +0 -1
  179. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-BgRfk-Qq.js +0 -69
  180. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-C9nqAfE2.js +0 -1
  181. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/typography-C5-w9LOu-kD3uLKkf.js +0 -1
  182. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-DbrQ6Ehu.js +0 -1
  183. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-bbxXdYq0.js +0 -1
  184. package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-BZfNpkmB.js +0 -1
  185. package/node_modules/@higgsfield/higgsedit/dist/editor/editor-Csn2_T_e.js +0 -293
  186. package/node_modules/@higgsfield/higgsedit/dist/export-settings.mjs +0 -75
  187. package/node_modules/@higgsfield/higgsedit/dist/history.mjs +0 -295
  188. package/node_modules/@higgsfield/higgsedit/dist/media-upload.mjs +0 -381
  189. package/node_modules/@higgsfield/higgsedit/dist/proxy.mjs +0 -170
@@ -1,424 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __higgseditRequire } from "node:module";
3
- import { fileURLToPath as __higgseditPath } from "node:url";
4
- const require = __higgseditRequire(import.meta.url);
5
- const __filename = __higgseditPath(import.meta.url);
6
- const __dirname = __filename.slice(0, __filename.lastIndexOf("/"));
7
- import {
8
- render
9
- } from "./chunk-4D6AXU4B.mjs";
10
- import {
11
- PACKAGED,
12
- json,
13
- packagedAsset,
14
- readBody,
15
- sendFile,
16
- startServer
17
- } from "./chunk-QLPCYN6K.mjs";
18
- import {
19
- analyze,
20
- applyEdits
21
- } from "./chunk-VI6IV6JP.mjs";
22
- import {
23
- inside,
24
- sourceFiles
25
- } from "./chunk-SIMO6I3D.mjs";
26
- import "./chunk-6BETMESC.mjs";
27
- import "./chunk-WZR5PZM7.mjs";
28
- import "./chunk-F7YUKEI5.mjs";
29
- import {
30
- ffmpeg,
31
- probe,
32
- requireTool
33
- } from "./chunk-EKFC4S4M.mjs";
34
- import "./chunk-2VKQHJMM.mjs";
35
- import "./chunk-75WO2NOF.mjs";
36
-
37
- import { renderCapabilities, validateRenderRequest } from "./export-settings.mjs";
38
- import { MEDIA_UPLOAD_TEMP_PREFIX, MediaUploads, listMediaFiles } from "./media-upload.mjs";
39
-
40
- // src/dev.ts
41
- import { existsSync as existsSync3, mkdirSync as mkdirSync2, readdirSync as readdirSync3, readFileSync as readFileSync3, statSync as statSync3, watch, writeFileSync as writeFileSync2 } from "node:fs";
42
- import { extname, join as join4 } from "node:path";
43
- import { linkSync, lstatSync, mkdtempSync, rmSync as removeExportStage } from "node:fs";
44
-
45
- // src/editor-build.ts
46
- import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
47
- import { join } from "node:path";
48
- var EDITOR = join(import.meta.dirname, "../../editor");
49
- var EDITOR_DIST = PACKAGED ? join(import.meta.dirname, "editor") : join(EDITOR, "dist");
50
- var EDITOR_MANIFEST = "editor/.vite/manifest.json";
51
- var MANIFEST = join(EDITOR_DIST, ".vite/manifest.json");
52
- function newest(dir) {
53
- let t = 0;
54
- for (const e of readdirSync(dir, { withFileTypes: true })) {
55
- const p = join(dir, e.name);
56
- t = Math.max(t, e.isDirectory() ? newest(p) : statSync(p).mtimeMs);
57
- }
58
- return t;
59
- }
60
- var inputs = () => [join(EDITOR, "src"), ...["editor-kernel", "jsx", "reconciler", "runtime"].map((p) => join(EDITOR, `../../packages/${p}/src`))];
61
- var building;
62
- async function editorEntry(log = () => {
63
- }) {
64
- if (PACKAGED) return manifestEntry(readFileSync(packagedAsset(EDITOR_MANIFEST), "utf8"));
65
- const stale = !existsSync(MANIFEST) || inputs().some((dir) => newest(dir) > statSync(MANIFEST).mtimeMs);
66
- if (stale) {
67
- building ??= (async () => {
68
- log("building the editor page\u2026");
69
- const t0 = performance.now();
70
- const { build } = await import("vite");
71
- const env = process.env.NODE_ENV;
72
- process.env.NODE_ENV = "production";
73
- try {
74
- await build({ configFile: join(EDITOR, "vite.config.ts"), logLevel: "error", mode: "production" });
75
- } finally {
76
- process.env.NODE_ENV = env;
77
- }
78
- log(`built the editor page in ${Math.round(performance.now() - t0)} ms`);
79
- })().finally(() => {
80
- building = void 0;
81
- });
82
- await building;
83
- }
84
- return manifestEntry(readFileSync(MANIFEST, "utf8"));
85
- }
86
- var editorFile = (rel) => PACKAGED ? packagedAsset(`editor/${rel}`) : join(EDITOR_DIST, rel);
87
- function manifestEntry(text) {
88
- const manifest = JSON.parse(text);
89
- const entry = Object.values(manifest).find((m) => m.isEntry);
90
- if (!entry) throw new Error("the editor manifest has no entry");
91
- return { script: entry.file, styles: entry.css ?? [] };
92
- }
93
- var WIDGET_DIST = join(EDITOR, "dist-mcp");
94
- var WIDGET = join(WIDGET_DIST, "mcp-app.js");
95
-
96
- // src/history.ts
97
- import { EditHistory } from "./history.mjs";
98
-
99
- import { Proxies } from "./proxy.mjs";
100
-
101
- // src/dev.ts
102
- var escapeHtml = (s) => s.replace(/[&<>"]/g, (c) => `&#${c.charCodeAt(0)};`);
103
- var EDITOR_HTML = (name, entry) => `<!doctype html>
104
- <html lang="en">
105
- <head>
106
- <meta charset="utf-8">
107
- <meta name="viewport" content="width=device-width, initial-scale=1">
108
- <meta name="color-scheme" content="dark">
109
- <title>higgsedit \xB7 ${escapeHtml(name)}</title>
110
- ${entry.styles.map((s) => `<link rel="stylesheet" href="/__higgsedit/editor/${s}">`).join("\n")}
111
- <script>window.higgseditProject = ${JSON.stringify({ name }).replace(/</g, "\\u003c")};</script>
112
- </head>
113
- <body>
114
- <div id="app"></div>
115
- <script type="module" src="/__higgsedit/editor/${entry.script}"></script>
116
- </body>
117
- </html>`;
118
- async function startDev(dir, port = 0, options = {}) {
119
- const mediaUploads = new MediaUploads(dir, options.mediaUploads);
120
- const clients = /* @__PURE__ */ new Set();
121
- const known = /* @__PURE__ */ new Map();
122
- for (const f of sourceFiles(dir)) known.set(f, readFileSync3(join4(dir, f), "utf8"));
123
- const ownWrites = /* @__PURE__ */ new Map();
124
- const history = new EditHistory(dir, (path, text) => ownWrites.set(path, text));
125
- const broadcast = (event) => {
126
- const data = `data: ${JSON.stringify(event)}
127
-
128
- `;
129
- for (const c of clients) c.write(data);
130
- };
131
- let timer;
132
- let firstSeen = 0;
133
- const flush = () => {
134
- timer = void 0;
135
- const changed = [];
136
- let origin = "external";
137
- let mtime = 0;
138
- let present;
139
- try {
140
- present = sourceFiles(dir);
141
- } catch {
142
- present = [];
143
- }
144
- for (const f of /* @__PURE__ */ new Set([...present, ...known.keys()])) {
145
- let text;
146
- try {
147
- text = readFileSync3(join4(dir, f), "utf8");
148
- mtime = Math.max(mtime, statSync3(join4(dir, f)).mtimeMs);
149
- } catch {
150
- text = void 0;
151
- }
152
- if (text === known.get(f)) continue;
153
- if (text === void 0) known.delete(f);
154
- else known.set(f, text);
155
- if (ownWrites.get(f) === text) {
156
- origin = "editor";
157
- ownWrites.delete(f);
158
- }
159
- changed.push(f);
160
- }
161
- if (changed.length) broadcast({ type: "change", files: changed, origin, detectedAt: firstSeen, mtime, undo: history.state() });
162
- };
163
- const proxies = new Proxies(dir, (src) => broadcast({ type: "proxy", src }), (line) => console.log(line));
164
- const watcher = watch(dir, { recursive: true }, (_event, name) => {
165
- const file = (name ?? "").split("\\").join("/");
166
- if (/(^|\/)(node_modules|\.git|\.higgsedit-cache|renders)(\/|$)/.test(file)) return;
167
- if (file.split("/").some((part) => part.startsWith(MEDIA_UPLOAD_TEMP_PREFIX))) return;
168
- proxies.consider(file);
169
- if (file === "media" || file.startsWith("media/")) return;
170
- if (!timer) firstSeen = Date.now();
171
- if (!timer) timer = setTimeout(flush, 15);
172
- });
173
- const jobs = /* @__PURE__ */ new Map();
174
- let jobSeq = 0;
175
- let stopping = false;
176
- let mutations = 0;
177
- let stopped;
178
- const busy = () => mediaUploads.busy || mutations > 0 || [...jobs.values()].some((job) => job.state === "running");
179
- const server = await startServer(
180
- dir,
181
- [
182
- (req, res, url) => {
183
- if (stopping) { res.setHeader("retry-after", "1"); json(res, 503, { error: "editor is stopping" }); return true; }
184
- if (url.pathname === "/api/idle-stop" && req.method === "POST") {
185
- if (busy()) { json(res, 409, { busy: true }); return true; }
186
- stopping = true;
187
- res.once("finish", () => { options.onIdleStop?.(); void stop(); });
188
- json(res, 200, { stopping: true }); return true;
189
- }
190
- if (req.method !== "GET" && req.method !== "HEAD") {
191
- mutations++;
192
- let released = false;
193
- const release = () => { if (!released) { released = true; mutations--; } };
194
- res.once("finish", release); res.once("close", release);
195
- }
196
- return false;
197
- },
198
- (req, res, url) => mediaUploads.handle(req, res, url),
199
- (req, res, url) => {
200
- if (url.pathname !== "/api/activity" || req.method !== "GET") return false;
201
- json(res, 200, { busy: busy() }); return true;
202
- },
203
- async (req, res, url) => {
204
- if (url.pathname !== "/" && url.pathname !== "/index.html") return false;
205
- const entry = await editorEntry((line) => console.log(line));
206
- res.setHeader("content-type", "text/html; charset=utf-8");
207
- res.setHeader("cache-control", "no-cache");
208
- res.end(EDITOR_HTML(dir.split("/").at(-1) ?? "project", entry));
209
- void req;
210
- return true;
211
- },
212
- (req, res, url) => {
213
- if (!url.pathname.startsWith("/__higgsedit/editor/")) return false;
214
- const rel = decodeURIComponent(url.pathname.slice("/__higgsedit/editor/".length));
215
- if (rel.split("/").some((p) => p === ".." || p.startsWith("."))) {
216
- res.statusCode = 403;
217
- res.end();
218
- return true;
219
- }
220
- sendFile(req, res, editorFile(rel));
221
- return true;
222
- },
223
- (req, res, url) => {
224
- if (url.pathname !== "/api/events") return false;
225
- res.writeHead(200, { "content-type": "text/event-stream", "cache-control": "no-cache", connection: "keep-alive" });
226
- res.write(`data: ${JSON.stringify({ type: "hello" })}
227
-
228
- `);
229
- clients.add(res);
230
- req.on("close", () => clients.delete(res));
231
- return true;
232
- },
233
- async (req, res, url) => {
234
- if (url.pathname !== "/api/edit" || req.method !== "POST") return false;
235
- const body = JSON.parse((await readBody(req)).toString());
236
- const tx = history.begin(body.name ?? "Edit");
237
- try {
238
- const results = applyEdits(dir, body.edits, { onWrite: tx.onWrite, ...body.dryRun ? { dryRun: true } : {} });
239
- if (results.every((r) => r.ok)) tx.commit();
240
- else tx.rollback();
241
- json(res, 200, { ok: results.every((r) => r.ok), results, undo: history.state() });
242
- } catch (error) {
243
- tx.rollback();
244
- throw error;
245
- }
246
- return true;
247
- },
248
- (req, res, url) => {
249
- if (url.pathname !== "/api/undo" && url.pathname !== "/api/redo" || req.method !== "POST") return false;
250
- const r = url.pathname === "/api/undo" ? history.undo() : history.redo();
251
- json(res, 200, { ...r, undo: history.state() });
252
- return true;
253
- },
254
- async (req, res, url) => {
255
- if (!url.pathname.startsWith("/api/render")) return false;
256
- if (url.pathname === "/api/render/capabilities" && req.method === "GET") {
257
- json(res, 200, await renderCapabilities());
258
- return true;
259
- }
260
- if (url.pathname === "/api/render" && req.method === "POST") {
261
- let body;
262
- try {
263
- body = validateRenderRequest(JSON.parse((await readBody(req)).toString() || "{}"), await renderCapabilities());
264
- } catch (error) {
265
- json(res, 400, { error: error.message });
266
- return true;
267
- }
268
- if ([...jobs.values()].some((j) => j.state === "running")) {
269
- json(res, 409, { error: "a render is already running" });
270
- return true;
271
- }
272
- const requested = (body.fileName ?? "render.mp4").replace(/[/\\]/g, "_");
273
- const name = requested.endsWith(".mp4") ? requested : `${requested}.mp4`;
274
- const renders = join4(dir, "renders");
275
- mkdirSync2(renders, { recursive: true });
276
- const directory = lstatSync(renders);
277
- if (!directory.isDirectory() || directory.isSymbolicLink()) {
278
- json(res, 400, { error: "renders must be a project directory, not a symbolic link" });
279
- return true;
280
- }
281
- const stage = mkdtempSync(join4(renders, ".export-"));
282
- const stageIdentity = lstatSync(stage);
283
- const out = join4(stage, "output.mp4");
284
- const id2 = String(++jobSeq);
285
- const job2 = { state: "running", done: 0, total: 0, abort: new AbortController() };
286
- jobs.set(id2, job2);
287
- void (async () => {
288
- try {
289
- const report = await render(dir, {
290
- out,
291
- depth: body.depth ?? 8,
292
- allowFontFallback: body.allowFontFallback === true,
293
- ...body.from !== undefined ? { from: body.from } : {},
294
- ...body.to !== undefined ? { to: body.to } : {},
295
- ...body.spec ? { spec: body.spec } : {},
296
- ...body.sceneId !== undefined ? { sceneId: body.sceneId } : {},
297
- signal: job2.abort.signal,
298
- onProgress: (done, total) => {
299
- job2.done = done;
300
- job2.total = total;
301
- }
302
- });
303
- // Cancellation during remux/closing the capture page must not publish a result.
304
- if (job2.abort.signal.aborted) throw Object.assign(new Error("render cancelled"), { name: "RenderCancelledError" });
305
- const current = lstatSync(renders);
306
- if (!current.isDirectory() || current.isSymbolicLink() || current.dev !== directory.dev || current.ino !== directory.ino) throw new Error("renders directory changed during export");
307
- const output = lstatSync(out);
308
- if (!output.isFile() || output.isSymbolicLink() || output.size === 0) throw new Error("render did not produce a complete file");
309
- const occupied = new Set(readdirSync3(renders));
310
- for (let n = 1; ; n++) {
311
- const candidate = n === 1 ? name : `${name.slice(0, -4)}-${n}.mp4`;
312
- if (occupied.has(candidate)) continue;
313
- try { linkSync(out, join4(renders, candidate)); }
314
- catch (error) {
315
- if (error.code === "EEXIST") continue;
316
- if (!["ENOTSUP", "EOPNOTSUPP", "EPERM", "EXDEV", "ENOSYS"].includes(error.code)) throw error;
317
- // Some removable/network volumes do not support hard links. A newly reserved
318
- // directory gives rename an exclusively owned, nonexistent destination there too.
319
- const reserved = mkdtempSync(join4(renders, `${name.slice(0, -4)}-`));
320
- try { renameSync(out, join4(reserved, name)); }
321
- catch (error) { removeExportStage(reserved, { recursive: true, force: true }); throw error; }
322
- job2.out = `renders/${reserved.slice(renders.length + 1)}/${name}`;
323
- break;
324
- }
325
- job2.out = `renders/${candidate}`;
326
- break;
327
- }
328
- job2.state = "done";
329
- job2.msPerFrame = report.msPerFrame;
330
- } catch (error) {
331
- job2.state = job2.abort.signal.aborted || error.name === "RenderCancelledError" ? "cancelled" : "failed";
332
- job2.error = error.message;
333
- } finally {
334
- // Never delete a published file, or a directory substituted for this job's staging area.
335
- try {
336
- const current = lstatSync(stage);
337
- if (current.dev === stageIdentity.dev && current.ino === stageIdentity.ino && !current.isSymbolicLink()) removeExportStage(stage, { recursive: true, force: true });
338
- } catch (error) {
339
- if (error.code !== "ENOENT") console.warn("Could not remove export staging directory:", error.message);
340
- }
341
- }
342
- })();
343
- json(res, 200, { id: id2 });
344
- return true;
345
- }
346
- const id = url.searchParams.get("id") ?? "";
347
- const job = jobs.get(id);
348
- if (!job) {
349
- json(res, 404, { error: `no render ${id}` });
350
- return true;
351
- }
352
- if (url.pathname === "/api/render/cancel" && job.state === "running") job.abort.abort();
353
- const { abort: _abort, ...status } = job;
354
- void _abort;
355
- json(res, 200, status);
356
- return true;
357
- },
358
- (req, res, url) => {
359
- if (!url.pathname.startsWith("/preview/")) return false;
360
- const rel = decodeURIComponent(url.pathname.slice("/preview/".length));
361
- const file = inside(dir, rel);
362
- if (!file) {
363
- res.statusCode = 403;
364
- res.end();
365
- return true;
366
- }
367
- proxies.consider(rel, true);
368
- const proxy = proxies.lookup(rel);
369
- if (proxy) res.setHeader("x-higgsedit-proxy", "1");
370
- sendFile(req, res, proxy ?? file);
371
- return true;
372
- },
373
- (req, res, url) => {
374
- if (url.pathname !== "/api/history") return false;
375
- json(res, 200, history.state());
376
- void req;
377
- return true;
378
- },
379
- async (req, res, url) => {
380
- if (url.pathname !== "/api/media") return false;
381
- const media = join4(dir, "media");
382
- const files = listMediaFiles(media);
383
- json(res, 200, { files });
384
- return true;
385
- },
386
- (req, res, url) => {
387
- if (url.pathname !== "/api/analyze") return false;
388
- const key = url.searchParams.get("key") ?? "";
389
- const names = (url.searchParams.get("names") ?? "").split(",").filter(Boolean);
390
- json(res, 200, analyze(dir, key, names));
391
- void req;
392
- return true;
393
- }
394
- ],
395
- port
396
- );
397
- function stop() {
398
- stopping = true;
399
- return stopped ??= (async () => {
400
- clearTimeout(timer);
401
- watcher.close();
402
- await mediaUploads.close();
403
- proxies.stop();
404
- for (const c of clients) c.end();
405
- await server.close();
406
- })();
407
- }
408
- return { ...server, stop };
409
- }
410
- async function dev(dir, port) {
411
- const server = await startDev(dir, port, { onIdleStop: () => quit() });
412
- console.log(`higgsedit dev ${dir}\n editor ${server.origin}/`);
413
- const quit = () => {
414
- setTimeout(() => process.exit(0), 3000).unref();
415
- void server.stop().finally(() => process.exit(0));
416
- };
417
- process.once("SIGTERM", quit);
418
- process.once("SIGINT", quit);
419
- }
420
-
421
- export {
422
- dev,
423
- startDev
424
- };
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env node
2
- import { createRequire as __higgseditRequire } from "node:module";
3
- import { fileURLToPath as __higgseditPath } from "node:url";
4
- const require = __higgseditRequire(import.meta.url);
5
- const __filename = __higgseditPath(import.meta.url);
6
- const __dirname = __filename.slice(0, __filename.lastIndexOf("/"));
7
-
8
- // package.json
9
- var package_default = {
10
- name: "@higgsfield-ai/higgsedit",
11
- version: "0.1.0-beta.4",
12
- description: "higgsedit: the CLI for code-as-document video projects (init, check, frame, render, edit, dev)",
13
- repository: {
14
- type: "git",
15
- url: "https://github.com/higgsfield-ai/reel.git",
16
- directory: "apps/cli"
17
- },
18
- engines: {
19
- node: ">=22.12.0"
20
- },
21
- type: "module",
22
- bin: {
23
- higgsedit: "./bin/higgsedit.mjs"
24
- },
25
- exports: {
26
- ".": "./src/index.ts",
27
- "./browser": "./src/browser.ts",
28
- "./bundle": "./src/bundle.ts",
29
- "./check": "./src/check.ts",
30
- "./dev": "./src/dev.ts",
31
- "./doctor": "./src/doctor.ts",
32
- "./editor-build": "./src/editor-build.ts",
33
- "./fonts": "./src/fonts/index.ts",
34
- "./init": "./src/init.ts",
35
- "./media": "./src/media/index.ts",
36
- "./net": "./src/net.ts",
37
- "./outline": "./src/outline.ts",
38
- "./render": "./src/render.ts",
39
- "./segment": "./src/segment.ts",
40
- "./transcribe": "./src/transcribe.ts"
41
- },
42
- files: [
43
- "dist",
44
- "README.md"
45
- ],
46
- scripts: {
47
- build: "tsx scripts/build.ts",
48
- prepack: "pnpm run build"
49
- },
50
- dependencies: {
51
- esbuild: "0.28.2",
52
- "playwright-core": "1.63.0"
53
- },
54
- devDependencies: {
55
- "@higgsedit/encoder": "workspace:*",
56
- "@higgsedit/jsx": "workspace:*",
57
- "@higgsedit/reconciler": "workspace:*",
58
- "@higgsedit/runtime": "workspace:*",
59
- "@higgsedit/sam2": "workspace:*",
60
- "@higgsedit/writeback": "workspace:*",
61
- "solid-js": "1.9.16",
62
- tsx: "4.23.15",
63
- typescript: "7.0.2"
64
- },
65
- publishConfig: {
66
- access: "restricted",
67
- registry: "https://npm.pkg.github.com",
68
- bin: {
69
- higgsedit: "./dist/higgsedit.mjs"
70
- },
71
- exports: {
72
- "./package.json": "./package.json"
73
- },
74
- tag: "next"
75
- }
76
- };
77
-
78
- // src/manifest.ts
79
- var CLI_MANIFEST = package_default;
80
-
81
- export {
82
- CLI_MANIFEST
83
- };