@ai-ecoverse/slicc-bios 1.51.30 → 1.51.31
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
|
@@ -111,7 +111,7 @@ A kernel process can still write to `/os/` and `/node_modules/` (any process whi
|
|
|
111
111
|
- **Memory:** what the agent remembers (slicc-agent ≥ 3.14.0, spectrum ≥ 1.28.0). Each scope is one `MEMORY.md`: `/home/.pi/agent/memory/` for everyone and one per cone, `/home/.pi/agent/agent-memory/<path>/` for roles. An entry is a `###` title under a `##` section, with an optional `tag:` line before its body. The agent writes them with `memory_write`, the panel's **Save** and **Forget** write the same files, and a file edited by hand shows up in the panel.
|
|
112
112
|
- **Changes:** what agents changed in git repositories, by repository, with the diff and **Accept** or **Revert** per change or for all (slicc-agent ≥ 3.21.1, spectrum ≥ 1.37.0). It sits next to the Freezer, closed by default, and opens from the rail or View. Git isn't preinstalled, so until someone runs `pnpm add -g @ai-ecoverse/wasm-git` it says so and shows that command.
|
|
113
113
|
- **Freezer:** every conversation in the session database (slicc-agent ≥ 3.23.0, spectrum ≥ 1.39.0). Live cones show **Open**. A cone deleted with **Delete cone** in Agents (which asks first), an earlier chat left by New chat, or a stopped scoop or agent run stays there with its title, model, kind and message count. **Thaw** brings it back as a cone, and the row then says what it was thawed as. **Remove**, which asks first, deletes its working folders; the conversation stays in the database.
|
|
114
|
-
- **Settings:** the theme, the model, thinking, diffs, and the Bedrock and Adobe accounts. Below Accounts, **MCP servers** lists
|
|
114
|
+
- **Settings:** the theme, the model, thinking, diffs, and the Bedrock and Adobe accounts. Below Accounts, **MCP servers** lists every server in the agent's `mcp.json` with its state, and **Add server** adds one without a terminal: a name, an `https:` URL and whether it uses a token (slicc-agent ≥ 7.11.0, spectrum ≥ 1.108.0). The agent writes the file for the page's owner, `0600 root:root`, and an entry it refuses, such as a literal secret, shows its reason in the form and writes nothing. **Remove** takes a server out; to change one, remove it and add it again. The file stays the advanced route from a root terminal: with kernel users on, as on production, the agent reads `/etc/slicc/agent/mcp.json` and ignores a `~/.pi/agent/mcp.json` in any home; with users off (`#users=off`) it reads `/home/.pi/agent/mcp.json`. For a server whose headers use a `${NAME}` placeholder, or one added with a token, **Connect** takes the token (slicc-agent ≥ 3.33.0, spectrum ≥ 1.50.0). A server without an `Authorization` header that answers 401 needs an OAuth sign-in: its row reads *Needs sign-in* with **Sign in**, or *Sign-in expired* (slicc-agent ≥ 3.36.0, spectrum ≥ 1.54.0), which opens a pop-up on the server's authorization server. The agent registers `https://<origin>/oauth/mcp-callback` as its redirect URI, and the service worker serves that path from the agent's `dist/oauth/mcp-callback.html` in `/opt/agent`, which hands the code back over `BroadcastChannel('slicc-mcp-oauth')`, clears its address and closes. Tool cards label MCP calls `server · tool`. The agent's `models` command lists the models of the connected accounts and switches the caller's model (slicc-agent ≥ 3.34.0).
|
|
115
115
|
- **Keeping seven's files:** at the first chat send in a page session, `os/storage.js` calls `navigator.storage.persist()`, unless storage is already persisted. If Chrome declines, every chat panel shows a warning notice (`model.notices`, spectrum ≥ 1.43.0, from `os/notices.js`): *Seven’s files may be cleared*, saying Chrome may clear seven's files and chats when disk space runs low. Chrome grants persistence by engagement, not by a setting, and installing seven as an app is the reliable way. So when Chrome offers to install (`beforeinstallprompt`), the notice says to install seven as an app and offers **Install**, which opens Chrome's install prompt. Otherwise it says to bookmark seven. **Try again** asks again. After `appinstalled`, seven asks by itself and drops the notice once storage is kept. Dismissing the notice is remembered in `localStorage`. The folder-mount request (see [Folder mounts](#folder-mounts)) stays as it is.
|
|
116
116
|
- **Installing as an app:** [`src/manifest.json`](src/manifest.json) makes seven installable. Its name is *SLICC seven* and its launcher label *seven*. It opens standalone, its `id` and `scope` are `/` and its `start_url` is the BIOS's folder (`./`), and its icons in `src/icons/` come as `any` and `maskable`, relative to the manifest. The UI links `manifest.json`, which the service worker redirects to the BIOS's. The app starts at the BIOS, which checks the packages and goes on to `os/` as in a tab, so the service worker, COOP/COEP and the boot path are the same. Both pages link the manifest and set `theme-color` (`#f8f8f8` light, `#1b1b1b` dark); `os.css` gives `html` the same background, so nothing flashes before the UI paints. Each `<branch>.sliccy.ai` is its own origin, so a preview installs as an app of its own.
|
|
117
117
|
- **Adobe sign-in:** **Connect** on the Adobe account signs in to Adobe IMS. IMS only redirects to `www.sliccy.ai/auth/callback`, and seven is cross-origin isolated, so the popup has no opener to report back to. Which path seven uses depends on where it runs:
|
|
@@ -131,7 +131,7 @@ The kernel runs with users on (slicc-kernel ≥ 1.81.0): files have owners and m
|
|
|
131
131
|
- **The mode:** production seven (`seven.sliccy.ai` and `www.sliccy.ai`) always runs `'enforce'` (`PRODUCTION_USERS` in `os/users.js`). A URL or `localStorage` asking for another mode is ignored there, with a console warning, so nobody can switch seven off from a link. On previews, localhost and in tests the default is `'enforce'` too, and `#users=off`, `#users=report` or `#users=enforce` picks another, remembered in `localStorage['slicc-os.users']`. `'report'` checks every file call and logs what `'enforce'` would refuse, and refuses nothing. `sudo` asks only under `'enforce'`. bios passes the mode to every kernel it creates, `'off'` included, since kernels from K4b on default to `'enforce'`. `<html data-users>` says which mode is on.
|
|
132
132
|
- **Who is who:** the human's panel terminals are root (`/root`, mode 0700). With users on, bios adds the first cone, `cone`, at every boot: in `sudo`, home `0710`, umask `077`. The agent adds further cones and scoops through its `KernelSource`. The file tree skips `~/.local/share/pnpm` and `~/.cache` of every home in `/etc/passwd`.
|
|
133
133
|
- **Folders** bios mounts (picked in the Files panel, remembered, or linked) belong to the first cone, so the agent can write them, and to root while users are off.
|
|
134
|
-
- **Files from before users:** agents start on the new layout; nothing is moved. On the first boot with users on, bios runs `chmod -R go-rwx` as root, once, on what earlier versions left readable to everyone: `/home/.pi`, `/home/.slicc`, `/home/sprinkles`, `/home/.gelatiere`, `/home/.welcomed`, `/home/.welcome.json`, `/home/sessions`, `/home/.local` and `/scoops`. So no cone or scoop reads an old
|
|
134
|
+
- **Files from before users:** agents start on the new layout; nothing is moved. On the first boot with users on, bios runs `chmod -R go-rwx` as root, once, on what earlier versions left readable to everyone: `/home/.pi`, `/home/.slicc`, `/home/sprinkles`, `/home/.gelatiere`, `/home/.welcomed`, `/home/.welcome.json`, `/home/sessions`, `/home/.local` and `/scoops`. So no cone or scoop reads an old `/home/.pi/agent/mcp.json` with its tokens, and root still reads everything. The marker `var/lib/slicc/legacy-locked` keeps it from running again; cone and scoop homes and other files in `/home` aren't touched.
|
|
135
135
|
- **The agent's `KernelSource`** (`os/users.js`) passes `connect({ user, agentId })`, `users` and `groups` to the kernel, only for agent users. It refuses root and any user but `cone`, `cone-<n>` and `scoop-<folder>`, requires the agentId to match the user exactly (`cone:cone`, `cone:cone-2`, `scoop:<folder>`), and allows groups only of cones and `sudo` only for cones. A cone is always added to `sudo`, even when the caller leaves it out, since sudo membership is what makes a cone (the vault's J2 rule). The tag is `{"kind":"agent","agentId":…}` as JSON, and the agent's root client carries `{"kind":"agent","agentId":"root"}`; a panel terminal's is `{"kind":"user","where":"terminal:<tab>"}`.
|
|
136
136
|
- **Protected code paths:** under `'enforce'`, the kernel gets `protect: { paths: ['/node_modules', '/opt/agent', '/opt/tailscale', '/opt/slicc', '/os'], writers: ['bios-installer'] }` (slicc-kernel ≥ 1.81.0). No process changes them, root included (`EROFS`; a cone sees `EACCES` first), and nothing mounts at, under or above them.
|
|
137
137
|
- **bios's installs** (pnpm into the base set, `/opt/*` and `/opt/slicc/<project>`, and the pass that makes them readable) run as `kernel.run(argv, { cwd, tag: 'bios-installer', env })`. The env is clean: `HOME=/opt/slicc/.installer`, its own config and cache, the system `PNPM_HOME` and `PATH`, and an empty `NODE_OPTIONS`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-ecoverse/slicc-bios",
|
|
3
|
-
"version": "1.51.
|
|
3
|
+
"version": "1.51.31",
|
|
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",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@ai-ecoverse/slicc-browsers": "1.18.21",
|
|
54
54
|
"@ai-ecoverse/slicc-cdp": "1.43.1",
|
|
55
55
|
"@ai-ecoverse/slicc-shared-web": "2.13.7",
|
|
56
|
-
"@ai-ecoverse/slicc-spectrum": "1.
|
|
56
|
+
"@ai-ecoverse/slicc-spectrum": "1.108.1",
|
|
57
57
|
"@ai-ecoverse/slicc-vault": "1.18.2",
|
|
58
58
|
"@biomejs/biome": "2.6.2",
|
|
59
59
|
"aws4fetch": "1.0.20",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"@ai-ecoverse/slicc-browsers": "1.18.21",
|
|
11
11
|
"@ai-ecoverse/slicc-capture": "1.4.1",
|
|
12
12
|
"@ai-ecoverse/slicc-kernel": "1.170.3",
|
|
13
|
-
"@ai-ecoverse/slicc-spectrum": "1.
|
|
13
|
+
"@ai-ecoverse/slicc-spectrum": "1.108.1",
|
|
14
14
|
"@ai-ecoverse/wasi-fnox": "1.42.0-1",
|
|
15
15
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-21",
|
|
16
16
|
"@ai-ecoverse/wasm-bash": "5.3.0-23",
|
|
@@ -146,9 +146,9 @@
|
|
|
146
146
|
}
|
|
147
147
|
},
|
|
148
148
|
"node_modules/@ai-ecoverse/slicc-spectrum": {
|
|
149
|
-
"version": "1.
|
|
150
|
-
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-spectrum/-/slicc-spectrum-1.
|
|
151
|
-
"integrity": "sha512-
|
|
149
|
+
"version": "1.108.1",
|
|
150
|
+
"resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-spectrum/-/slicc-spectrum-1.108.1.tgz",
|
|
151
|
+
"integrity": "sha512-E2bJcQR3fh59/lo1CSWR4CNXUX6N6MSKbKnL8xQvmvnclH5VYjDHD34hv3cs6vFZaFPE62I3RNV25CbHr4iqPQ==",
|
|
152
152
|
"license": "Apache-2.0",
|
|
153
153
|
"engines": {
|
|
154
154
|
"node": ">=24"
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"@ai-ecoverse/slicc-browsers": "1.18.21",
|
|
8
8
|
"@ai-ecoverse/slicc-capture": "1.4.1",
|
|
9
9
|
"@ai-ecoverse/slicc-kernel": "1.170.3",
|
|
10
|
-
"@ai-ecoverse/slicc-spectrum": "1.
|
|
10
|
+
"@ai-ecoverse/slicc-spectrum": "1.108.1",
|
|
11
11
|
"@ai-ecoverse/wasi-fnox": "1.42.0-1",
|
|
12
12
|
"@ai-ecoverse/wasi-pnpm": "12.9.1-21",
|
|
13
13
|
"@ai-ecoverse/wasm-bash": "5.3.0-23",
|
|
@@ -21,8 +21,8 @@ importers:
|
|
|
21
21
|
specifier: 1.170.3
|
|
22
22
|
version: 1.170.3
|
|
23
23
|
'@ai-ecoverse/slicc-spectrum':
|
|
24
|
-
specifier: 1.
|
|
25
|
-
version: 1.
|
|
24
|
+
specifier: 1.108.1
|
|
25
|
+
version: 1.108.1
|
|
26
26
|
'@ai-ecoverse/wasi-fnox':
|
|
27
27
|
specifier: 1.42.0-1
|
|
28
28
|
version: 1.42.0-1
|
|
@@ -105,8 +105,8 @@ packages:
|
|
|
105
105
|
webgpu:
|
|
106
106
|
optional: true
|
|
107
107
|
|
|
108
|
-
'@ai-ecoverse/slicc-spectrum@1.
|
|
109
|
-
resolution: {integrity: sha512-
|
|
108
|
+
'@ai-ecoverse/slicc-spectrum@1.108.1':
|
|
109
|
+
resolution: {integrity: sha512-E2bJcQR3fh59/lo1CSWR4CNXUX6N6MSKbKnL8xQvmvnclH5VYjDHD34hv3cs6vFZaFPE62I3RNV25CbHr4iqPQ==}
|
|
110
110
|
engines: {node: '>=24'}
|
|
111
111
|
|
|
112
112
|
'@ai-ecoverse/wasi-fnox@1.42.0-1':
|
|
@@ -270,7 +270,7 @@ snapshots:
|
|
|
270
270
|
- utf-8-validate
|
|
271
271
|
optional: true
|
|
272
272
|
|
|
273
|
-
'@ai-ecoverse/slicc-spectrum@1.
|
|
273
|
+
'@ai-ecoverse/slicc-spectrum@1.108.1': {}
|
|
274
274
|
|
|
275
275
|
'@ai-ecoverse/wasi-fnox@1.42.0-1': {}
|
|
276
276
|
|