@ai-ecoverse/slicc-bios 1.17.11 → 1.18.1

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,19 +172,19 @@ 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, 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, 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, GnuPG and fnox.
176
176
 
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.
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 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.
179
179
  - **Remove** runs `pnpm remove -g <package>`. It asks first only when another installed entry needs it (*Remove Node.js (jsh)? Browser for jsh scripts needs it and stops working until Node.js (jsh) is back.*, accent); otherwise it doesn't ask, since pnpm's global projects hold no user data and the package can be installed again. A cancelled confirm changes nothing.
180
180
  - **Readable by everyone:** after every pnpm install of `/opt/agent`, `/opt/grammars` and an optional project in `/opt/slicc`, bios makes that tree readable by everyone, as root: one `find` selects the files without `a+r`, the executables without `a+x` and the directories without `a+x`, and runs `chmod a+rX` on only those, so a tree of 15,000 entries with one `0600` file pays for one walk and one `chmod`, not 15,000. pnpm writes some files `0600`, such as `node_modules/.pnpm-workspace-state-v1.json`, and with kernel users every user must be able to read seven's installed packages. An install from before this runs the same pass once at its next check, marked by `var/lib/slicc/<project>/readable`.
181
181
  - **Failures** lead with one sentence and keep pnpm's output, starting with the package and version, under *Install log*, with **Retry**.
182
182
  - **Withdrawn and kept as exceptions** (homescoop#858/#859, #864): uv, esbuild, tsc and buf are withdrawn until attested rebuilds. They're retired rows (*No longer offered*, with Remove for an earlier install), and their certs lines are gone. Instead, use `pip` for uv's work for now (uv returns as `@ai-ecoverse/wasi-uv`, Astral's uv, once that's certified), and install esbuild and typescript straight from npm with `pnpm add -g`; buf has no stand-in. **git** and **gh** stay as recorded supply-chain exceptions until their attested rebuilds: their `certs.json` entries carry an `exception` field, which `pins.test.mjs` lists, and any other uncertified pin still fails it.
183
- - **Python data tools are withdrawn** until numpy and pandas come from verified CI builds (homescoop#826, #730): py-numpy 2.3.2-4 to -10 and py-pandas 2.3.2-5 to -11 came from un-attested local builds, so their certs lines are gone and the catalog has no `pydata` row or project. `retired.json` lists it as a retired `kind: "project"` entry, so an earlier install shows as installed with only **Remove**, which deletes the project, its `.pth` and its receipt. Plain Python stays. The project support below is unchanged for when it returns.
184
- - **Project entries** (`kind: "project"`): **Python data tools** (numpy, pandas, scipy and matplotlib, about 270 MB on disk) can't be a global add. pnpm 12 gives each global add its own isolated project, so every py-* package would carry its own Python (about 1 GB in total), and Python wouldn't find the packages. So the entry is a pnpm project of its own in `src/packages/optional/projects/pydata/`:
183
+ - **Python data tools are back** as homescoop's attested CI builds (A3, A4): py-numpy 2.3.2-12, py-pandas 2.3.2-12 and py-matplotlib 3.11.2-10, with contourpy, kiwisolver, pillow and their pure dependencies, on the catalog's Python 3.14.2-28. They replace the withdrawn builds (homescoop#826, #730): no py-numpy 2.3.2-4 to -10 or py-pandas 2.3.2-5 to -11 is certified, and an install from before the withdrawal (version 2026.10.12) shows as outdated, with **Update**. numpy 2.3.2-12 has homescoop#1082's fix: `numpy.linalg` raises `LinAlgError` on a singular matrix instead of returning NaN. **scipy is not back yet:** its build isn't attested, so the project leaves it out and `certs.json` has no scipy line.
184
+ - **Project entries** (`kind: "project"`): **Python data tools** (numpy, pandas and matplotlib, about 160 MB on disk) can't be a global add. pnpm 12 gives each global add its own isolated project, so every py-* package would carry its own Python (about 1 GB in total), and Python wouldn't find the packages. So the entry is a pnpm project of its own in [`src/packages/optional/projects/pydata/`](src/packages/optional/projects/pydata/), which locks one numpy and no Python of its own:
185
185
  - **Install:** bios writes the project to `/opt/slicc/pydata` and installs it with `pnpm install --frozen-lockfile`, so pnpm checks every integrity against the lockfile bios ships. Its `pnpm-workspace.yaml` overrides `@ai-ecoverse/wasix-python` to nothing, and the entry `requires` the catalog's Python, which runs it.
186
186
  - **How Python finds it:** bios writes `/opt/slicc/python/slicc-pydata.pth`, which lists each package's site-packages (from its `slicc.python.sitePackages`), next to a `sitecustomize.py` that adds that folder as a site directory. The page's kernel puts `/opt/slicc/python` on every process's `PYTHONPATH`, so `python3` imports the packages from any shell or agent, as any user. Python's own discovery only looks in its own project, so the `.pth` stays. A `.pth` that an earlier version wrote to `/root/.local` is moved there the next time the optional packages are listed. The kernel's environment reaches every process, whichever client or user starts it, `sudo` included. `python -I` and `python -E` ignore `PYTHONPATH`, so they don't see the data tools; that's a known gap.
187
- - **State and Remove:** a receipt in `var/lib/slicc/optional/pydata/` records the installed version. **Remove** deletes the project, the `.pth` and the receipt.
187
+ - **State and Remove:** a receipt in `var/lib/slicc/optional/pydata/` records the installed version. **Remove** deletes the project, the `.pth` and the receipt. A project that `retired.json` lists still shows while it's installed, with only **Remove**.
188
188
  - **Without Python:** if Python is removed while the data tools stay installed, the row warns that it needs Python (`warnings`, spectrum ≥ 1.49.1).
189
189
  - **Login shells:** bios writes `/etc/profile.d/slicc.sh` at every boot, which puts `~/.local/share/gem/ruby/3.4.0/bin` on `PATH`, so a command from `gem install` runs by name in a login shell. It also makes sure `/etc/profile` runs `/etc/profile.d/*.sh`: it writes one if there's none, and adds that loop once, after the lines already there, to an `/etc/profile` that doesn't mention `/etc/profile.d/`.
190
190
  - **The agent** reads the same catalog: bios writes it to `/etc/slicc/optional.json` at every boot (id, package, version, label, description, commands, requires).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-ecoverse/slicc-bios",
3
- "version": "1.17.11",
3
+ "version": "1.18.1",
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",
@@ -7,6 +7,18 @@
7
7
  "integrity": "sha512-VKNEZPMgROHP+EYcuXBE3gHny+K29ATHsg+ruxoO97gDTJMoggbj3VhbsCnxnH27JD6m9tVkWdUAAsdDK1Sr+Q==",
8
8
  "sha256": "c4e2cee8f42acd79ed84d8ac88860a545031cc51c4f842e87aaed03c35c35f76"
9
9
  },
10
+ "@ai-ecoverse/py-contourpy@1.4.0-9": {
11
+ "integrity": "sha512-Oy3FiC/o8LuUVf+iIapErmPX+oTCfBsYtRTz0ErLbjLfNE3dD8c8AKfmk3SramaKskhEICsLKpR6tB2l2fyMgA==",
12
+ "sha256": "ffbbb748115e6ec0385ebd83e3d9867e3cf9b5062786b4e265f0b9f71a85eb3a"
13
+ },
14
+ "@ai-ecoverse/py-cycler@0.12.1-8": {
15
+ "integrity": "sha512-pEQtaxKH+Wl7CFTh3Ib1yv7zBPyJwjp5J3w6uIcXCZ9rou6DsyTkArur8dV2MTTwWSeBSyA5Ab+lTKg1vynS8Q==",
16
+ "sha256": "58a03a4c2edd71ac981b38618fabcf7871dde8772fabbe5067dd784fc2c6f02d"
17
+ },
18
+ "@ai-ecoverse/py-fonttools@4.66.1-8": {
19
+ "integrity": "sha512-JDnfWy47fB2DKIlXUL9F2kPiP3fk+88nRJ2vsG/PWS3HvJiXC3cBcH3EaofQ1IQkM8hYITC5vEbKcs52i1AqHQ==",
20
+ "sha256": "8319843b69aa82c28533256413116bba91b823f8839da836d3bf9ad78e16761e"
21
+ },
10
22
  "@ai-ecoverse/py-kiwisolver@1.5.1-5": {
11
23
  "integrity": "sha512-iPlyNsJP6gLptvS6YwMm32zRCTrZiJjTDmJWDMtalQ6xNorR0Hvx+DW2WGaktsb92RuggbTQmJhrVY85j3UO2A==",
12
24
  "sha256": "b5eec3bb653874580f5e6ccb527e0a4fade7a9ccc98d62ae950d01e9a9873a7d"
@@ -15,6 +27,26 @@
15
27
  "integrity": "sha512-hNUM+rB+IEotVQ76pztZMY1nwcADXbnNZg2IQxKayfRTXbvkCaLjpfJlTxSNpC7xgVGqYyJZ5RGm9KJAA/D/QA==",
16
28
  "sha256": "ac43056dbe4b320a4b51ca2026eceec378d9ec401c8c41332b6329ad7231c65d"
17
29
  },
30
+ "@ai-ecoverse/py-kiwisolver@1.5.1-9": {
31
+ "integrity": "sha512-g8FYJbiJibagE/8EiXkHW1h/C3Mro3XBrPbryVjx0SRia1J8TSU/dLUMsCZsLFjhJIQ8BHgVJau1zRV8FOQTVw==",
32
+ "sha256": "fc6034fc17ddc085fe3813d933caeb72845697474d550168bcf5a37fa10f5c9a"
33
+ },
34
+ "@ai-ecoverse/py-matplotlib@3.11.2-10": {
35
+ "integrity": "sha512-qPnMD//gTB3opOji5058b0Sxm20rFBqYJU+ryb72v57NbUcFtJjFwsKLIn9KWSQtDadTwXosy6OKJLuueGcGog==",
36
+ "sha256": "ff8cbb8c321e89638986a0a2b7ab0463e716bb645b968557d0a36ce91cb716ee"
37
+ },
38
+ "@ai-ecoverse/py-numpy@2.3.2-12": {
39
+ "integrity": "sha512-HTF1ZU/OnvHGB/yMh3rM0hOEg0WSPhZY3zwA9j9lP1rTw/dRx7HjgA5BLbOkb1CDcXUqIpzzuj8brBBXebqJqQ==",
40
+ "sha256": "dc967993af49e0b14b9e921dc8f5787cb1847f1ec4648716d7ba00b1a0c50add"
41
+ },
42
+ "@ai-ecoverse/py-packaging@26.3.0-8": {
43
+ "integrity": "sha512-72/USkmgBx2nynrvsN/NDcxF3Fo3dLfrDm38hd3CrwY1F0DiWFb/K5rABgPJqL4dXlswmMCbh5yeq4SqDHdp6w==",
44
+ "sha256": "a6ec815468b4d7671ed0348d257ecd4d3ce01158d4ed807f4afe01a5a41df7d7"
45
+ },
46
+ "@ai-ecoverse/py-pandas@2.3.2-12": {
47
+ "integrity": "sha512-nqsI28oT7QqY7hZaPQk4dyduoH5d9XyIo+ySHsl48y3NN//PBeJccLGvh1Oy3eFX/A20affs2LgeHtNW7Tq3jw==",
48
+ "sha256": "bd93c7a9410a0203a3aab79e109cb4c6695638471fa8898ab5e7bfae3b204f7e"
49
+ },
18
50
  "@ai-ecoverse/py-pillow@12.3.0-6": {
19
51
  "integrity": "sha512-oyuDfimQshBOfzQzWycwqxm4/a9FRojIHkPL/buwyyKE9zbGXdR7NRNFvmoNyOayNcgmUct0/sGXRVGXl4e7SA==",
20
52
  "sha256": "1e7811bc2f0c46ccef65588b8b323c2bf3e2cbcc7ad0ec7ec271edc7b8b4e134"
@@ -23,22 +55,46 @@
23
55
  "integrity": "sha512-dm7sI+Lj8MoAmRa/ZsDINSbbRc9UPx7hMxfhJpoT6z70h65Bkc9nHdkRyKawOqqoSJKyW2F3XwEq9X4uwDAV0A==",
24
56
  "sha256": "6aa31dfbbd35bd2edbe9e2cc51f1c9467c0fe707ea348e4b7b888ad1940dcf20"
25
57
  },
58
+ "@ai-ecoverse/py-pillow@12.3.0-10": {
59
+ "integrity": "sha512-F8aRhrIEaV+UsD4NE+nPsSPVzecwwY0KVigKWYLGm8hrwj0GkUVGBm3G8mZ4q35d0gS5cgRUHaVTC4OVfd2Jmw==",
60
+ "sha256": "0f18b1f9af0524ad9976f941931bd436e85c0087e00db598075274bf63ff51b1"
61
+ },
62
+ "@ai-ecoverse/py-pyparsing@3.3.3-8": {
63
+ "integrity": "sha512-vNSPczlRvzU3fcAH8c3GerZIm1LTOO8xijkDSe0NfBIXibJwdSHoq8Uzln5ikSnKx9nPBCWBwQF1B9XZ0UVJGQ==",
64
+ "sha256": "56a9fc027288e0f7d7ab56f10de2f6bfc9913a139489174d0c3cdee942eb4d16"
65
+ },
26
66
  "@ai-ecoverse/py-python-dateutil@2.9.0-post0.2": {
27
67
  "integrity": "sha512-RCa4x3MbuASOiDFxmiK6vmstyUvl8KffqQWJarGQa4MAHvtoT8tM3vl3iPTqbgGIPPUVfYSTy0bMKLNWx7uG9w==",
28
68
  "sha256": "2a355c9dd7e008d27970b8cd4eef641756bec74d61f393dae7452a7a55f61c48"
29
69
  },
70
+ "@ai-ecoverse/py-python-dateutil@2.9.0-post0.3": {
71
+ "integrity": "sha512-UE+iXaPKAjr+g5/8WJHv20DZNp/iGPiHuhPJ6HUidU02bW3fIysw5irE+0bNnPUPYeY/UzIBX8fVPxCTx7i4kw==",
72
+ "sha256": "30ed7fdb13934757c058bf481dd880ecfe5ad3d614d2c7f171b6631dafd2f04f"
73
+ },
30
74
  "@ai-ecoverse/py-pytz@2026.4.0-2": {
31
75
  "integrity": "sha512-fdYh2M/sSwFd8Y1rnUkZCbyFxkF5GB5otiSpJxNphLlFQa3kHDdU7dpwK6XGpJ3ZH2YvmNo01qY5eWbw+Gq9mw==",
32
76
  "sha256": "a9f47842a14d204823694ce95105ba9fa745a504e0dcaa9c9e8fd0e2ded27470"
33
77
  },
78
+ "@ai-ecoverse/py-pytz@2026.4.0-3": {
79
+ "integrity": "sha512-9MSaqY1ib8QPFsJsdgHVbmefztHru1q9EGoBEVq3jrcLRDWEIl5d2nFGgM5f6kVxzuAbVnOwrznY1yV1HjBLJQ==",
80
+ "sha256": "2810813bb5d90244ace25068ccc9fe97cee4695bee154fbbf3086b0d409dd5a8"
81
+ },
34
82
  "@ai-ecoverse/py-six@1.17.0-2": {
35
83
  "integrity": "sha512-BNEgSp4l+y5dhmvKqqId7TO2Krchq/uw5vg/Q6bB6UKj+dfmr8ad42vGs4VFzTCnmqpGSgNRVg+TYeRi50t3yg==",
36
84
  "sha256": "53fd2ac9ba87baebe147fdfcbdd0ea0af9498f725d0d3702d960a209722779cc"
37
85
  },
86
+ "@ai-ecoverse/py-six@1.17.0-3": {
87
+ "integrity": "sha512-9Ej+52JMzsWScBSqR4K95DgXlrhY5i+UAEwST3/7CMWjx8ENOK/PYIBsmlxI9p4AKJ8U5p3ckHqQgyi9Sf6xDg==",
88
+ "sha256": "6e7451d879105ff9a52bfa07d908c4697f67587110acc7afb259dc8349f3122b"
89
+ },
38
90
  "@ai-ecoverse/py-tzdata@2026.4.0-2": {
39
91
  "integrity": "sha512-/LF+/f3HP+61PPp5WXUdWv1Dw2ajeNXasDeFicbU740PEeLJjZXVBq3EkI8bD32gM5EZWOLI+yBK7Wt9x5HgcQ==",
40
92
  "sha256": "bd7c7d68b8ffc99bc8aacae4d7a5385d4ab8739036726411c939f80f88d7cfaf"
41
93
  },
94
+ "@ai-ecoverse/py-tzdata@2026.4.0-3": {
95
+ "integrity": "sha512-ylACpyC1suROjzNeNe7tGksUIRyKqw5XS4Z2CnkqU7QjSZlP6xrf4kOIZF7N3m0RVHWex5AdyHJnIaNDKm2rvg==",
96
+ "sha256": "55064510df27206404c73fa977269e898d56297c234f2291b21e988e4250cfbe"
97
+ },
42
98
  "@ai-ecoverse/slicc-cdp@1.3.3": {
43
99
  "integrity": "sha512-gnMXHW27MTuqZsz/RocF7Dw7f8AlkXY/55yChSShT3mK3tzlv3LljU0d7/DUBTu3hyb/4LiVtdbFT5GTFlHdlQ==",
44
100
  "sha256": "16045695154abfaa5a167c2783759ba15ea2d0582e00f0665eb6388031667fa1"
@@ -348,6 +404,10 @@
348
404
  "integrity": "sha512-Mbf9IERBIMo9aySMQ4dNNcWSjxK0+Oz14S0KJNIv+UvfYc5gFOGFIWwJSeik8Wo+BWhuKWk5LIEM3CvOeQ0oSw==",
349
405
  "sha256": "6be243d130649d730baee6e8196fb54941b9961790abfdb5975deca3749c962e"
350
406
  },
407
+ "@ai-ecoverse/wasix-python@3.14.2-28": {
408
+ "integrity": "sha512-hXJFFUR4/K1WMMjXjqng5jrv5YsMt4R4tqc0LA5zwMzivPbU62Ba9P0FFsLWsuFPYCPGcpHCR9iNUD4bCkzC8A==",
409
+ "sha256": "f8fc4224a524c55fdeddf91fcb6d103ceb134907440137758b67696417c8cec1"
410
+ },
351
411
  "@ai-ecoverse/wasix-ruby@3.4.11-10": {
352
412
  "integrity": "sha512-HY2DH3Mgvcpmn0icZqrv7oivk3eb4jcuf+HDCUuYq9YP1+rdQ/auyZpfVhu7UOQsTc+xkVyTsxHvLKifWxNVBw==",
353
413
  "sha256": "6852e7668ada97a107af743b992a3073da189b32cb18f4eccf4f32d5de741456"
@@ -32,7 +32,16 @@
32
32
  "label": "Python",
33
33
  "description": "Python 3.14 with pip (pip, pip3 or python3 -m pip), for scripts and data work.",
34
34
  "commands": ["python3", "pip", "pip3"],
35
- "size": 49598727
35
+ "size": 57417828
36
+ },
37
+ "slicc-py-datatools": {
38
+ "id": "pydata",
39
+ "kind": "project",
40
+ "label": "Python data tools",
41
+ "description": "numpy, pandas and matplotlib for Python, about 160 MB on disk.",
42
+ "commands": [],
43
+ "requires": ["python"],
44
+ "size": 46014414
36
45
  },
37
46
  "@ai-ecoverse/slicc-jsh": {
38
47
  "id": "node",
@@ -16,7 +16,7 @@
16
16
  "@ai-ecoverse/wasix-gnupg": "2.4.9-11",
17
17
  "@ai-ecoverse/wasix-openssh": "10.6.0-6",
18
18
  "@ai-ecoverse/wasix-perl": "5.42.0-11",
19
- "@ai-ecoverse/wasix-python": "3.14.2-20",
19
+ "@ai-ecoverse/wasix-python": "3.14.2-28",
20
20
  "@ai-ecoverse/wasix-ruby": "3.4.11-12",
21
21
  "@ai-ecoverse/wasix-websocat": "4.0.0-alpha3-3",
22
22
  "@ai-ecoverse/wasm-git": "2.55.0-15",
@@ -132,12 +132,12 @@
132
132
  }
133
133
  },
134
134
  "node_modules/@ai-ecoverse/wasix-python": {
135
- "version": "3.14.2-20",
136
- "resolved": "https://registry.npmjs.org/@ai-ecoverse/wasix-python/-/wasix-python-3.14.2-20.tgz",
137
- "integrity": "sha512-Mbf9IERBIMo9aySMQ4dNNcWSjxK0+Oz14S0KJNIv+UvfYc5gFOGFIWwJSeik8Wo+BWhuKWk5LIEM3CvOeQ0oSw==",
135
+ "version": "3.14.2-28",
136
+ "resolved": "https://registry.npmjs.org/@ai-ecoverse/wasix-python/-/wasix-python-3.14.2-28.tgz",
137
+ "integrity": "sha512-hXJFFUR4/K1WMMjXjqng5jrv5YsMt4R4tqc0LA5zwMzivPbU62Ba9P0FFsLWsuFPYCPGcpHCR9iNUD4bCkzC8A==",
138
138
  "license": "PSF-2.0 AND GPL-3.0-or-later",
139
139
  "engines": {
140
- "slicc-kernel": ">=1.51.0"
140
+ "slicc-kernel": ">=1.120.0"
141
141
  }
142
142
  },
143
143
  "node_modules/@ai-ecoverse/wasix-ruby": {
@@ -13,7 +13,7 @@
13
13
  "@ai-ecoverse/wasix-gnupg": "2.4.9-11",
14
14
  "@ai-ecoverse/wasix-openssh": "10.6.0-6",
15
15
  "@ai-ecoverse/wasix-perl": "5.42.0-11",
16
- "@ai-ecoverse/wasix-python": "3.14.2-20",
16
+ "@ai-ecoverse/wasix-python": "3.14.2-28",
17
17
  "@ai-ecoverse/wasix-ruby": "3.4.11-12",
18
18
  "@ai-ecoverse/wasix-websocat": "4.0.0-alpha3-3",
19
19
  "@ai-ecoverse/wasm-git": "2.55.0-15",