@torkbot/sandbox 0.1.1 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../src/control.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,13 @@
1
1
  import { hostBinaryPath } from "./artifacts.ts";
2
2
  import type { HostControlChannel } from "./control.ts";
3
3
  import type { HostSpawnSandboxOptions } from "./spawn-options.ts";
4
- import type { SandboxOptions, SandboxHttpRequestHook, SandboxHttpRequestSelector } from "./index.ts";
5
- type RegisteredHttpRequestHeadersHook = {
6
- readonly selector: SandboxHttpRequestSelector;
7
- readonly hook: SandboxHttpRequestHook;
8
- active: boolean;
9
- };
4
+ import type { InternalSandboxOptions, RegisteredHttpRequestHeadersHook } from "./launch-options.ts";
10
5
  export declare class HostProcessSandboxVm implements HostControlChannel {
11
6
  #private;
12
7
  readonly hasControlSocket = true;
13
8
  readonly packets: AsyncIterable<Uint8Array>;
14
9
  private constructor();
15
- static spawn(options: SandboxOptions, hostOptions: HostSpawnSandboxOptions, requestHeaderHooks?: Map<string, RegisteredHttpRequestHeadersHook>): Promise<HostProcessSandboxVm>;
10
+ static spawn(options: InternalSandboxOptions, hostOptions: HostSpawnSandboxOptions, requestHeaderHooks?: Map<string, RegisteredHttpRequestHeadersHook>): Promise<HostProcessSandboxVm>;
16
11
  writeControlPacket(packet: Uint8Array): void;
17
12
  close(): Promise<void>;
18
13
  terminateHostForTest(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"host-process.d.ts","sourceRoot":"","sources":["../src/host-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAyB,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,KAAK,EACV,cAAc,EAGd,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,KAAK,gCAAgC,GAAG;IACtC,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,qBAAa,oBAAqB,YAAW,kBAAkB;;IAC7D,QAAQ,CAAC,gBAAgB,QAAQ;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAc5C,OAAO,eA4CN;IAED,OAAa,KAAK,CAChB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,uBAAuB,EACpC,kBAAkB,GAAE,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAa,GAC5E,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;IAED,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAG3C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAEK,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1C;CAoWF;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"host-process.d.ts","sourceRoot":"","sources":["../src/host-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAyB,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAQlE,OAAO,KAAK,EACV,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,qBAAqB,CAAC;AAI7B,qBAAa,oBAAqB,YAAW,kBAAkB;;IAC7D,QAAQ,CAAC,gBAAgB,QAAQ;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAiB5C,OAAO,eA6CN;IAED,OAAa,KAAK,CAChB,OAAO,EAAE,sBAAsB,EAC/B,WAAW,EAAE,uBAAuB,EACpC,kBAAkB,GAAE,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAa,GAC5E,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;IAED,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAG3C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3B;IAEK,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiB1C;CAqhBF;AA2BD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -3,6 +3,7 @@ import { once } from "node:events";
3
3
  import { Binary, BSON } from "bson";
4
4
  import { hostBinaryPath, macosHostSigningError } from "./artifacts.js";
5
5
  import { isSandboxWritableFileSystem } from "./vfs.js";
6
+ const DEFAULT_LAUNCH_TIMEOUT_MS = 60_000;
6
7
  export class HostProcessSandboxVm {
7
8
  hasControlSocket = true;
8
9
  packets;
@@ -10,7 +11,10 @@ export class HostProcessSandboxVm {
10
11
  #options;
11
12
  #packets = new AsyncQueue();
12
13
  #packetActivity = new AsyncSignal();
14
+ #launchReady = new AsyncSignal("sandbox-host launch acknowledgement closed");
13
15
  #hostFs = new Map();
16
+ #rootBlockStore;
17
+ #rootBlockStoreContext;
14
18
  #requestHeaderHooks;
15
19
  #buffer = new Uint8Array();
16
20
  #stderr = "";
@@ -22,10 +26,10 @@ export class HostProcessSandboxVm {
22
26
  this.#options = options;
23
27
  this.packets = this.#packets;
24
28
  this.#requestHeaderHooks = requestHeaderHooks;
29
+ this.#rootBlockStore = options.rootfs.storage?.blockStore;
30
+ this.#rootBlockStoreContext = options.rootfs.storage?.context;
25
31
  for (const mount of options.mounts ?? []) {
26
- if (mount.kind === "virtual-fs") {
27
- this.#hostFs.set(mount.path, mount.fileSystem);
28
- }
32
+ this.#hostFs.set(mount.path, mount.fileSystem);
29
33
  }
30
34
  child.stdout.on("data", (chunk) => {
31
35
  this.#receive(chunk);
@@ -52,6 +56,7 @@ export class HostProcessSandboxVm {
52
56
  this.#exitError = new Error(this.#stderr.length === 0 ? exitText : `${exitText}\n${this.#stderr}`);
53
57
  this.#packets.close(this.#exitError);
54
58
  this.#packetActivity.close(this.#exitError);
59
+ this.#launchReady.close(this.#exitError);
55
60
  });
56
61
  }
57
62
  static async spawn(options, hostOptions, requestHeaderHooks = new Map()) {
@@ -182,6 +187,9 @@ export class HostProcessSandboxVm {
182
187
  this.#buffer = this.#buffer.slice(packetLength);
183
188
  this.#packetActivity.notify();
184
189
  if (!this.#routeHostPacket(packet)) {
190
+ if (isInitReadyPacket(packet)) {
191
+ this.#launchReady.notify();
192
+ }
185
193
  this.#packets.push(packet);
186
194
  }
187
195
  }
@@ -205,10 +213,19 @@ export class HostProcessSandboxVm {
205
213
  && type !== "host.vfs.unlink"
206
214
  && type !== "host.vfs.rmdir"
207
215
  && type !== "host.vfs.rename"
216
+ && type !== "host.vfs.link"
208
217
  && type !== "host.vfs.symlink"
209
218
  && type !== "host.vfs.readlink"
219
+ && type !== "host.vfs.setxattr"
220
+ && type !== "host.vfs.getxattr"
221
+ && type !== "host.vfs.listxattr"
222
+ && type !== "host.vfs.removexattr"
210
223
  && type !== "host.http.requestHeaders"
211
- && type !== "host.http.activeRequestHeaderHooks") {
224
+ && type !== "host.http.activeRequestHeaderHooks"
225
+ && type !== "host.block.list"
226
+ && type !== "host.block.read"
227
+ && type !== "host.block.write"
228
+ && type !== "host.block.flush") {
212
229
  return false;
213
230
  }
214
231
  if (type === "host.http.requestHeaders") {
@@ -217,6 +234,12 @@ export class HostProcessSandboxVm {
217
234
  else if (type === "host.http.activeRequestHeaderHooks") {
218
235
  void this.#handleActiveRequestHeaderHooks(document);
219
236
  }
237
+ else if (type === "host.block.list"
238
+ || type === "host.block.read"
239
+ || type === "host.block.write"
240
+ || type === "host.block.flush") {
241
+ void this.#handleBlockStoreRequest(document);
242
+ }
220
243
  else {
221
244
  void this.#handleVirtualFsRequest(document);
222
245
  }
@@ -423,6 +446,18 @@ export class HostProcessSandboxVm {
423
446
  }));
424
447
  return;
425
448
  }
449
+ case "host.vfs.link": {
450
+ const posix = assertPosixFileSystem(fileSystem, mountPath);
451
+ const from = assertString(document.from, "from");
452
+ const to = assertString(document.to, "to");
453
+ this.#tryWriteToHost(encodePacket({
454
+ type: "host.vfs.response",
455
+ id,
456
+ ok: true,
457
+ stat: await posix.link(from, to),
458
+ }));
459
+ return;
460
+ }
426
461
  case "host.vfs.symlink": {
427
462
  const path = assertString(document.path, "path");
428
463
  const posix = assertPosixFileSystem(fileSystem, mountPath);
@@ -447,6 +482,83 @@ export class HostProcessSandboxVm {
447
482
  }));
448
483
  return;
449
484
  }
485
+ case "host.vfs.setxattr": {
486
+ const path = assertString(document.path, "path");
487
+ const name = assertString(document.name, "name");
488
+ const value = binaryField(document.value, "value");
489
+ const flags = assertNumber(document.flags, "flags");
490
+ const posix = assertPosixFileSystem(fileSystem, mountPath);
491
+ await posix.setxattr(path, name, value, flags);
492
+ this.#tryWriteToHost(encodePacket({
493
+ type: "host.vfs.response",
494
+ id,
495
+ ok: true,
496
+ }));
497
+ return;
498
+ }
499
+ case "host.vfs.getxattr": {
500
+ const path = assertString(document.path, "path");
501
+ const name = assertString(document.name, "name");
502
+ const size = assertNumber(document.size, "size");
503
+ const posix = assertPosixFileSystem(fileSystem, mountPath);
504
+ const value = await posix.getxattr(path, name);
505
+ if (size === 0) {
506
+ this.#tryWriteToHost(encodePacket({
507
+ type: "host.vfs.response",
508
+ id,
509
+ ok: true,
510
+ count: value.byteLength,
511
+ }));
512
+ return;
513
+ }
514
+ if (value.byteLength > size) {
515
+ throw new Error("xattr value is larger than requested size");
516
+ }
517
+ this.#tryWriteToHost(encodePacket({
518
+ type: "host.vfs.response",
519
+ id,
520
+ ok: true,
521
+ value: new Binary(value),
522
+ }));
523
+ return;
524
+ }
525
+ case "host.vfs.listxattr": {
526
+ const path = assertString(document.path, "path");
527
+ const size = assertNumber(document.size, "size");
528
+ const posix = assertPosixFileSystem(fileSystem, mountPath);
529
+ const names = encodeXattrNameList(await posix.listxattr(path));
530
+ if (size === 0) {
531
+ this.#tryWriteToHost(encodePacket({
532
+ type: "host.vfs.response",
533
+ id,
534
+ ok: true,
535
+ count: names.byteLength,
536
+ }));
537
+ return;
538
+ }
539
+ if (names.byteLength > size) {
540
+ throw new Error("xattr name list is larger than requested size");
541
+ }
542
+ this.#tryWriteToHost(encodePacket({
543
+ type: "host.vfs.response",
544
+ id,
545
+ ok: true,
546
+ names: new Binary(names),
547
+ }));
548
+ return;
549
+ }
550
+ case "host.vfs.removexattr": {
551
+ const path = assertString(document.path, "path");
552
+ const name = assertString(document.name, "name");
553
+ const posix = assertPosixFileSystem(fileSystem, mountPath);
554
+ await posix.removexattr(path, name);
555
+ this.#tryWriteToHost(encodePacket({
556
+ type: "host.vfs.response",
557
+ id,
558
+ ok: true,
559
+ }));
560
+ return;
561
+ }
450
562
  }
451
563
  }
452
564
  catch (error) {
@@ -458,18 +570,109 @@ export class HostProcessSandboxVm {
458
570
  }));
459
571
  }
460
572
  }
573
+ async #handleBlockStoreRequest(document) {
574
+ const id = typeof document.id === "string" ? document.id : "";
575
+ try {
576
+ const blockStore = this.#rootBlockStore;
577
+ const blockStoreContext = this.#rootBlockStoreContext;
578
+ if (blockStore === undefined || blockStoreContext === undefined) {
579
+ throw new Error("root block store is not configured");
580
+ }
581
+ switch (document.type) {
582
+ case "host.block.list": {
583
+ this.#tryWriteToHost(encodePacket({
584
+ type: "host.block.response",
585
+ id,
586
+ ok: true,
587
+ blocks: (await blockStore.list(blockStoreContext)).map((block) => block.toString()),
588
+ }));
589
+ return;
590
+ }
591
+ case "host.block.read": {
592
+ const chunks = await blockStore.read({
593
+ start: BigInt(assertString(document.start, "start")),
594
+ count: assertNumber(document.count, "count"),
595
+ }, blockStoreContext);
596
+ this.#tryWriteToHost(encodePacket({
597
+ type: "host.block.response",
598
+ id,
599
+ ok: true,
600
+ chunks: chunks.map((chunk) => ({
601
+ start: chunk.start.toString(),
602
+ data: new Binary(chunk.data),
603
+ })),
604
+ }));
605
+ return;
606
+ }
607
+ case "host.block.write": {
608
+ const chunks = assertDocumentArray(document.chunks, "chunks").map((chunk) => ({
609
+ start: BigInt(assertString(chunk.start, "chunks.start")),
610
+ data: binaryField(chunk.data, "chunks.data"),
611
+ }));
612
+ await blockStore.write(chunks, blockStoreContext);
613
+ this.#tryWriteToHost(encodePacket({
614
+ type: "host.block.response",
615
+ id,
616
+ ok: true,
617
+ }));
618
+ return;
619
+ }
620
+ case "host.block.flush": {
621
+ await blockStore.flush?.(blockStoreContext);
622
+ this.#tryWriteToHost(encodePacket({
623
+ type: "host.block.response",
624
+ id,
625
+ ok: true,
626
+ }));
627
+ return;
628
+ }
629
+ }
630
+ }
631
+ catch (error) {
632
+ this.#tryWriteToHost(encodePacket({
633
+ type: "host.block.response",
634
+ id,
635
+ ok: false,
636
+ error: error instanceof Error ? error.message : String(error),
637
+ }));
638
+ }
639
+ }
461
640
  async #waitForLaunch() {
641
+ const timeoutMs = launchTimeoutMs();
462
642
  await Promise.race([
463
- this.#packetActivity.wait(),
643
+ this.#launchReady.wait(),
464
644
  once(this.#child, "exit").then(() => {
465
645
  throw this.#exitError ?? new Error("sandbox-host exited before VM launch completed");
466
646
  }),
467
- delay(10_000).then(() => {
468
- throw new Error("sandbox-host did not produce a launch acknowledgement");
647
+ unrefDelay(timeoutMs).then(() => {
648
+ throw new Error(`sandbox-host did not produce a launch acknowledgement within ${timeoutMs}ms`);
469
649
  }),
470
650
  ]);
471
651
  }
472
652
  }
653
+ function launchTimeoutMs() {
654
+ const value = process.env.SANDBOX_LAUNCH_TIMEOUT_MS;
655
+ if (value === undefined || value.length === 0) {
656
+ return DEFAULT_LAUNCH_TIMEOUT_MS;
657
+ }
658
+ const parsed = Number(value);
659
+ if (!Number.isSafeInteger(parsed) || parsed <= 0) {
660
+ throw new Error(`SANDBOX_LAUNCH_TIMEOUT_MS must be a positive integer, got ${value}`);
661
+ }
662
+ return parsed;
663
+ }
664
+ function encodeXattrNameList(names) {
665
+ return new TextEncoder().encode(names.map((name) => `${name}\0`).join(""));
666
+ }
667
+ function isInitReadyPacket(packet) {
668
+ try {
669
+ const document = BSON.deserialize(packet.slice(4));
670
+ return document.type === "init.ready";
671
+ }
672
+ catch {
673
+ return false;
674
+ }
675
+ }
473
676
  export { hostBinaryPath };
474
677
  function assertString(value, field) {
475
678
  if (typeof value !== "string") {
@@ -501,6 +704,12 @@ function assertHeaderPairs(value, field) {
501
704
  }
502
705
  return value;
503
706
  }
707
+ function assertDocumentArray(value, field) {
708
+ if (!Array.isArray(value) || value.some((entry) => entry === null || typeof entry !== "object")) {
709
+ throw new Error(`host request ${field} must be documents`);
710
+ }
711
+ return value;
712
+ }
504
713
  function trackHeaderMutations(headers) {
505
714
  let mutated = false;
506
715
  const set = headers.set.bind(headers);
@@ -567,8 +776,13 @@ function assertPosixFileSystem(fileSystem, mountPath) {
567
776
  || typeof candidate.unlink !== "function"
568
777
  || typeof candidate.rmdir !== "function"
569
778
  || typeof candidate.rename !== "function"
779
+ || typeof candidate.link !== "function"
570
780
  || typeof candidate.symlink !== "function"
571
- || typeof candidate.readlink !== "function") {
781
+ || typeof candidate.readlink !== "function"
782
+ || typeof candidate.setxattr !== "function"
783
+ || typeof candidate.getxattr !== "function"
784
+ || typeof candidate.listxattr !== "function"
785
+ || typeof candidate.removexattr !== "function") {
572
786
  throw new Error(`host filesystem mount does not support POSIX mutations: ${mountPath}`);
573
787
  }
574
788
  return candidate;
@@ -576,6 +790,12 @@ function assertPosixFileSystem(fileSystem, mountPath) {
576
790
  function delay(milliseconds) {
577
791
  return new Promise((resolvePromise) => setTimeout(resolvePromise, milliseconds));
578
792
  }
793
+ function unrefDelay(milliseconds) {
794
+ return new Promise((resolvePromise) => {
795
+ const timeout = setTimeout(resolvePromise, milliseconds);
796
+ timeout.unref();
797
+ });
798
+ }
579
799
  class AsyncQueue {
580
800
  #values = [];
581
801
  #nextWaiters = [];
@@ -636,9 +856,13 @@ class AsyncQueue {
636
856
  }
637
857
  class AsyncSignal {
638
858
  #waiters = [];
859
+ #closedMessage;
639
860
  #signaled = false;
640
861
  #closed = false;
641
862
  #error;
863
+ constructor(closedMessage = "sandbox-host packet activity closed") {
864
+ this.#closedMessage = closedMessage;
865
+ }
642
866
  notify() {
643
867
  if (this.#closed) {
644
868
  return;
@@ -671,7 +895,7 @@ class AsyncSignal {
671
895
  if (this.#error !== undefined) {
672
896
  throw this.#error;
673
897
  }
674
- throw new Error("sandbox-host packet activity closed");
898
+ throw new Error(this.#closedMessage);
675
899
  }
676
900
  return await new Promise((resolve, reject) => {
677
901
  this.#waiters.push({ resolve, reject });
@@ -689,7 +913,12 @@ function encodeHostSpawn(options) {
689
913
  rootfsPath: options.rootfs.path,
690
914
  rootfsReadonly: options.rootfs.readonly,
691
915
  rootfsFormat: options.rootfs.format,
692
- rootfsOverlayMode: options.rootfsOverlay?.mode,
916
+ rootfsStorage: options.rootfs.storage === undefined
917
+ ? undefined
918
+ : {
919
+ kind: options.rootfs.storage.kind,
920
+ blockSize: options.rootfs.storage.blockSize,
921
+ },
693
922
  mounts: options.mounts ?? [],
694
923
  networkOutbound: options.network?.outbound,
695
924
  networkHttp: options.network?.http === undefined ? undefined : options.network.http,
@@ -1 +1 @@
1
- {"version":3,"file":"host-process.js","sourceRoot":"","sources":["../src/host-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-process.js","sourceRoot":"","sources":["../src/host-process.ts"],"names":[],"mappings":"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"}