/** Module manager (formerly "plugins"): installed modules, catalog, install/uninstall and module windows. */ import { call, subscribe } from "../transport"; import type { ModuleManifest, ModuleWindowState, Payload } from "../types"; export const modules = Object.freeze({ list: () => call("core_modules_list", "plugins:list"), getState: () => call("core_modules_get_state", "plugins:getState"), checkCatalog: () => call("core_modules_check_catalog", "plugins:checkCatalog"), install: (releaseId: string) => call("core_modules_install", "plugins:install", { releaseId }), uninstall: (moduleId: string) => call("core_modules_uninstall", "plugins:uninstall", { pluginId: moduleId }), open: (moduleId: string) => call("core_modules_open", "plugins:open", { pluginId: moduleId }), onWindowState: (callback: (windows: ModuleWindowState[]) => void) => subscribe("core:pluginWindowState", callback) });