import { createPiCli } from "./piCli.js"; import { createSandbox } from "./sandbox.js"; import "./styles.css"; import { createWebTerminal } from "./webTerminal.js"; const nodes = { status: document.querySelector("#status"), modelStatus: document.querySelector("#model-status"), sandboxStatus: document.querySelector("#sandbox-status"), modelLabel: document.querySelector("#model-label"), terminal: document.querySelector("#terminal"), modelGate: document.querySelector("#model-gate"), gateStatus: document.querySelector("#gate-status"), gateDevice: document.querySelector("#gate-device"), confirmLoadModel: document.querySelector("#confirm-load-model"), useTestModel: document.querySelector("#use-test-model"), }; const params = new URLSearchParams(window.location.search); const terminal = await createWebTerminal(nodes.terminal); const sandbox = createSandbox({ onStatus: (text) => { nodes.sandboxStatus.textContent = text; }, }); const cli = createPiCli({ terminal, sandbox, nodes, params, }); window.__piCliWeb = cli; window.__piWebAgent = { get transcript() { return cli.transcript; }, get terminalText() { return cli.outputText; }, get modelReady() { return cli.modelReady; }, get status() { return cli.status; }, runInput(text) { return cli.handleLine(text); }, loadModel() { return cli.loadModel(); }, };