kern-sandbox 0.1.7 → 0.1.8
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 +7 -4
- package/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Run LLM/agent-generated code in a fast, **local**, daemonless kernel sandbox, straight from Node.
|
|
4
4
|
|
|
5
|
+
On npm: [`npm install kern-sandbox`](https://www.npmjs.com/package/kern-sandbox). For Python, the same
|
|
6
|
+
package is on PyPI: [`kern-sandbox`](https://pypi.org/project/kern-sandbox/).
|
|
7
|
+
|
|
5
8
|
It is a thin, dependency-free wrapper around the [`kern`](https://github.com/getkern/kern) binary:
|
|
6
9
|
a fresh, isolated box per call, network off by default, hard resource caps, and a timeout the binding
|
|
7
|
-
itself enforces.
|
|
10
|
+
itself enforces. microVM-grade isolation, but local and about 1.6 MB, with no cloud, no account, no VM.
|
|
8
11
|
|
|
9
12
|
```js
|
|
10
13
|
const kern = require("kern-sandbox");
|
|
@@ -32,8 +35,8 @@ You also need the `kern` binary on `PATH` (or point `$KERN_BIN` at it). One line
|
|
|
32
35
|
curl -fsSL https://raw.githubusercontent.com/getkern/kern/main/install.sh | sh
|
|
33
36
|
```
|
|
34
37
|
|
|
35
|
-
kern needs a Linux kernel with unprivileged user namespaces + cgroup v2. On Windows it runs under WSL2
|
|
36
|
-
|
|
38
|
+
kern needs a Linux kernel with unprivileged user namespaces + cgroup v2. On Windows it runs under WSL2.
|
|
39
|
+
Node 18+.
|
|
37
40
|
|
|
38
41
|
## A session: files persist, processes are ephemeral
|
|
39
42
|
|
|
@@ -147,7 +150,7 @@ Desktop / Cursor) ships in the Python package `kern-sandbox` (`pip install kern-
|
|
|
147
150
|
## Charts, rich results, live output, and checkpoints
|
|
148
151
|
|
|
149
152
|
**Rich results (the "code interpreter" pattern).** `runCode` runs Python by default, and like a
|
|
150
|
-
Jupyter
|
|
153
|
+
Jupyter cell it captures rich, mime-typed values into `result.results` (a list of `Result`) with
|
|
151
154
|
**no Jupyter kernel**: the value of the code's **last bare expression**, every **`display(obj)`** call,
|
|
152
155
|
and **every open matplotlib figure automatically** (no `savefig`). Accessors: `.png`/`.jpeg` (Buffer),
|
|
153
156
|
`.html`, `.svg`, `.markdown`, `.json`, `.text`.
|
package/index.js
CHANGED
|
@@ -36,7 +36,7 @@ const crypto = require("crypto");
|
|
|
36
36
|
const zlib = require("zlib");
|
|
37
37
|
const { spawn, spawnSync } = require("child_process");
|
|
38
38
|
|
|
39
|
-
const VERSION = "0.1.
|
|
39
|
+
const VERSION = "0.1.8";
|
|
40
40
|
|
|
41
41
|
const DEFAULT_IMAGE = "python:3.12-slim";
|
|
42
42
|
const WORKSPACE = "/workspace"; // where the persistent workspace is mounted inside every box
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kern-sandbox",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "A fast, local, daemonless code-interpreter sandbox for agent/LLM code: run Python/JS/Bash, get rich results (charts, tables), no cloud/account/VM. A thin, dependency-free wrapper around the kern binary.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sandbox",
|