UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

54 lines (53 loc) • 2.64 kB
import { t as createSubsystemLogger } from "./subsystem-4NzR43uz.mjs"; import { r as getRuntimeConfig } from "./io.runtime-B134MOMz.mjs"; import "./runtime-config-snapshot--IkldAgP.mjs"; import "./logging-core-ClC4WZ0f.mjs"; import { i as resolveBrowserConfig, s as resolveProfile } from "./config-NGx7eSU6.mjs"; import { n as getGatewayExtensionRelayModule, t as getExtensionRelayModule } from "./extension-relay.runtime.js"; import { o as loadBrowserConfigForRuntimeRefresh } from "./server-context-BXWO3gxh.mjs"; import { n as stopBrowserScreencasts } from "./session-BlBikWcp.mjs"; import { a as stopBrowserControlRuntime, n as ensureBrowserControlRuntime, o as withBrowserControlStart, r as getBrowserControlState } from "./browser-control-state-C71zi1IJ.mjs"; import { n as resolveBrowserPluginEnableState } from "./plugin-enabled-CAWE2HwB.mjs"; //#region extensions/browser/src/control-service.ts const logService = createSubsystemLogger("browser").child("service"); async function startBrowserControlServiceUnlocked() { const current = getBrowserControlState(); if (current) return current; const cfg = getRuntimeConfig(); const browserCfg = loadBrowserConfigForRuntimeRefresh(); if (!resolveBrowserPluginEnableState(cfg).enabled) return null; const resolved = resolveBrowserConfig(browserCfg.browser, browserCfg); if (!resolved.enabled) return null; const hasExtensionProfiles = Object.values(resolved.profiles).some((profile) => profile.driver === "extension"); if (hasExtensionProfiles) { const { ensureExtensionRelayToken } = await import("./relay-auth-DUTUPYRb.mjs"); await ensureExtensionRelayToken(); } const state = await ensureBrowserControlRuntime({ server: null, port: resolved.controlPort, resolved }); if (hasExtensionProfiles) { const { startConfiguredExtensionRelays } = await getExtensionRelayModule(); await startConfiguredExtensionRelays(state, (name) => resolveProfile(resolved, name), (message) => logService.warn(message)); } logService.info(`Browser control service ready (profiles=${Object.keys(resolved.profiles).length})`); return state; } async function startBrowserControlServiceFromConfig() { return await withBrowserControlStart(startBrowserControlServiceUnlocked); } async function stopBrowserControlService() { try { await stopBrowserControlRuntime({ requestedBy: "service", onWarn: (message) => logService.warn(message) }); } finally { (await getGatewayExtensionRelayModule.peek())?.disposeGatewayExtensionRelay(); await stopBrowserScreencasts(); } } //#endregion export { stopBrowserControlService as n, startBrowserControlServiceFromConfig as t };