@hy-sde-org/dsh-code-runtime-kernels 0.1.2-rc.1 → 0.1.5-rc.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 +42 -3
- package/README.zh.md +39 -3
- package/dist/core/kernel.d.ts +28 -2
- package/dist/core/kernel.d.ts.map +1 -1
- package/dist/core/kernel.js +12 -1
- package/dist/core/kernel.js.map +1 -1
- package/dist/core/protocol.d.ts +17 -0
- package/dist/core/protocol.d.ts.map +1 -1
- package/dist/core/session.d.ts +15 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +65 -3
- package/dist/core/session.js.map +1 -1
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +113 -31
- package/dist/index.js.map +1 -1
- package/dist/nodejs/runner.js +162 -0
- package/dist/nodejs/runner.js.map +1 -1
- package/dist/python/runner.d.ts.map +1 -1
- package/dist/python/runner.js +365 -0
- package/dist/python/runner.js.map +1 -1
- package/package.json +19 -18
package/README.md
CHANGED
|
@@ -11,6 +11,8 @@ Two long-lived kernel subprocesses share one host driver:
|
|
|
11
11
|
|
|
12
12
|
The wire protocol, kernel host driver (spawn + handshake, serialized writes, hostile-peer parsing, SIGINT with SIGTERM/SIGKILL escalation, shutdown-to-exit), session registry, binding validation, and output ledger are shared (`src/core/`), so both languages behave identically.
|
|
13
13
|
|
|
14
|
+
**Namespace snapshots.** After every successfully settled run, the session's kernel namespace is snapshotted to disk (atomic temp-file-and-rename, per-entry + combined byte caps) and a fresh kernel for the session restores it once — so state survives a model cell that kills the kernel, an idle-reaped session, and a full plugin restart. The first run after a restore logs what was revived and what could not be (unpicklable entries are named, never silently dropped). `reset: true` deletes the snapshot so discarded state cannot sneak back; `snapshot: false` disables persistence entirely.
|
|
15
|
+
|
|
14
16
|
This is **process confinement, not a security boundary**: program source has bash-equivalent trust, exactly like the harness's own `process`-isolated backends. The driver's job is robustness — a forged frame never crashes the host, an unresponsive kernel is graded up to termination — not isolation.
|
|
15
17
|
|
|
16
18
|
## Mounting
|
|
@@ -44,10 +46,40 @@ All row ids carry the `hy-sde-` prefix so they never clash with shipped rows (a
|
|
|
44
46
|
| `toolTimeoutMs` | `30000` | Cooperative tool-call timeout (`exec.signal` becomes the per-run abort). |
|
|
45
47
|
| `maxWallMs` | `600000` | Per-run wall-clock budget; interrupt gradates SIGINT → SIGTERM → SIGKILL when the kernel does not respond. |
|
|
46
48
|
| `maxOutputBytes` | `67108864` | Combined serialized log-, completion-, and failure-message byte cap (an `'output-limit'` failure). |
|
|
49
|
+
| `maxOutputLineChars` | `4096` | Per-line output cap (chars): a longer line is clipped with a `…` marker so one log bomb cannot own the budget. |
|
|
47
50
|
| `sessionIdleMs` | `0` | Reap a session whose kernel sits unused for this long (`0` disables; state loss is the explicit cost). |
|
|
48
51
|
| `interruptEscalationMs` | `5000` | Wait after SIGINT before SIGTERM, then the same again before SIGKILL. |
|
|
49
52
|
| `startupTimeoutMs` | `15000` | Wait for the bootstrap `ready` handshake before failing the kernel. |
|
|
50
53
|
| `shutdownGraceMs` | `1000` | Grace for the kernel to exit after an `exit` frame. |
|
|
54
|
+
| `snapshot` | `true` | Namespace persistence: snapshot after each successful run, restore once on a fresh kernel. `false` disables. |
|
|
55
|
+
| `snapshotDir` | `~/.dsh/code-runtime-kernels/state` | Snapshot root; files live under `<language>/<session-id-hash>.snapshot`. |
|
|
56
|
+
| `snapshotMaxBytes` | `134217728` | Combined byte cap for one snapshot file; entries past it are skipped by name. |
|
|
57
|
+
| `snapshotMaxEntryBytes` | `8388608` | Per-entry byte cap; an entry larger than this is skipped and named. |
|
|
58
|
+
| `preload` | `{}` | Session "toolbox": `{ python?: string; typescript?: string }` sources run as one hidden first cell of every fresh session kernel (before the snapshot restores, so a restored name shadows a same-named helper). A preload failure fails the triggering run like an exception. |
|
|
59
|
+
| `pythonImpl` | `'stdlib'` | Python execution semantics: `stdlib` (self-contained runner) or `ipykernel` (a real IPython shell: magics, `!cmd`, display — the interpreter pointed at by `pythonPath` must have IPython installed; the kernel fails loud at boot otherwise). |
|
|
60
|
+
| `sandboxConfinement` | `false` | Route kernel subprocess spawns through the sandbox seam (structural `confine` capability, see `SandboxProvider` in `@deepseek-ai/dsh-sandbox`) instead of `spawn`ing the interpreter directly. |
|
|
61
|
+
| `sandboxProvider` | — | The confinement capability; required when `sandboxConfinement` is `true` (fail closed). |
|
|
62
|
+
| `sandboxWorkspaceRoot` | `process.cwd()` | Writable root under `workspace-write` confinement. |
|
|
63
|
+
| `sandboxMode` | `'workspace-write'` | File-effect mode for confined kernels (`'read-only'` or `'workspace-write'`). |
|
|
64
|
+
|
|
65
|
+
### Device setup for `ipykernel` mode
|
|
66
|
+
|
|
67
|
+
The runner does not bundle Python — it spawns `pythonPath`. To use
|
|
68
|
+
`pythonImpl: 'ipykernel'`, provision an interpreter with IPython once:
|
|
69
|
+
|
|
70
|
+
> `scripts/setup-ipykernel-venv.sh` (idempotent; re-run after a Python upgrade)
|
|
71
|
+
|
|
72
|
+
creates/refreshes `~/.dsh/venvs/code-runtime-kernels-python` (override the
|
|
73
|
+
paths with `DSH_KERNEL_VENV` / `DSH_KERNEL_BASE_PYTHON`), then point the
|
|
74
|
+
plugin row at it:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
- id: code-runtime-kernels
|
|
78
|
+
name: '@hy-sde-org/dsh-code-runtime-kernels'
|
|
79
|
+
config:
|
|
80
|
+
pythonPath: /Users/<you>/.dsh/venvs/code-runtime-kernels-python/bin/python
|
|
81
|
+
pythonImpl: 'ipykernel'
|
|
82
|
+
```
|
|
51
83
|
|
|
52
84
|
## Tool surface
|
|
53
85
|
|
|
@@ -67,6 +99,8 @@ It resolves the seam's result envelope — `value` (JSON completion), `logs`, `e
|
|
|
67
99
|
- **Sessions.** A call with a non-empty `session` runs in that session's kernel; `executionCount` reports the running count. `reset: true` shuts the old kernel down before a fresh one answers.
|
|
68
100
|
- **One-shot.** Without `session`, a fresh kernel is spawned, exactly one program runs, and the kernel is shut down.
|
|
69
101
|
- **Persistence.** Python: module-level variables and loop state survive across cells. JavaScript: `state` (a long-lived shared object) and sloppy-mode global assignments survive; `const`/`let`/`function`/`class` at cell top level are per-cell (async body), so persistent definitions go on `state`. A cell completes `return <json>` for a completion value, or with no `return` for a no-value run; non-lossless completions (cycles, `BigInt`, sets) are `'invalid-output'`.
|
|
102
|
+
- **Snapshots.** After each successful run the namespace is saved (Python: `pickle` + `marshal` for bytecode, per-name loss reporting; JavaScript: V8 binary serialization, so `Map`/`Set`/`Date`/cyclic values survive but function-valued keys are named as lost). A fresh kernel for the session restores the last snapshot once — the restoring run's logs carry `[dsh-kernels] restored N names from snapshot (could not restore: …)`. `reset: true` deletes the snapshot first, so it never resurrects discarded state. Python bytecode is `marshal`-format-dependent: restoring across a Python minor-version upgrade should be expected to lose function/class entries (named in the notice), not data.
|
|
103
|
+
- **Toolbox.** With `preload` set, every fresh session kernel runs the language's source as one hidden first cell before the snapshot restores: helpers behave like any other session state (they ride snapshots; a restored name shadows a same-named helper). Its output is hidden from the model; a preload failure fails the run it triggered.
|
|
70
104
|
- **Budgets and failure kinds.** Wall-clock expiry → `'timeout'`; cancellation or a kernel that had to die → `'abort'`; thrown exceptions → `'exception'`; non-JSON completions → `'invalid-output'`; combined output overflow → `'output-limit'`; kernel death → the session registry replaces the kernel and retries once. All are result FIELDS, never rejections of the tool.
|
|
71
105
|
|
|
72
106
|
## Model experience
|
|
@@ -76,9 +110,14 @@ The system-prompt guide tells the model to prefer `run_kernel_code` over scratch
|
|
|
76
110
|
## Known limitations
|
|
77
111
|
|
|
78
112
|
- **A busy synchronous cell resists SIGINT.** A `while (true) {}`/`while True:` loop never yields to the event loop, so the interrupt handler cannot run and the escalation ladder (SIGTERM then SIGKILL) is what actually stops it — costing the kernel's state, hence the session. Cells that yield (async `await` on timers/I/O/tool calls) cancel cleanly and the kernel survives (the wall-clock/timeout tests cover this split).
|
|
79
|
-
- **State can be poisoned.** A buggy program can corrupt the session's state at any time; `reset: true` is the intended recovery primitive.
|
|
80
|
-
- **No security boundary.** Kernel code has bash-equivalent trust, matching the harness's own process backends.
|
|
81
|
-
- **
|
|
113
|
+
- **State can be poisoned.** A buggy program can corrupt the session's state at any time; `reset: true` is the intended recovery primitive (it also deletes the snapshot, so the corruption cannot come back).
|
|
114
|
+
- **No security boundary.** Kernel code has bash-equivalent trust, matching the harness's own process backends — and so do snapshot files (`pickle`/`marshal` are not safe to read from untrusted input). Keep `snapshotDir` user-private; a planted snapshot executes as the host.
|
|
115
|
+
- **Snapshot granularity is per-name.** Python: data, modules, importable callables, and `__main__`-defined functions/classes are saved by value; user-class instances, closures over non-picklables, and entries past the caps are named as lost on the next restore. JavaScript: `state` and sloppy-mode global assignments are saved per key; a function anywhere inside a key's value discards that whole key (named).
|
|
116
|
+
- **Snapshots are not free.** Each successful run pickles/serializes and writes the namespace. Large namespaces mean larger latencies; tune the caps (`snapshotMaxBytes`, `snapshotMaxEntryBytes`) or disable with `snapshot: false` if state is ephemeral.
|
|
117
|
+
- **Idle kernels hold a process.** With `sessionIdleMs: 0` (default), session kernels stay alive until reset or plugin teardown; a reaped session resumes from its snapshot on the next call with the same id.
|
|
118
|
+
- **`ipykernel` mode needs a real IPython.** Install `ipykernel` into the interpreter named by `pythonPath` (e.g. a venv) — the runner fails loud at boot with a clear message otherwise, and cells then run through the IPython shell (magics `%…`, `!cmd`, `display`), with snapshots and binding proxies working exactly as in stdlib mode.
|
|
119
|
+
- **Confinement binds snapshots to the workspace.** A confined kernel cannot write outside `sandboxWorkspaceRoot`, so `snapshotDir` must live under it (validated at construction; disable `snapshot` if the namespace is ephemeral). Confinement is process-level file-effect enforcement (bwrap / landlock-run / seatbelt via the seam), not a security boundary — model code still runs as your user.
|
|
120
|
+
- **TS preloads persist via `state`.** The TypeScript kernel evaluates each cell as an async-function body, so a `function`/`class` declaration in a preload stays cell-local; define toolbox helpers on `state` (e.g. `state.helper = …`).
|
|
82
121
|
|
|
83
122
|
## Development
|
|
84
123
|
|
package/README.zh.md
CHANGED
|
@@ -44,10 +44,39 @@
|
|
|
44
44
|
| `toolTimeoutMs` | `30000` | 协作式工具调用超时(`exec.signal` 变为每次运行的 abort 源)。 |
|
|
45
45
|
| `maxWallMs` | `600000` | 每次运行的墙钟预算;中断按 SIGINT→SIGTERM→SIGKILL 升级。 |
|
|
46
46
|
| `maxOutputBytes` | `67108864` | 日志、完成值与失败消息合并后的字节上限(触发 `'output-limit'`)。 |
|
|
47
|
+
| `maxOutputLineChars` | `4096` | 单行输出上限(字符):更长行以 `…` 截断,防止一条日志炸弹独占预算。 |
|
|
47
48
|
| `sessionIdleMs` | `0` | 空闲超过该毫秒数的会话被回收(`0` 禁用;状态丢失是显式代价)。 |
|
|
48
49
|
| `interruptEscalationMs` | `5000` | SIGINT 后等待再发 SIGTERM,再等同样时长发 SIGKILL。 |
|
|
49
50
|
| `startupTimeoutMs` | `15000` | 等待启动 `ready` 握手,超时判失败。 |
|
|
50
51
|
| `shutdownGraceMs` | `1000` | `exit` 帧后等待 kernel 退出的宽限期。 |
|
|
52
|
+
| `snapshot` | `true` | 命名空间持久化:每次成功运行后打快照,新 kernel 启动时恢复一次;`false` 禁用。 |
|
|
53
|
+
| `snapshotDir` | `~/.dsh/code-runtime-kernels/state` | 快照根目录;文件位于 `<language>/<session-id-hash>.snapshot`。 |
|
|
54
|
+
| `snapshotMaxBytes` | `134217728` | 单个快照文件的合并字节上限;超出的条目按名跳过。 |
|
|
55
|
+
| `snapshotMaxEntryBytes` | `8388608` | 单条字节上限;超出的条目按名跳过。 |
|
|
56
|
+
| `preload` | `{}` | 会话“工具箱”:`{ python?: string; typescript?: string }`,在每个新会话 kernel 上先作为隐藏首 cell 运行(快照恢复之前;同名恢复值会遮蔽助手)。preload 失败则本次运行报错。 |
|
|
57
|
+
| `pythonImpl` | `'stdlib'` | Python 执行语义:`stdlib`(自包含 runner)或 `ipykernel`(真实 IPython shell:魔法命令、`!cmd`、display——`pythonPath` 指向的解释器需装有 IPython,否则启动即报错)。 |
|
|
58
|
+
| `sandboxConfinement` | `false` | 将 kernel 子进程经沙箱接缝启动(结构式 `confine` 能力,见 `@deepseek-ai/dsh-sandbox` 的 `SandboxProvider`)而非直接 spawn。 |
|
|
59
|
+
| `sandboxProvider` | — | 约束能力;`sandboxConfinement: true` 时必须提供(fail closed)。 |
|
|
60
|
+
| `sandboxWorkspaceRoot` | `process.cwd()` | `workspace-write` 模式下的可写根目录。 |
|
|
61
|
+
| `sandboxMode` | `'workspace-write'` | 被约束 kernel 的文件效应模式(`'read-only'` 或 `'workspace-write'`)。 |
|
|
62
|
+
|
|
63
|
+
### 本机启用 `ipykernel` 模式
|
|
64
|
+
|
|
65
|
+
runner 不自带 Python——它 spawn `pythonPath` 指向的解释器。要用
|
|
66
|
+
`pythonImpl: 'ipykernel'`,先准备一个装了 IPython 的解释器:
|
|
67
|
+
|
|
68
|
+
> `scripts/setup-ipykernel-venv.sh`(幂等;Python 升级后可重跑)
|
|
69
|
+
|
|
70
|
+
会创建/刷新 `~/.dsh/venvs/code-runtime-kernels-python`(可用
|
|
71
|
+
`DSH_KERNEL_VENV` / `DSH_KERNEL_BASE_PYTHON` 覆盖路径),然后把插件行指向它:
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
- id: code-runtime-kernels
|
|
75
|
+
name: '@hy-sde-org/dsh-code-runtime-kernels'
|
|
76
|
+
config:
|
|
77
|
+
pythonPath: /Users/<you>/.dsh/venvs/code-runtime-kernels-python/bin/python
|
|
78
|
+
pythonImpl: 'ipykernel'
|
|
79
|
+
```
|
|
51
80
|
|
|
52
81
|
## 工具面
|
|
53
82
|
|
|
@@ -67,6 +96,8 @@
|
|
|
67
96
|
- **会话**。带非空 `session` 的调用运行于该会话的 kernel;`executionCount` 报告累计次数。`reset: true` 先关旧 kernel 再开新 kernel 响应。
|
|
68
97
|
- **一次性**。没有 `session` 时,spawn 一个新 kernel,恰好运行一个程序后关闭。
|
|
69
98
|
- **持久化**。Python:模块级变量与循环状态跨 cell 保留。JavaScript:`state`(长寿命共享对象)与 sloppy 全局赋值跨 cell 保留;cell 顶层的 `const`/`let`/`function`/`class` 是每 cell 作用域(async 函数体),持久定义请放 `state`。cell 以 `return <json>` 携带完成值,或以无 `return` 结束为无值运行;非 lossless JSON 完成值(环、`BigInt`、集合)判为 `'invalid-output'`。
|
|
99
|
+
- **快照**。每次成功运行后保存命名空间(Python:`pickle` + `marshal` 字节码,逐名报告丢失;JavaScript:V8 二进制序列化,`Map`/`Set`/`Date`/环可保留,函数值键按名判丢)。该会话的新 kernel 只恢复一次最近快照——恢复运行日志中带 `[dsh-kernels] restored N names from snapshot (could not restore: …)`。`reset: true` 先删除快照,杜绝回魂。Python 字节码依赖 `marshal` 格式:跨 Python 小版本升级恢复时函数/类条目可能报丢(指名),数据不受影响。
|
|
100
|
+
- **工具箱**。配置 `preload` 后,每个新会话 kernel 会先把该语言的源码作为隐藏首 cell 运行(先于快照恢复):助手与普通会话状态一样参与快照,同名恢复值遮蔽同名助手。其输出对模型隐藏;preload 失败则本次运行报错。
|
|
70
101
|
- **预算与失败种类**。墙钟超时 → `'timeout'`;取消或被迫终止 → `'abort'`;抛异常 → `'exception'`;非 JSON 完成 → `'invalid-output'`;合并输出溢出 → `'output-limit'`;kernel 死亡 → 会话注册表替换 kernel 并重试一次。全部是结果字段,绝不会 reject 工具调用。
|
|
71
102
|
|
|
72
103
|
## 模型体验
|
|
@@ -76,9 +107,14 @@
|
|
|
76
107
|
## 已知限制
|
|
77
108
|
|
|
78
109
|
- **同步忙循环抗拒 SIGINT**。`while (true) {}` / `while True:` 永不交还事件循环,中断处理器无法运行,实际由升级梯(SIGTERM 再 SIGKILL)终止——代价是会话状态与 kernel。会让出事件循环的 cell(对定时器/IO/工具调用的 `await`)可被干净取消,kernel 存活(墙钟/中止测试即覆盖这一分界)。
|
|
79
|
-
- **状态可能被污染**。错误程序随时可能弄坏会话状态;`reset: true`
|
|
80
|
-
- **无安全边界**。kernel 代码拥有与内置 process 后端相同的 bash
|
|
81
|
-
-
|
|
110
|
+
- **状态可能被污染**。错误程序随时可能弄坏会话状态;`reset: true` 是设计的恢复原语(同时删除快照,污染不会复活)。
|
|
111
|
+
- **无安全边界**。kernel 代码拥有与内置 process 后端相同的 bash 级信任——快照文件同理(`pickle`/`marshal` 不可用于不可信输入);请保持 `snapshotDir` 为用户私有。
|
|
112
|
+
- **快照按名粒度**。Python:数据、模块、可导入调用及 `__main__` 内定义的函数/类按值保存;用户类实例、含不可 pickle 闭包者、超限条目在下次恢复时点名报告。JavaScript:`state` 与 sloppy 全局赋值按键保存;键值内任意位置出现函数即丢弃整键(点名)。
|
|
113
|
+
- **快照有成本**。每次成功运行都会序列化并写盘;大命名空间 = 更慢的 cell 完成。按需调小两个上限或 `snapshot: false`。
|
|
114
|
+
- **空闲 kernel 占用进程**。默认 `sessionIdleMs: 0` 下,会话 kernel 会存活到 reset 或插件卸载;被回收的会话在下次同 id 调用时从快照恢复。
|
|
115
|
+
- **`ipykernel` 模式需要真实 IPython**。请把 `ipykernel` 装进 `pythonPath` 指向的解释器(如 venv)——否则 kernel 启动即报明确错误;cell 经 IPython shell 执行(`%…`、`!cmd`、display),快照与绑定代理与 stdlib 模式完全一致。
|
|
116
|
+
- **约束让快照绑定工作区**。被约束的 kernel 无法写出 `sandboxWorkspaceRoot`,因此 `snapshotDir` 必须位于其下(构造时校验;状态短期即可关 `snapshot`)。沙箱是进程级文件效应约束(经接缝用 bwrap/landlock-run/seatbelt),不是安全边界——模型代码仍以你的用户身份运行。
|
|
117
|
+
- **TS preload 用 `state` 持久化**。TypeScript kernel 把每个 cell 当作 async 函数体执行,故 preload 里的 `function`/`class` 声明只在 cell 内生效;请把工具箱助手挂到 `state`(如 `state.helper = …`)。
|
|
82
118
|
|
|
83
119
|
## 开发
|
|
84
120
|
|
package/dist/core/kernel.d.ts
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* @module @hy-sde-org/dsh-code-runtime-kernels/src/core/kernel
|
|
11
11
|
*/
|
|
12
12
|
import type { CodeBindingNamespace, CodeJsonValue } from '@deepseek-ai/dsh-code-runtime';
|
|
13
|
-
import type { DoneFrame, KernelFrame, KernelHostMessage } from './protocol.ts';
|
|
14
|
-
export type { DoneFrame, KernelFrame, KernelHostMessage };
|
|
13
|
+
import type { DoneFrame, KernelFrame, KernelHostMessage, SnapshotSpec } from './protocol.ts';
|
|
14
|
+
export type { DoneFrame, KernelFrame, KernelHostMessage, SnapshotSpec };
|
|
15
15
|
/** How to spawn and label one language's kernel. */
|
|
16
16
|
export interface KernelRuntimeProfile {
|
|
17
17
|
/** The language descriptor this kernel presents (`'python'` | `'typescript'`). */
|
|
@@ -47,6 +47,31 @@ export interface KernelStartConfig {
|
|
|
47
47
|
interruptEscalationMs: number;
|
|
48
48
|
/** Grace period for the kernel to exit after an `exit` frame before SIGTERM/SIGKILL. */
|
|
49
49
|
shutdownGraceMs: number;
|
|
50
|
+
/**
|
|
51
|
+
* Confinement wrapper applied to the fully-assembled argv (command +
|
|
52
|
+
* argvPrefix + runner) just before spawn — e.g. the output of
|
|
53
|
+
* {@link KernelSandboxProvider.confine} so the kernel launches under real
|
|
54
|
+
* filesystem confinement (bwrap / landlock-run / seatbelt). Must fail
|
|
55
|
+
* closed: a non-enforcing return is the provider's bug, not a fallback.
|
|
56
|
+
* The wrapper becomes the process-group leader; the escalation ladder
|
|
57
|
+
* unwinds through it.
|
|
58
|
+
*/
|
|
59
|
+
confine?: (argv: readonly string[]) => {
|
|
60
|
+
argv: string[];
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The sandbox seam's confine capability, structurally typed (no runtime
|
|
65
|
+
* dependency on `@deepseek-ai/dsh-sandbox`): wrap exact argv under a
|
|
66
|
+
* file-effect policy, or fail closed. See the published seam for the contract.
|
|
67
|
+
*/
|
|
68
|
+
export interface KernelSandboxProvider {
|
|
69
|
+
confine(argv: readonly string[], policy: {
|
|
70
|
+
mode: 'read-only' | 'workspace-write';
|
|
71
|
+
workspaceRoot: string;
|
|
72
|
+
}): {
|
|
73
|
+
argv: string[];
|
|
74
|
+
};
|
|
50
75
|
}
|
|
51
76
|
/** The outcome of one kernel execution; budgets and kind mapping stay with the provider. */
|
|
52
77
|
export interface KernelExecResult {
|
|
@@ -146,6 +171,7 @@ export declare class KernelHost {
|
|
|
146
171
|
signal?: AbortSignal;
|
|
147
172
|
cwd?: string;
|
|
148
173
|
env?: Record<string, string>;
|
|
174
|
+
snapshot?: SnapshotSpec;
|
|
149
175
|
}): Promise<KernelExecResult>;
|
|
150
176
|
/** Request cancellation of the in-flight run via SIGINT, escalating to termination. */
|
|
151
177
|
interrupt(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAExF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"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"}
|
package/dist/core/kernel.js
CHANGED
|
@@ -205,6 +205,9 @@ export class KernelHost {
|
|
|
205
205
|
const runnerArg = stagedPath ?? profile.runnerPath;
|
|
206
206
|
if (runnerArg !== undefined)
|
|
207
207
|
argv.push(runnerArg);
|
|
208
|
+
const fullArgv = [...argv];
|
|
209
|
+
if (profile.command !== undefined)
|
|
210
|
+
fullArgv.unshift(profile.command);
|
|
208
211
|
// `--no-warnings` for the Node runner is statically safe: a development
|
|
209
212
|
// spawn of the .ts kernel would otherwise leak the type-stripping
|
|
210
213
|
// ExperimentalWarning into the captured stderr. Python gets unfiltered
|
|
@@ -213,7 +216,8 @@ export class KernelHost {
|
|
|
213
216
|
// leader: anything it spawns stays in ITS process group, so a shutdown can
|
|
214
217
|
// sweep the whole tree via killProcessGroup (the #7714 orphan fix) instead
|
|
215
218
|
// of leaving grandchildren holding the kernel's pipes open.
|
|
216
|
-
const
|
|
219
|
+
const wrapped = config.confine !== undefined ? config.confine(fullArgv).argv : fullArgv;
|
|
220
|
+
const proc = spawn(wrapped[0] ?? profile.command, wrapped.slice(1), {
|
|
217
221
|
cwd: config.cwd,
|
|
218
222
|
env: { ...(config.env ?? process.env), ...profile.env },
|
|
219
223
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
@@ -228,6 +232,12 @@ export class KernelHost {
|
|
|
228
232
|
try {
|
|
229
233
|
await Promise.race([
|
|
230
234
|
kernel.#ready,
|
|
235
|
+
// An early exit before the handshake must fail the start FAST (a
|
|
236
|
+
// runner that cannot even boot — missing interpreter feature, syntax
|
|
237
|
+
// error in a staged script — otherwise costs the full startup budget).
|
|
238
|
+
kernel.#exited.then((code) => {
|
|
239
|
+
throw new Error(`${profile.prefix}: kernel exited with code ${code} before becoming ready`);
|
|
240
|
+
}),
|
|
231
241
|
new Promise((_resolve, reject) => {
|
|
232
242
|
const timer = setTimeout(() => {
|
|
233
243
|
reject(new Error(`${profile.prefix}: kernel did not become ready within ${config.startupTimeoutMs}ms`));
|
|
@@ -313,6 +323,7 @@ export class KernelHost {
|
|
|
313
323
|
})),
|
|
314
324
|
...options.cwd !== undefined ? { cwd: options.cwd } : {},
|
|
315
325
|
...options.env !== undefined ? { env: options.env } : {},
|
|
326
|
+
...options.snapshot !== undefined ? { snapshot: options.snapshot } : {},
|
|
316
327
|
};
|
|
317
328
|
await this.#write(frame);
|
|
318
329
|
await run.done;
|
package/dist/core/kernel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/core/kernel.ts"],"names":[],"mappings":"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"}
|
package/dist/core/protocol.d.ts
CHANGED
|
@@ -18,6 +18,21 @@ export interface KernelNamespaceDescriptor {
|
|
|
18
18
|
/** Optional typed-rejection contract (name + member-name property). */
|
|
19
19
|
errorClass?: CodeBindingErrorClass;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Per-session namespace persistence. The kernel owns the file: it restores
|
|
23
|
+
* once per process (on the first exec that carries a spec) and writes an
|
|
24
|
+
* atomic snapshot after every successfully settled run, so state survives
|
|
25
|
+
* kernel death, `reset`-adjacent crashes, and a full plugin restart. The host
|
|
26
|
+
* may unlink the file (e.g. `reset`) — a missing file simply skips restore.
|
|
27
|
+
*/
|
|
28
|
+
export interface SnapshotSpec {
|
|
29
|
+
/** Snapshot file path (kernel-owned temp-file+rename writes; host-owned delete). */
|
|
30
|
+
path: string;
|
|
31
|
+
/** Combined serialized snapshot byte cap; entries beyond it are skipped by name. */
|
|
32
|
+
maxBytes: number;
|
|
33
|
+
/** Per-entry byte cap; an entry larger than this is skipped and named. */
|
|
34
|
+
maxEntryBytes: number;
|
|
35
|
+
}
|
|
21
36
|
/** Host -> kernel: execute one program against this run's namespaces. */
|
|
22
37
|
export interface KernelExecMessage {
|
|
23
38
|
type: 'exec';
|
|
@@ -31,6 +46,8 @@ export interface KernelExecMessage {
|
|
|
31
46
|
cwd?: string;
|
|
32
47
|
/** Optional environment overrides applied before execution. */
|
|
33
48
|
env?: Record<string, string>;
|
|
49
|
+
/** Optional namespace persistence for this session's kernel. */
|
|
50
|
+
snapshot?: SnapshotSpec;
|
|
34
51
|
}
|
|
35
52
|
/** Host -> kernel: the answer to one {@link KernelCallFrame}. */
|
|
36
53
|
export interface KernelReplyMessage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAEzF,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,uEAAuE;IACvE,UAAU,CAAC,EAAE,qBAAqB,CAAA;CACnC;AAED,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAA;IACV,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,UAAU,EAAE,yBAAyB,EAAE,CAAA;IACvC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/core/session.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import type { CodeBindingNamespace } from '@deepseek-ai/dsh-code-runtime';
|
|
12
12
|
import type { KernelExecResult, KernelHost } from './kernel.ts';
|
|
13
|
+
import type { SnapshotSpec } from './protocol.ts';
|
|
13
14
|
/** Session-management knobs on top of the per-kernel start config. */
|
|
14
15
|
export interface SessionRegistryConfig {
|
|
15
16
|
/** Label for error messages (e.g. `python kernel`). */
|
|
@@ -18,6 +19,20 @@ export interface SessionRegistryConfig {
|
|
|
18
19
|
start: () => Promise<KernelHost>;
|
|
19
20
|
/** Reap a session whose kernel sits unused for this long; 0 disables. */
|
|
20
21
|
sessionIdleMs: number;
|
|
22
|
+
/**
|
|
23
|
+
* Namespace persistence for one session: returns the spec every exec of the
|
|
24
|
+
* session carries, or `undefined` when snapshots are disabled. A missing
|
|
25
|
+
* function also disables snapshots.
|
|
26
|
+
*/
|
|
27
|
+
snapshot?: (sessionId: string) => SnapshotSpec | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Session "toolbox": runs once per fresh kernel, as a hidden first cell
|
|
30
|
+
* BEFORE the session's snapshot is restored (so helpers are available, and
|
|
31
|
+
* any restored name shadows a same-named helper — user state wins). Returns
|
|
32
|
+
* the source to preload, or `undefined`/empty for none. A preload failure
|
|
33
|
+
* fails the triggering run like an exception.
|
|
34
|
+
*/
|
|
35
|
+
preload?: () => string | undefined;
|
|
21
36
|
}
|
|
22
37
|
/** Options for one registered-session run. */
|
|
23
38
|
export interface SessionRunOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAuBjD,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,mGAAmG;IACnG,KAAK,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAChC,yEAAyE;IACzE,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAA;IAC1D;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CACnC;AAED,8CAA8C;AAC9C,MAAM,WAAW,iBAAiB;IAChC,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED;;;;;GAKG;AACH,qBAAa,eAAe;;gBAKd,MAAM,EAAE,qBAAqB;IAIzC,+EAA+E;IACzE,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,oBAAoB,EAAE,EAChC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,+CAA+C;IACzC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,wEAAwE;IAClE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA4JlC"}
|
package/dist/core/session.js
CHANGED
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
* per-session promise chain.
|
|
9
9
|
* @module @hy-sde-org/dsh-code-runtime-kernels/src/core/session
|
|
10
10
|
*/
|
|
11
|
+
import { randomUUID } from 'node:crypto';
|
|
12
|
+
import { rmSync } from 'node:fs';
|
|
13
|
+
/**
|
|
14
|
+
* Thrown when a fresh kernel's preload (the configured "toolbox") failed to
|
|
15
|
+
* settle; carries the preload run's result so the user's run surfaces a real
|
|
16
|
+
* exception instead of a bare startup failure.
|
|
17
|
+
*/
|
|
18
|
+
class KernelPreloadError extends Error {
|
|
19
|
+
result;
|
|
20
|
+
constructor(result) {
|
|
21
|
+
super(result.message || 'kernel preload failed');
|
|
22
|
+
this.result = result;
|
|
23
|
+
this.name = 'KernelPreloadError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
11
26
|
/**
|
|
12
27
|
* Registers sessions and schedules every run onto its session's serialization
|
|
13
28
|
* tail. A session kernel that died mid-run (or was killed settling a prior
|
|
@@ -116,20 +131,43 @@ export class SessionRegistry {
|
|
|
116
131
|
throw new Error(`${this.#config.label} session invalidated while acquiring kernel`);
|
|
117
132
|
}
|
|
118
133
|
session.kernel = kernel;
|
|
134
|
+
const preload = this.#config.preload?.();
|
|
135
|
+
if (preload !== undefined && preload.length > 0) {
|
|
136
|
+
// Hidden first cell: no snapshot spec, so the restore (and its notice)
|
|
137
|
+
// still belongs to the user's first real exec. A failed preload must
|
|
138
|
+
// not leave a half-configured kernel behind; fail the run instead.
|
|
139
|
+
const prepared = await kernel.execute(`preload-${randomUUID()}`, preload, [], {});
|
|
140
|
+
if (prepared.status !== 'ok' || prepared.killed || prepared.cancelled) {
|
|
141
|
+
await kernel.shutdown().catch(() => { });
|
|
142
|
+
session.kernel = null;
|
|
143
|
+
throw new KernelPreloadError(prepared);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
119
146
|
return kernel;
|
|
120
147
|
}
|
|
121
148
|
async #runOnSession(session, sessionId, code, bindings, options) {
|
|
122
149
|
if (options.reset === true) {
|
|
123
150
|
// Reset first, then acquire: prior kernel state is discarded and its
|
|
124
|
-
// shutdown completes before the fresh kernel answers this run.
|
|
151
|
+
// shutdown completes before the fresh kernel answers this run. The
|
|
152
|
+
// snapshot is deleted between the two, so the fresh kernel must not
|
|
153
|
+
// restore the state the reset just discarded.
|
|
125
154
|
const previous = session.kernel;
|
|
126
155
|
if (previous !== null) {
|
|
127
156
|
session.kernel = null;
|
|
128
157
|
clearTimeout(session.idleTimer);
|
|
129
158
|
await previous.shutdown().catch(() => { });
|
|
130
159
|
}
|
|
160
|
+
this.#deleteSnapshot(sessionId);
|
|
161
|
+
}
|
|
162
|
+
let kernel;
|
|
163
|
+
try {
|
|
164
|
+
kernel = await this.#acquireKernel(sessionId, session);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof KernelPreloadError)
|
|
168
|
+
return error.result;
|
|
169
|
+
throw error;
|
|
131
170
|
}
|
|
132
|
-
let kernel = await this.#acquireKernel(sessionId, session);
|
|
133
171
|
const first = await this.#executeOnce(kernel, sessionId, code, bindings, options);
|
|
134
172
|
// A kernel that died or was killed settling the run is replaced once and
|
|
135
173
|
// the run retried; otherwise return what we got. A result that came back
|
|
@@ -146,7 +184,14 @@ export class SessionRegistry {
|
|
|
146
184
|
await kernel.shutdown().catch(() => { });
|
|
147
185
|
if (session !== this.#sessions.get(sessionId))
|
|
148
186
|
return first;
|
|
149
|
-
|
|
187
|
+
try {
|
|
188
|
+
kernel = await this.#acquireKernel(sessionId, session);
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
if (error instanceof KernelPreloadError)
|
|
192
|
+
return error.result;
|
|
193
|
+
throw error;
|
|
194
|
+
}
|
|
150
195
|
const second = await this.#executeOnce(kernel, sessionId, code, bindings, options);
|
|
151
196
|
if (second.killed) {
|
|
152
197
|
// Give up restoring state: report the second outcome with the first's
|
|
@@ -156,11 +201,28 @@ export class SessionRegistry {
|
|
|
156
201
|
return second;
|
|
157
202
|
}
|
|
158
203
|
#executeOnce(kernel, sessionId, code, bindings, options) {
|
|
204
|
+
const snapshot = this.#config.snapshot?.(sessionId);
|
|
159
205
|
return kernel.execute(sessionId, code, bindings, {
|
|
160
206
|
...options.signal !== undefined ? { signal: options.signal } : {},
|
|
161
207
|
...options.cwd !== undefined ? { cwd: options.cwd } : {},
|
|
162
208
|
...options.env !== undefined ? { env: options.env } : {},
|
|
209
|
+
...snapshot !== undefined ? { snapshot } : {},
|
|
163
210
|
});
|
|
164
211
|
}
|
|
212
|
+
/** Best-effort delete of one session's snapshot file (ignore missing/denied). */
|
|
213
|
+
#deleteSnapshot(sessionId) {
|
|
214
|
+
const spec = this.#config.snapshot?.(sessionId);
|
|
215
|
+
if (spec === undefined)
|
|
216
|
+
return;
|
|
217
|
+
try {
|
|
218
|
+
rmSync(spec.path, { force: true });
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// A failed delete leaves a stale snapshot: the kernel will restore it,
|
|
222
|
+
// which is exactly the surprising outcome reset must prevent. Report by
|
|
223
|
+
// name instead of certifying state was discarded.
|
|
224
|
+
console.warn(`dsh-code-runtime-kernels: could not remove snapshot ${JSON.stringify(spec.path)} for session ${JSON.stringify(sessionId)}`);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
165
227
|
}
|
|
166
228
|
//# sourceMappingURL=session.js.map
|
package/dist/core/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|