@ai-ecoverse/slicc-bios 1.39.3 → 1.39.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -371,7 +371,7 @@ seven can also join a tailnet, with a patched build of Tailscale's wasm client (
|
|
|
371
371
|
- **Before HELLO:** each stream channel is its own SCTP stream, so a node's first OPEN can reach the page ahead of its HELLO on the control channel, the order a `slicc prompt`, `abort` or `watch` sometimes arrives in. The page holds up to 64 such frames, 256 KiB in all (one stream's credit window), and serves them in order once the HELLO arrives, as the CLI does for the page's; frames held on a channel that closed meanwhile are dropped. A frame on the control channel before HELLO, a 65th held frame or byte past 256 KiB, a held frame that turns out malformed, and no HELLO within 10 s still close the link: before its HELLO a peer is anonymous.
|
|
372
372
|
- **Half-open links:** a link that hasn't said HELLO within 30 s of its offer (a follower that gave up on a bootstrap, say) is closed, and its peer connection with it. A device's row follows its link that said HELLO, never a newer half-open one; with only a half-open link left, a known device shows as away. Until a link says HELLO its row shows only that it's connecting, under its bootstrap id: no *Asks to follow*, no Allow and no switches, because its device isn't known yet. So Allow, which keeps the grant with the device's certificate, always finds the device it was clicked for. Unlinking a device drops every link it has and tells the ones that said HELLO.
|
|
373
373
|
- **Names:** each link gets an address from `198.18.57.0/24` (the first is `.11`) and the name `<host>.slicc.internal`, from the CLI's hostname, made DNS-safe and unique (`lars-mbp-2`). A link keeps its name when it reconnects, also after a reload and in any order, while the name is free: the page remembers each CLI process's name (by device certificate and process id) in `localStorage` (`slicc-os.link-labels`). A CLI that restarts is a new process, so it may come back as `lars-mbp-2` while its old link is still closing; once that link is gone, the new one takes the name back (and its SSH host key is written under it). Port 22 there is the CLI's built-in SSH server, and any other port is the CLI machine's loopback, under the CLI's policy.
|
|
374
|
-
- **Into the page (`kernel-in`):** the page's HELLO offers `kernel-in`, so a local CLI serves `http://<port>.kernel.localhost` on its own loopback
|
|
374
|
+
- **Into the page (`kernel-in`):** the page's HELLO offers `kernel-in`, so a local CLI serves `http://<port>.kernel.localhost` on its own loopback, on the port its HELLO names as `kernel.port` (80 when it names none; see [Kernel servers](#kernel-servers)) and carries each connection into the page as `OPEN { kind: 'kernel', port }`. The page answers with `kernel.dial({ port })` and pipes both ways with half-close under the same credit window. It refuses port 9222, the CDP facade, with `EACCES`, and anything but a port 1–65535 with `EINVAL`. A port nothing listens on gets `ECONNREFUSED` (the CLI answers 502). Every other node-opened kind is `EOPNOTSUPP`, and an OPEN without a JSON `kind` is `EPROTO`. This replaces slicc-node's kernel tunnel for a linked CLI.
|
|
375
375
|
- **Browsers (`cdp`):** a CLI with `cdp` lists its browsers in HELLO, and later in `OPEN { kind: 'browsers' }` updates (the page offers cap `browsers`, answers OPENED and END, and replaces the list). Each browser is a runtime of the 9222 facade named `<device>/<browser>`, so `playwright-cli --runtime lars-mbp/chrome …`, or `/json/list?runtime=lars-mbp/chrome`, drives it. Each facade connection opens its own `OPEN { kind: 'cdp', browser }` stream, framed as a `u32` length plus one JSON message (at most 64 MiB, otherwise the stream is reset with `EMSGSIZE`). Without a runtime, the facade still prefers slicc-extension, then slicc-node, then a linked browser that hosts this seven (`seven: true`), then the first linked one. The Network panel lists each device's browsers with their runtimes (`devices[].browsers`), and browser automation reads `via: 'link'` when linked browsers are what it drives. Seven shares the browsers only of a slicc CLI at **1.47.0 or later** (it relies on slicc-cli #325, #331 and #335), read from its HELLO's `version`: `dev` passes, and otherwise only the numeric `major.minor.patch` counts, so a `-suffix` is ignored (a Go pseudo-version such as `1.47.1-0.2026…-abc123` passes). A HELLO without `version`, or with one that doesn't parse, counts as older. An older CLI that offers `cdp` lists no browsers, on its device row or on the facade, its `OPEN { kind: 'browsers' }` updates are ignored and a `cdp` open to it is refused with `EACCES`; its row says "Update slicc to 1.47.0 or later to share this computer's browsers." Everything else it offers (`net`, `http`, `ssh`, `ws`, `udp`, its folders and `kernel-in`) stays.
|
|
376
376
|
- **Sync:** the Network panel's Sync section (spectrum's `model.tray`) shows this tray as `os/tray.js` sees it:
|
|
377
377
|
- **Name and role:** seven's name, `leader` while it leads the tray (`none` when disconnected), and `hosted`.
|
|
@@ -394,7 +394,7 @@ seven can also join a tailnet, with a patched build of Tailscale's wasm client (
|
|
|
394
394
|
- A device that reconnects replaces only its own process's link, so `slicc <join> prompt` doesn't drop that machine's `follow`. Control-only links (`caps: []`) get no `.slicc.internal` name and no exit.
|
|
395
395
|
- **Folders (`fs`):** a CLI started with `--mount <path>[:<name>][:ro]` lists its folders in HELLO, and later in `OPEN { kind: 'mounts' }` updates; the page offers cap `mounts`. Each is a `hostfs` source named `<device>/<name>`, so `mount -t hostfs lars-mbp/proj /mnt/proj` mounts it, and nothing is mounted unless someone asks. A bare source with no `<device>/`, as slicc-node named its folders (`mount -t hostfs project /mnt/p`, or one remembered from then), is the folder of that name on the CLI linked on this computer, when exactly one local CLI shares one. The device's row in Linked devices lists its folders (`folders`, with a Read-only badge; spectrum ≥ 1.58.0): **Mount** (`mountFolder(source)`) mounts one at `/mnt/<device>/<name>` (a folder named `.` or `..` is never listed), and **Eject** (`ejectFolder(source)`) unmounts it. The Files panel's Mounted strip shows each `hostfs` mount's source (`mountInfo()`), so `/mnt/proj · lars-mbp/proj` reads as another computer's folder. A mounted linked folder stays with the CLI process it was first granted from (`slicc-os.link-sources`), even if that process comes back under another name. If that process isn't linked, the folder goes to whichever process has the name now, but only when no other process with the same host name shares a folder of that name; otherwise it waits. So a remembered `lars-mbp/proj` never lands on another process's `proj`. A remembered linked folder that is mounted again before its CLI is back stays `nomedium`, and fills in when the CLI links. The kernel's `hostfs` hook answers such a source with a `MessagePort` (slicc-kernel ≥ 1.54.9), and the page serves it with `serveHostfsPort` over `OPEN { kind: 'fs', mount, op, … }` streams: `list` collects its NDJSON, a read over 64 KiB and every write get their own channel, and `watch` streams the CLI's change events. A read-only kernel mount, or a read-only export, sends `readonly: true` on every OPEN. A link that drops makes the mount `nomedium` until the CLI is back; files that were open reopen by path and continue if the host didn't change them.
|
|
396
396
|
- **SSH host key:** the CLI's HELLO carries its host key, and the page writes `<host>.slicc.internal,<address> <key>` into the system-wide `/etc/ssh/ssh_known_hosts`, replacing older entries for that name or address, so `ssh` never trusts a key on first sight, whichever user runs it. Seven manages these keys, not the user, and OpenSSH looks up a user's own file under the passwd home, which isn't always `$HOME`.
|
|
397
|
-
- **Tests:** `test/integration/remote.test.mjs` runs the real `slicc watch`, `slicc prompt` and `slicc abort` with `--signal stdio` against seven's real agent and a fake Bedrock. It also leads a fake tray hub and sends a `webhook.event`, which reaches the agent as a webhook lick (without its `authorization` header) and starts a run. `test/integration/tray.test.mjs` leads a fake tray hub and links a follower in the page through it, then rotates and unlinks. `test/integration/link.test.mjs` links a fake node in the page over a real `RTCPeerConnection` (one that offers `cdp` as version `1.46.9` or without a version shares no browsers while its net and folders still work; `1.47.0`, `dev` and a pseudo-version above share them), and, with `SLICC_CLI` set, the real `slicc attach --signal stdio`, relaying its NDJSON through the CDP binding: raw TCP and the http kind; kernel `ssh` with strict host-key checking against `--runner sh -c`, after `pnpm add -g @ai-ecoverse/wasix-openssh`; and, with the link as the exit, a name from the CLI's `--hosts` file, then refused under `--deny`; and `<port>.kernel.localhost` through the CLI's listener into a kernel server (`httptest`), with 502 for a closed port and the facade refused; a folder shared with `--mount`, mounted as `ref-node/proj`, read, written, seen changing on the host, and refused for writes when mounted `ro`; a second headless Chromium shared with `--cdp-extra`, listed and driven by `playwright-cli --runtime ref-node/<id>`; and a program WebSocket from kernel `bash` through the proxy to a `ws` echo server on the CLI's loopback: text, binary, the subprotocol, a close from each end, and `EACCES` under `--deny`; kernel `websocat`, installed from the catalog, to a `ws` echo on the CLI's loopback and, without `-k`, to `wss://echo.sliccy.ai/` (SLICC's echo, behind Cloudflare's certificate), so its own TLS checks the chain over raw TCP through the link, then failing at once under Directly and with no exit; and a kernel `python3` UDP socket (after `pnpm add -g @ai-ecoverse/wasix-python`) to a UDP echo server on the CLI's loopback, unconnected and connected, and `EACCES` on a connected socket under `--deny`, as with the fake node's own refusal. CI runs the CLI from npm, the pinned `@ai-ecoverse/slicc` devDependency.
|
|
397
|
+
- **Tests:** `test/integration/remote.test.mjs` runs the real `slicc watch`, `slicc prompt` and `slicc abort` with `--signal stdio` against seven's real agent and a fake Bedrock. It also leads a fake tray hub and sends a `webhook.event`, which reaches the agent as a webhook lick (without its `authorization` header) and starts a run. `test/integration/tray.test.mjs` leads a fake tray hub and links a follower in the page through it, then rotates and unlinks; a remote follower that names kernel port 17180 leaves `SLICC_PAGE_LOOPBACK`, the stored port and the profile script alone. `test/integration/link.test.mjs` links a fake node in the page over a real `RTCPeerConnection`, with a HELLO that names no kernel port, port 80 or 17180, and checks `SLICC_PAGE_LOOPBACK` in login shells and, after a reload, in every program (one that offers `cdp` as version `1.46.9` or without a version shares no browsers while its net and folders still work; `1.47.0`, `dev` and a pseudo-version above share them), and, with `SLICC_CLI` set, the real `slicc attach --signal stdio`, relaying its NDJSON through the CDP binding: raw TCP and the http kind; kernel `ssh` with strict host-key checking against `--runner sh -c`, after `pnpm add -g @ai-ecoverse/wasix-openssh`; and, with the link as the exit, a name from the CLI's `--hosts` file, then refused under `--deny`; and `<port>.kernel.localhost` through the CLI's listener into a kernel server (`httptest`), with 502 for a closed port and the facade refused; a folder shared with `--mount`, mounted as `ref-node/proj`, read, written, seen changing on the host, and refused for writes when mounted `ro`; a second headless Chromium shared with `--cdp-extra`, listed and driven by `playwright-cli --runtime ref-node/<id>`; and a program WebSocket from kernel `bash` through the proxy to a `ws` echo server on the CLI's loopback: text, binary, the subprotocol, a close from each end, and `EACCES` under `--deny`; kernel `websocat`, installed from the catalog, to a `ws` echo on the CLI's loopback and, without `-k`, to `wss://echo.sliccy.ai/` (SLICC's echo, behind Cloudflare's certificate), so its own TLS checks the chain over raw TCP through the link, then failing at once under Directly and with no exit; and a kernel `python3` UDP socket (after `pnpm add -g @ai-ecoverse/wasix-python`) to a UDP echo server on the CLI's loopback, unconnected and connected, and `EACCES` on a connected socket under `--deny`, as with the fake node's own refusal. CI runs the CLI from npm, the pinned `@ai-ecoverse/slicc` devDependency.
|
|
398
398
|
- **As the exit:** a CLI linked on this computer (`npx sliccy@next`) is the exit by itself until the user chooses one, so the kernel's HTTP and raw TCP get past CORS at once, as slicc-node's proxy did; a Tailscale exit node that is on comes first. A remote device that offers to be a default exit carries other traffic only once it's chosen. The Network panel's **Internet traffic** picker (`setExit`) is one choice across Directly, Tailscale exit nodes and linked devices: choosing a device turns off Tailscale's exit node, and choosing Tailscale clears the device. The choice of a device is kept in `localStorage` (`slicc-os.exit`), and while that device isn't connected, after a reload or while it reconnects, internet traffic **waits**: raw connections get `ENETUNREACH` and HTTP fails, rather than going out directly. Choosing Directly sends it directly again and is kept (`direct`), so a local CLI doesn't take it over, while a Tailscale exit node turned on later still does; unlinking the chosen exit device goes back to the automatic choice.
|
|
399
399
|
- **What the agent sees:** the transport's `traits` name the default exit while there is one, so the agent can say how its fetches go. `traits.exit` is `{ kind, caps }`:
|
|
400
400
|
- **`kind`:** `local` (a CLI on this computer), `remote` (a chosen linked device) or `tailnet` (a Tailscale exit node);
|
|
@@ -478,8 +478,8 @@ A server running inside the kernel (vite, `python -m http.server`, impeccable `l
|
|
|
478
478
|
A second test on its own tailnet sends kernel `bash`'s WebSocket through the proxy (`/dev/tcp/127.0.0.1/3128`) and the Tailscale exit to the peer's echo server (text, binary, the subprotocol and a close from each end), sees a handshake to the silent port answered `502` after a 5 s `handshakeMs`, and sees a vault placeholder in the URL or a header refused before anything reaches the peer.
|
|
479
479
|
|
|
480
480
|
To run it: `HEADSCALE=… TAILSCALED=… TAILSCALE=… TAILSCALE_E2E=1 npm test -- --test-name-pattern 'stage B'` (`TS_SHOTS=<dir>` also saves screenshots of the Network panel and the Install / Update row).
|
|
481
|
-
- **Plain `localhost` and `127.0.0.1` stay the real machine.** The service worker passes them through untouched. Inside the kernel it's the other way round: `localhost` is the kernel loopback, and `host.slicc.internal` reaches the machine. The kernel exports the page-visible name as `SLICC_PAGE_LOOPBACK
|
|
482
|
-
- **Why the port goes in the name.** `kernel.localhost:8400` would resolve to the machine's real port 8400 whenever the service worker doesn't answer, as for a navigation or a WebSocket, and reach the wrong server. `8400.kernel.localhost` lands on port 80, which is closed or answered by [slicc-node](https://github.com/ai-ecoverse/slicc-node)'s kernel tunnel, and it gives every kernel port its own origin. The service worker routes by the name alone and ignores the URL's port.
|
|
481
|
+
- **Plain `localhost` and `127.0.0.1` stay the real machine.** The service worker passes them through untouched. Inside the kernel it's the other way round: `localhost` is the kernel loopback, and `host.slicc.internal` reaches the machine. The kernel exports the page-visible name as `SLICC_PAGE_LOOPBACK` (`kernel.localhost`) and `SLICC_PAGE_LOOPBACK_URL` (`http://{port}.kernel.localhost`), so tools can print the right URL. With a kernel port (below) other than 80 they carry it: `kernel.localhost:17180` and `http://{port}.kernel.localhost:17180`.
|
|
482
|
+
- **Why the port goes in the name.** `kernel.localhost:8400` would resolve to the machine's real port 8400 whenever the service worker doesn't answer, as for a navigation or a WebSocket, and reach the wrong server. `8400.kernel.localhost` lands on the kernel port, 80 by default (below), which is closed or answered by a local slicc's kernel listener or [slicc-node](https://github.com/ai-ecoverse/slicc-node)'s kernel tunnel, and it gives every kernel port its own origin. The service worker routes by the name alone and ignores the URL's port, so `http://8400.kernel.localhost:17180/` reaches the same kernel server.
|
|
483
483
|
- **How a request gets there.** A seven page's request to `*.kernel.localhost`, with any method, reaches the service worker. `*.localhost` is potentially trustworthy, so an `https` page loads it without a mixed-content block. The service worker answers it itself, so nothing goes to the network, no Local Network Access prompt is shown, and there's no CORS preflight. It hands the request to the `/os/` tab: the requesting one, or else the most recently focused. That tab calls `kernel.loopbackFetch(request, { port })` and transfers the streamed response body back.
|
|
484
484
|
- **The response.** Status, headers and body pass through. Bodies stream, so `EventSource` and long-poll work, and closing the `EventSource` closes the kernel socket. seven's pages are cross-origin isolated, so where the server sent none, the service worker adds `access-control-allow-origin: <seven's origin>` with `access-control-allow-credentials: true`, and `cross-origin-resource-policy: cross-origin`. That lets a plain `<script src>` or `fetch` load from a server that knows nothing about CORS.
|
|
485
485
|
- **When it fails.**
|
|
@@ -491,11 +491,16 @@ A server running inside the kernel (vite, `python -m http.server`, impeccable `l
|
|
|
491
491
|
|
|
492
492
|
What doesn't work through the service worker:
|
|
493
493
|
|
|
494
|
-
- **WebSockets.** A service worker never sees them, so `ws://<port>.kernel.localhost/` goes to the machine's port 80. Vite's HMR can't connect: the page loads and runs, but needs reloading by hand.
|
|
494
|
+
- **WebSockets.** A service worker never sees them, so `ws://<port>.kernel.localhost/` goes to the machine's port 80, and `ws://<port>.kernel.localhost:<kernel port>/` to the kernel port. Vite's HMR can't connect: the page loads and runs, but needs reloading by hand.
|
|
495
495
|
- **Opening a kernel server as a page.** A navigation to `http://<port>.kernel.localhost/` is another origin, which seven's service worker doesn't control.
|
|
496
496
|
- **Cookies.** The responses are built in the page, so `Set-Cookie` is dropped.
|
|
497
497
|
|
|
498
|
-
**
|
|
498
|
+
**The kernel port.** A local slicc names the port its kernel listener uses in its HELLO, as `"kernel": { "port": <n> }`: 80 on macOS and Windows, a spare port in 17180–17189 where it can't have 80 (Linux for a normal user, or 80 taken), or its `--kernel-port`. A HELLO without the field (an older slicc, slicc-node) means 80. Kernel URLs then carry any port but 80: `http://8400.kernel.localhost:17180/`. seven keeps the last port a local node named, in `localStorage` (`slicc-kernel-port`); a remote device's or another seven's HELLO never changes it. It then:
|
|
499
|
+
|
|
500
|
+
- writes it to `/etc/profile.d/slicc-kernel.sh`, which sets `SLICC_PAGE_LOOPBACK` and `SLICC_PAGE_LOOPBACK_URL`, so every login shell opened after the HELLO gets it. Every HELLO checks the script itself and rewrites it when it names another port, one HELLO at a time, and the port is kept only once the script is written;
|
|
501
|
+
- hands it to the kernel's `env` when the kernel starts, so every program gets it after a reload. A shell that is already open keeps what it started with.
|
|
502
|
+
|
|
503
|
+
**slicc-node's kernel tunnel** carries what the service worker can't. slicc-node names no kernel port, so it's 80: it listens on `127.0.0.1:80`, or on the port `--kernel-port` gives it, and the URLs then carry that port: `http://8400.kernel.localhost:8080/`. It hands every connection to `*.kernel.localhost` to the page through a WebSocket, as raw bytes, so navigations, keep-alive and WebSocket upgrades (vite HMR) work. A page opened this way is its own origin, isolated from seven's.
|
|
499
504
|
|
|
500
505
|
- **Opening the tunnel.** When the local proxy's probe reports `kernelTunnel`, `os/tunnel.js` opens `ws://<proxy>/api/kernel-tunnel`, with the proxy key as a WebSocket subprotocol.
|
|
501
506
|
- **Serving streams.** For every stream slicc-node opens, the page calls `kernel.dial({ port })` and pipes the bytes both ways. Each direction may have at most 256 KiB in flight before the other side credits it, so a slow stream doesn't hold up the others.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-bios",
|
|
3
|
-
"version": "1.39.
|
|
3
|
+
"version": "1.39.5",
|
|
4
4
|
"description": "Slim loader that boots SLICC into OPFS and serves the UI from there",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -45,10 +45,10 @@
|
|
|
45
45
|
"format": "biome check --write ."
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@ai-ecoverse/slicc": "1.47.
|
|
49
|
-
"@ai-ecoverse/slicc-browsers": "1.
|
|
48
|
+
"@ai-ecoverse/slicc": "1.47.2",
|
|
49
|
+
"@ai-ecoverse/slicc-browsers": "1.18.1",
|
|
50
50
|
"@ai-ecoverse/slicc-node": "2.5.1",
|
|
51
|
-
"@ai-ecoverse/slicc-shared-web": "1.30.
|
|
51
|
+
"@ai-ecoverse/slicc-shared-web": "1.30.8",
|
|
52
52
|
"@ai-ecoverse/slicc-spectrum": "1.104.1",
|
|
53
53
|
"@ai-ecoverse/slicc-vault": "1.15.1",
|
|
54
54
|
"@biomejs/biome": "2.5.15",
|
|
@@ -15,10 +15,10 @@ importers:
|
|
|
15
15
|
dependencies:
|
|
16
16
|
'@ai-ecoverse/slicc-agent':
|
|
17
17
|
specifier: 6.18.3
|
|
18
|
-
version: 6.18.3(@ai-ecoverse/slicc-kernel@1.143.
|
|
18
|
+
version: 6.18.3(@ai-ecoverse/slicc-kernel@1.143.5)(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)
|
|
19
19
|
'@ai-ecoverse/slicc-kernel':
|
|
20
|
-
specifier: 1.143.
|
|
21
|
-
version: 1.143.
|
|
20
|
+
specifier: 1.143.5
|
|
21
|
+
version: 1.143.5
|
|
22
22
|
|
|
23
23
|
packages:
|
|
24
24
|
|
|
@@ -36,8 +36,8 @@ packages:
|
|
|
36
36
|
resolution: {integrity: sha512-WVaDUiZbd5nwG03+2WoQ8YA8ATC2mkx1DRCWpLuMFBNnyN0cd5IRoGF6KYNjMkXvBQCvZZxP+gwffrpmHYJ/cQ==}
|
|
37
37
|
engines: {node: '>=24'}
|
|
38
38
|
|
|
39
|
-
'@ai-ecoverse/slicc-kernel@1.143.
|
|
40
|
-
resolution: {integrity: sha512-
|
|
39
|
+
'@ai-ecoverse/slicc-kernel@1.143.5':
|
|
40
|
+
resolution: {integrity: sha512-ItE5vaA496NLHEr0HM4QUI8yEeRdUCIVtAFldTKAFdgRK7CdeKsaVbGLla10GxeIv0xNkcny2Ee1VHS1EjnCYQ==}
|
|
41
41
|
engines: {node: '>=26'}
|
|
42
42
|
|
|
43
43
|
'@ai-ecoverse/slicc-vault@1.15.1':
|
|
@@ -346,10 +346,10 @@ packages:
|
|
|
346
346
|
|
|
347
347
|
snapshots:
|
|
348
348
|
|
|
349
|
-
'@ai-ecoverse/slicc-agent@6.18.3(@ai-ecoverse/slicc-kernel@1.143.
|
|
349
|
+
'@ai-ecoverse/slicc-agent@6.18.3(@ai-ecoverse/slicc-kernel@1.143.5)(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(ws@8.22.0)':
|
|
350
350
|
dependencies:
|
|
351
351
|
'@ai-ecoverse/slicc-browsers': 1.9.2
|
|
352
|
-
'@ai-ecoverse/slicc-kernel': 1.143.
|
|
352
|
+
'@ai-ecoverse/slicc-kernel': 1.143.5
|
|
353
353
|
'@ai-ecoverse/slicc-vault': 1.15.1
|
|
354
354
|
'@aws-sdk/middleware-websocket': 3.972.54
|
|
355
355
|
'@earendil-works/chord': 1.3.0
|
|
@@ -372,7 +372,7 @@ snapshots:
|
|
|
372
372
|
|
|
373
373
|
'@ai-ecoverse/slicc-browsers@1.9.2': {}
|
|
374
374
|
|
|
375
|
-
'@ai-ecoverse/slicc-kernel@1.143.
|
|
375
|
+
'@ai-ecoverse/slicc-kernel@1.143.5': {}
|
|
376
376
|
|
|
377
377
|
'@ai-ecoverse/slicc-vault@1.15.1': {}
|
|
378
378
|
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
"": {
|
|
7
7
|
"name": "slicc-bios-packages",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@ai-ecoverse/slicc-browsers": "1.
|
|
9
|
+
"@ai-ecoverse/slicc-browsers": "1.18.1",
|
|
10
10
|
"@ai-ecoverse/slicc-cdp": "1.30.18",
|
|
11
11
|
"@ai-ecoverse/slicc-clipboard": "1.0.2",
|
|
12
|
-
"@ai-ecoverse/slicc-kernel": "1.143.
|
|
12
|
+
"@ai-ecoverse/slicc-kernel": "1.143.5",
|
|
13
13
|
"@ai-ecoverse/slicc-spectrum": "1.104.1",
|
|
14
14
|
"@ai-ecoverse/wasi-fnox": "1.39.0-6",
|
|
15
15
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-19",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"node_modules/@ai-ecoverse/slicc-browsers": {
|
|
41
|
-
"version": "1.
|
|
42
|
-
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-browsers/-/slicc-browsers-1.
|
|
43
|
-
"integrity": "sha512-
|
|
41
|
+
"version": "1.18.1",
|
|
42
|
+
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-browsers/-/slicc-browsers-1.18.1.tgz",
|
|
43
|
+
"integrity": "sha512-D5C6nZlDnLhnFwPUc7sYKSvzFLJLgl++DNSit/Pq4IHTC/gsDQd7aQuQmseWyJcR23ma/nQRAezPie2D+A3oHQ==",
|
|
44
44
|
"license": "Apache-2.0",
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=24"
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
"node_modules/@ai-ecoverse/slicc-kernel": {
|
|
75
|
-
"version": "1.143.
|
|
76
|
-
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-kernel/-/slicc-kernel-1.143.
|
|
77
|
-
"integrity": "sha512-
|
|
75
|
+
"version": "1.143.5",
|
|
76
|
+
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-kernel/-/slicc-kernel-1.143.5.tgz",
|
|
77
|
+
"integrity": "sha512-ItE5vaA496NLHEr0HM4QUI8yEeRdUCIVtAFldTKAFdgRK7CdeKsaVbGLla10GxeIv0xNkcny2Ee1VHS1EjnCYQ==",
|
|
78
78
|
"license": "Apache-2.0",
|
|
79
79
|
"engines": {
|
|
80
80
|
"node": ">=26"
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"private": true,
|
|
4
4
|
"description": "Packages the BIOS installs from npm into OPFS, pinned by package-lock.json and pnpm-lock.yaml",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@ai-ecoverse/slicc-browsers": "1.
|
|
6
|
+
"@ai-ecoverse/slicc-browsers": "1.18.1",
|
|
7
7
|
"@ai-ecoverse/slicc-cdp": "1.30.18",
|
|
8
8
|
"@ai-ecoverse/slicc-clipboard": "1.0.2",
|
|
9
|
-
"@ai-ecoverse/slicc-kernel": "1.143.
|
|
9
|
+
"@ai-ecoverse/slicc-kernel": "1.143.5",
|
|
10
10
|
"@ai-ecoverse/slicc-spectrum": "1.104.1",
|
|
11
11
|
"@ai-ecoverse/wasi-fnox": "1.39.0-6",
|
|
12
12
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-19",
|
|
@@ -9,8 +9,8 @@ importers:
|
|
|
9
9
|
.:
|
|
10
10
|
dependencies:
|
|
11
11
|
'@ai-ecoverse/slicc-browsers':
|
|
12
|
-
specifier: 1.
|
|
13
|
-
version: 1.
|
|
12
|
+
specifier: 1.18.1
|
|
13
|
+
version: 1.18.1
|
|
14
14
|
'@ai-ecoverse/slicc-cdp':
|
|
15
15
|
specifier: 1.30.18
|
|
16
16
|
version: 1.30.18
|
|
@@ -18,8 +18,8 @@ importers:
|
|
|
18
18
|
specifier: 1.0.2
|
|
19
19
|
version: 1.0.2
|
|
20
20
|
'@ai-ecoverse/slicc-kernel':
|
|
21
|
-
specifier: 1.143.
|
|
22
|
-
version: 1.143.
|
|
21
|
+
specifier: 1.143.5
|
|
22
|
+
version: 1.143.5
|
|
23
23
|
'@ai-ecoverse/slicc-spectrum':
|
|
24
24
|
specifier: 1.104.1
|
|
25
25
|
version: 1.104.1
|
|
@@ -98,8 +98,8 @@ importers:
|
|
|
98
98
|
|
|
99
99
|
packages:
|
|
100
100
|
|
|
101
|
-
'@ai-ecoverse/slicc-browsers@1.
|
|
102
|
-
resolution: {integrity: sha512-
|
|
101
|
+
'@ai-ecoverse/slicc-browsers@1.18.1':
|
|
102
|
+
resolution: {integrity: sha512-D5C6nZlDnLhnFwPUc7sYKSvzFLJLgl++DNSit/Pq4IHTC/gsDQd7aQuQmseWyJcR23ma/nQRAezPie2D+A3oHQ==}
|
|
103
103
|
engines: {node: '>=24'}
|
|
104
104
|
|
|
105
105
|
'@ai-ecoverse/slicc-cdp@1.30.18':
|
|
@@ -111,8 +111,8 @@ packages:
|
|
|
111
111
|
resolution: {integrity: sha512-p7b1h85qkiU0LKjNLCLiU7GVXjGigkyR2+VUCInM1cZo2yjLFxr7tGAOO09e6OG9nB7XKiQn3W88wb3s0gxy+g==}
|
|
112
112
|
engines: {node: '>=24', slicc-kernel: '>=1.75.0'}
|
|
113
113
|
|
|
114
|
-
'@ai-ecoverse/slicc-kernel@1.143.
|
|
115
|
-
resolution: {integrity: sha512-
|
|
114
|
+
'@ai-ecoverse/slicc-kernel@1.143.5':
|
|
115
|
+
resolution: {integrity: sha512-ItE5vaA496NLHEr0HM4QUI8yEeRdUCIVtAFldTKAFdgRK7CdeKsaVbGLla10GxeIv0xNkcny2Ee1VHS1EjnCYQ==}
|
|
116
116
|
engines: {node: '>=26'}
|
|
117
117
|
|
|
118
118
|
'@ai-ecoverse/slicc-spectrum@1.104.1':
|
|
@@ -207,13 +207,13 @@ packages:
|
|
|
207
207
|
|
|
208
208
|
snapshots:
|
|
209
209
|
|
|
210
|
-
'@ai-ecoverse/slicc-browsers@1.
|
|
210
|
+
'@ai-ecoverse/slicc-browsers@1.18.1': {}
|
|
211
211
|
|
|
212
212
|
'@ai-ecoverse/slicc-cdp@1.30.18': {}
|
|
213
213
|
|
|
214
214
|
'@ai-ecoverse/slicc-clipboard@1.0.2': {}
|
|
215
215
|
|
|
216
|
-
'@ai-ecoverse/slicc-kernel@1.143.
|
|
216
|
+
'@ai-ecoverse/slicc-kernel@1.143.5': {}
|
|
217
217
|
|
|
218
218
|
'@ai-ecoverse/slicc-spectrum@1.104.1': {}
|
|
219
219
|
|