"""FunPack Hub — a small landing page at /funpack/ linking to the two FunPack UIs (Movie Editor "Cutting Room" and "Easy Gen"), plus an About block (version/ branch/commit) and an Update/Restart action. Talks to the Movie Editor's existing /funpack/movie/api/{health,git/status,git/update,restart} endpoints — no new backend API, same git_update.py logic the Editor's own "Updates & ComfyUI" settings section uses. Kept as a single self-contained inline page (no shared JS files) since its surface is a handful of fetch calls, much smaller than pulling in api.js/dom.js/git_actions.js/restart_ui.js would need. """ from __future__ import annotations try: from aiohttp import web from server import PromptServer except Exception: # pragma: no cover - only available inside ComfyUI web = None PromptServer = None from .movie_editor.backend import config as movie_config HUB_PREFIX = "/funpack" _PAGE = """