@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.
- package/THIRD_PARTY_NOTICES.md +24 -24
- package/dist/cli.mjs +134 -125
- package/dist/index.html +136 -133
- package/dist/launcher.mjs +90 -90
- package/dist/server.mjs +1553 -1389
- package/node_modules/@higgsfield/higgsedit/README.md +181 -1
- package/node_modules/@higgsfield/higgsedit/dist/capture-page.js +902 -314
- package/node_modules/@higgsfield/higgsedit/dist/chunk-2JYLVSVV.mjs +1594 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-2WKNH7OL.mjs +16 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-OMKZ5BXM.mjs → chunk-5LTTL3Q3.mjs} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/chunk-7PYXSJS7.mjs +717 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-MLJAIZGP.mjs → chunk-BH2QF635.mjs} +33 -326
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-WZR5PZM7.mjs → chunk-BV5COOQZ.mjs} +250 -161
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-HTCYVKFX.mjs → chunk-C3GSB3XZ.mjs} +8 -7
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-CYH2EUQV.mjs → chunk-DVN4LUXV.mjs} +13 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-F4CMIG5G.mjs +36 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-IEPPEDEU.mjs +33 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-UVAZ6I6U.mjs → chunk-KIWGVAPJ.mjs} +16 -12
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-L6QDNSL3.mjs → chunk-L5LWBA6A.mjs} +5 -5
- package/node_modules/@higgsfield/higgsedit/dist/chunk-LMQR3DHT.mjs +37 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-LTKMGZ6T.mjs +58 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-VI6IV6JP.mjs → chunk-MV2JTTBQ.mjs} +65 -47
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-4D6AXU4B.mjs → chunk-NARTAWRN.mjs} +50 -30
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-27NBQ5FA.mjs → chunk-NUXTKQNM.mjs} +33 -21
- package/node_modules/@higgsfield/higgsedit/dist/chunk-OCIZ36XD.mjs +40 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-MK6PL7N4.mjs → chunk-OF6RMSM2.mjs} +19 -17
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-6BETMESC.mjs → chunk-P2BGHTRR.mjs} +2 -2
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-EKFC4S4M.mjs → chunk-PAHMD6SU.mjs} +5 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-QVLAEV3U.mjs → chunk-PFQYUJQL.mjs} +3 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QJTILFBS.mjs +335 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QQ3GGKDN.mjs +21 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-TH7TK67K.mjs +23 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-SIMO6I3D.mjs → chunk-UDL5AHKO.mjs} +163 -158
- package/node_modules/@higgsfield/higgsedit/dist/chunk-UMWOUQN3.mjs +60 -0
- package/node_modules/@higgsfield/higgsedit/dist/{chunk-3AIM3THH.mjs → chunk-VLM5EOWJ.mjs} +4 -4
- package/node_modules/@higgsfield/higgsedit/dist/chunk-WENFTPXQ.mjs +403 -0
- package/node_modules/@higgsfield/higgsedit/dist/chunk-YLVXQIPX.mjs +464 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/.vite/manifest.json +559 -506
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-bottom-q4hZltI-.svg +431 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/agent-corner-top-BJYI-I24.svg +431 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/confirmation-BTnwl3LS.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/drag-Bt_t4HZO.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/local-B3OTAV_A.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/menubar-2Y1Y2XJt.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/model-DdE4hCgf.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{IconText1-CzbCrP7v.css → notifications-B08L1jSe.css} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/{panel-g852pZf_.css → panel-BRN_AbBM.css} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-CYELNqrv.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DYLpT6oA.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-v84HaGTZ.css +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Bxb1Or0F.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCheckmark2Medium-daaES9uF.js → IconCheckmark2Medium-hegaz9mQ.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconChevronDownSmall-BhTBJk26.js → IconChevronDownSmall-DaruzJwU.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconClosedCaptioning-BPqcqKsD.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconCrossMedium-acfnCXOM.js → IconCrossMedium-BsPFJzc6.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconOpenaiFilled-D1fzthmi.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPause-pTeVSvUe.js → IconPause-ClNg8pao.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{IconPlayFilled-CwdgIuDG.js → IconPlayFilled-CHb-7GSx.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconSparklesSoftFilled-o7o33KRn.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-B9h-eaki.js +567 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/auto-layout-BO20Tg4B.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{button-CjG6GcgF.js → button-Cg0U0zpV.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/canvas-Bw4CVzfw.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/capabilities-BCd4-zPF.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/commands-QeSqAbCt.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-tXMtIZNL.js +51 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/confirmation-CO2PHR_z.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dom-6aoQn29n.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-Dw8b_vO2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{editing-CjWbiCxv.js → editing-Cy-SaOyB.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-CqLBqir0.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-BjBskOe3.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/factories-Bw_iQrUL.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/id3-CSR0NCRI.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-DP49i4ke.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMz9sLPe.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ingest-DsmIc415.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B5yqYJvp.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/{media-Bwjxu-0U.js → media-DQw6vU_T.js} +1 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-D31srALX.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-D0nZVEJs.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/mode-DEG6doKF.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-Duf9fszJ.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/model-DyAkLA69.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/notifications-DqWZNIrK.js +9 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-HT83gWgL.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-B5Mvm6dg.js +7 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BC90wyvd.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Bw_ZJ2JI.js +3 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DNS060Nt.js +3 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DSgxIrEq.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DgBttE5O.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-_T2bHsHW.js +771 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DfHvAt5X.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-nBZvHlkA.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-DsCpJVSt.js +327 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-CEhZwZ67.js +280 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-2_tW9Do7.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/react-dom-1uB7Vbbb.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/schemas-CddYAOcj.js +64 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-BpFeKAI2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/src-BLG3tYBa.js +2 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/styles-e2n2A_JN.js +284 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CuV0zYKd.js +24 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-XeAgs9cs.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-DbNEaSIl.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-C8Ll3qFl.js +69 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-Dv1LPFbu.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-HWSfSsp2.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-D4SOg3N_.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/value-EB7YmAdS.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-fj5rA9k3.js +1 -0
- package/node_modules/@higgsfield/higgsedit/dist/editor/editor-B-WAkLt7.js +372 -0
- package/node_modules/@higgsfield/higgsedit/dist/higgsedit.mjs +39 -24
- package/node_modules/@higgsfield/higgsedit/dist/jsx/hooks.d.ts +26 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/index.d.ts +17 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/inspect.d.ts +42 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/jsx-runtime.d.ts +28 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/svg.d.ts +9 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/time.d.ts +6 -0
- package/node_modules/@higgsfield/higgsedit/dist/jsx/types.d.ts +420 -0
- package/node_modules/@higgsfield/higgsedit/package.json +28 -20
- package/package.json +4 -3
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/plugin.json +1 -1
- package/plugin/skills/video-editing/references/caption-titling.md +1 -1
- package/plugin/skills/video-editing/references/local-setup.md +3 -3
- package/node_modules/@higgsfield/higgsedit/dist/chunk-C6SASQHE.mjs +0 -424
- package/node_modules/@higgsfield/higgsedit/dist/chunk-FZ5U36SQ.mjs +0 -83
- package/node_modules/@higgsfield/higgsedit/dist/chunk-QLPCYN6K.mjs +0 -292
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/edit-drag-D2EV5ddd.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/editor-CuRHT75g.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/assets/panel-DnuQD7ja.css +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/FieldControl-B0fenhBJ.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconChainLink1-Cwv1X7hi.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeOpen-BqTT9_VV.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconEyeSlash-Whv58c1m.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPencil-Dr17k_7e.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlay-BroH3ziH.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconPlusSmall-43T9aE3d.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconText1-BaP_p9DW.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/IconTrashCan-DX2w2AIC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/ai-composer-C-l0eIdP.js +0 -560
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/captions-Cd-bDG3G.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/clip-highlight-DpAvcA4x.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/components-e3ZbUVns.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/disposables-CwUPjcuA.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/drag-HLBkto5o.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/dropdown-BJ04G_X3.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edit-drag-Bg6LggKC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/edits-a2IixhrN.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/export-dialog-4I4gqI5V.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/face-tracker-DzVfjVOO.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/fit-imported-media-CaCB0x0b.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/generation-queue-DuL2F4-_.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/import-error-CMARA0Hy.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/jsx-runtime-B-hcVAMW.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/menubar-Bs26OdwP.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/meters-YEr9OQjq.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/paints-DS2Msf91.js +0 -67
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/palette-CcS9IcAC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-7M3uQokX.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-BBK1NyG-.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-CHZTs7By.js +0 -4
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DaSOa3MP.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-DlK3RYVo.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Dst5OKWu.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-H_ZoDiKK.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-Rn9Z7Eek.js +0 -3
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-assets-FAghGFG3.js +0 -678
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-inspector-DEqULBNF.js +0 -260
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-timeline-0GYNz1uc.js +0 -333
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/panel-viewport-DOWjJi5-.js +0 -317
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/projects-BBJc7h5_.js +0 -2
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/session-B9sZaFKC.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/supercomputer-CX-LCL6Y.js +0 -24
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/tabs-CvKQ-eas.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/toggle-CrzrwiDZ.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-BgRfk-Qq.js +0 -69
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/transport-bar-C9nqAfE2.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/typography-C5-w9LOu-kD3uLKkf.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useOpenInteractionType-DbrQ6Ehu.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/useRenderElement-bbxXdYq0.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/chunks/writeback-support-BZfNpkmB.js +0 -1
- package/node_modules/@higgsfield/higgsedit/dist/editor/editor-Csn2_T_e.js +0 -293
- package/node_modules/@higgsfield/higgsedit/dist/export-settings.mjs +0 -75
- package/node_modules/@higgsfield/higgsedit/dist/history.mjs +0 -295
- package/node_modules/@higgsfield/higgsedit/dist/media-upload.mjs +0 -381
- 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]
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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 = () => {
|
|
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;
|