@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
package/dist/index.js
ADDED
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ebowwa/sandbox
|
|
3
|
+
*
|
|
4
|
+
* Composable sandbox primitives for multi-language code execution.
|
|
5
|
+
* Jupyter/REPL-style with Python+Rust+JS+TS+WASM support.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Sandbox, createNotebook, createREPL } from "@ebowwa/sandbox";
|
|
10
|
+
*
|
|
11
|
+
* // Quick execution
|
|
12
|
+
* const sandbox = new Sandbox();
|
|
13
|
+
* const result = await sandbox.execute("console.log('Hello')", "javascript");
|
|
14
|
+
*
|
|
15
|
+
* // Notebook
|
|
16
|
+
* const notebook = createNotebook({ name: "My Notebook" });
|
|
17
|
+
* notebook.addCell({ language: "javascript", source: "const x = 42" });
|
|
18
|
+
* notebook.runAll();
|
|
19
|
+
*
|
|
20
|
+
* // REPL
|
|
21
|
+
* const repl = createREPL({ language: "python" });
|
|
22
|
+
* repl.start();
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
// Type utilities
|
|
26
|
+
export { permissionsFromLevel, parseMemory, parseTime, } from "./core/types.js";
|
|
27
|
+
export { BaseCompiler, WasmCompiler, CompilerRegistry, defaultCompilerRegistry, } from "./core/compiler.js";
|
|
28
|
+
export { Wasm2WasmRuntime, NativeWasmRuntime, RuntimeRegistry, defaultRuntimeRegistry, } from "./core/runtime.js";
|
|
29
|
+
export { ProcessRuntime, DockerRuntime, } from "./runtimes/index.js";
|
|
30
|
+
// Permission exports
|
|
31
|
+
export { PermissionChecker, PermissionBuilder, createPermissions, mergePermissions, impliesPermission, upgradePermissions, } from "./core/permissions.js";
|
|
32
|
+
export { DEFAULT_LIMITS, LimitsParser, LimitsEnforcer, LimitsBuilder, mergeLimits, } from "./core/limits.js";
|
|
33
|
+
export { CellBuilder, CellExecutor, CellRegistry, createCell, createCellsFromMarkdown, cellsToMarkdown, } from "./core/cell.js";
|
|
34
|
+
export { BaseKernel, KernelManager, BaseNotebook, createNotebook, BaseREPL, createREPL, } from "./session/index.js";
|
|
35
|
+
export { PolyglotSession, PolyglotNotebook, createPolyglotSession, createPolyglotNotebook, } from "./multi/index.js";
|
|
36
|
+
import { BaseKernel, KernelManager } from "./session/kernel.js";
|
|
37
|
+
import { BaseNotebook, createNotebook } from "./session/notebook.js";
|
|
38
|
+
import { BaseREPL, createREPL } from "./session/repl.js";
|
|
39
|
+
import { PolyglotSession } from "./multi/polyglot.js";
|
|
40
|
+
import { defaultCompilerRegistry } from "./core/compiler.js";
|
|
41
|
+
import { defaultRuntimeRegistry } from "./core/runtime.js";
|
|
42
|
+
import { createPermissions, permissionsFromLevel } from "./core/permissions.js";
|
|
43
|
+
import { DEFAULT_LIMITS } from "./core/limits.js";
|
|
44
|
+
import { ProcessRuntime } from "./runtimes/process.js";
|
|
45
|
+
import { DockerRuntime } from "./runtimes/docker.js";
|
|
46
|
+
// Register elevated permission runtimes
|
|
47
|
+
defaultRuntimeRegistry.register(new ProcessRuntime());
|
|
48
|
+
defaultRuntimeRegistry.register(new DockerRuntime());
|
|
49
|
+
/**
|
|
50
|
+
* Normalize permissions to Permissions object
|
|
51
|
+
*/
|
|
52
|
+
function normalizePermissions(perms) {
|
|
53
|
+
if (!perms) {
|
|
54
|
+
return createPermissions("isolated");
|
|
55
|
+
}
|
|
56
|
+
if (typeof perms === "string") {
|
|
57
|
+
return permissionsFromLevel(perms);
|
|
58
|
+
}
|
|
59
|
+
return perms;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Sandbox Implementation
|
|
63
|
+
*
|
|
64
|
+
* Main entry point for sandboxed execution.
|
|
65
|
+
*/
|
|
66
|
+
export class Sandbox {
|
|
67
|
+
defaultOptions;
|
|
68
|
+
kernelManager = new KernelManager();
|
|
69
|
+
constructor(defaultOptions) {
|
|
70
|
+
this.defaultOptions = defaultOptions;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Quick execute (isolated, no state)
|
|
74
|
+
*/
|
|
75
|
+
async execute(code, language = "javascript", options) {
|
|
76
|
+
const merged = this.mergeOptions(options);
|
|
77
|
+
const perms = normalizePermissions(merged.permissions);
|
|
78
|
+
// Get compiler and runtime
|
|
79
|
+
const compiler = defaultCompilerRegistry.get(language);
|
|
80
|
+
if (!compiler) {
|
|
81
|
+
throw new Error(`No compiler for language: ${language}`);
|
|
82
|
+
}
|
|
83
|
+
const runtime = defaultRuntimeRegistry.selectBest({
|
|
84
|
+
filesystem: perms.fs?.write,
|
|
85
|
+
network: perms.network?.outbound,
|
|
86
|
+
});
|
|
87
|
+
if (!runtime) {
|
|
88
|
+
throw new Error("No available runtime");
|
|
89
|
+
}
|
|
90
|
+
// Compile
|
|
91
|
+
const compiled = await compiler.compile(code, perms, merged.limits ?? {});
|
|
92
|
+
// Execute
|
|
93
|
+
return runtime.execute({ wasm: compiled }, {
|
|
94
|
+
permissions: perms,
|
|
95
|
+
limits: merged.limits ?? {},
|
|
96
|
+
env: merged.environment,
|
|
97
|
+
cwd: merged.workingDirectory,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Quick execute with preset
|
|
102
|
+
*/
|
|
103
|
+
async quick(code, preset = "isolated") {
|
|
104
|
+
const levelMap = {
|
|
105
|
+
isolated: "isolated",
|
|
106
|
+
trusted: "filesystem",
|
|
107
|
+
admin: "admin",
|
|
108
|
+
};
|
|
109
|
+
const permissions = permissionsFromLevel(levelMap[preset]);
|
|
110
|
+
const limits = DEFAULT_LIMITS[preset];
|
|
111
|
+
return this.execute(code, "javascript", {
|
|
112
|
+
permissions,
|
|
113
|
+
limits: {
|
|
114
|
+
memory: limits.memoryBytes,
|
|
115
|
+
timeout: limits.timeoutMs,
|
|
116
|
+
cpuTime: limits.cpuTimeMs,
|
|
117
|
+
maxInstructions: limits.maxInstructions,
|
|
118
|
+
maxOutputSize: limits.maxOutputBytes,
|
|
119
|
+
maxStackDepth: limits.maxStackDepth,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a session for interactive use
|
|
125
|
+
*/
|
|
126
|
+
createSession(options) {
|
|
127
|
+
const merged = this.mergeOptions(options);
|
|
128
|
+
return new SandboxSession(this.kernelManager, {
|
|
129
|
+
permissions: normalizePermissions(merged.permissions),
|
|
130
|
+
limits: merged.limits ?? {},
|
|
131
|
+
environment: merged.environment,
|
|
132
|
+
workingDirectory: merged.workingDirectory,
|
|
133
|
+
sharedMemory: options?.sharedMemory ?? false,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create a notebook
|
|
138
|
+
*/
|
|
139
|
+
createNotebook(options) {
|
|
140
|
+
const merged = this.mergeOptions(options);
|
|
141
|
+
return createNotebook({
|
|
142
|
+
name: options?.name,
|
|
143
|
+
defaultLanguage: options?.defaultLanguage,
|
|
144
|
+
permissions: normalizePermissions(merged.permissions),
|
|
145
|
+
limits: merged.limits,
|
|
146
|
+
kernelManager: this.kernelManager,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a REPL
|
|
151
|
+
*/
|
|
152
|
+
createREPL(options) {
|
|
153
|
+
const merged = this.mergeOptions(options);
|
|
154
|
+
return createREPL({
|
|
155
|
+
language: options?.language,
|
|
156
|
+
permissions: normalizePermissions(merged.permissions),
|
|
157
|
+
limits: merged.limits,
|
|
158
|
+
kernelManager: this.kernelManager,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Create polyglot session
|
|
163
|
+
*/
|
|
164
|
+
createPolyglot(options) {
|
|
165
|
+
const merged = this.mergeOptions(options);
|
|
166
|
+
return new PolyglotSession({
|
|
167
|
+
permissions: normalizePermissions(merged.permissions),
|
|
168
|
+
limits: merged.limits,
|
|
169
|
+
kernelManager: this.kernelManager,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Merge options with defaults
|
|
174
|
+
*/
|
|
175
|
+
mergeOptions(options) {
|
|
176
|
+
const rawPerms = options?.permissions ?? this.defaultOptions?.permissions ?? "isolated";
|
|
177
|
+
return {
|
|
178
|
+
permissions: normalizePermissions(rawPerms),
|
|
179
|
+
limits: options?.limits ?? this.defaultOptions?.limits,
|
|
180
|
+
language: options?.language ?? this.defaultOptions?.language,
|
|
181
|
+
environment: options?.environment ?? this.defaultOptions?.environment ?? {},
|
|
182
|
+
workingDirectory: options?.workingDirectory ?? this.defaultOptions?.workingDirectory ?? process.cwd(),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Sandbox Session
|
|
188
|
+
*
|
|
189
|
+
* Stateful execution context.
|
|
190
|
+
*/
|
|
191
|
+
export class SandboxSession {
|
|
192
|
+
id;
|
|
193
|
+
kernelManager;
|
|
194
|
+
kernels = new Map();
|
|
195
|
+
sharedState = new Map();
|
|
196
|
+
options;
|
|
197
|
+
constructor(kernelManager, options) {
|
|
198
|
+
this.id = `session-${Date.now()}`;
|
|
199
|
+
this.kernelManager = kernelManager;
|
|
200
|
+
this.options = options;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get kernel for language
|
|
204
|
+
*/
|
|
205
|
+
getKernel(language) {
|
|
206
|
+
return this.kernels.get(language);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Start kernel for language
|
|
210
|
+
*/
|
|
211
|
+
async startKernel(language) {
|
|
212
|
+
let kernel = this.kernels.get(language);
|
|
213
|
+
if (!kernel) {
|
|
214
|
+
const compiler = defaultCompilerRegistry.get(language);
|
|
215
|
+
const runtime = defaultRuntimeRegistry.selectBest({});
|
|
216
|
+
if (!compiler || !runtime) {
|
|
217
|
+
throw new Error(`Cannot create kernel for ${language}`);
|
|
218
|
+
}
|
|
219
|
+
const kernelOptions = {
|
|
220
|
+
language,
|
|
221
|
+
compiler,
|
|
222
|
+
runtime,
|
|
223
|
+
permissions: this.options.permissions,
|
|
224
|
+
limits: this.options.limits,
|
|
225
|
+
env: this.options.environment,
|
|
226
|
+
cwd: this.options.workingDirectory,
|
|
227
|
+
};
|
|
228
|
+
kernel = await this.kernelManager.createKernel(kernelOptions);
|
|
229
|
+
this.kernels.set(language, kernel);
|
|
230
|
+
}
|
|
231
|
+
return kernel;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Execute code
|
|
235
|
+
*/
|
|
236
|
+
async execute(code, language, options) {
|
|
237
|
+
const kernel = await this.startKernel(language);
|
|
238
|
+
return kernel.execute(code, options);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Get shared state
|
|
242
|
+
*/
|
|
243
|
+
getSharedState() {
|
|
244
|
+
return new Map(this.sharedState);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Set shared state
|
|
248
|
+
*/
|
|
249
|
+
setSharedState(key, value) {
|
|
250
|
+
this.sharedState.set(key, value);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Shutdown session
|
|
254
|
+
*/
|
|
255
|
+
async shutdown() {
|
|
256
|
+
for (const language of this.kernels.keys()) {
|
|
257
|
+
await this.kernelManager.shutdownKernel(this.kernels.get(language).getId());
|
|
258
|
+
}
|
|
259
|
+
this.kernels.clear();
|
|
260
|
+
this.sharedState.clear();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Create default sandbox instance
|
|
265
|
+
*/
|
|
266
|
+
export const sandbox = new Sandbox();
|
|
267
|
+
/**
|
|
268
|
+
* Quick execute helper
|
|
269
|
+
*/
|
|
270
|
+
export async function execute(code, language = "javascript", options) {
|
|
271
|
+
return sandbox.execute(code, language, options);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Quick execute with preset helper
|
|
275
|
+
*/
|
|
276
|
+
export async function quick(code, preset = "isolated") {
|
|
277
|
+
return sandbox.quick(code, preset);
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Language Primitives
|
|
3
|
+
*
|
|
4
|
+
* Execute code across multiple languages with shared state.
|
|
5
|
+
*/
|
|
6
|
+
export type { PolyglotOptions, VariableBinding, PolyglotContext, } from "./polyglot.js";
|
|
7
|
+
export { PolyglotSession, PolyglotNotebook, createPolyglotSession, createPolyglotNotebook, } from "./polyglot.js";
|
|
8
|
+
export type { LanguageBridge } from "../core/types.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/multi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/multi/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyglot Primitive
|
|
3
|
+
*
|
|
4
|
+
* Execute code across multiple languages with shared state.
|
|
5
|
+
* Enables true multi-language programming with seamless data exchange.
|
|
6
|
+
*/
|
|
7
|
+
import type { Language, ExecutionResult, Permissions, Limits, PolyglotCell, LanguageBridge } from "../core/types.js";
|
|
8
|
+
import { BaseKernel, KernelManager } from "../session/kernel.js";
|
|
9
|
+
/**
|
|
10
|
+
* Polyglot session options
|
|
11
|
+
*/
|
|
12
|
+
export interface PolyglotOptions {
|
|
13
|
+
/** Available languages */
|
|
14
|
+
languages?: Language[];
|
|
15
|
+
/** Permissions */
|
|
16
|
+
permissions?: Permissions;
|
|
17
|
+
/** Resource limits */
|
|
18
|
+
limits?: Limits;
|
|
19
|
+
/** Kernel manager */
|
|
20
|
+
kernelManager?: KernelManager;
|
|
21
|
+
/** Kernel factory */
|
|
22
|
+
kernelFactory?: (language: Language) => Promise<BaseKernel>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Language variable binding
|
|
26
|
+
*/
|
|
27
|
+
export interface VariableBinding {
|
|
28
|
+
/** Variable name */
|
|
29
|
+
name: string;
|
|
30
|
+
/** Source language */
|
|
31
|
+
fromLanguage: Language;
|
|
32
|
+
/** Target language */
|
|
33
|
+
toLanguage: Language;
|
|
34
|
+
/** Serialized value */
|
|
35
|
+
serializedValue: Uint8Array;
|
|
36
|
+
/** Type information */
|
|
37
|
+
type?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Polyglot execution context
|
|
41
|
+
*/
|
|
42
|
+
export interface PolyglotContext {
|
|
43
|
+
/** Current language */
|
|
44
|
+
language: Language;
|
|
45
|
+
/** Variables from other languages */
|
|
46
|
+
bindings: Map<string, VariableBinding>;
|
|
47
|
+
/** Shared state */
|
|
48
|
+
sharedState: Map<string, unknown>;
|
|
49
|
+
/** Kernel for current language */
|
|
50
|
+
kernel: BaseKernel;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Polyglot Session
|
|
54
|
+
*
|
|
55
|
+
* Manages multi-language execution with variable sharing.
|
|
56
|
+
*/
|
|
57
|
+
export declare class PolyglotSession {
|
|
58
|
+
private kernelManager;
|
|
59
|
+
private kernelFactory?;
|
|
60
|
+
private kernels;
|
|
61
|
+
private bridges;
|
|
62
|
+
private sharedState;
|
|
63
|
+
private variableBindings;
|
|
64
|
+
private permissions;
|
|
65
|
+
private limits;
|
|
66
|
+
constructor(options?: PolyglotOptions);
|
|
67
|
+
/**
|
|
68
|
+
* Execute code in a language
|
|
69
|
+
*/
|
|
70
|
+
execute(code: string, language: Language, options?: {
|
|
71
|
+
imports?: Map<string, string>;
|
|
72
|
+
}): Promise<ExecutionResult>;
|
|
73
|
+
/**
|
|
74
|
+
* Execute polyglot cell (multiple language variants)
|
|
75
|
+
*/
|
|
76
|
+
executePolyglot(cell: PolyglotCell, preferredLanguage?: Language): Promise<{
|
|
77
|
+
language: Language;
|
|
78
|
+
result: ExecutionResult;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Get or create kernel for language
|
|
82
|
+
*/
|
|
83
|
+
private getKernel;
|
|
84
|
+
/**
|
|
85
|
+
* Generate import code for a language
|
|
86
|
+
*/
|
|
87
|
+
private generateImportCode;
|
|
88
|
+
/**
|
|
89
|
+
* Generate variable assignment in target language
|
|
90
|
+
*/
|
|
91
|
+
private generateVariableAssignment;
|
|
92
|
+
/**
|
|
93
|
+
* Get bridge between languages
|
|
94
|
+
*/
|
|
95
|
+
getBridge(from: Language, to: Language): LanguageBridge | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Register custom bridge
|
|
98
|
+
*/
|
|
99
|
+
registerBridge(bridge: LanguageBridge): void;
|
|
100
|
+
/**
|
|
101
|
+
* Set shared variable
|
|
102
|
+
*/
|
|
103
|
+
setVariable(language: Language, name: string, value: unknown): void;
|
|
104
|
+
/**
|
|
105
|
+
* Get shared variable
|
|
106
|
+
*/
|
|
107
|
+
getVariable(language: Language, name: string): unknown;
|
|
108
|
+
/**
|
|
109
|
+
* Transfer variable between languages
|
|
110
|
+
*/
|
|
111
|
+
transferVariable(fromLanguage: Language, name: string, toLanguage: Language): Promise<unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* Get all shared variables
|
|
114
|
+
*/
|
|
115
|
+
getSharedVariables(): Map<string, unknown>;
|
|
116
|
+
/**
|
|
117
|
+
* Clear shared state
|
|
118
|
+
*/
|
|
119
|
+
clearState(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Shutdown all kernels
|
|
122
|
+
*/
|
|
123
|
+
shutdown(): Promise<void>;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Polyglot Notebook
|
|
127
|
+
*
|
|
128
|
+
* Notebook with multi-language cells and variable sharing.
|
|
129
|
+
*/
|
|
130
|
+
export declare class PolyglotNotebook {
|
|
131
|
+
private cells;
|
|
132
|
+
private session;
|
|
133
|
+
private executionOrder;
|
|
134
|
+
constructor(options?: PolyglotOptions);
|
|
135
|
+
/**
|
|
136
|
+
* Add polyglot cell
|
|
137
|
+
*/
|
|
138
|
+
addCell(variants: Map<Language, string>, id?: string): PolyglotCell;
|
|
139
|
+
/**
|
|
140
|
+
* Add single-language cell
|
|
141
|
+
*/
|
|
142
|
+
addSingleCell(language: Language, code: string, id?: string): PolyglotCell;
|
|
143
|
+
/**
|
|
144
|
+
* Execute all cells
|
|
145
|
+
*/
|
|
146
|
+
runAll(): Promise<Array<{
|
|
147
|
+
cellId: string;
|
|
148
|
+
language: Language;
|
|
149
|
+
result: ExecutionResult;
|
|
150
|
+
}>>;
|
|
151
|
+
/**
|
|
152
|
+
* Execute single cell
|
|
153
|
+
*/
|
|
154
|
+
runCell(cellId: string, preferredLanguage?: Language): Promise<{
|
|
155
|
+
language: Language;
|
|
156
|
+
result: ExecutionResult;
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Get cell
|
|
160
|
+
*/
|
|
161
|
+
getCell(id: string): PolyglotCell | undefined;
|
|
162
|
+
/**
|
|
163
|
+
* Get all cells
|
|
164
|
+
*/
|
|
165
|
+
getCells(): PolyglotCell[];
|
|
166
|
+
/**
|
|
167
|
+
* Get session
|
|
168
|
+
*/
|
|
169
|
+
getSession(): PolyglotSession;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Create polyglot session
|
|
173
|
+
*/
|
|
174
|
+
export declare function createPolyglotSession(options?: PolyglotOptions): PolyglotSession;
|
|
175
|
+
/**
|
|
176
|
+
* Create polyglot notebook
|
|
177
|
+
*/
|
|
178
|
+
export declare function createPolyglotNotebook(options?: PolyglotOptions): PolyglotNotebook;
|
|
179
|
+
//# sourceMappingURL=polyglot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyglot.d.ts","sourceRoot":"","sources":["../../src/multi/polyglot.ts"],"names":[],"mappings":"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"}
|