@ebowwa/sandbox 0.1.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/dist/compilers/index.d.ts +24 -0
- package/dist/compilers/index.d.ts.map +1 -0
- package/dist/compilers/index.js +42 -0
- package/dist/compilers/index.js.map +1 -0
- package/dist/compilers/javascript.d.ts +117 -0
- package/dist/compilers/javascript.d.ts.map +1 -0
- package/dist/compilers/javascript.js +462 -0
- package/dist/compilers/javascript.js.map +1 -0
- package/dist/compilers/python.d.ts +140 -0
- package/dist/compilers/python.d.ts.map +1 -0
- package/dist/compilers/python.js +650 -0
- package/dist/compilers/python.js.map +1 -0
- package/dist/compilers/typescript.d.ts +99 -0
- package/dist/compilers/typescript.d.ts.map +1 -0
- package/dist/compilers/typescript.js +323 -0
- package/dist/compilers/typescript.js.map +1 -0
- package/dist/core/cell.d.ts +160 -0
- package/dist/core/cell.d.ts.map +1 -0
- package/dist/core/cell.js +319 -0
- package/dist/core/cell.js.map +1 -0
- package/dist/core/compiler.d.ts +126 -0
- package/dist/core/compiler.d.ts.map +1 -0
- package/dist/core/compiler.js +123 -0
- package/dist/core/compiler.js.map +1 -0
- package/dist/core/index.d.ts +19 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/limits.d.ts +173 -0
- package/dist/core/limits.d.ts.map +1 -0
- package/dist/core/limits.js +440 -0
- package/dist/core/limits.js.map +1 -0
- package/dist/core/permissions.d.ts +103 -0
- package/dist/core/permissions.d.ts.map +1 -0
- package/dist/core/permissions.js +341 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/runtime.d.ts +127 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +325 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/types.d.ts +380 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +67 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +145 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +279 -0
- package/dist/index.js.map +1 -0
- package/dist/multi/index.d.ts +9 -0
- package/dist/multi/index.d.ts.map +1 -0
- package/dist/multi/index.js +7 -0
- package/dist/multi/index.js.map +1 -0
- package/dist/multi/polyglot.d.ts +179 -0
- package/dist/multi/polyglot.d.ts.map +1 -0
- package/dist/multi/polyglot.js +319 -0
- package/dist/multi/polyglot.js.map +1 -0
- package/dist/runtimes/docker.d.ts +97 -0
- package/dist/runtimes/docker.d.ts.map +1 -0
- package/dist/runtimes/docker.js +368 -0
- package/dist/runtimes/docker.js.map +1 -0
- package/dist/runtimes/index.d.ts +11 -0
- package/dist/runtimes/index.d.ts.map +1 -0
- package/dist/runtimes/index.js +9 -0
- package/dist/runtimes/index.js.map +1 -0
- package/dist/runtimes/process.d.ts +47 -0
- package/dist/runtimes/process.d.ts.map +1 -0
- package/dist/runtimes/process.js +230 -0
- package/dist/runtimes/process.js.map +1 -0
- package/dist/session/index.d.ts +12 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +9 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/kernel.d.ts +199 -0
- package/dist/session/kernel.d.ts.map +1 -0
- package/dist/session/kernel.js +400 -0
- package/dist/session/kernel.js.map +1 -0
- package/dist/session/notebook.d.ts +168 -0
- package/dist/session/notebook.d.ts.map +1 -0
- package/dist/session/notebook.js +499 -0
- package/dist/session/notebook.js.map +1 -0
- package/dist/session/repl.d.ts +159 -0
- package/dist/session/repl.d.ts.map +1 -0
- package/dist/session/repl.js +409 -0
- package/dist/session/repl.js.map +1 -0
- package/package.json +142 -0
- package/src/compilers/index.ts +80 -0
- package/src/compilers/javascript.ts +571 -0
- package/src/compilers/python.ts +785 -0
- package/src/compilers/typescript.ts +442 -0
- package/src/core/cell.ts +439 -0
- package/src/core/compiler.ts +250 -0
- package/src/core/index.ts +123 -0
- package/src/core/limits.ts +508 -0
- package/src/core/permissions.ts +409 -0
- package/src/core/runtime.ts +499 -0
- package/src/core/types.ts +528 -0
- package/src/global.d.ts +59 -0
- package/src/index.ts +515 -0
- package/src/multi/index.ts +22 -0
- package/src/multi/polyglot.ts +461 -0
- package/src/runtimes/docker.ts +501 -0
- package/src/runtimes/index.ts +21 -0
- package/src/runtimes/process.ts +316 -0
- package/src/session/index.ts +41 -0
- package/src/session/kernel.ts +553 -0
- package/src/session/notebook.ts +635 -0
- package/src/session/repl.ts +521 -0
- package/src/wasm2wasm.d.ts +35 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Runtime
|
|
3
|
+
*
|
|
4
|
+
* Spawns child processes for code execution with elevated permissions.
|
|
5
|
+
* Supports filesystem and network access with configurable limits.
|
|
6
|
+
*
|
|
7
|
+
* Isolation level: 'process'
|
|
8
|
+
*/
|
|
9
|
+
import { spawn } from "node:child_process";
|
|
10
|
+
import { setTimeout as setTimeoutPromise } from "node:timers/promises";
|
|
11
|
+
/**
|
|
12
|
+
* Process Runtime
|
|
13
|
+
*
|
|
14
|
+
* Executes code in child processes with configurable permissions.
|
|
15
|
+
* Provides filesystem and network access based on permission level.
|
|
16
|
+
*/
|
|
17
|
+
export class ProcessRuntime {
|
|
18
|
+
name = "process";
|
|
19
|
+
capabilities = {
|
|
20
|
+
isolation: "process",
|
|
21
|
+
stateful: true,
|
|
22
|
+
async: true,
|
|
23
|
+
filesystem: true,
|
|
24
|
+
network: true,
|
|
25
|
+
maxMemory: 4 * 1024 * 1024 * 1024, // 4GB
|
|
26
|
+
wasi: false,
|
|
27
|
+
};
|
|
28
|
+
executing = false;
|
|
29
|
+
config;
|
|
30
|
+
constructor(config = {}) {
|
|
31
|
+
this.config = {
|
|
32
|
+
shell: config.shell ?? "/bin/sh",
|
|
33
|
+
availabilityTimeout: config.availabilityTimeout ?? 5000,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async init() {
|
|
37
|
+
// No special initialization needed for process runtime
|
|
38
|
+
}
|
|
39
|
+
async isAvailable() {
|
|
40
|
+
// Process spawning is always available in Node.js
|
|
41
|
+
return typeof process !== "undefined" && typeof spawn === "function";
|
|
42
|
+
}
|
|
43
|
+
async execute(request, options) {
|
|
44
|
+
const startTime = Date.now();
|
|
45
|
+
this.executing = true;
|
|
46
|
+
const stdout = [];
|
|
47
|
+
const stderr = [];
|
|
48
|
+
const displays = [];
|
|
49
|
+
try {
|
|
50
|
+
// Parse limits
|
|
51
|
+
const timeout = this.parseTimeout(options.limits?.timeout);
|
|
52
|
+
const maxMemory = this.parseMemory(options.limits?.memory);
|
|
53
|
+
// Build execution command based on code type
|
|
54
|
+
const { command, args } = this.buildCommand(request, options);
|
|
55
|
+
// Create abort controller for timeout
|
|
56
|
+
const controller = new AbortController();
|
|
57
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
58
|
+
// Combine with external signal if provided
|
|
59
|
+
if (options.signal) {
|
|
60
|
+
options.signal.addEventListener("abort", () => {
|
|
61
|
+
controller.abort();
|
|
62
|
+
clearTimeout(timeoutId);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// Spawn child process
|
|
66
|
+
const childProcess = spawn(command, args, {
|
|
67
|
+
cwd: options.cwd ?? process.cwd(),
|
|
68
|
+
env: {
|
|
69
|
+
...process.env,
|
|
70
|
+
...options.env,
|
|
71
|
+
NODE_OPTIONS: `--max-old-space-size=${Math.floor(maxMemory / (1024 * 1024))}`,
|
|
72
|
+
},
|
|
73
|
+
signal: controller.signal,
|
|
74
|
+
shell: false,
|
|
75
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
76
|
+
});
|
|
77
|
+
// Collect stdout
|
|
78
|
+
childProcess.stdout?.on("data", (data) => {
|
|
79
|
+
stdout.push(data.toString("utf8"));
|
|
80
|
+
});
|
|
81
|
+
// Collect stderr
|
|
82
|
+
childProcess.stderr?.on("data", (data) => {
|
|
83
|
+
stderr.push(data.toString("utf8"));
|
|
84
|
+
});
|
|
85
|
+
// Handle process events
|
|
86
|
+
const result = await new Promise((resolve) => {
|
|
87
|
+
let returnValue = undefined;
|
|
88
|
+
childProcess.on("error", (error) => {
|
|
89
|
+
clearTimeout(timeoutId);
|
|
90
|
+
resolve(this.createErrorResult(`Process error: ${error.message}`, "runtime", startTime, stdout, stderr));
|
|
91
|
+
});
|
|
92
|
+
childProcess.on("close", (code, signal) => {
|
|
93
|
+
clearTimeout(timeoutId);
|
|
94
|
+
if (signal) {
|
|
95
|
+
resolve(this.createErrorResult(`Process killed by signal: ${signal}`, signal === "SIGTERM" ? "timeout" : "cancel", startTime, stdout, stderr));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Try to parse stdout as JSON for return value
|
|
99
|
+
const output = stdout.join("");
|
|
100
|
+
try {
|
|
101
|
+
const parsed = JSON.parse(output);
|
|
102
|
+
if (parsed.__return_value !== undefined) {
|
|
103
|
+
returnValue = parsed.__return_value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// Not JSON, use raw output as value
|
|
108
|
+
returnValue = output.trim() || undefined;
|
|
109
|
+
}
|
|
110
|
+
resolve({
|
|
111
|
+
success: code === 0,
|
|
112
|
+
value: returnValue,
|
|
113
|
+
metrics: {
|
|
114
|
+
duration: Date.now() - startTime,
|
|
115
|
+
memoryUsed: 0, // Not tracked at process level
|
|
116
|
+
},
|
|
117
|
+
output: { stdout, stderr, displays },
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
// Write input if provided
|
|
121
|
+
if (request.input !== undefined) {
|
|
122
|
+
const inputStr = typeof request.input === "string"
|
|
123
|
+
? request.input
|
|
124
|
+
: JSON.stringify(request.input);
|
|
125
|
+
childProcess.stdin?.write(inputStr);
|
|
126
|
+
childProcess.stdin?.end();
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return result;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
133
|
+
return this.createErrorResult("Execution timed out", "timeout", startTime, stdout, stderr);
|
|
134
|
+
}
|
|
135
|
+
return this.createErrorResult(error instanceof Error ? error.message : String(error), "runtime", startTime, stdout, stderr);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
this.executing = false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async terminate() {
|
|
142
|
+
this.executing = false;
|
|
143
|
+
}
|
|
144
|
+
isExecuting() {
|
|
145
|
+
return this.executing;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Build command and arguments for execution
|
|
149
|
+
*/
|
|
150
|
+
buildCommand(request, options) {
|
|
151
|
+
// Execute WASM using node with WASI support
|
|
152
|
+
return {
|
|
153
|
+
command: "node",
|
|
154
|
+
args: [
|
|
155
|
+
"--experimental-wasi-unstable-preview1",
|
|
156
|
+
"-e",
|
|
157
|
+
this.generateWasmRunner(request.wasm.wasmBytes, options.permissions),
|
|
158
|
+
],
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Generate WASM runner script
|
|
163
|
+
*/
|
|
164
|
+
generateWasmRunner(wasmBytes, permissions) {
|
|
165
|
+
const hasFs = permissions.fs?.read || permissions.fs?.write;
|
|
166
|
+
const hasNetwork = permissions.network?.outbound || permissions.network?.inbound;
|
|
167
|
+
return `
|
|
168
|
+
const { WASI } = require('wasi');
|
|
169
|
+
const { readFile } = require('fs/promises');
|
|
170
|
+
|
|
171
|
+
async function run() {
|
|
172
|
+
const wasmBuffer = Buffer.from([${Array.from(wasmBytes).join(",")}]);
|
|
173
|
+
|
|
174
|
+
const wasi = new WASI({
|
|
175
|
+
version: 'preview1',
|
|
176
|
+
preopens: ${hasFs ? "{ '/': process.cwd() }" : "{}"},
|
|
177
|
+
env: process.env,
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
const { instance } = await WebAssembly.instantiate(wasmBuffer, {
|
|
181
|
+
wasi_snapshot_preview1: wasi.wasiImport,
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
wasi.start(instance);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
run().catch(console.error);
|
|
188
|
+
`;
|
|
189
|
+
}
|
|
190
|
+
createErrorResult(message, type, startTime, stdout = [], stderr = []) {
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
error: { message, type },
|
|
194
|
+
metrics: {
|
|
195
|
+
duration: Date.now() - startTime,
|
|
196
|
+
memoryUsed: 0,
|
|
197
|
+
},
|
|
198
|
+
output: { stdout, stderr, displays: [] },
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
parseMemory(memory) {
|
|
202
|
+
if (!memory)
|
|
203
|
+
return 256 * 1024 * 1024; // 256MB default
|
|
204
|
+
if (typeof memory === "number")
|
|
205
|
+
return memory;
|
|
206
|
+
const match = memory.match(/^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i);
|
|
207
|
+
if (!match)
|
|
208
|
+
return 256 * 1024 * 1024;
|
|
209
|
+
const [, num, unit] = match;
|
|
210
|
+
const multipliers = {
|
|
211
|
+
b: 1, kb: 1024, mb: 1024 ** 2, gb: 1024 ** 3,
|
|
212
|
+
};
|
|
213
|
+
return Math.floor(parseFloat(num) * (multipliers[unit?.toLowerCase() ?? "b"] ?? 1));
|
|
214
|
+
}
|
|
215
|
+
parseTimeout(timeout) {
|
|
216
|
+
if (!timeout)
|
|
217
|
+
return 60000; // 60s default for process
|
|
218
|
+
if (typeof timeout === "number")
|
|
219
|
+
return timeout;
|
|
220
|
+
const match = timeout.match(/^(\d+(?:\.\d+)?)\s*(ms|s|m)?$/i);
|
|
221
|
+
if (!match)
|
|
222
|
+
return 60000;
|
|
223
|
+
const [, num, unit] = match;
|
|
224
|
+
const multipliers = {
|
|
225
|
+
ms: 1, s: 1000, m: 60000,
|
|
226
|
+
};
|
|
227
|
+
return Math.floor(parseFloat(num) * (multipliers[unit?.toLowerCase() ?? "ms"] ?? 1));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/runtimes/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Primitives
|
|
3
|
+
*
|
|
4
|
+
* Stateful execution contexts for interactive use.
|
|
5
|
+
*/
|
|
6
|
+
export type { KernelState, KernelOptions, KernelStats, } from "./kernel.js";
|
|
7
|
+
export { BaseKernel, KernelManager, } from "./kernel.js";
|
|
8
|
+
export type { NotebookOptions, NotebookState, NotebookEvents, } from "./notebook.js";
|
|
9
|
+
export { BaseNotebook, createNotebook, } from "./notebook.js";
|
|
10
|
+
export type { REPLOptions, REPLHistoryEntry, REPLState, } from "./repl.js";
|
|
11
|
+
export { BaseREPL, createREPL, } from "./repl.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,SAAS,GACV,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Primitives
|
|
3
|
+
*
|
|
4
|
+
* Stateful execution contexts for interactive use.
|
|
5
|
+
*/
|
|
6
|
+
export { BaseKernel, KernelManager, } from "./kernel.js";
|
|
7
|
+
export { BaseNotebook, createNotebook, } from "./notebook.js";
|
|
8
|
+
export { BaseREPL, createREPL, } from "./repl.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EACL,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AASvB,OAAO,EACL,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kernel Primitive
|
|
3
|
+
*
|
|
4
|
+
* Language-specific execution session with state persistence.
|
|
5
|
+
* Provides REPL-like interactive execution for a single language.
|
|
6
|
+
*/
|
|
7
|
+
import type { Language, Kernel, ExecutionResult, ExecutionOptions, CompletionResult, InspectResult, Permissions, Limits } from "../core/types.js";
|
|
8
|
+
import type { ICompiler } from "../core/compiler.js";
|
|
9
|
+
import type { IRuntime } from "../core/runtime.js";
|
|
10
|
+
/**
|
|
11
|
+
* Kernel state
|
|
12
|
+
*/
|
|
13
|
+
export type KernelState = "starting" | "ready" | "busy" | "error" | "shutting_down" | "dead";
|
|
14
|
+
/**
|
|
15
|
+
* Kernel options
|
|
16
|
+
*/
|
|
17
|
+
export interface KernelOptions {
|
|
18
|
+
/** Kernel ID */
|
|
19
|
+
id?: string;
|
|
20
|
+
/** Display name */
|
|
21
|
+
displayName?: string;
|
|
22
|
+
/** Language */
|
|
23
|
+
language: Language;
|
|
24
|
+
/** Compiler for this language */
|
|
25
|
+
compiler: ICompiler;
|
|
26
|
+
/** Runtime for execution */
|
|
27
|
+
runtime: IRuntime;
|
|
28
|
+
/** Permissions */
|
|
29
|
+
permissions?: Permissions;
|
|
30
|
+
/** Resource limits */
|
|
31
|
+
limits?: Limits;
|
|
32
|
+
/** Environment variables */
|
|
33
|
+
env?: Record<string, string>;
|
|
34
|
+
/** Working directory */
|
|
35
|
+
cwd?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Kernel statistics
|
|
39
|
+
*/
|
|
40
|
+
export interface KernelStats {
|
|
41
|
+
/** Total executions */
|
|
42
|
+
executions: number;
|
|
43
|
+
/** Successful executions */
|
|
44
|
+
successes: number;
|
|
45
|
+
/** Failed executions */
|
|
46
|
+
failures: number;
|
|
47
|
+
/** Total execution time (ms) */
|
|
48
|
+
totalTime: number;
|
|
49
|
+
/** Average execution time (ms) */
|
|
50
|
+
avgTime: number;
|
|
51
|
+
/** Memory high water mark */
|
|
52
|
+
memoryHighWater: number;
|
|
53
|
+
/** Last execution time */
|
|
54
|
+
lastExecution?: Date;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Base Kernel Implementation
|
|
58
|
+
*
|
|
59
|
+
* Provides core kernel functionality with state management.
|
|
60
|
+
*/
|
|
61
|
+
export declare class BaseKernel implements Kernel {
|
|
62
|
+
readonly language: Language;
|
|
63
|
+
readonly displayName: string;
|
|
64
|
+
private id;
|
|
65
|
+
private state;
|
|
66
|
+
private kernelState;
|
|
67
|
+
private exports;
|
|
68
|
+
private compiler;
|
|
69
|
+
private runtime;
|
|
70
|
+
private permissions;
|
|
71
|
+
private limits;
|
|
72
|
+
private env;
|
|
73
|
+
private cwd?;
|
|
74
|
+
private stats;
|
|
75
|
+
private permissionChecker;
|
|
76
|
+
constructor(options: KernelOptions);
|
|
77
|
+
/**
|
|
78
|
+
* Get kernel ID
|
|
79
|
+
*/
|
|
80
|
+
getId(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Get current execution state
|
|
83
|
+
*/
|
|
84
|
+
getExecutionState(): KernelState;
|
|
85
|
+
/**
|
|
86
|
+
* Get kernel state (variables)
|
|
87
|
+
*/
|
|
88
|
+
getState(): Map<string, unknown>;
|
|
89
|
+
/**
|
|
90
|
+
* Get exports
|
|
91
|
+
*/
|
|
92
|
+
getExports(): Map<string, unknown>;
|
|
93
|
+
/**
|
|
94
|
+
* Get statistics
|
|
95
|
+
*/
|
|
96
|
+
getStats(): KernelStats;
|
|
97
|
+
/**
|
|
98
|
+
* Start the kernel
|
|
99
|
+
*/
|
|
100
|
+
start(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Check if kernel is running
|
|
103
|
+
*/
|
|
104
|
+
isRunning(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Get display name
|
|
107
|
+
*/
|
|
108
|
+
getDisplayName(): string;
|
|
109
|
+
/**
|
|
110
|
+
* Get language
|
|
111
|
+
*/
|
|
112
|
+
getLanguage(): Language;
|
|
113
|
+
/**
|
|
114
|
+
* Execute code
|
|
115
|
+
*/
|
|
116
|
+
execute(code: string, options?: ExecutionOptions): Promise<ExecutionResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Complete code at position (autocomplete)
|
|
119
|
+
*/
|
|
120
|
+
complete(code: string, position: number): Promise<CompletionResult>;
|
|
121
|
+
/**
|
|
122
|
+
* Inspect object at position
|
|
123
|
+
*/
|
|
124
|
+
inspect(code: string, position: number): Promise<InspectResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Restart kernel (clear state)
|
|
127
|
+
*/
|
|
128
|
+
restart(): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Shutdown kernel
|
|
131
|
+
*/
|
|
132
|
+
shutdown(): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Interrupt current execution
|
|
135
|
+
*/
|
|
136
|
+
interrupt(): void;
|
|
137
|
+
/**
|
|
138
|
+
* Set environment variable
|
|
139
|
+
*/
|
|
140
|
+
setEnv(key: string, value: string): void;
|
|
141
|
+
/**
|
|
142
|
+
* Get environment variable
|
|
143
|
+
*/
|
|
144
|
+
getEnv(key: string): string | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Update permissions
|
|
147
|
+
*/
|
|
148
|
+
setPermissions(permissions: Permissions): void;
|
|
149
|
+
/**
|
|
150
|
+
* Update limits
|
|
151
|
+
*/
|
|
152
|
+
setLimits(limits: Limits): void;
|
|
153
|
+
/**
|
|
154
|
+
* Create error result
|
|
155
|
+
*/
|
|
156
|
+
private createErrorResult;
|
|
157
|
+
/**
|
|
158
|
+
* Update statistics
|
|
159
|
+
*/
|
|
160
|
+
private updateStats;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Kernel Manager
|
|
164
|
+
*
|
|
165
|
+
* Manages multiple kernels across languages.
|
|
166
|
+
*/
|
|
167
|
+
export declare class KernelManager {
|
|
168
|
+
private kernels;
|
|
169
|
+
private languageKernels;
|
|
170
|
+
/**
|
|
171
|
+
* Create and register a kernel
|
|
172
|
+
*/
|
|
173
|
+
createKernel(options: KernelOptions): Promise<BaseKernel>;
|
|
174
|
+
/**
|
|
175
|
+
* Get kernel by ID
|
|
176
|
+
*/
|
|
177
|
+
getKernel(id: string): BaseKernel | undefined;
|
|
178
|
+
/**
|
|
179
|
+
* Get kernels by language
|
|
180
|
+
*/
|
|
181
|
+
getKernelsByLanguage(language: Language): BaseKernel[];
|
|
182
|
+
/**
|
|
183
|
+
* Get all kernels
|
|
184
|
+
*/
|
|
185
|
+
getAllKernels(): BaseKernel[];
|
|
186
|
+
/**
|
|
187
|
+
* Shutdown a kernel
|
|
188
|
+
*/
|
|
189
|
+
shutdownKernel(id: string): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Shutdown all kernels
|
|
192
|
+
*/
|
|
193
|
+
shutdownAll(): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Get kernel count
|
|
196
|
+
*/
|
|
197
|
+
get count(): number;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=kernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/session/kernel.ts"],"names":[],"mappings":"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"}
|