@hy-sde-org/dsh-code-runtime-kernels 0.1.1-rc.2 → 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.
@@ -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
@@ -85,6 +100,15 @@ export class SessionRegistry {
85
100
  }, this.#config.sessionIdleMs);
86
101
  session.idleTimer.unref();
87
102
  }
103
+ /**
104
+ * Throw when the registry is already disposed. Reads the field fresh, so a
105
+ * check after an await point cannot be narrowed away by an earlier one.
106
+ */
107
+ #assertNotDisposed() {
108
+ if (this.#disposed) {
109
+ throw new Error(`${this.#config.label} session registry disposed while acquiring kernel`);
110
+ }
111
+ }
88
112
  async #acquireKernel(sessionId, session) {
89
113
  if (session.kernel !== null && session.kernel.isAlive())
90
114
  return session.kernel;
@@ -93,47 +117,81 @@ export class SessionRegistry {
93
117
  await previous.shutdown().catch(() => { });
94
118
  session.kernel = null;
95
119
  }
96
- if (this.#disposed) {
97
- throw new Error(`${this.#config.label} session registry disposed while acquiring kernel`);
98
- }
120
+ this.#assertNotDisposed();
99
121
  if (this.#sessions.get(sessionId) !== session) {
100
122
  throw new Error(`${this.#config.label} session invalidated while acquiring kernel`);
101
123
  }
102
124
  const kernel = await this.#config.start();
103
- // oxlint-disable-next-line typescript/no-unnecessary-condition -- set by disposeAll elsewhere
104
125
  if (this.#disposed) {
105
126
  await kernel.shutdown().catch(() => { });
106
- throw new Error(`${this.#config.label} session registry disposed while acquiring kernel`);
127
+ this.#assertNotDisposed();
107
128
  }
108
129
  if (this.#sessions.get(sessionId) !== session) {
109
130
  await kernel.shutdown().catch(() => { });
110
131
  throw new Error(`${this.#config.label} session invalidated while acquiring kernel`);
111
132
  }
112
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
+ }
113
146
  return kernel;
114
147
  }
115
148
  async #runOnSession(session, sessionId, code, bindings, options) {
116
149
  if (options.reset === true) {
117
150
  // Reset first, then acquire: prior kernel state is discarded and its
118
- // 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.
119
154
  const previous = session.kernel;
120
155
  if (previous !== null) {
121
156
  session.kernel = null;
122
157
  clearTimeout(session.idleTimer);
123
158
  await previous.shutdown().catch(() => { });
124
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;
125
170
  }
126
- let kernel = await this.#acquireKernel(sessionId, session);
127
171
  const first = await this.#executeOnce(kernel, sessionId, code, bindings, options);
128
172
  // A kernel that died or was killed settling the run is replaced once and
129
- // the run retried; otherwise return what we got.
130
- const needsRetry = first.killed && session === this.#sessions.get(sessionId);
131
- if (!needsRetry)
173
+ // the run retried; otherwise return what we got. A result that came back
174
+ // `cancelled` with the caller still live and the kernel no longer alive is
175
+ // the same dead-kernel case: the runner died settling the cancellation, so
176
+ // a fresh kernel gets one retry (mirrors omp's dead-kernel recovery in
177
+ // `kernel-session-registry.executeOnSession`).
178
+ if (session !== this.#sessions.get(sessionId))
179
+ return first;
180
+ const dead = !kernel.isAlive();
181
+ const cancelledButAlive = first.cancelled && !(options.signal?.aborted === true) && dead;
182
+ if (!first.killed && !cancelledButAlive)
132
183
  return first;
133
184
  await kernel.shutdown().catch(() => { });
134
185
  if (session !== this.#sessions.get(sessionId))
135
186
  return first;
136
- kernel = await this.#acquireKernel(sessionId, session);
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
+ }
137
195
  const second = await this.#executeOnce(kernel, sessionId, code, bindings, options);
138
196
  if (second.killed) {
139
197
  // Give up restoring state: report the second outcome with the first's
@@ -143,11 +201,28 @@ export class SessionRegistry {
143
201
  return second;
144
202
  }
145
203
  #executeOnce(kernel, sessionId, code, bindings, options) {
204
+ const snapshot = this.#config.snapshot?.(sessionId);
146
205
  return kernel.execute(sessionId, code, bindings, {
147
206
  ...options.signal !== undefined ? { signal: options.signal } : {},
148
207
  ...options.cwd !== undefined ? { cwd: options.cwd } : {},
149
208
  ...options.env !== undefined ? { env: options.env } : {},
209
+ ...snapshot !== undefined ? { snapshot } : {},
150
210
  });
151
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
+ }
152
227
  }
153
228
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,10 +14,11 @@ import { Context } from '@deepseek-ai/cordis';
14
14
  import z from '@deepseek-ai/schemastery';
15
15
  import type { CodeBindingNamespace, CodeJsonValue, CodeRunResult } from '@deepseek-ai/dsh-code-runtime';
16
16
  import type { TerminalCallView, TerminalResultView, ToolResult } from '@deepseek-ai/dsh-tools';
17
+ import type { KernelSandboxProvider } from './core/kernel.ts';
17
18
  /** Cordis plugin name for loader diagnostics. */
18
19
  export declare const name = "code-runtime-kernels";
19
20
  /** Services this plugin requires: the tool registry and the system-prompt builder. */
20
- export declare const inject: readonly ["tools", "systemPrompt"];
21
+ export declare const inject: string[];
21
22
  /**
22
23
  * Plugin config: which languages are enabled, and every execution cap
23
24
  * (changeable from any cordis.yml that mounts this plugin).
@@ -27,6 +28,12 @@ export interface Config {
27
28
  languages?: ('python' | 'typescript')[];
28
29
  /** Explicit python executable. Defaults to `python3` on PATH (fails loud at first spawn when absent). */
29
30
  pythonPath?: string;
31
+ /**
32
+ * Python execution semantics: `stdlib` (default, self-contained runner) or
33
+ * `ipykernel` (real IPython shell: magics, `!cmd`, display — the interpreter
34
+ * must have IPython/ipykernel installed; the runner fails loud otherwise).
35
+ */
36
+ pythonImpl?: 'stdlib' | 'ipykernel';
30
37
  /** Explicit node executable. Defaults to `node` on PATH (fails loud at first spawn when absent). */
31
38
  nodePath?: string;
32
39
  /** Cooperative tool-call timeout budget (ms) for `run_kernel_code` (default 30000). */
@@ -35,6 +42,8 @@ export interface Config {
35
42
  maxWallMs?: number;
36
43
  /** Hard cap on combined serialized log-, completion-, and failure-message bytes. */
37
44
  maxOutputBytes?: number;
45
+ /** Per-line output cap (chars): a longer line is clipped with a `…` marker. */
46
+ maxOutputLineChars?: number;
38
47
  /** Reap a session idle for at least this many ms; `0` disables reaping. */
39
48
  sessionIdleMs?: number;
40
49
  /** Wait after SIGINT before SIGTERM, then the same again before SIGKILL. */
@@ -43,6 +52,38 @@ export interface Config {
43
52
  startupTimeoutMs?: number;
44
53
  /** Grace period for the kernel to exit after an `exit` frame. */
45
54
  shutdownGraceMs?: number;
55
+ /**
56
+ * Namespace persistence: each successful run snapshots the session's kernel
57
+ * namespace to disk, and a fresh kernel for that session restores it once
58
+ * (so state survives kernel death and a full plugin restart). `false`
59
+ * disables; `snapshotDir` sets the root (default `~/.dsh/code-runtime-kernels/state`,
60
+ * language + session-hash subdirectories).
61
+ */
62
+ snapshot?: boolean;
63
+ /** Root directory for session snapshots (ignored when `snapshot` is false). */
64
+ snapshotDir?: string;
65
+ /** Combined byte cap for one snapshot file; entries past it are skipped by name. */
66
+ snapshotMaxBytes?: number;
67
+ /** Per-entry byte cap; an entry larger than this is skipped and named. */
68
+ snapshotMaxEntryBytes?: number;
69
+ /**
70
+ * Session "toolbox": one preload source per language. It runs as a hidden
71
+ * first cell of every fresh session kernel (before the snapshot restore,
72
+ * so restored names shadow same-named helpers; user state wins). A preload
73
+ * failure fails the triggering run like an exception.
74
+ */
75
+ preload?: {
76
+ python?: string;
77
+ typescript?: string;
78
+ };
79
+ /** Confine kernel subprocesses through the sandbox seam (default false = unconfined). */
80
+ sandboxConfinement?: boolean;
81
+ /** The confine capability (see `SandboxProvider` in `@deepseek-ai/dsh-sandbox`); required when `sandboxConfinement` is true. */
82
+ sandboxProvider?: KernelSandboxProvider;
83
+ /** Writable root under `workspace-write` confinement (defaults to the process cwd). */
84
+ sandboxWorkspaceRoot?: string;
85
+ /** File-effect mode for kernels under confinement (default `workspace-write`). */
86
+ sandboxMode?: 'read-only' | 'workspace-write';
46
87
  }
47
88
  /** Schemastery schema for {@link Config}: defaults filled at load time. */
48
89
  export declare const Config: z<Config>;
@@ -50,7 +91,11 @@ export declare const Config: z<Config>;
50
91
  export interface KernelRunRequest {
51
92
  /** Which kernel to run the program in (`'python'` presents as `language: python`, `'typescript'` as the SDK). */
52
93
  language: 'python' | 'typescript';
53
- /** The program source. Typescript runs as an async-function body (top-level `await`/`return` work); python runs as a module (top-level `await` works, the last expression is the value). */
94
+ /**
95
+ * The program source. Typescript runs as an async-function body (top-level
96
+ * `await`/`return` work); python runs as a module (top-level `await` works,
97
+ * the last expression is the value).
98
+ */
54
99
  code: string;
55
100
  /** Optional persistent-kernel identity: runs sharing one keep kernel state. */
56
101
  sessionId?: string;
@@ -88,13 +133,31 @@ export declare class KernelManager {
88
133
  * disposed manager, an invalid binding namespace). With a non-empty
89
134
  * `sessionId` the program runs in that session's persistent kernel and
90
135
  * `executionCount` is reported; `reset: true` discards prior state first.
136
+ *
137
+ * `onOutputLimit` is a best-effort spill hook called only when the run's
138
+ * output crosses `maxOutputBytes`: it receives the FULL captured program
139
+ * output (the same bytes that just overflowed the result budget) and may
140
+ * persist them somewhere recoverable. Returning a retrieval hint rewrites
141
+ * the `output-limit` message so the caller can recover the dropped tail;
142
+ * returning `undefined` (no backend, no owner, storage failure) keeps the
143
+ * truncated result untouched. The manager never awaits this beyond a
144
+ * best-effort `catch` — spill failure cannot fail the program.
145
+ */
146
+ run(request: KernelRunRequest, onOutputLimit?: (content: string) => Promise<string | undefined>): Promise<KernelRunResult>;
147
+ /**
148
+ * Map a kernel outcome onto the failure taxonomy through the output ledger.
149
+ * Budget expiry owns a run that hit the wall clock (whether or not the
150
+ * kernel survived to acknowledge it); everything else interrupted is an
151
+ * abort; a died kernel is an abort unless the budget already owns the run.
91
152
  */
92
- run(request: KernelRunRequest): Promise<KernelRunResult>;
93
153
  /**
94
154
  * Map a kernel outcome onto the failure taxonomy through the output ledger.
95
155
  * Budget expiry owns a run that hit the wall clock (whether or not the
96
156
  * kernel survived to acknowledge it); everything else interrupted is an
97
157
  * abort; a died kernel is an abort unless the budget already owns the run.
158
+ *
159
+ * An `output-limit` outcome additionally consults `onOutputLimit` to spill
160
+ * the full captured output, best-effort (never awaited past a catch).
98
161
  */
99
162
  private finalize;
100
163
  /** Reject malformed binding globals or typed-error declarations as contract misuse. */
@@ -131,5 +194,5 @@ export declare function presentRunKernelCodeResult(_args: RunKernelCodeArgs, res
131
194
  * the plugin), and register `run_kernel_code` against `ctx.tools` so a plain
132
195
  * upstream harness exposes the persistent kernels with zero source changes.
133
196
  */
134
- export declare function apply(ctx: Context, config: Config): Promise<void>;
197
+ export declare function apply(ctx: Context, config: Config): void;
135
198
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}