@torkbot/sandbox 0.1.0-pre.0 → 0.1.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 +239 -2
- package/dist/artifacts.d.ts +12 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +77 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +51 -0
- package/dist/cli.js.map +1 -0
- package/dist/control-codec.d.ts +4 -0
- package/dist/control-codec.d.ts.map +1 -0
- package/dist/control-codec.js +88 -0
- package/dist/control-codec.js.map +1 -0
- package/dist/control.d.ts +24 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +192 -0
- package/dist/control.js.map +1 -0
- package/dist/host-filesystem-tools.d.ts +3 -0
- package/dist/host-filesystem-tools.d.ts.map +1 -0
- package/dist/host-filesystem-tools.js +330 -0
- package/dist/host-filesystem-tools.js.map +1 -0
- package/dist/host-process.d.ts +21 -0
- package/dist/host-process.d.ts.map +1 -0
- package/dist/host-process.js +607 -0
- package/dist/host-process.js.map +1 -0
- package/dist/index.d.ts +270 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +452 -0
- package/dist/index.js.map +1 -0
- package/dist/spawn-options.d.ts +44 -0
- package/dist/spawn-options.d.ts.map +1 -0
- package/dist/spawn-options.js +2 -0
- package/dist/spawn-options.js.map +1 -0
- package/dist/vfs.d.ts +3 -0
- package/dist/vfs.d.ts.map +1 -0
- package/dist/vfs.js +8 -0
- package/dist/vfs.js.map +1 -0
- package/package.json +27 -5
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
export { HostControlTransport } from "./control.ts";
|
|
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
|
+
};
|
|
37
|
+
export type SandboxFileType = "file" | "directory" | "symlink";
|
|
38
|
+
export type SandboxFileStat = {
|
|
39
|
+
readonly type: SandboxFileType;
|
|
40
|
+
readonly sizeBytes: number | null;
|
|
41
|
+
readonly mediaType: string | null;
|
|
42
|
+
readonly modifiedAtMs: number | null;
|
|
43
|
+
readonly writable?: boolean;
|
|
44
|
+
};
|
|
45
|
+
export type SandboxDirectoryEntry = {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly type: SandboxFileType;
|
|
48
|
+
};
|
|
49
|
+
export interface SandboxFileSystem {
|
|
50
|
+
stat(path: string): Promise<SandboxFileStat>;
|
|
51
|
+
list(path: string): Promise<readonly SandboxDirectoryEntry[]>;
|
|
52
|
+
read(input: {
|
|
53
|
+
readonly path: string;
|
|
54
|
+
readonly range?: {
|
|
55
|
+
readonly offset: number;
|
|
56
|
+
readonly length: number;
|
|
57
|
+
};
|
|
58
|
+
readonly signal: AbortSignal;
|
|
59
|
+
}): Promise<Uint8Array>;
|
|
60
|
+
}
|
|
61
|
+
export interface SandboxWritableFileSystem extends SandboxFileSystem {
|
|
62
|
+
createFile(path: string): Promise<SandboxFileStat>;
|
|
63
|
+
write(input: {
|
|
64
|
+
readonly path: string;
|
|
65
|
+
readonly offset: number;
|
|
66
|
+
readonly contents: Uint8Array;
|
|
67
|
+
}): Promise<number>;
|
|
68
|
+
truncate(path: string, size: number): Promise<SandboxFileStat>;
|
|
69
|
+
}
|
|
70
|
+
export interface SandboxPosixFileSystem extends SandboxWritableFileSystem {
|
|
71
|
+
mkdir(path: string): Promise<SandboxFileStat>;
|
|
72
|
+
unlink(path: string): Promise<void>;
|
|
73
|
+
rmdir(path: string): Promise<void>;
|
|
74
|
+
rename(from: string, to: string, flags?: number): Promise<void>;
|
|
75
|
+
symlink(target: string, path: string): Promise<SandboxFileStat>;
|
|
76
|
+
readlink(path: string): Promise<string>;
|
|
77
|
+
}
|
|
78
|
+
export type SandboxVirtualFileSystem = SandboxFileSystem;
|
|
79
|
+
export type SandboxMountedFileSystem = SandboxFileSystem;
|
|
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>;
|
|
117
|
+
}
|
|
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
|
+
export interface SandboxHttpRequest {
|
|
130
|
+
readonly protocol: "http/1.1" | "h2";
|
|
131
|
+
readonly url: URL;
|
|
132
|
+
readonly method: string;
|
|
133
|
+
readonly headers: Headers;
|
|
134
|
+
readonly destination: {
|
|
135
|
+
readonly originalIp: string;
|
|
136
|
+
readonly originalPort: number;
|
|
137
|
+
readonly upstreamIp: string;
|
|
138
|
+
readonly upstreamPort: number;
|
|
139
|
+
};
|
|
140
|
+
readonly tls?: {
|
|
141
|
+
readonly sni?: string;
|
|
142
|
+
readonly alpn?: string;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
export type SandboxHttpRequestHook = (request: SandboxHttpRequest) => void | Promise<void>;
|
|
146
|
+
export interface SandboxHttpRequestSelector {
|
|
147
|
+
readonly origin: string;
|
|
148
|
+
}
|
|
149
|
+
export interface SandboxHttpHook extends AsyncDisposable {
|
|
150
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
151
|
+
}
|
|
152
|
+
export interface SandboxHttpHooks {
|
|
153
|
+
onRequest(selector: SandboxHttpRequestSelector, hook: SandboxHttpRequestHook): SandboxHttpHook;
|
|
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[];
|
|
174
|
+
};
|
|
175
|
+
export interface OutboundNetworkPolicy {
|
|
176
|
+
readonly policy: "deny";
|
|
177
|
+
readonly rules: readonly OutboundNetworkRule[];
|
|
178
|
+
}
|
|
179
|
+
export interface NetworkConfig {
|
|
180
|
+
readonly outbound?: OutboundNetworkPolicy;
|
|
181
|
+
readonly http?: {
|
|
182
|
+
readonly certificateAuthority?: {
|
|
183
|
+
readonly certificatePem: string;
|
|
184
|
+
readonly privateKeyPem: string;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export interface SandboxOptions {
|
|
189
|
+
readonly name?: string;
|
|
190
|
+
readonly cpu?: SandboxCpuOptions;
|
|
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;
|
|
198
|
+
}
|
|
199
|
+
export interface SandboxMounts {
|
|
200
|
+
get(path: string): SandboxMountedFileSystem;
|
|
201
|
+
virtualFs(path: string): SandboxVirtualFileSystem;
|
|
202
|
+
host(path: string): SandboxHostFileSystemTools;
|
|
203
|
+
}
|
|
204
|
+
export type SandboxControlEvent = {
|
|
205
|
+
readonly type: "init.ready";
|
|
206
|
+
readonly guest: {
|
|
207
|
+
readonly root: {
|
|
208
|
+
readonly readonly: boolean;
|
|
209
|
+
};
|
|
210
|
+
readonly init: {
|
|
211
|
+
readonly name: string;
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
} | {
|
|
215
|
+
readonly type: "guest.exec.complete";
|
|
216
|
+
readonly id: string;
|
|
217
|
+
readonly exitCode: number;
|
|
218
|
+
readonly stdout: string;
|
|
219
|
+
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
|
+
}
|
|
236
|
+
export interface SandboxVm {
|
|
237
|
+
readonly control: SandboxControl;
|
|
238
|
+
readonly mounts: SandboxMounts;
|
|
239
|
+
readonly diagnostics?: SandboxDiagnostics;
|
|
240
|
+
close(): Promise<void>;
|
|
241
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
242
|
+
}
|
|
243
|
+
export interface SandboxDiagnostics {
|
|
244
|
+
terminateHostForTest(): Promise<void>;
|
|
245
|
+
}
|
|
246
|
+
export declare function projectKernel(options?: Omit<KernelConfig, "kind">): KernelConfig;
|
|
247
|
+
export declare function projectInit(): InitConfig;
|
|
248
|
+
export declare function prebuiltRootfs(path: string, options: Omit<PrebuiltRootfsConfig, "kind" | "path">): PrebuiltRootfsConfig;
|
|
249
|
+
export declare function scratchFs(): ScratchFsConfig;
|
|
250
|
+
export declare function linuxOverlayFs(input: {
|
|
251
|
+
readonly lower: SandboxFsConfig;
|
|
252
|
+
readonly upper: SandboxFsConfig;
|
|
253
|
+
}): LinuxOverlayRootfsConfig;
|
|
254
|
+
export declare function virtualFsMount(path: string, fileSystem: SandboxVirtualFileSystem): VirtualFsMountConfig;
|
|
255
|
+
export declare function mount(path: string, fileSystem: SandboxVirtualFileSystem): VirtualFsMountConfig;
|
|
256
|
+
export declare function binding(path: string, fileSystem: SandboxVirtualFileSystem): FileSystemBindingConfig;
|
|
257
|
+
export declare function acceptTcp(input: {
|
|
258
|
+
readonly cidr: string;
|
|
259
|
+
readonly ports?: readonly number[];
|
|
260
|
+
}): OutboundNetworkRule;
|
|
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;
|
|
270
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|