@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
@@ -4,13 +4,14 @@ import { fileURLToPath as __higgseditPath } from "node:url";
4
4
  const require = __higgseditRequire(import.meta.url);
5
5
  const __filename = __higgseditPath(import.meta.url);
6
6
  const __dirname = __filename.slice(0, __filename.lastIndexOf("/"));
7
+ import {
8
+ CLI_MANIFEST
9
+ } from "./chunk-2WKNH7OL.mjs";
7
10
  import {
8
11
  flag,
9
12
  parseArgs
10
13
  } from "./chunk-MCVD2ZQV.mjs";
11
- import {
12
- CLI_MANIFEST
13
- } from "./chunk-FZ5U36SQ.mjs";
14
+ import "./chunk-75WO2NOF.mjs";
14
15
 
15
16
  // src/main.ts
16
17
  import { resolve } from "node:path";
@@ -35,14 +36,18 @@ var USAGE = `higgsedit <command> <dir> [options]
35
36
  verify <dir> [--count 12] [--depth 10] determinism: forward vs shuffled capture hashes
36
37
  edit <dir> <id> <op> <json> write-back (set-prop, set-text, insert, remove, move, retime)
37
38
  edit <dir> <name> set-const <value> write an @inspect const (names: higgsedit outline)
38
- dev <dir> [--port 4173] editor with file watcher
39
+ dev <dir> [--port 4173] [--presets <dir>] editor with file watcher (presets: --presets, $HIGGSEDIT_PRESETS_DIR, ~/.higgsedit-next/presets)
39
40
  segment <media> --point x,y -o out.mask track an object with SAM 2.1 into a .mask (mask={{ src }})
40
41
  [--point x,y \u2026] [--exclude x,y \u2026] [--box x0,y0,x1,y1] [--at t] [--start t] [--end t] [--model tiny|small|base-plus|large]
41
- doctor ffmpeg, Chrome, Node and recent plugin errors
42
+ select <media> --at t (--text "a, b" | --point x,y [--exclude x,y \u2026] [--box x0,y0,x1,y1]) objects on one frame with SAM 3.1 (HIGGSEDIT_SELECT_URL)
43
+ [--json] [--overlay sel.png] [--pick n --start t --end t -o out.mask] -o tracks object --pick into a .mask (mask={{ src }})
44
+ doctor ffmpeg, Chrome, Node, the select server, recent plugin errors
42
45
  version print the version
43
46
  media <probe|grab|filmstrip|waveform|transcribe> <path> inspect footage (higgsedit media help)
44
47
  transcribe <media> -o out.json [--model m] [--language en] word-timed transcript (local mlx_whisper) for <captions>
45
48
  fonts [name] [--category c] [--cached] [--limit n] Google Fonts families for <text fontFamily> (cached ones render offline)
49
+ presets [--json] [--presets <dir>] installed motion presets (the editor's Presets panel adds them)
50
+ presets install <pack-dir> [--out <dir>] [--slots <file>] build a presets dir from a pack (default: the one dev reads; replaces it)
46
51
 
47
52
  frame, sheet, render and verify fail when a project or Google font cannot be loaded, and check
48
53
  when a Google font cannot be downloaded; --allow-font-fallback draws in a fallback font instead, with a warning.
@@ -58,33 +63,41 @@ async function main(argv) {
58
63
  return 0;
59
64
  }
60
65
  if (command === "doctor") {
61
- const { diagnose, diagnosisText } = await import("./chunk-CYH2EUQV.mjs");
62
- const d = diagnose();
66
+ const { diagnose, diagnosisText } = await import("./chunk-DVN4LUXV.mjs");
67
+ const d = await diagnose();
63
68
  print(d, () => diagnosisText(d));
64
69
  return "path" in d.ffmpeg && "path" in d.ffprobe ? 0 : 1;
65
70
  }
66
71
  if (command === "media") {
67
- const { runMedia } = await import("./chunk-MLJAIZGP.mjs");
72
+ const { runMedia } = await import("./chunk-BH2QF635.mjs");
68
73
  return runMedia(rest);
69
74
  }
70
75
  if (command === "segment") {
71
- const { runSegment } = await import("./chunk-UVAZ6I6U.mjs");
76
+ const { runSegment } = await import("./chunk-KIWGVAPJ.mjs");
72
77
  return runSegment(args, print);
73
78
  }
79
+ if (command === "select") {
80
+ const { runSelect } = await import("./chunk-OCIZ36XD.mjs");
81
+ return runSelect(args, print);
82
+ }
74
83
  if (command === "transcribe") {
75
- const { runTranscribe } = await import("./chunk-3AIM3THH.mjs");
84
+ const { runTranscribe } = await import("./chunk-VLM5EOWJ.mjs");
76
85
  return runTranscribe(args, print);
77
86
  }
78
87
  if (command === "fonts") {
79
- const { runFonts } = await import("./chunk-27NBQ5FA.mjs");
88
+ const { runFonts } = await import("./chunk-LMQR3DHT.mjs");
80
89
  return runFonts(parseArgs(rest, /* @__PURE__ */ new Set(["json", "cached"])), print);
81
90
  }
91
+ if (command === "presets") {
92
+ const { runPresets } = await import("./chunk-IEPPEDEU.mjs");
93
+ return runPresets(args, print);
94
+ }
82
95
  if (!command || command === "help" || command === "--help" || !dirArg) {
83
96
  console.log(USAGE);
84
97
  return command ? 1 : 0;
85
98
  }
86
99
  if (command === "init") {
87
- const { scaffold } = await import("./chunk-QVLAEV3U.mjs");
100
+ const { scaffold } = await import("./chunk-PFQYUJQL.mjs");
88
101
  const [w, h] = String(flag(args, "size") ?? "1080x1920").split("x").map(Number);
89
102
  const target = resolve(dirArg);
90
103
  const r = scaffold(target, { width: w, height: h, fps: Number(flag(args, "fps") ?? 30) });
@@ -92,13 +105,13 @@ async function main(argv) {
92
105
  print(r, () => [r.written.length ? `created ${target}` : `${target}: nothing to create`, ...r.written.map((f) => ` ${f}`), ...r.skipped.map((f) => ` skipped (exists): ${f}`), `next: ${cd}npm install && npm run dev`].join("\n"));
93
106
  return 0;
94
107
  }
95
- const { assertProject } = await import("./chunk-SIMO6I3D.mjs");
108
+ const { assertProject } = await import("./chunk-TH7TK67K.mjs");
96
109
  const dir = assertProject(dirArg);
97
110
  const depth = flag(args, "depth") === "10" ? 10 : 8;
98
111
  const allowFontFallback = args.flags["allow-font-fallback"] === true;
99
112
  switch (command) {
100
113
  case "check": {
101
- const { check } = await import("./chunk-MK6PL7N4.mjs");
114
+ const { check } = await import("./chunk-QQ3GGKDN.mjs");
102
115
  const r = await check(dir, { allowFontFallback });
103
116
  print(
104
117
  r,
@@ -117,7 +130,7 @@ async function main(argv) {
117
130
  return r.ok ? 0 : 1;
118
131
  }
119
132
  case "stamp": {
120
- const { stampProject } = await import("./chunk-VI6IV6JP.mjs");
133
+ const { stampProject } = await import("./chunk-UMWOUQN3.mjs");
121
134
  const r = stampProject(dir);
122
135
  print(r, () => [`stamped ${r.stamped.length} element(s) in ${r.written.length} file(s)`, ...r.stamped.map((s) => ` ${s.file}: <${s.tag}> id="${s.id}"`), ...r.skipped.map((s) => ` skipped ${s.file}: ${s.reason}`)].join("\n"));
123
136
  return r.skipped.length ? 1 : 0;
@@ -126,7 +139,7 @@ async function main(argv) {
126
139
  const at = args.positional[1];
127
140
  const out = flag(args, "o", "out");
128
141
  if (!at || !out) throw new Error("usage: higgsedit frame <dir> <t> -o x.png");
129
- const { frame } = await import("./chunk-4D6AXU4B.mjs");
142
+ const { frame } = await import("./chunk-F4CMIG5G.mjs");
130
143
  const r = await frame(dir, at, out, depth, allowFontFallback);
131
144
  print(r, () => `wrote ${r.out} (frame ${r.frame}, ${r.ms.toFixed(0)} ms)`);
132
145
  return 0;
@@ -135,7 +148,7 @@ async function main(argv) {
135
148
  const times = flag(args, "times")?.split(",").map((s) => s.trim()).filter(Boolean);
136
149
  const out = flag(args, "o", "out");
137
150
  if (!times?.length || !out) throw new Error("usage: higgsedit sheet <dir> --times 0,1,2 -o sheet.png");
138
- const { sheet } = await import("./chunk-4D6AXU4B.mjs");
151
+ const { sheet } = await import("./chunk-F4CMIG5G.mjs");
139
152
  const r = await sheet(dir, times, out, Number(flag(args, "columns") ?? Math.min(4, times.length)), Number(flag(args, "width") ?? 480), allowFontFallback);
140
153
  print(r, () => `wrote ${r.out} (frames ${r.frames.join(", ")})`);
141
154
  return 0;
@@ -146,7 +159,7 @@ async function main(argv) {
146
159
  const encoder = flag(args, "encoder");
147
160
  if (encoder && !ENCODERS.includes(encoder)) throw new Error(`unknown --encoder ${encoder}; use ${ENCODERS.join(", ")}`);
148
161
  const crf = flag(args, "crf");
149
- const { render } = await import("./chunk-4D6AXU4B.mjs");
162
+ const { render } = await import("./chunk-F4CMIG5G.mjs");
150
163
  const r = await render(dir, {
151
164
  out,
152
165
  depth,
@@ -172,24 +185,24 @@ async function main(argv) {
172
185
  return 0;
173
186
  }
174
187
  case "verify": {
175
- const { verify } = await import("./chunk-4D6AXU4B.mjs");
188
+ const { verify } = await import("./chunk-F4CMIG5G.mjs");
176
189
  const r = await verify(dir, Number(flag(args, "count") ?? 12), depth, allowFontFallback);
177
190
  print(r, () => [`${r.identical ? "identical" : "DIFFERENT"}: ${r.frames.length} frames, ${r.depth}-bit, shuffled order ${r.shuffledOrder.join(",")}`, ...r.frames.map((f, i) => ` ${String(f).padStart(6)} ${r.forward[i]} ${r.shuffled[i] === r.forward[i] ? "=" : "\u2260"}`)].join("\n"));
178
191
  return r.identical ? 0 : 1;
179
192
  }
180
193
  case "outline": {
181
- const { outline } = await import("./chunk-HTCYVKFX.mjs");
194
+ const { outline } = await import("./chunk-C3GSB3XZ.mjs");
182
195
  const o = await outline(dir);
183
196
  print(o, () => o.text);
184
197
  return o.ok ? 0 : 1;
185
198
  }
186
199
  case "edit": {
187
- const { runEdit } = await import("./chunk-OMKZ5BXM.mjs");
200
+ const { runEdit } = await import("./chunk-5LTTL3Q3.mjs");
188
201
  return runEdit(dir, args, print);
189
202
  }
190
203
  case "dev": {
191
- const { dev } = await import("./chunk-C6SASQHE.mjs");
192
- await dev(dir, Number(flag(args, "port") ?? 4173));
204
+ const { dev } = await import("./chunk-2JYLVSVV.mjs");
205
+ await dev(dir, Number(flag(args, "port") ?? 4173), flag(args, "presets"));
193
206
  return await new Promise(() => {
194
207
  });
195
208
  }
@@ -200,7 +213,9 @@ async function main(argv) {
200
213
  }
201
214
  function exitAfterOutput(code) {
202
215
  let pending = 2;
203
- const flushed = () => { if (--pending === 0) process.exit(code); };
216
+ const flushed = () => {
217
+ if (--pending === 0) process.exit(code);
218
+ };
204
219
  for (const stream of [process.stdout, process.stderr]) stream.write("", flushed);
205
220
  }
206
221
  patientConnects();
@@ -0,0 +1,26 @@
1
+ import type { Accessor } from "solid-js";
2
+ export type Ticker = {
3
+ /** Root playhead, seconds. */
4
+ time: Accessor<number>;
5
+ /** `round(time * fps)` at the root scene fps. */
6
+ frame: Accessor<number>;
7
+ /** Seconds since the previous tick; `1 / fps` while capturing. */
8
+ delta: Accessor<number>;
9
+ playing: Accessor<boolean>;
10
+ /** Makes the current frame's capture wait for `work`. A no-op in live preview. */
11
+ hold: (work: Promise<unknown>) => void;
12
+ };
13
+ /** Declaration for type-checking; a mounted project gets the host's implementation. */
14
+ export declare function useTicker(): Ticker;
15
+ /** Composition size and fps of the scene the caller renders in. */
16
+ export declare function useResolution(): Accessor<{
17
+ width: number;
18
+ height: number;
19
+ fps: number;
20
+ }>;
21
+ /**
22
+ * Seconds on the clock of the element with this `id`: root time minus its `start` and the starts of the scenes and
23
+ * groups above it. That is the clock its `animate` keyframes and its `<html>` CSS animations see; `useTicker().time`
24
+ * stays the root playhead. Not clamped to the element's span.
25
+ */
26
+ export declare function useLocalTime(id: string): Accessor<number>;
@@ -0,0 +1,17 @@
1
+ export { parseTime } from "./time";
2
+ export { useLocalTime, useResolution, useTicker } from "./hooks";
3
+ export * from "./inspect";
4
+ export { SVG_PREFIX, isSvgContent, isSvgTag } from "./svg";
5
+ export type { Ticker } from "./hooks";
6
+ export type * from "./types";
7
+ /** The intrinsic tags that become entities. */
8
+ export declare const INTRINSICS: readonly ["stage", "scene", "group", "rect", "text", "image", "video", "audio", "sequence", "captions", "textRange", "adjustmentLayer", "surface", "html", "shaderPaint"];
9
+ /** Caption presets, in the order the editor lists them. */
10
+ export declare const CAPTION_PRESETS: readonly ["classic", "whisper", "cascade", "spotlight", "paper", "guinea", "stark"];
11
+ export declare const CAPTION_ALIGNS: readonly ["top", "center", "bottom"];
12
+ export type Intrinsic = (typeof INTRINSICS)[number];
13
+ export declare const isIntrinsic: (tag: string) => tag is Intrinsic;
14
+ /** Easing names accepted in keyframes, besides `cubicBezier(...)`. */
15
+ export declare const EASINGS: readonly ["linear", "easeIn", "easeOut", "easeInOut", "step"];
16
+ /** `transition` types a `<sequence>` child can hand over with. */
17
+ export declare const TRANSITION_TYPES: readonly ["dissolve", "slideFromRight", "slideFromLeft", "fadeToBlack", "fadeToWhite", "whipPan", "zoomThrough", "pixelDissolve"];
@@ -0,0 +1,42 @@
1
+ /**
2
+ * `@inspect` variables: a top-level `const` whose JSDoc carries
3
+ *
4
+ * @inspect <type> [min=… max=… step=…] [options="a,b"] [path="Group/Label" | label="Label"]
5
+ *
6
+ * becomes a control in the editor's stage inspector. The compiler and the write-back both read the
7
+ * tag through `readInspectTag`, so they agree on what is a control and what is a mistake.
8
+ */
9
+ export declare const INSPECT_TYPES: readonly ["number", "color", "text", "font", "boolean", "select"];
10
+ export type InspectType = (typeof INSPECT_TYPES)[number];
11
+ /** The value types an `@inspect` const may be initialized with (a string, number or boolean literal). */
12
+ export type InspectValue = string | number | boolean;
13
+ export interface InspectSpec {
14
+ type: InspectType;
15
+ min?: number;
16
+ max?: number;
17
+ step?: number;
18
+ /** Choices for `select`, listed as written. */
19
+ options?: string[];
20
+ /** `path="A/B/Label"` split into segments. */
21
+ path?: string[];
22
+ label?: string;
23
+ }
24
+ /** One `@inspect` const found in the compiled project; keyed by `file` and `name`. */
25
+ export interface InspectDeclaration extends InspectSpec {
26
+ file: string;
27
+ name: string;
28
+ }
29
+ export declare class InspectTagError extends Error {
30
+ }
31
+ /**
32
+ * The control a comment asks for: undefined without an `@inspect` tag (only `/** … *\/` comments
33
+ * count), an `InspectTagError` when the tag is there but malformed.
34
+ */
35
+ export declare function readInspectTag(comment: string): InspectSpec | undefined;
36
+ /** Why `value` cannot initialize (or be written into) a const declared as `spec`; undefined if it can. */
37
+ export declare function inspectMismatch(spec: InspectSpec, value: unknown): string | undefined;
38
+ /** The control's label and the section it is filed under (empty: the ungrouped "Variables"). */
39
+ export declare function inspectPresentation(name: string, spec: InspectSpec): {
40
+ label: string;
41
+ group: string[];
42
+ };
@@ -0,0 +1,28 @@
1
+ import type { JSX as SolidJSX } from "solid-js";
2
+ import type { Intrinsic } from "./index";
3
+ import type { AdjustmentLayerProps, AudioProps, CaptionsProps, GroupProps, HtmlProps, ImageProps, RectProps, SceneProps, SequenceProps, ShaderPaintProps, StageProps, SurfaceProps, TextProps, TextRangeProps, VideoProps } from "./types";
4
+ /** Type-only JSX namespace; projects are compiled by babel-preset-solid against higgsedit's renderer. */
5
+ export declare namespace JSX {
6
+ type Element = SolidJSX.Element;
7
+ interface ElementChildrenAttribute {
8
+ children: unknown;
9
+ }
10
+ /** Higgsedit's elements, plus HTML tags, which are only valid inside `<html>` (checked at mount). */
11
+ interface IntrinsicElements extends Omit<SolidJSX.IntrinsicElements, Intrinsic> {
12
+ stage: StageProps;
13
+ scene: SceneProps;
14
+ group: GroupProps;
15
+ rect: RectProps;
16
+ text: TextProps;
17
+ image: ImageProps;
18
+ video: VideoProps;
19
+ audio: AudioProps;
20
+ sequence: SequenceProps;
21
+ captions: CaptionsProps;
22
+ textRange: TextRangeProps;
23
+ adjustmentLayer: AdjustmentLayerProps;
24
+ surface: SurfaceProps;
25
+ html: HtmlProps;
26
+ shaderPaint: ShaderPaintProps;
27
+ }
28
+ }
@@ -0,0 +1,9 @@
1
+ /** Compiled name of a shared tag used as SVG content: `<rect>` inside `<svg>` reaches the renderer as `svg:rect`. */
2
+ export declare const SVG_PREFIX = "svg:";
3
+ /** A tag `<html>` content creates in the SVG namespace. */
4
+ export declare const isSvgTag: (tag: string) => boolean;
5
+ /**
6
+ * Whether `tag` is SVG content rather than a higgsedit element: `rect`, `text` or `image` with an SVG-only element
7
+ * (`<svg>`, `<g>`, `<defs>`, `<clipPath>`…) around it in the same JSX tree. `enclosing` are the JSX tags around it.
8
+ */
9
+ export declare function isSvgContent(tag: string, enclosing: Iterable<string>): boolean;
@@ -0,0 +1,6 @@
1
+ import type { Time } from "./types";
2
+ /**
3
+ * Seconds for a `Time`: numbers are seconds, `"30f"` is frames at `fps`, `"MM:SS"` / `"HH:MM:SS"`
4
+ * are clock strings (fractional seconds allowed). Returns undefined for anything unparsable.
5
+ */
6
+ export declare function parseTime(value: Time | string | null | undefined, fps: number): number | undefined;