/** * The extension's engine host: build a ScheduledEngine, attach the transport. * * Everything that used to be in this file is now either engine (`src/engine/`) * or transport (`src/adapters/webext.js`). What remains is the two lines that * are genuinely specific to *this* host — which storage to use, and which * transport to speak — and that is the whole shape a consumer of the library * writes for their own app. * * The engine lives in the MV2 persistent background page because that is a real * document on the extension origin, so it has both `navigator.gpu` and the same * Cache Storage the manager page writes to. The model stays resident in VRAM * across popup opens and across calls from other extensions. */ import { ScheduledEngine } from "../engine/index.js"; import { attachWebExtensionTransport, webExtensionStorage } from "../adapters/webext.js"; export const engine = new ScheduledEngine({ store: webExtensionStorage() }); attachWebExtensionTransport(engine); console.info("[Everything WebGPU] engine host ready; WebGPU present:", engine.hasWebGPU);