diff --git a/network-poc/static/index.html b/network-poc/static/index.html index 1e2c6cf..0a35d6f 100644 --- a/network-poc/static/index.html +++ b/network-poc/static/index.html @@ -3246,7 +3246,7 @@ Write the corrected code.`; try { // Käynnistetään WASM Web Workerissa - coderWorker = new Worker('./worker.js'); + coderWorker = new Worker('./worker.js', { type: 'module' }); // Workerin console.log-viestit → pääsäikeen kuuntelija // Worker ei voi kutsua console.log näkyvästi, joten WASM:n console_log diff --git a/network-poc/static/worker.js b/network-poc/static/worker.js index 1f33288..64aec00 100644 --- a/network-poc/static/worker.js +++ b/network-poc/static/worker.js @@ -1,33 +1,31 @@ -// Kipinä WASM Worker — ajaa kielimallin inferenssin erillisessä säikeessä -// Pääsäie (UI) ei jäädy pitkien laskutoimituksien aikana. +// Kipinä WASM Worker (ES module) — ajaa kielimallin inferenssin erillisessä säikeessä +import init, { start_agent_node, set_gpu_load, set_auto_tasks } from './pkg/node.js'; -let wasm = null; +let wasmReady = false; self.onmessage = async (e) => { const { type, data } = e.data; if (type === 'init') { try { - // Ladataan WASM-moduuli Workerissa - importScripts('./pkg/node.js'); - wasm = wasm_bindgen; - await wasm.default(); + await init(); + wasmReady = true; self.postMessage({ type: 'ready' }); } catch (err) { self.postMessage({ type: 'error', message: 'WASM init: ' + err.message }); } } else if (type === 'start') { - if (!wasm) return; + if (!wasmReady) return; const { hubUrl, hasWebGPU, deviceInfo, taskId } = data; try { - await wasm.start_agent_node(hubUrl, hasWebGPU, deviceInfo, taskId); + await start_agent_node(hubUrl, hasWebGPU, deviceInfo, taskId); self.postMessage({ type: 'started' }); } catch (err) { self.postMessage({ type: 'error', message: 'Node: ' + err.message }); } } else if (type === 'set_gpu_load') { - if (wasm) wasm.set_gpu_load(data.load); + if (wasmReady) set_gpu_load(data.load); } else if (type === 'set_auto_tasks') { - if (wasm) wasm.set_auto_tasks(data.enabled); + if (wasmReady) set_auto_tasks(data.enabled); } };