@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,400 @@
|
|
|
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 { PermissionChecker, createPermissions } from "../core/permissions.js";
|
|
8
|
+
import { LimitsParser, LimitsEnforcer, DEFAULT_LIMITS } from "../core/limits.js";
|
|
9
|
+
import { v4 as uuid } from "uuid";
|
|
10
|
+
/**
|
|
11
|
+
* Base Kernel Implementation
|
|
12
|
+
*
|
|
13
|
+
* Provides core kernel functionality with state management.
|
|
14
|
+
*/
|
|
15
|
+
export class BaseKernel {
|
|
16
|
+
language;
|
|
17
|
+
displayName;
|
|
18
|
+
id;
|
|
19
|
+
state = "starting";
|
|
20
|
+
kernelState = new Map();
|
|
21
|
+
exports = new Map();
|
|
22
|
+
compiler;
|
|
23
|
+
runtime;
|
|
24
|
+
permissions;
|
|
25
|
+
limits;
|
|
26
|
+
env;
|
|
27
|
+
cwd;
|
|
28
|
+
stats = {
|
|
29
|
+
executions: 0,
|
|
30
|
+
successes: 0,
|
|
31
|
+
failures: 0,
|
|
32
|
+
totalTime: 0,
|
|
33
|
+
avgTime: 0,
|
|
34
|
+
memoryHighWater: 0,
|
|
35
|
+
};
|
|
36
|
+
permissionChecker;
|
|
37
|
+
constructor(options) {
|
|
38
|
+
this.id = options.id ?? uuid();
|
|
39
|
+
this.language = options.language;
|
|
40
|
+
this.displayName = options.displayName ?? `${options.language} kernel`;
|
|
41
|
+
this.compiler = options.compiler;
|
|
42
|
+
this.runtime = options.runtime;
|
|
43
|
+
this.permissions = options.permissions ?? {};
|
|
44
|
+
this.limits = options.limits ?? {};
|
|
45
|
+
this.env = options.env ?? {};
|
|
46
|
+
this.cwd = options.cwd;
|
|
47
|
+
this.permissionChecker = new PermissionChecker(this.permissions);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get kernel ID
|
|
51
|
+
*/
|
|
52
|
+
getId() {
|
|
53
|
+
return this.id;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get current execution state
|
|
57
|
+
*/
|
|
58
|
+
getExecutionState() {
|
|
59
|
+
return this.state;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get kernel state (variables)
|
|
63
|
+
*/
|
|
64
|
+
getState() {
|
|
65
|
+
return new Map(this.kernelState);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get exports
|
|
69
|
+
*/
|
|
70
|
+
getExports() {
|
|
71
|
+
return new Map(this.exports);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get statistics
|
|
75
|
+
*/
|
|
76
|
+
getStats() {
|
|
77
|
+
return { ...this.stats };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Start the kernel
|
|
81
|
+
*/
|
|
82
|
+
async start() {
|
|
83
|
+
this.state = "starting";
|
|
84
|
+
try {
|
|
85
|
+
// Check if compiler is available
|
|
86
|
+
if (!(await this.compiler.isAvailable())) {
|
|
87
|
+
throw new Error(`Compiler for ${this.language} is not available`);
|
|
88
|
+
}
|
|
89
|
+
// Initialize runtime
|
|
90
|
+
await this.runtime.init();
|
|
91
|
+
// Check if runtime is available
|
|
92
|
+
if (!(await this.runtime.isAvailable())) {
|
|
93
|
+
throw new Error(`Runtime ${this.runtime.name} is not available`);
|
|
94
|
+
}
|
|
95
|
+
this.state = "ready";
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
this.state = "error";
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if kernel is running
|
|
104
|
+
*/
|
|
105
|
+
isRunning() {
|
|
106
|
+
return this.state === "ready" || this.state === "busy";
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get display name
|
|
110
|
+
*/
|
|
111
|
+
getDisplayName() {
|
|
112
|
+
return this.displayName;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get language
|
|
116
|
+
*/
|
|
117
|
+
getLanguage() {
|
|
118
|
+
return this.language;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Execute code
|
|
122
|
+
*/
|
|
123
|
+
async execute(code, options) {
|
|
124
|
+
if (this.state !== "ready" && this.state !== "busy") {
|
|
125
|
+
return this.createErrorResult(`Kernel is not ready (state: ${this.state})`, "runtime");
|
|
126
|
+
}
|
|
127
|
+
this.state = "busy";
|
|
128
|
+
const startTime = Date.now();
|
|
129
|
+
try {
|
|
130
|
+
// Parse limits
|
|
131
|
+
const parsedLimits = LimitsParser.parse(this.limits);
|
|
132
|
+
const enforcer = new LimitsEnforcer(parsedLimits);
|
|
133
|
+
enforcer.start();
|
|
134
|
+
// Check for abort signal
|
|
135
|
+
if (options?.signal?.aborted) {
|
|
136
|
+
return this.createErrorResult("Execution cancelled", "cancel");
|
|
137
|
+
}
|
|
138
|
+
// Compile
|
|
139
|
+
const compiled = await this.compiler.compile(code, this.permissions, this.limits, { optimize: true });
|
|
140
|
+
// Create execution request
|
|
141
|
+
const request = {
|
|
142
|
+
wasm: compiled,
|
|
143
|
+
entrypoint: options?.entrypoint,
|
|
144
|
+
args: options?.args,
|
|
145
|
+
input: options?.input,
|
|
146
|
+
state: this.kernelState,
|
|
147
|
+
};
|
|
148
|
+
// Execute
|
|
149
|
+
const result = await this.runtime.execute(request, {
|
|
150
|
+
permissions: this.permissions,
|
|
151
|
+
limits: this.limits,
|
|
152
|
+
env: this.env,
|
|
153
|
+
cwd: this.cwd,
|
|
154
|
+
signal: options?.signal,
|
|
155
|
+
});
|
|
156
|
+
// Update state if successful
|
|
157
|
+
if (result.success && result.state) {
|
|
158
|
+
for (const [key, value] of result.state) {
|
|
159
|
+
this.kernelState.set(key, value);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Update exports
|
|
163
|
+
if (result.exports) {
|
|
164
|
+
for (const [key, value] of result.exports) {
|
|
165
|
+
this.exports.set(key, value);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Update stats
|
|
169
|
+
this.updateStats(result, Date.now() - startTime);
|
|
170
|
+
this.state = "ready";
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
this.state = "ready";
|
|
175
|
+
const result = this.createErrorResult(error instanceof Error ? error.message : String(error), "runtime");
|
|
176
|
+
this.updateStats(result, Date.now() - startTime);
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Complete code at position (autocomplete)
|
|
182
|
+
*/
|
|
183
|
+
async complete(code, position) {
|
|
184
|
+
// Basic implementation - override in language-specific kernels
|
|
185
|
+
const beforeCursor = code.slice(0, position);
|
|
186
|
+
const match = beforeCursor.match(/(\w+)$/);
|
|
187
|
+
const prefix = match ? match[1] : "";
|
|
188
|
+
// Get completions from state
|
|
189
|
+
const matches = [];
|
|
190
|
+
for (const key of this.kernelState.keys()) {
|
|
191
|
+
if (key.startsWith(prefix)) {
|
|
192
|
+
matches.push(key);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
for (const key of this.exports.keys()) {
|
|
196
|
+
if (key.startsWith(prefix)) {
|
|
197
|
+
matches.push(key);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
matches,
|
|
202
|
+
cursorStart: position - prefix.length,
|
|
203
|
+
cursorEnd: position,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Inspect object at position
|
|
208
|
+
*/
|
|
209
|
+
async inspect(code, position) {
|
|
210
|
+
// Basic implementation - override in language-specific kernels
|
|
211
|
+
const beforeCursor = code.slice(0, position);
|
|
212
|
+
const match = beforeCursor.match(/(\w+)$/);
|
|
213
|
+
const name = match ? match[1] : "";
|
|
214
|
+
if (!name) {
|
|
215
|
+
return { found: false };
|
|
216
|
+
}
|
|
217
|
+
const value = this.kernelState.get(name) ?? this.exports.get(name);
|
|
218
|
+
if (value === undefined) {
|
|
219
|
+
return { found: false };
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
found: true,
|
|
223
|
+
details: {
|
|
224
|
+
type: typeof value,
|
|
225
|
+
documentation: undefined,
|
|
226
|
+
signature: undefined,
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Restart kernel (clear state)
|
|
232
|
+
*/
|
|
233
|
+
async restart() {
|
|
234
|
+
this.kernelState.clear();
|
|
235
|
+
this.exports.clear();
|
|
236
|
+
this.state = "ready";
|
|
237
|
+
// Reset stats
|
|
238
|
+
this.stats = {
|
|
239
|
+
executions: 0,
|
|
240
|
+
successes: 0,
|
|
241
|
+
failures: 0,
|
|
242
|
+
totalTime: 0,
|
|
243
|
+
avgTime: 0,
|
|
244
|
+
memoryHighWater: 0,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Shutdown kernel
|
|
249
|
+
*/
|
|
250
|
+
async shutdown() {
|
|
251
|
+
this.state = "shutting_down";
|
|
252
|
+
try {
|
|
253
|
+
await this.runtime.terminate();
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// Ignore errors during shutdown
|
|
257
|
+
}
|
|
258
|
+
this.kernelState.clear();
|
|
259
|
+
this.exports.clear();
|
|
260
|
+
this.state = "dead";
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Interrupt current execution
|
|
264
|
+
*/
|
|
265
|
+
interrupt() {
|
|
266
|
+
// Override in implementations that support interruption
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Set environment variable
|
|
270
|
+
*/
|
|
271
|
+
setEnv(key, value) {
|
|
272
|
+
this.env[key] = value;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Get environment variable
|
|
276
|
+
*/
|
|
277
|
+
getEnv(key) {
|
|
278
|
+
return this.env[key];
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Update permissions
|
|
282
|
+
*/
|
|
283
|
+
setPermissions(permissions) {
|
|
284
|
+
this.permissions = permissions;
|
|
285
|
+
this.permissionChecker = new PermissionChecker(permissions);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Update limits
|
|
289
|
+
*/
|
|
290
|
+
setLimits(limits) {
|
|
291
|
+
this.limits = limits;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Create error result
|
|
295
|
+
*/
|
|
296
|
+
createErrorResult(message, type) {
|
|
297
|
+
return {
|
|
298
|
+
success: false,
|
|
299
|
+
error: { message, type },
|
|
300
|
+
metrics: {
|
|
301
|
+
duration: 0,
|
|
302
|
+
memoryUsed: 0,
|
|
303
|
+
},
|
|
304
|
+
output: { stdout: [], stderr: [], displays: [] },
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Update statistics
|
|
309
|
+
*/
|
|
310
|
+
updateStats(result, duration) {
|
|
311
|
+
this.stats.executions++;
|
|
312
|
+
this.stats.totalTime += duration;
|
|
313
|
+
this.stats.avgTime = this.stats.totalTime / this.stats.executions;
|
|
314
|
+
this.stats.lastExecution = new Date();
|
|
315
|
+
if (result.success) {
|
|
316
|
+
this.stats.successes++;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this.stats.failures++;
|
|
320
|
+
}
|
|
321
|
+
const memoryUsed = result.metrics.memoryUsed;
|
|
322
|
+
if (memoryUsed > this.stats.memoryHighWater) {
|
|
323
|
+
this.stats.memoryHighWater = memoryUsed;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Kernel Manager
|
|
329
|
+
*
|
|
330
|
+
* Manages multiple kernels across languages.
|
|
331
|
+
*/
|
|
332
|
+
export class KernelManager {
|
|
333
|
+
kernels = new Map();
|
|
334
|
+
languageKernels = new Map();
|
|
335
|
+
/**
|
|
336
|
+
* Create and register a kernel
|
|
337
|
+
*/
|
|
338
|
+
async createKernel(options) {
|
|
339
|
+
const kernel = new BaseKernel(options);
|
|
340
|
+
await kernel.start();
|
|
341
|
+
this.kernels.set(kernel.getId(), kernel);
|
|
342
|
+
if (!this.languageKernels.has(options.language)) {
|
|
343
|
+
this.languageKernels.set(options.language, new Set());
|
|
344
|
+
}
|
|
345
|
+
this.languageKernels.get(options.language).add(kernel.getId());
|
|
346
|
+
return kernel;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Get kernel by ID
|
|
350
|
+
*/
|
|
351
|
+
getKernel(id) {
|
|
352
|
+
return this.kernels.get(id);
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Get kernels by language
|
|
356
|
+
*/
|
|
357
|
+
getKernelsByLanguage(language) {
|
|
358
|
+
const ids = this.languageKernels.get(language);
|
|
359
|
+
if (!ids)
|
|
360
|
+
return [];
|
|
361
|
+
return Array.from(ids)
|
|
362
|
+
.map(id => this.kernels.get(id))
|
|
363
|
+
.filter((k) => k !== undefined);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Get all kernels
|
|
367
|
+
*/
|
|
368
|
+
getAllKernels() {
|
|
369
|
+
return Array.from(this.kernels.values());
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Shutdown a kernel
|
|
373
|
+
*/
|
|
374
|
+
async shutdownKernel(id) {
|
|
375
|
+
const kernel = this.kernels.get(id);
|
|
376
|
+
if (!kernel)
|
|
377
|
+
return;
|
|
378
|
+
await kernel.shutdown();
|
|
379
|
+
// Remove from language index
|
|
380
|
+
const langSet = this.languageKernels.get(kernel.language);
|
|
381
|
+
if (langSet) {
|
|
382
|
+
langSet.delete(id);
|
|
383
|
+
}
|
|
384
|
+
this.kernels.delete(id);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Shutdown all kernels
|
|
388
|
+
*/
|
|
389
|
+
async shutdownAll() {
|
|
390
|
+
const shutdowns = Array.from(this.kernels.keys()).map(id => this.shutdownKernel(id));
|
|
391
|
+
await Promise.all(shutdowns);
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Get kernel count
|
|
395
|
+
*/
|
|
396
|
+
get count() {
|
|
397
|
+
return this.kernels.size;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
//# sourceMappingURL=kernel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/session/kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notebook Primitive
|
|
3
|
+
*
|
|
4
|
+
* Multi-cell, multi-language document with sequential execution.
|
|
5
|
+
* Jupyter-style notebook with cell dependencies and state sharing.
|
|
6
|
+
*/
|
|
7
|
+
import type { Language, Notebook, NotebookMetadata, NotebookRunOptions, NotebookResult, Cell, ExecutionResult, ExecutionOptions, Permissions, Limits } from "../core/types.js";
|
|
8
|
+
import type { ExecutableCell } from "../core/cell.js";
|
|
9
|
+
import { BaseKernel, KernelManager } from "./kernel.js";
|
|
10
|
+
/**
|
|
11
|
+
* Notebook options
|
|
12
|
+
*/
|
|
13
|
+
export interface NotebookOptions {
|
|
14
|
+
/** Notebook ID */
|
|
15
|
+
id?: string;
|
|
16
|
+
/** Notebook name */
|
|
17
|
+
name?: string;
|
|
18
|
+
/** Default language */
|
|
19
|
+
defaultLanguage?: Language;
|
|
20
|
+
/** Initial cells */
|
|
21
|
+
cells?: Cell[];
|
|
22
|
+
/** Permissions */
|
|
23
|
+
permissions?: Permissions;
|
|
24
|
+
/** Resource limits */
|
|
25
|
+
limits?: Limits;
|
|
26
|
+
/** Kernel manager to use */
|
|
27
|
+
kernelManager?: KernelManager;
|
|
28
|
+
/** Kernel factory */
|
|
29
|
+
kernelFactory?: (language: Language) => Promise<BaseKernel>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Notebook state
|
|
33
|
+
*/
|
|
34
|
+
export type NotebookState = "idle" | "running" | "error" | "cancelled";
|
|
35
|
+
/**
|
|
36
|
+
* Notebook events
|
|
37
|
+
*/
|
|
38
|
+
export interface NotebookEvents {
|
|
39
|
+
onCellStart?: (cellId: string, cell: ExecutableCell) => void;
|
|
40
|
+
onCellComplete?: (cellId: string, result: ExecutionResult) => void;
|
|
41
|
+
onCellError?: (cellId: string, error: Error) => void;
|
|
42
|
+
onNotebookComplete?: (results: NotebookResult[]) => void;
|
|
43
|
+
onNotebookError?: (error: Error) => void;
|
|
44
|
+
onProgress?: (completed: number, total: number) => void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Base Notebook Implementation
|
|
48
|
+
*/
|
|
49
|
+
export declare class BaseNotebook implements Notebook {
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly metadata: NotebookMetadata;
|
|
52
|
+
private registry;
|
|
53
|
+
private kernelManager;
|
|
54
|
+
private kernelFactory?;
|
|
55
|
+
private kernels;
|
|
56
|
+
private permissions;
|
|
57
|
+
private limits;
|
|
58
|
+
private state;
|
|
59
|
+
private executionCount;
|
|
60
|
+
private events;
|
|
61
|
+
private abortController?;
|
|
62
|
+
constructor(options: NotebookOptions);
|
|
63
|
+
/**
|
|
64
|
+
* Get current state
|
|
65
|
+
*/
|
|
66
|
+
getState(): NotebookState;
|
|
67
|
+
/**
|
|
68
|
+
* Set event handlers
|
|
69
|
+
*/
|
|
70
|
+
setEvents(events: NotebookEvents): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get all cells
|
|
73
|
+
*/
|
|
74
|
+
get cells(): ExecutableCell[];
|
|
75
|
+
/**
|
|
76
|
+
* Add cell
|
|
77
|
+
*/
|
|
78
|
+
addCell(cell: Omit<Cell, "id">): Cell;
|
|
79
|
+
/**
|
|
80
|
+
* Remove cell
|
|
81
|
+
*/
|
|
82
|
+
removeCell(cellId: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* Move cell
|
|
85
|
+
*/
|
|
86
|
+
moveCell(cellId: string, newIndex: number): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get cell by ID
|
|
89
|
+
*/
|
|
90
|
+
getCell(cellId: string): Cell | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Update cell source
|
|
93
|
+
*/
|
|
94
|
+
updateCell(cellId: string, source: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get or create kernel for language
|
|
97
|
+
*/
|
|
98
|
+
private getKernel;
|
|
99
|
+
/**
|
|
100
|
+
* Execute all cells
|
|
101
|
+
*/
|
|
102
|
+
runAll(options?: NotebookRunOptions): Promise<NotebookResult[]>;
|
|
103
|
+
/**
|
|
104
|
+
* Execute single cell
|
|
105
|
+
*/
|
|
106
|
+
runCell(cellId: string, options?: ExecutionOptions): Promise<NotebookResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Execute cells from index
|
|
109
|
+
*/
|
|
110
|
+
runFrom(startIndex: number): Promise<NotebookResult[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Run cells that depend on a changed cell
|
|
113
|
+
*/
|
|
114
|
+
runDependents(cellId: string): Promise<NotebookResult[]>;
|
|
115
|
+
/**
|
|
116
|
+
* Cancel execution
|
|
117
|
+
*/
|
|
118
|
+
cancel(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Clear all cell outputs
|
|
121
|
+
*/
|
|
122
|
+
clearOutputs(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Restart all kernels
|
|
125
|
+
*/
|
|
126
|
+
restart(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Export notebook
|
|
129
|
+
*/
|
|
130
|
+
export(format: "ipynb" | "json" | "markdown"): string;
|
|
131
|
+
/**
|
|
132
|
+
* Import notebook
|
|
133
|
+
*/
|
|
134
|
+
static import(data: string, format: "ipynb" | "json" | "markdown"): BaseNotebook;
|
|
135
|
+
/**
|
|
136
|
+
* Export to Jupyter format
|
|
137
|
+
*/
|
|
138
|
+
private toIpynb;
|
|
139
|
+
/**
|
|
140
|
+
* Export to JSON
|
|
141
|
+
*/
|
|
142
|
+
private toJson;
|
|
143
|
+
/**
|
|
144
|
+
* Export to Markdown
|
|
145
|
+
*/
|
|
146
|
+
private toMarkdown;
|
|
147
|
+
/**
|
|
148
|
+
* Import from Jupyter format
|
|
149
|
+
*/
|
|
150
|
+
static fromIpynb(data: string): BaseNotebook;
|
|
151
|
+
/**
|
|
152
|
+
* Import from JSON
|
|
153
|
+
*/
|
|
154
|
+
static fromJson(data: string): BaseNotebook;
|
|
155
|
+
/**
|
|
156
|
+
* Import from Markdown
|
|
157
|
+
*/
|
|
158
|
+
static fromMarkdown(data: string): BaseNotebook;
|
|
159
|
+
/**
|
|
160
|
+
* Convert cell outputs to Jupyter format
|
|
161
|
+
*/
|
|
162
|
+
private cellToOutputs;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create a notebook
|
|
166
|
+
*/
|
|
167
|
+
export declare function createNotebook(options: NotebookOptions): BaseNotebook;
|
|
168
|
+
//# sourceMappingURL=notebook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/session/notebook.ts"],"names":[],"mappings":"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"}
|