@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.
Files changed (108) hide show
  1. package/dist/compilers/index.d.ts +24 -0
  2. package/dist/compilers/index.d.ts.map +1 -0
  3. package/dist/compilers/index.js +42 -0
  4. package/dist/compilers/index.js.map +1 -0
  5. package/dist/compilers/javascript.d.ts +117 -0
  6. package/dist/compilers/javascript.d.ts.map +1 -0
  7. package/dist/compilers/javascript.js +462 -0
  8. package/dist/compilers/javascript.js.map +1 -0
  9. package/dist/compilers/python.d.ts +140 -0
  10. package/dist/compilers/python.d.ts.map +1 -0
  11. package/dist/compilers/python.js +650 -0
  12. package/dist/compilers/python.js.map +1 -0
  13. package/dist/compilers/typescript.d.ts +99 -0
  14. package/dist/compilers/typescript.d.ts.map +1 -0
  15. package/dist/compilers/typescript.js +323 -0
  16. package/dist/compilers/typescript.js.map +1 -0
  17. package/dist/core/cell.d.ts +160 -0
  18. package/dist/core/cell.d.ts.map +1 -0
  19. package/dist/core/cell.js +319 -0
  20. package/dist/core/cell.js.map +1 -0
  21. package/dist/core/compiler.d.ts +126 -0
  22. package/dist/core/compiler.d.ts.map +1 -0
  23. package/dist/core/compiler.js +123 -0
  24. package/dist/core/compiler.js.map +1 -0
  25. package/dist/core/index.d.ts +19 -0
  26. package/dist/core/index.d.ts.map +1 -0
  27. package/dist/core/index.js +14 -0
  28. package/dist/core/index.js.map +1 -0
  29. package/dist/core/limits.d.ts +173 -0
  30. package/dist/core/limits.d.ts.map +1 -0
  31. package/dist/core/limits.js +440 -0
  32. package/dist/core/limits.js.map +1 -0
  33. package/dist/core/permissions.d.ts +103 -0
  34. package/dist/core/permissions.d.ts.map +1 -0
  35. package/dist/core/permissions.js +341 -0
  36. package/dist/core/permissions.js.map +1 -0
  37. package/dist/core/runtime.d.ts +127 -0
  38. package/dist/core/runtime.d.ts.map +1 -0
  39. package/dist/core/runtime.js +325 -0
  40. package/dist/core/runtime.js.map +1 -0
  41. package/dist/core/types.d.ts +380 -0
  42. package/dist/core/types.d.ts.map +1 -0
  43. package/dist/core/types.js +67 -0
  44. package/dist/core/types.js.map +1 -0
  45. package/dist/index.d.ts +145 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +279 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/multi/index.d.ts +9 -0
  50. package/dist/multi/index.d.ts.map +1 -0
  51. package/dist/multi/index.js +7 -0
  52. package/dist/multi/index.js.map +1 -0
  53. package/dist/multi/polyglot.d.ts +179 -0
  54. package/dist/multi/polyglot.d.ts.map +1 -0
  55. package/dist/multi/polyglot.js +319 -0
  56. package/dist/multi/polyglot.js.map +1 -0
  57. package/dist/runtimes/docker.d.ts +97 -0
  58. package/dist/runtimes/docker.d.ts.map +1 -0
  59. package/dist/runtimes/docker.js +368 -0
  60. package/dist/runtimes/docker.js.map +1 -0
  61. package/dist/runtimes/index.d.ts +11 -0
  62. package/dist/runtimes/index.d.ts.map +1 -0
  63. package/dist/runtimes/index.js +9 -0
  64. package/dist/runtimes/index.js.map +1 -0
  65. package/dist/runtimes/process.d.ts +47 -0
  66. package/dist/runtimes/process.d.ts.map +1 -0
  67. package/dist/runtimes/process.js +230 -0
  68. package/dist/runtimes/process.js.map +1 -0
  69. package/dist/session/index.d.ts +12 -0
  70. package/dist/session/index.d.ts.map +1 -0
  71. package/dist/session/index.js +9 -0
  72. package/dist/session/index.js.map +1 -0
  73. package/dist/session/kernel.d.ts +199 -0
  74. package/dist/session/kernel.d.ts.map +1 -0
  75. package/dist/session/kernel.js +400 -0
  76. package/dist/session/kernel.js.map +1 -0
  77. package/dist/session/notebook.d.ts +168 -0
  78. package/dist/session/notebook.d.ts.map +1 -0
  79. package/dist/session/notebook.js +499 -0
  80. package/dist/session/notebook.js.map +1 -0
  81. package/dist/session/repl.d.ts +159 -0
  82. package/dist/session/repl.d.ts.map +1 -0
  83. package/dist/session/repl.js +409 -0
  84. package/dist/session/repl.js.map +1 -0
  85. package/package.json +142 -0
  86. package/src/compilers/index.ts +80 -0
  87. package/src/compilers/javascript.ts +571 -0
  88. package/src/compilers/python.ts +785 -0
  89. package/src/compilers/typescript.ts +442 -0
  90. package/src/core/cell.ts +439 -0
  91. package/src/core/compiler.ts +250 -0
  92. package/src/core/index.ts +123 -0
  93. package/src/core/limits.ts +508 -0
  94. package/src/core/permissions.ts +409 -0
  95. package/src/core/runtime.ts +499 -0
  96. package/src/core/types.ts +528 -0
  97. package/src/global.d.ts +59 -0
  98. package/src/index.ts +515 -0
  99. package/src/multi/index.ts +22 -0
  100. package/src/multi/polyglot.ts +461 -0
  101. package/src/runtimes/docker.ts +501 -0
  102. package/src/runtimes/index.ts +21 -0
  103. package/src/runtimes/process.ts +316 -0
  104. package/src/session/index.ts +41 -0
  105. package/src/session/kernel.ts +553 -0
  106. package/src/session/notebook.ts +635 -0
  107. package/src/session/repl.ts +521 -0
  108. 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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"}