@torkbot/sandbox 0.1.1 → 0.2.0
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/README.md +237 -133
- package/dist/artifacts.d.ts +4 -0
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +44 -0
- package/dist/artifacts.js.map +1 -1
- package/dist/control-codec.d.ts +23 -1
- package/dist/control-codec.d.ts.map +1 -1
- package/dist/control-codec.js.map +1 -1
- package/dist/control.d.ts +15 -1
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js.map +1 -1
- package/dist/host-process.d.ts +2 -7
- package/dist/host-process.d.ts.map +1 -1
- package/dist/host-process.js +239 -10
- package/dist/host-process.js.map +1 -1
- package/dist/index.d.ts +104 -199
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +298 -268
- package/dist/index.js.map +1 -1
- package/dist/launch-options.d.ts +64 -0
- package/dist/launch-options.d.ts.map +1 -0
- package/dist/launch-options.js +2 -0
- package/dist/launch-options.js.map +1 -0
- package/dist/memory-fs.d.ts +3 -0
- package/dist/memory-fs.d.ts.map +1 -0
- package/dist/memory-fs.js +308 -0
- package/dist/memory-fs.js.map +1 -0
- package/dist/spawn-options.d.ts +7 -6
- package/dist/spawn-options.d.ts.map +1 -1
- package/dist/vfs.d.ts +2 -1
- package/dist/vfs.d.ts.map +1 -1
- package/dist/vfs.js +14 -0
- package/dist/vfs.js.map +1 -1
- package/package.json +3 -3
- package/dist/host-filesystem-tools.d.ts +0 -3
- package/dist/host-filesystem-tools.d.ts.map +0 -1
- package/dist/host-filesystem-tools.js +0 -330
- package/dist/host-filesystem-tools.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,39 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export interface Transport<TIncoming = unknown, TOutgoing = unknown> {
|
|
3
|
-
readonly incoming: AsyncIterable<TIncoming>;
|
|
4
|
-
send(message: TOutgoing): Promise<void>;
|
|
5
|
-
close(): Promise<void>;
|
|
6
|
-
}
|
|
7
|
-
export interface SandboxCpuOptions {
|
|
8
|
-
readonly vcpus?: number;
|
|
9
|
-
}
|
|
10
|
-
export interface SandboxMemoryOptions {
|
|
11
|
-
readonly mib?: number;
|
|
12
|
-
}
|
|
13
|
-
export type KernelConfig = {
|
|
14
|
-
readonly kind: "project-kernel";
|
|
15
|
-
readonly format?: "auto" | "raw" | "elf" | "pe-gz" | "image-gz" | "image-zstd";
|
|
16
|
-
};
|
|
17
|
-
export type InitConfig = {
|
|
18
|
-
readonly kind: "project-init";
|
|
19
|
-
readonly crate: "sandbox-init";
|
|
20
|
-
};
|
|
21
|
-
export type SandboxFsConfig = PrebuiltRootfsConfig | LinuxOverlayRootfsConfig | ScratchFsConfig;
|
|
22
|
-
export type RootfsConfig = PrebuiltRootfsConfig | LinuxOverlayRootfsConfig;
|
|
23
|
-
export type PrebuiltRootfsConfig = {
|
|
24
|
-
readonly kind: "prebuilt-rootfs";
|
|
25
|
-
readonly path: string;
|
|
26
|
-
readonly readonly?: boolean;
|
|
27
|
-
readonly format: "directory" | "erofs";
|
|
28
|
-
};
|
|
29
|
-
export type LinuxOverlayRootfsConfig = {
|
|
30
|
-
readonly kind: "linux-overlay-fs";
|
|
31
|
-
readonly lower: SandboxFsConfig;
|
|
32
|
-
readonly upper: SandboxFsConfig;
|
|
33
|
-
};
|
|
34
|
-
export type ScratchFsConfig = {
|
|
35
|
-
readonly kind: "scratch-fs";
|
|
36
|
-
};
|
|
1
|
+
import { createMemoryFileSystem } from "./memory-fs.ts";
|
|
37
2
|
export type SandboxFileType = "file" | "directory" | "symlink";
|
|
38
3
|
export type SandboxFileStat = {
|
|
39
4
|
readonly type: SandboxFileType;
|
|
@@ -72,60 +37,17 @@ export interface SandboxPosixFileSystem extends SandboxWritableFileSystem {
|
|
|
72
37
|
unlink(path: string): Promise<void>;
|
|
73
38
|
rmdir(path: string): Promise<void>;
|
|
74
39
|
rename(from: string, to: string, flags?: number): Promise<void>;
|
|
40
|
+
link(from: string, to: string): Promise<SandboxFileStat>;
|
|
75
41
|
symlink(target: string, path: string): Promise<SandboxFileStat>;
|
|
76
42
|
readlink(path: string): Promise<string>;
|
|
43
|
+
setxattr(path: string, name: string, value: Uint8Array, flags?: number): Promise<void>;
|
|
44
|
+
getxattr(path: string, name: string): Promise<Uint8Array>;
|
|
45
|
+
listxattr(path: string): Promise<readonly string[]>;
|
|
46
|
+
removexattr(path: string, name: string): Promise<void>;
|
|
77
47
|
}
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
export type SandboxHostReadResult = {
|
|
81
|
-
readonly path: string;
|
|
82
|
-
readonly content: string;
|
|
83
|
-
readonly totalLines: number;
|
|
84
|
-
readonly truncated: boolean;
|
|
85
|
-
};
|
|
86
|
-
export type SandboxHostPatchEdit = {
|
|
87
|
-
readonly oldText: string;
|
|
88
|
-
readonly newText: string;
|
|
89
|
-
};
|
|
90
|
-
export type SandboxHostBashResult = {
|
|
91
|
-
readonly stdout: string;
|
|
92
|
-
readonly stderr: string;
|
|
93
|
-
readonly exitCode: number;
|
|
94
|
-
};
|
|
95
|
-
export interface SandboxHostFileSystemTools {
|
|
96
|
-
read(input: {
|
|
97
|
-
readonly path: string;
|
|
98
|
-
readonly offset?: number;
|
|
99
|
-
readonly limit?: number;
|
|
100
|
-
readonly signal?: AbortSignal;
|
|
101
|
-
}): Promise<SandboxHostReadResult>;
|
|
102
|
-
write(input: {
|
|
103
|
-
readonly path: string;
|
|
104
|
-
readonly content: string;
|
|
105
|
-
readonly signal?: AbortSignal;
|
|
106
|
-
}): Promise<void>;
|
|
107
|
-
patch(input: {
|
|
108
|
-
readonly path: string;
|
|
109
|
-
readonly edits: readonly SandboxHostPatchEdit[];
|
|
110
|
-
readonly signal?: AbortSignal;
|
|
111
|
-
}): Promise<void>;
|
|
112
|
-
bash(input: {
|
|
113
|
-
readonly command: string;
|
|
114
|
-
readonly timeoutMs?: number;
|
|
115
|
-
readonly signal?: AbortSignal;
|
|
116
|
-
}): Promise<SandboxHostBashResult>;
|
|
48
|
+
export interface MemoryFileSystemOptions {
|
|
49
|
+
readonly files?: Readonly<Record<string, string | Uint8Array>>;
|
|
117
50
|
}
|
|
118
|
-
export type VirtualFsMountConfig = {
|
|
119
|
-
readonly kind: "virtual-fs";
|
|
120
|
-
readonly path: string;
|
|
121
|
-
readonly fileSystem: SandboxVirtualFileSystem;
|
|
122
|
-
};
|
|
123
|
-
export type FileSystemBindingConfig = {
|
|
124
|
-
readonly kind: "filesystem-binding";
|
|
125
|
-
readonly path: string;
|
|
126
|
-
readonly fileSystem: SandboxVirtualFileSystem;
|
|
127
|
-
};
|
|
128
|
-
export type MountConfig = VirtualFsMountConfig;
|
|
129
51
|
export interface SandboxHttpRequest {
|
|
130
52
|
readonly protocol: "http/1.1" | "h2";
|
|
131
53
|
readonly url: URL;
|
|
@@ -142,129 +64,112 @@ export interface SandboxHttpRequest {
|
|
|
142
64
|
readonly alpn?: string;
|
|
143
65
|
};
|
|
144
66
|
}
|
|
145
|
-
export type
|
|
146
|
-
export
|
|
147
|
-
readonly
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
export interface SandboxBuilder extends AsyncDisposable {
|
|
156
|
-
readonly http: SandboxHttpHooks;
|
|
157
|
-
run(): Promise<SandboxVm>;
|
|
158
|
-
[Symbol.asyncDispose](): Promise<void>;
|
|
159
|
-
}
|
|
160
|
-
export type OutboundNetworkRule = {
|
|
161
|
-
readonly action: "accept";
|
|
162
|
-
readonly protocol: "tcp";
|
|
163
|
-
readonly cidr: string;
|
|
164
|
-
readonly ports?: readonly number[];
|
|
165
|
-
} | {
|
|
166
|
-
readonly action: "accept";
|
|
167
|
-
readonly protocol: "udp";
|
|
168
|
-
readonly cidr: string;
|
|
169
|
-
readonly ports?: readonly number[];
|
|
170
|
-
} | {
|
|
171
|
-
readonly action: "accept";
|
|
172
|
-
readonly scope: "public-internet";
|
|
173
|
-
readonly ports?: readonly number[];
|
|
67
|
+
export type BuiltInRootfsName = "alpine:3.20";
|
|
68
|
+
export type BuiltInRootfsConfig = {
|
|
69
|
+
readonly kind: "built-in-rootfs";
|
|
70
|
+
readonly name: BuiltInRootfsName;
|
|
71
|
+
};
|
|
72
|
+
export type CowRootfsConfig = {
|
|
73
|
+
readonly kind: "cow-rootfs";
|
|
74
|
+
readonly base: BuiltInRootfsConfig;
|
|
75
|
+
readonly writable: SandboxBlockStore;
|
|
174
76
|
};
|
|
175
|
-
export
|
|
176
|
-
|
|
177
|
-
readonly
|
|
77
|
+
export type Rootfs = BuiltInRootfsConfig | CowRootfsConfig;
|
|
78
|
+
export type SandboxFileSystemSource = {
|
|
79
|
+
readonly kind: "virtual-fs";
|
|
80
|
+
readonly fileSystem: SandboxFileSystem;
|
|
81
|
+
};
|
|
82
|
+
export type SandboxWritableFileSystemSource = {
|
|
83
|
+
readonly kind: "virtual-fs";
|
|
84
|
+
readonly fileSystem: SandboxPosixFileSystem;
|
|
85
|
+
};
|
|
86
|
+
export type SandboxBlockRange = {
|
|
87
|
+
readonly start: bigint;
|
|
88
|
+
readonly count: number;
|
|
89
|
+
};
|
|
90
|
+
export type SandboxBlockChunk = {
|
|
91
|
+
readonly start: bigint;
|
|
92
|
+
readonly data: Uint8Array;
|
|
93
|
+
};
|
|
94
|
+
export type SandboxBlockStoreContext = {
|
|
95
|
+
readonly base: string;
|
|
96
|
+
};
|
|
97
|
+
export interface SandboxBlockStore {
|
|
98
|
+
readonly blockSize: number;
|
|
99
|
+
list(context: SandboxBlockStoreContext): Promise<readonly bigint[]>;
|
|
100
|
+
read(range: SandboxBlockRange, context: SandboxBlockStoreContext): Promise<readonly SandboxBlockChunk[]>;
|
|
101
|
+
write(chunks: readonly SandboxBlockChunk[], context: SandboxBlockStoreContext): Promise<void>;
|
|
102
|
+
flush?(context: SandboxBlockStoreContext): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
export type HttpRequestMiddleware = (request: SandboxHttpRequest) => void | Promise<void>;
|
|
105
|
+
export interface NetworkGrant {
|
|
106
|
+
}
|
|
107
|
+
export interface HttpNetworkGrant extends NetworkGrant {
|
|
108
|
+
}
|
|
109
|
+
export interface NetworkConnectionRequest {
|
|
110
|
+
readonly transport: "tcp" | "udp";
|
|
111
|
+
readonly host?: string;
|
|
112
|
+
readonly ip?: string;
|
|
113
|
+
readonly port: number;
|
|
114
|
+
/**
|
|
115
|
+
* Allows HTTP(S)-classified traffic for this connection without request middleware.
|
|
116
|
+
* Raw non-HTTP egress is not exposed by the first public policy API.
|
|
117
|
+
*/
|
|
118
|
+
allow(): NetworkGrant;
|
|
119
|
+
allowHttp(middleware?: HttpRequestMiddleware): HttpNetworkGrant;
|
|
120
|
+
}
|
|
121
|
+
export type NetworkConnectionRequestHandler = (connection: NetworkConnectionRequest) => void | Promise<void>;
|
|
122
|
+
declare const networkPolicyHandler: unique symbol;
|
|
123
|
+
export type NetworkPolicy = {
|
|
124
|
+
readonly kind: "network-policy";
|
|
125
|
+
readonly [networkPolicyHandler]: NetworkConnectionRequestHandler;
|
|
126
|
+
};
|
|
127
|
+
export interface SandboxDefinitionOptions {
|
|
128
|
+
readonly rootfs: Rootfs;
|
|
129
|
+
readonly resources?: SandboxResourceLimits;
|
|
130
|
+
readonly network?: NetworkPolicy;
|
|
178
131
|
}
|
|
179
|
-
export interface
|
|
180
|
-
readonly
|
|
181
|
-
readonly
|
|
182
|
-
readonly certificateAuthority?: {
|
|
183
|
-
readonly certificatePem: string;
|
|
184
|
-
readonly privateKeyPem: string;
|
|
185
|
-
};
|
|
186
|
-
};
|
|
132
|
+
export interface SandboxResourceLimits {
|
|
133
|
+
readonly cpus?: number;
|
|
134
|
+
readonly memoryMiB?: number;
|
|
187
135
|
}
|
|
188
|
-
export interface
|
|
189
|
-
readonly
|
|
190
|
-
readonly
|
|
191
|
-
readonly memory?: SandboxMemoryOptions;
|
|
192
|
-
readonly kernel: KernelConfig;
|
|
193
|
-
readonly init: InitConfig;
|
|
194
|
-
readonly rootfs: RootfsConfig;
|
|
195
|
-
readonly mounts?: readonly MountConfig[];
|
|
196
|
-
readonly bindings?: readonly FileSystemBindingConfig[];
|
|
197
|
-
readonly network?: NetworkConfig;
|
|
136
|
+
export interface SandboxBootOptions {
|
|
137
|
+
readonly mounts?: Readonly<Record<string, SandboxFileSystemSource>>;
|
|
138
|
+
readonly cwd?: string;
|
|
198
139
|
}
|
|
199
|
-
export interface
|
|
200
|
-
|
|
201
|
-
virtualFs(path: string): SandboxVirtualFileSystem;
|
|
202
|
-
host(path: string): SandboxHostFileSystemTools;
|
|
140
|
+
export interface SandboxDefinition {
|
|
141
|
+
boot(options?: SandboxBootOptions): Promise<SandboxInstance>;
|
|
203
142
|
}
|
|
204
|
-
export
|
|
205
|
-
readonly
|
|
206
|
-
readonly
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
};
|
|
210
|
-
readonly init: {
|
|
211
|
-
readonly name: string;
|
|
212
|
-
};
|
|
213
|
-
};
|
|
214
|
-
} | {
|
|
215
|
-
readonly type: "guest.exec.complete";
|
|
216
|
-
readonly id: string;
|
|
143
|
+
export interface SandboxExecOptions {
|
|
144
|
+
readonly cwd?: string;
|
|
145
|
+
readonly env?: Record<string, string>;
|
|
146
|
+
}
|
|
147
|
+
export interface SandboxExecResult {
|
|
217
148
|
readonly exitCode: number;
|
|
218
149
|
readonly stdout: string;
|
|
219
150
|
readonly stderr: string;
|
|
220
|
-
};
|
|
221
|
-
export type SandboxControlCommand = {
|
|
222
|
-
readonly type: "guest.exec";
|
|
223
|
-
readonly id: string;
|
|
224
|
-
readonly argv: readonly string[];
|
|
225
|
-
readonly env?: Record<string, string>;
|
|
226
|
-
};
|
|
227
|
-
export interface SandboxControl extends Transport<SandboxControlEvent, SandboxControlCommand> {
|
|
228
|
-
exec(input: {
|
|
229
|
-
readonly id?: string;
|
|
230
|
-
readonly argv: readonly string[];
|
|
231
|
-
readonly env?: Record<string, string>;
|
|
232
|
-
}): Promise<Extract<SandboxControlEvent, {
|
|
233
|
-
type: "guest.exec.complete";
|
|
234
|
-
}>>;
|
|
235
151
|
}
|
|
236
|
-
export interface
|
|
237
|
-
readonly
|
|
238
|
-
readonly mounts: SandboxMounts;
|
|
239
|
-
readonly diagnostics?: SandboxDiagnostics;
|
|
152
|
+
export interface SandboxInstance {
|
|
153
|
+
exec(command: string, args?: readonly string[], options?: SandboxExecOptions): Promise<SandboxExecResult>;
|
|
240
154
|
close(): Promise<void>;
|
|
241
155
|
[Symbol.asyncDispose](): Promise<void>;
|
|
242
156
|
}
|
|
243
|
-
export
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
export declare
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
export declare function acceptUdp(input: {
|
|
262
|
-
readonly cidr: string;
|
|
263
|
-
readonly ports?: readonly number[];
|
|
264
|
-
}): OutboundNetworkRule;
|
|
265
|
-
export declare function acceptPublicInternet(input?: {
|
|
266
|
-
readonly ports?: readonly number[];
|
|
267
|
-
}): OutboundNetworkRule;
|
|
268
|
-
export declare function spawnSandbox(options: SandboxOptions): Promise<SandboxVm>;
|
|
269
|
-
export declare function createSandbox(options: SandboxOptions): SandboxBuilder;
|
|
157
|
+
export declare const rootfs: {
|
|
158
|
+
builtIn(name: BuiltInRootfsName): BuiltInRootfsConfig;
|
|
159
|
+
cow(options: {
|
|
160
|
+
readonly base: BuiltInRootfsConfig;
|
|
161
|
+
readonly writable: SandboxBlockStore;
|
|
162
|
+
}): Rootfs;
|
|
163
|
+
};
|
|
164
|
+
declare function virtualFs(fileSystem: SandboxPosixFileSystem): SandboxWritableFileSystemSource;
|
|
165
|
+
declare function virtualFs(fileSystem: SandboxFileSystem): SandboxFileSystemSource;
|
|
166
|
+
export declare const fs: {
|
|
167
|
+
memory: typeof createMemoryFileSystem;
|
|
168
|
+
virtual: typeof virtualFs;
|
|
169
|
+
};
|
|
170
|
+
export declare const network: {
|
|
171
|
+
policy(onConnectionRequest: NetworkConnectionRequestHandler): NetworkPolicy;
|
|
172
|
+
};
|
|
173
|
+
export declare function defineSandbox(options: SandboxDefinitionOptions): SandboxDefinition;
|
|
174
|
+
export {};
|
|
270
175
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|