@ai-ecoverse/slicc-bios 1.21.1 → 1.22.0

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
@@ -172,7 +172,7 @@ The Files panel lists `/opt/grammars/node_modules` but doesn't scan it.
172
172
 
173
173
  #### Optional packages
174
174
 
175
- Below the system rows, Install / Update offers **Optional packages** (spectrum ≥ 1.42.0): tools that seven doesn't preinstall, each at the version the homescoop coordinator certified. The catalog is [`src/packages/optional/`](src/packages/optional/): `package.json` pins each package exactly, `package-lock.json` (made with `npm install --package-lock-only --ignore-scripts`, never installed) holds its integrity, and `catalog.json` gives its id, label, description, commands, tarball size and `requires`. A test keeps the three in step. Today it offers git, the GitHub CLI, OpenSSH, `slicc` (see [Sevens this kernel follows](#network)), Python, the Python data tools (numpy, pandas and matplotlib), Node.js (slicc-jsh's `node` and `jsh`), `sliccy:browser` for `.jsh` scripts, Ruby, Perl, Biome, the PDF tools (poppler), qpdf, rsync, screen, SQLite, dig, websocat, ntfy, GnuPG and fnox.
175
+ Below the system rows, Install / Update offers **Optional packages** (spectrum ≥ 1.42.0): tools that seven doesn't preinstall, each at the version the homescoop coordinator certified. The catalog is [`src/packages/optional/`](src/packages/optional/): `package.json` pins each package exactly, `package-lock.json` (made with `npm install --package-lock-only --ignore-scripts`, never installed) holds its integrity, and `catalog.json` gives its id, label, description, commands, tarball size and `requires`. A test keeps the three in step. Today it offers git, the GitHub CLI, OpenSSH, `slicc` (see [Sevens this kernel follows](#network)), Python, the Python data tools (numpy, pandas and matplotlib), Node.js (slicc-jsh's `node` and `jsh`), `sliccy:browser` for `.jsh` scripts, Ruby, Perl, Biome, the PDF tools (poppler), qpdf, rsync, screen, SQLite, dig, websocat, ntfy, GnuPG, fnox and mcpcat (an MCP client).
176
176
 
177
177
  - **Install** runs `pnpm add -g <package>@<version>` in the page's kernel, as a user would, under the Web Lock `slicc-optional`, so the commands work at once in every open shell. pnpm 12 gives each global add its own project under `$PNPM_HOME/global/v11/`; bios reads `PNPM_HOME` from the kernel's environment. Afterwards `os/packages.js` reads that project's `pnpm-lock.yaml`: every package in it, the one added and each dependency, must be a version in the catalog's lockfile or the base set's, with that integrity. homescoop pins `@ai-ecoverse/*` dependencies exactly (uv → Python, git → bash), so the catalog's lockfile names them all. Anything else, a dependency pnpm resolved to another version included, removes the package again and fails the row with *This version doesn't match the tested build*. An entry's `requires` (uv needs Python) are installed first. A package's kernel command always wins over the same package's Node `bin`. After each install and update, for every name that a package declares both in `slicc.commands` and in `bin`, bios removes the link that pnpm made in `$PNPM_HOME/bin`, but only when that link points into this package, so `mcpcat` runs `/usr/bin/mcpcat`, not a `#!/usr/bin/env node` script with no Node to run it. Another package's bins are never touched, and a package with only a `bin` keeps it. `/opt/user` (Your packages) isn't affected: its bins are not on `PATH`. A project entry also **updates** a required package that's older than the catalog's before it installs, since it runs on the catalog's version: the data tools override their own Python away, and their builds need the catalog's Python. A global add brings its own pinned dependencies, so it leaves an older required package as it is.
178
178
  - **State** comes from pnpm's global projects, not from a list of bios's own, so a package installed by hand shows as installed with its version. One older than the catalog's offers **Update**, which adds the catalog's version; one at or above it offers **Remove**. bios never downgrades.
@@ -479,7 +479,7 @@ Limits:
479
479
 
480
480
  ## Certified packages
481
481
 
482
- [`src/packages/certs.json`](src/packages/certs.json) lists every certified version of the gated packages: slicc-kernel, slicc-cdp, and the `wasi-*`, `wasix-*`, `wasm-*` and `py-*` packages. Each entry has its npm integrity, and its tarball sha256 where the cert gave one. `test/integration/pins.test.mjs` fails when any lockfile seven ships (the base set, `/opt/agent`, the optional catalog with its nested dependencies, and Tailscale) pins a gated package that isn't listed there with the same integrity. It also fails when a pinned package's `engines.slicc-kernel` or kernel peer range isn't met by the pinned kernel. An uncertified bump, from Renovate or anyone, turns CI red. When homescoop (or the CDP coordinator, for slicc-cdp) certifies a version, add it here in the same PR that pins it.
482
+ [`src/packages/certs.json`](src/packages/certs.json) lists every certified version of the gated packages: slicc-kernel, slicc-cdp, mcpcat, and the `wasi-*`, `wasix-*`, `wasm-*` and `py-*` packages. Each entry has its npm integrity, and its tarball sha256 where the cert gave one. `test/integration/pins.test.mjs` fails when any lockfile seven ships (the base set, `/opt/agent`, the optional catalog with its nested dependencies, and Tailscale) pins a gated package that isn't listed there with the same integrity. It also fails when a pinned package's `engines.slicc-kernel` or kernel peer range isn't met by the pinned kernel. An uncertified bump, from Renovate or anyone, turns CI red. When homescoop (or the CDP coordinator, for slicc-cdp) certifies a version, add it here in the same PR that pins it.
483
483
 
484
484
  ### Canary
485
485
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-bios",
3
- "version": "1.21.1",
3
+ "version": "1.22.0",
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",
@@ -600,5 +600,9 @@
600
600
  "@ai-ecoverse/wasm-xz@5.8.4-1": {
601
601
  "integrity": "sha512-Y8AHpR0+RGfoneyERltFK4jt3P8EfsQzvKMrSFfaLWgtWk7dIC28GuHBK76+IsbE9+fbfs4m9ItcpqjlQckH4Q==",
602
602
  "sha256": "63fe14fc128ba70aeed95c57a9bca8f72f37f11a3af63f6bd859c93c89fd9149"
603
+ },
604
+ "@ai-ecoverse/mcpcat@0.16.3": {
605
+ "integrity": "sha512-Sah/qC/1x31WKsVK+tyHYSdV8StFLpZEmuNyWqu2inbK19IL7ZyZyOb+85CGVAG1+ZRdXfE1y0eUAQuu0jnm3w==",
606
+ "sha256": "d492f978d7f0925378369feaddb2925f9220169b965c3a7b0a2854acd6668bc3"
603
607
  }
604
608
  }
@@ -155,5 +155,12 @@
155
155
  "description": "Signs, verifies and encrypts files and commits with OpenPGP keys.",
156
156
  "commands": ["gpg", "gpgv", "gpg-agent", "gpgconf", "gpg-connect-agent", "gpg2"],
157
157
  "size": 3328285
158
+ },
159
+ "@ai-ecoverse/mcpcat": {
160
+ "id": "mcpcat",
161
+ "label": "mcpcat (MCP client)",
162
+ "description": "Calls MCP servers from the terminal: lists and calls their tools, resources and prompts, over HTTP or a stdio command. In a header, -H 'Authorization: Bearer ${NAME}' (single quotes) sends the vault's placeholder, which the vault fills in where a secret rule allows that host; mcpcat never prints the value.",
163
+ "commands": ["mcpcat"],
164
+ "size": 589050
158
165
  }
159
166
  }
@@ -6,6 +6,7 @@
6
6
  "": {
7
7
  "name": "slicc-bios-optional",
8
8
  "dependencies": {
9
+ "@ai-ecoverse/mcpcat": "0.16.3",
9
10
  "@ai-ecoverse/slicc-jsh": "0.43.0",
10
11
  "@ai-ecoverse/sliccy-browser": "0.1.3",
11
12
  "@ai-ecoverse/wasi-biome": "2.5.15-4",
@@ -29,6 +30,19 @@
29
30
  "@ai-ecoverse/wasm-sqlite3": "3.54.0-3"
30
31
  }
31
32
  },
33
+ "node_modules/@ai-ecoverse/mcpcat": {
34
+ "version": "0.16.3",
35
+ "resolved": "https://registry.npmjs.org/@ai-ecoverse/mcpcat/-/mcpcat-0.16.3.tgz",
36
+ "integrity": "sha512-Sah/qC/1x31WKsVK+tyHYSdV8StFLpZEmuNyWqu2inbK19IL7ZyZyOb+85CGVAG1+ZRdXfE1y0eUAQuu0jnm3w==",
37
+ "license": "Apache-2.0",
38
+ "bin": {
39
+ "mcpcat": "dist/host/mcpcat.mjs"
40
+ },
41
+ "engines": {
42
+ "node": ">=24",
43
+ "slicc-kernel": ">=1.65.2"
44
+ }
45
+ },
32
46
  "node_modules/@ai-ecoverse/slicc-cdp": {
33
47
  "version": "1.25.1",
34
48
  "resolved": "https://registry.npmjs.org/@ai-ecoverse/slicc-cdp/-/slicc-cdp-1.25.1.tgz",
@@ -3,6 +3,7 @@
3
3
  "private": true,
4
4
  "description": "The certified versions of the optional packages that seven's Install / Update panel offers. Never installed as a project: the panel runs pnpm add -g for each one.",
5
5
  "dependencies": {
6
+ "@ai-ecoverse/mcpcat": "0.16.3",
6
7
  "@ai-ecoverse/slicc-jsh": "0.43.0",
7
8
  "@ai-ecoverse/sliccy-browser": "0.1.3",
8
9
  "@ai-ecoverse/wasi-biome": "2.5.15-4",