@namzu/sandbox 7.0.0 → 7.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +29 -1
  3. package/dist/backends/aci-standby-pool/index.d.ts.map +1 -1
  4. package/dist/backends/aci-standby-pool/index.js +95 -82
  5. package/dist/backends/aci-standby-pool/index.js.map +1 -1
  6. package/dist/backends/docker/index.d.ts.map +1 -1
  7. package/dist/backends/docker/index.js +108 -114
  8. package/dist/backends/docker/index.js.map +1 -1
  9. package/dist/backends/firecracker/index.d.ts.map +1 -1
  10. package/dist/backends/firecracker/index.js +117 -52
  11. package/dist/backends/firecracker/index.js.map +1 -1
  12. package/dist/backends/firecracker/protocol.d.ts +19 -27
  13. package/dist/backends/firecracker/protocol.d.ts.map +1 -1
  14. package/dist/backends/firecracker/protocol.js +57 -32
  15. package/dist/backends/firecracker/protocol.js.map +1 -1
  16. package/dist/backends/firecracker/transport.d.ts +23 -4
  17. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  18. package/dist/backends/firecracker/transport.js +153 -32
  19. package/dist/backends/firecracker/transport.js.map +1 -1
  20. package/dist/backends/http-worker-client.d.ts +17 -0
  21. package/dist/backends/http-worker-client.d.ts.map +1 -0
  22. package/dist/backends/http-worker-client.js +173 -0
  23. package/dist/backends/http-worker-client.js.map +1 -0
  24. package/dist/backends/remote-execution-controller.d.ts +76 -0
  25. package/dist/backends/remote-execution-controller.d.ts.map +1 -0
  26. package/dist/backends/remote-execution-controller.js +294 -0
  27. package/dist/backends/remote-execution-controller.js.map +1 -0
  28. package/package.json +2 -2
  29. package/src/backends/aci-standby-pool/index.ts +101 -88
  30. package/src/backends/docker/index.ts +101 -132
  31. package/src/backends/firecracker/index.ts +117 -45
  32. package/src/backends/firecracker/protocol.ts +67 -33
  33. package/src/backends/firecracker/transport.ts +214 -39
  34. package/src/backends/http-worker-client.ts +230 -0
  35. package/src/backends/remote-execution-controller.ts +462 -0
@@ -24,7 +24,9 @@ import { spawn } from 'node:child_process';
24
24
  import { SANDBOX_DEFAULT_OUTPUTS_PATH, SANDBOX_DEFAULT_SCRATCH_PATH, SANDBOX_DEFAULT_SKILLS_PARENT, SANDBOX_DEFAULT_TOOL_RESULTS_PATH, SANDBOX_DEFAULT_TRANSCRIPTS_PATH, SANDBOX_DEFAULT_UPLOADS_PATH, asSandboxId, withHint, } from '@namzu/sdk';
25
25
  import { EgressProxy } from '../../egress/index.js';
26
26
  import { ContainerSandboxLayoutValidationError, } from '../../index.js';
27
+ import { HttpWorkerClient } from '../http-worker-client.js';
27
28
  import { OperationDeadline, OperationDeadlineExpired, probeHttpHealth, resolveReadinessOptions, runFailureCleanup, } from '../readiness.js';
29
+ import { RemoteCancellationUnknownError } from '../remote-execution-controller.js';
28
30
  const DEFAULT_DOCKER_BINARY = 'docker';
29
31
  const DEFAULT_READY_POLL_MS = 100;
30
32
  const DEFAULT_READY_TIMEOUT_MS = 30_000;
@@ -384,24 +386,109 @@ async function spawnDockerSandbox(config, options, readiness) {
384
386
  await runFailureCleanup(cleanupOnFailure);
385
387
  throw err;
386
388
  }
387
- let status = 'ready';
389
+ let activeExecutions = 0;
390
+ let lifecycle = 'active';
391
+ let retirementPromise;
392
+ let teardownPromise;
393
+ let teardownComplete = false;
394
+ const workerClient = new HttpWorkerClient(baseUrl);
395
+ const assertActive = () => {
396
+ if (lifecycle !== 'active') {
397
+ throw new Error(`Sandbox ${id} is ${lifecycle}; no new worker operation can be admitted`);
398
+ }
399
+ };
400
+ const teardownSandbox = (signal) => {
401
+ lifecycle = 'retiring';
402
+ if (teardownComplete)
403
+ return Promise.resolve();
404
+ if (teardownPromise)
405
+ return teardownPromise;
406
+ const attempt = (async () => {
407
+ let teardownError;
408
+ try {
409
+ await runOnce(docker, ['rm', '-f', containerName], signal);
410
+ }
411
+ catch (error) {
412
+ teardownError = error;
413
+ }
414
+ finally {
415
+ try {
416
+ await egressProxy?.close();
417
+ }
418
+ catch (error) {
419
+ teardownError ??= error;
420
+ }
421
+ }
422
+ if (teardownError !== undefined)
423
+ throw teardownError;
424
+ })();
425
+ const shared = attempt.then(() => {
426
+ teardownComplete = true;
427
+ lifecycle = 'destroyed';
428
+ }, (error) => {
429
+ if (teardownPromise === shared)
430
+ teardownPromise = undefined;
431
+ throw error;
432
+ });
433
+ teardownPromise = shared;
434
+ return shared;
435
+ };
436
+ const retire = () => {
437
+ lifecycle = 'retiring';
438
+ if (retirementPromise)
439
+ return retirementPromise;
440
+ const deadline = new OperationDeadline(5_000, `docker sandbox ${id} retirement`);
441
+ retirementPromise = deadline
442
+ .run(async (signal) => {
443
+ const joinedExistingAttempt = teardownPromise !== undefined;
444
+ try {
445
+ await teardownSandbox(signal);
446
+ }
447
+ catch (error) {
448
+ if (!joinedExistingAttempt || signal.aborted)
449
+ throw error;
450
+ await teardownSandbox(signal);
451
+ }
452
+ })
453
+ .then(() => {
454
+ return { accepted: true };
455
+ })
456
+ .catch((error) => ({
457
+ accepted: false,
458
+ error: error instanceof Error ? error : new Error(String(error)),
459
+ }));
460
+ return retirementPromise;
461
+ };
462
+ const runExecution = async (operation) => {
463
+ assertActive();
464
+ activeExecutions += 1;
465
+ try {
466
+ return await operation();
467
+ }
468
+ catch (error) {
469
+ if (error instanceof RemoteCancellationUnknownError) {
470
+ error.retirement = await retire();
471
+ }
472
+ throw error;
473
+ }
474
+ finally {
475
+ activeExecutions = Math.max(0, activeExecutions - 1);
476
+ }
477
+ };
388
478
  return {
389
479
  id,
390
480
  get status() {
391
- return status;
481
+ if (lifecycle !== 'active')
482
+ return 'destroyed';
483
+ return activeExecutions > 0 ? 'busy' : 'ready';
392
484
  },
393
485
  rootDir,
394
486
  environment: detectEnvironment(),
395
487
  async exec(command, argv, opts) {
396
- status = 'busy';
397
- try {
398
- return await execViaWorker(baseUrl, command, argv, opts);
399
- }
400
- finally {
401
- status = 'ready';
402
- }
488
+ return await runExecution(async () => await workerClient.exec(command, argv, opts));
403
489
  },
404
490
  async setNetworkPolicy(policy) {
491
+ assertActive();
405
492
  // Enforceable only through the egress proxy. Without one the
406
493
  // container's network was fixed at creation — `--network none`
407
494
  // or not — and there is nothing to narrow: accepting the policy
@@ -414,6 +501,7 @@ async function spawnDockerSandbox(config, options, readiness) {
414
501
  egressProxy.setAllowedHosts(async () => policy.allowedHosts);
415
502
  },
416
503
  async writeFile(path, content) {
504
+ assertActive();
417
505
  const buf = Buffer.isBuffer(content) ? content : Buffer.from(content, 'utf8');
418
506
  let res;
419
507
  try {
@@ -441,6 +529,7 @@ async function spawnDockerSandbox(config, options, readiness) {
441
529
  }
442
530
  },
443
531
  async readFile(path) {
532
+ assertActive();
444
533
  const res = await fetch(`${baseUrl}/read-file`, {
445
534
  method: 'POST',
446
535
  headers: { 'content-type': 'application/json' },
@@ -456,16 +545,16 @@ async function spawnDockerSandbox(config, options, readiness) {
456
545
  return Buffer.from(json.content, 'base64');
457
546
  },
458
547
  async listFiles(rootPath) {
459
- return await listFilesViaWorker(baseUrl, rootPath);
548
+ return await runExecution(async () => await listFilesViaWorker(workerClient, rootPath));
460
549
  },
461
550
  async destroy(options) {
462
- status = 'destroyed';
463
- await runOnceQuiet(docker, ['rm', '-f', containerName], options?.signal);
464
- // The proxy holds real credentials and a live allowlist. Leaving
465
- // it listening after the sandbox it was filtering for is gone
466
- // means a loopback port that still stamps a token onto anything
467
- // that asks — outliving the only thing that justified it.
468
- await egressProxy?.close();
551
+ if (retirementPromise) {
552
+ const observation = await retirementPromise;
553
+ if (observation.accepted)
554
+ return;
555
+ retirementPromise = undefined;
556
+ }
557
+ await teardownSandbox(options?.signal);
469
558
  // Backend never allocates host paths — every bind source
470
559
  // comes from the consumer-supplied layout. Container
471
560
  // teardown is sufficient; the consumer's own lifecycle
@@ -494,101 +583,6 @@ async function readMappedPort(docker, containerName, signal) {
494
583
  }
495
584
  return port;
496
585
  }
497
- async function execViaWorker(baseUrl, command, argv, opts) {
498
- // `opts.signal` is deliberately NOT passed to `fetch`. It would abort the
499
- // request and leave the worker running the command — abandoning the wait
500
- // while the process lives on is the exact failure
501
- // `SandboxExecOptions.signal` exists to prevent, and wiring it here would
502
- // make the option look honoured while delivering that failure. Honouring
503
- // it needs a cancel endpoint on the worker.
504
- const start = Date.now();
505
- let res;
506
- try {
507
- res = await fetch(`${baseUrl}/execute`, {
508
- method: 'POST',
509
- headers: { 'content-type': 'application/json' },
510
- body: JSON.stringify({
511
- command,
512
- args: argv ?? [],
513
- cwd: opts?.cwd,
514
- env: opts?.env,
515
- timeoutMs: opts?.timeout,
516
- }),
517
- });
518
- }
519
- catch (err) {
520
- // Surface the underlying transport error (DNS, ECONNREFUSED,
521
- // socket-hangup, …) instead of the generic "fetch failed" the
522
- // undici client throws. Without `cause`, ops cannot tell whether
523
- // the worker died, the bridge dropped, or something else.
524
- const cause = err instanceof Error ? err.cause : undefined;
525
- const causeMsg = cause instanceof Error
526
- ? `${cause.message}${cause.code ? ` (${cause.code})` : ''}`
527
- : cause
528
- ? String(cause)
529
- : 'unknown';
530
- throw withHint(new Error(`namzu-sandbox /execute fetch failed (baseUrl=${baseUrl}): ${err instanceof Error ? err.message : String(err)} — cause: ${causeMsg}`, { cause: err }), 'The container was reachable when it started, so it has most likely exited or been killed since — an out-of-memory kill under `memoryLimitMb` is the common cause. Check the container logs and its exit code.');
531
- }
532
- if (!res.ok || !res.body) {
533
- throw new Error(`execute failed: HTTP ${res.status} ${await res.text()}`);
534
- }
535
- let stdout = '';
536
- let stderr = '';
537
- let exitCode = -1;
538
- let timedOut = false;
539
- let signal;
540
- const decoder = new TextDecoder();
541
- const reader = res.body.getReader();
542
- let buffered = '';
543
- for (;;) {
544
- const { value, done } = await reader.read();
545
- if (done)
546
- break;
547
- buffered += decoder.decode(value, { stream: true });
548
- let newlineIdx = buffered.indexOf('\n');
549
- while (newlineIdx !== -1) {
550
- const line = buffered.slice(0, newlineIdx).trim();
551
- buffered = buffered.slice(newlineIdx + 1);
552
- if (line) {
553
- try {
554
- const event = JSON.parse(line);
555
- if (event.type === 'stdout_delta') {
556
- stdout += event.data;
557
- opts?.onOutput?.({ stream: 'stdout', data: event.data });
558
- }
559
- else if (event.type === 'stderr_delta') {
560
- stderr += event.data;
561
- opts?.onOutput?.({ stream: 'stderr', data: event.data });
562
- }
563
- else if (event.type === 'result') {
564
- exitCode = event.exitCode;
565
- timedOut = event.timedOut;
566
- }
567
- else if (event.type === 'error') {
568
- throw new Error(event.error);
569
- }
570
- }
571
- catch (err) {
572
- if (err instanceof SyntaxError) {
573
- // Ignore malformed lines from the worker.
574
- }
575
- else {
576
- throw err;
577
- }
578
- }
579
- }
580
- newlineIdx = buffered.indexOf('\n');
581
- }
582
- }
583
- return {
584
- exitCode,
585
- stdout,
586
- stderr,
587
- ...(signal ? { signal } : {}),
588
- timedOut,
589
- durationMs: Date.now() - start,
590
- };
591
- }
592
586
  /**
593
587
  * Recursively list regular files under `rootPath` by shelling out to
594
588
  * the worker's `find` (GNU find on the Debian-based reference image).
@@ -597,8 +591,8 @@ async function execViaWorker(baseUrl, command, argv, opts) {
597
591
  * is mapped to "empty listing" because the agent legitimately may not
598
592
  * have produced anything in `rootPath` yet.
599
593
  */
600
- async function listFilesViaWorker(baseUrl, rootPath) {
601
- const result = await execViaWorker(baseUrl, 'find', [rootPath, '-type', 'f', '-printf', '%p\t%s\n'], undefined);
594
+ async function listFilesViaWorker(workerClient, rootPath) {
595
+ const result = await workerClient.exec('find', [rootPath, '-type', 'f', '-printf', '%p\t%s\n'], undefined);
602
596
  if (result.exitCode !== 0) {
603
597
  // `find` returns non-zero when the root is missing — that just
604
598
  // means "no outputs yet". Other failures (permission errors,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAE7F,OAAO,KAAK,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,gBAAgB,CAAA;AAkBvB;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,gCAAgC;IAChD,gEAAgE;IAChE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;IACzC,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;IAClC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CAC9C;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gCAAgC,GAAG,cAAc,CAiBhG;AAuWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CA2BxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,sBAAsB,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAClC,kBAAkB,CAyBpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAeH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAG7F,OAAO,KAAK,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,gBAAgB,CAAA;AAkBvB;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,gCAAgC;IAChD,gEAAgE;IAChE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;IACzC,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;IAClC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CAC9C;AAOD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gCAAgC,GAAG,cAAc,CAiBhG;AA6aD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CA2BxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,sBAAsB,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAClC,kBAAkB,CAyBpB"}
@@ -44,7 +44,8 @@
44
44
  * long-running sandbox survives token rotation.
45
45
  */
46
46
  import https from 'node:https';
47
- import { resolveReadinessOptions, runFailureCleanup } from '../readiness.js';
47
+ import { OperationDeadline, resolveReadinessOptions, runFailureCleanup } from '../readiness.js';
48
+ import { RemoteCancellationUnknownError } from '../remote-execution-controller.js';
48
49
  import { VsockAgentTransport } from './transport.js';
49
50
  /**
50
51
  * Trim trailing slashes without a regex.
@@ -63,6 +64,7 @@ function stripTrailingSlashes(value) {
63
64
  const DEFAULT_AGENT_VSOCK_PORT = 1024;
64
65
  const DEFAULT_READY_TIMEOUT_MS = 60_000;
65
66
  const DEFAULT_READY_POLL_MS = 250;
67
+ const RETIREMENT_TIMEOUT_MS = 5_000;
66
68
  /**
67
69
  * Build a {@link SandboxBackend} backed by the owned Firecracker
68
70
  * platform. Construction is synchronous; the orchestrator POST happens
@@ -81,7 +83,7 @@ export function buildFirecrackerBackend(config) {
81
83
  },
82
84
  };
83
85
  }
84
- async function orchestratorCall(endpoint, pathSuffix, method, getToken, body, mtls, signal) {
86
+ async function orchestratorCall(endpoint, pathSuffix, method, getToken, body, mtls, signal, acceptedStatuses = []) {
85
87
  signal?.throwIfAborted();
86
88
  const token = await getToken();
87
89
  signal?.throwIfAborted();
@@ -108,6 +110,11 @@ async function orchestratorCall(endpoint, pathSuffix, method, getToken, body, mt
108
110
  throw new Error(`firecracker orchestrator ${method} ${url} failed: ${err instanceof Error ? err.message : String(err)}${cause ? ` — cause: ${cause instanceof Error ? cause.message : String(cause)}` : ''}`, { cause: err });
109
111
  }
110
112
  if (res.status < 200 || res.status >= 300) {
113
+ if (acceptedStatuses.includes(res.status)) {
114
+ await res.text();
115
+ signal?.throwIfAborted();
116
+ return undefined;
117
+ }
111
118
  const text = await res.text();
112
119
  signal?.throwIfAborted();
113
120
  throw new Error(`firecracker orchestrator ${method} ${url} → ${res.status}: ${text}`);
@@ -226,8 +233,8 @@ async function spawnFirecrackerSandbox(config, options, readiness) {
226
233
  // shipped by the control plane.
227
234
  const handle = normalizeHandle(created.agent, config.agentVsockPort ?? DEFAULT_AGENT_VSOCK_PORT, config.mtls);
228
235
  const transport = new VsockAgentTransport(handle, config.transport ?? {});
229
- const destroy = async (signal) => {
230
- await orchestratorCall(endpoint, `/sandboxes/${encodeURIComponent(id)}:delete`, 'DELETE', config.getToken, undefined, config.controlPlaneMtls, signal);
236
+ const destroy = async (signal, acceptedStatuses = []) => {
237
+ await orchestratorCall(endpoint, `/sandboxes/${encodeURIComponent(id)}:delete`, 'DELETE', config.getToken, undefined, config.controlPlaneMtls, signal, acceptedStatuses);
231
238
  };
232
239
  try {
233
240
  options.signal?.throwIfAborted();
@@ -247,77 +254,135 @@ async function spawnFirecrackerSandbox(config, options, readiness) {
247
254
  await runFailureCleanup(async (signal) => destroy(signal));
248
255
  throw err;
249
256
  }
250
- let status = 'ready';
257
+ let activeExecutions = 0;
258
+ let lifecycle = 'active';
259
+ let retirementPromise;
260
+ let teardownPromise;
261
+ let teardownComplete = false;
262
+ const assertActive = () => {
263
+ if (lifecycle !== 'active') {
264
+ throw new Error(`Sandbox ${id} is ${lifecycle}; no new guest operation can be admitted`);
265
+ }
266
+ };
267
+ const teardownSandbox = (signal) => {
268
+ lifecycle = 'retiring';
269
+ if (teardownComplete)
270
+ return Promise.resolve();
271
+ if (teardownPromise)
272
+ return teardownPromise;
273
+ const attempt = destroy(signal, [404, 410]);
274
+ const shared = attempt.then(() => {
275
+ teardownComplete = true;
276
+ lifecycle = 'destroyed';
277
+ }, (error) => {
278
+ if (teardownPromise === shared)
279
+ teardownPromise = undefined;
280
+ throw error;
281
+ });
282
+ teardownPromise = shared;
283
+ return shared;
284
+ };
285
+ const retire = () => {
286
+ lifecycle = 'retiring';
287
+ if (retirementPromise)
288
+ return retirementPromise;
289
+ const deadline = new OperationDeadline(RETIREMENT_TIMEOUT_MS, `firecracker sandbox ${id} retirement`);
290
+ retirementPromise = deadline
291
+ .run(async (signal) => {
292
+ const joinedExistingAttempt = teardownPromise !== undefined;
293
+ try {
294
+ await teardownSandbox(signal);
295
+ }
296
+ catch (error) {
297
+ if (!joinedExistingAttempt || signal.aborted)
298
+ throw error;
299
+ await teardownSandbox(signal);
300
+ }
301
+ })
302
+ .then(() => {
303
+ return { accepted: true };
304
+ })
305
+ .catch((error) => {
306
+ const normalized = error instanceof Error ? error : new Error(String(error));
307
+ return { accepted: false, error: normalized };
308
+ });
309
+ return retirementPromise;
310
+ };
311
+ const classifyExecutionFailure = async (error) => {
312
+ if (error instanceof RemoteCancellationUnknownError) {
313
+ error.retirement = await retire();
314
+ }
315
+ throw error;
316
+ };
317
+ const runExecution = async (operation) => {
318
+ assertActive();
319
+ activeExecutions += 1;
320
+ try {
321
+ return await operation();
322
+ }
323
+ catch (error) {
324
+ return await classifyExecutionFailure(error);
325
+ }
326
+ finally {
327
+ activeExecutions = Math.max(0, activeExecutions - 1);
328
+ }
329
+ };
251
330
  return {
252
331
  id,
253
332
  get status() {
254
- return status;
333
+ if (lifecycle !== 'active')
334
+ return 'destroyed';
335
+ return activeExecutions > 0 ? 'busy' : 'ready';
255
336
  },
256
337
  rootDir,
257
338
  environment: detectEnvironment(),
258
339
  async exec(command, argv, opts) {
259
- // `opts.signal` is deliberately not forwarded, and the reason is
260
- // worth writing down because the obvious "fix" is worse than the
261
- // gap. There is no cancel op on this wire — the guest agent takes
262
- // an execute frame and answers when the command is done. Aborting
263
- // the socket here would abandon the WAIT while the process keeps
264
- // running inside the microVM, which is verbatim the failure
265
- // `SandboxExecOptions.signal` exists to prevent, except it would
266
- // then look honoured. Honouring it means a cancel op in the guest
267
- // protocol; until then, ignoring it is the truthful behaviour the
268
- // option's own contract allows.
269
- status = 'busy';
270
- try {
271
- return await transport.execute({
272
- command,
273
- args: argv ?? [],
274
- ...(opts?.cwd !== undefined ? { cwd: opts.cwd } : {}),
275
- ...(opts?.env !== undefined ? { env: opts.env } : {}),
276
- ...(opts?.timeout !== undefined ? { timeoutMs: opts.timeout } : {}),
277
- });
278
- }
279
- finally {
280
- status = 'ready';
281
- }
340
+ return await runExecution(async () => await transport.exec(command, argv, opts));
282
341
  },
283
342
  async writeFile(path, content) {
343
+ assertActive();
284
344
  const buf = Buffer.isBuffer(content) ? content : Buffer.from(content, 'utf8');
285
345
  await transport.writeFile(path, buf);
286
346
  },
287
347
  async readFile(path) {
348
+ assertActive();
288
349
  return await transport.readFile(path);
289
350
  },
290
351
  async listFiles(rootPath) {
291
- // Same wire as docker/aci: `find -printf '%p\t%s\n'`, parse
292
- // line-by-line, map a non-zero exit (missing root) to "empty".
293
- const result = await transport.execute({
294
- command: 'find',
295
- args: [rootPath, '-type', 'f', '-printf', '%p\t%s\n'],
352
+ return await runExecution(async () => {
353
+ // Same wire as docker/aci: `find -printf '%p\t%s\n'`, parse
354
+ // line-by-line, map a non-zero exit (missing root) to "empty".
355
+ const result = await transport.exec('find', [rootPath, '-type', 'f', '-printf', '%p\t%s\n']);
356
+ if (result.exitCode !== 0)
357
+ return [];
358
+ const entries = [];
359
+ for (const rawLine of result.stdout.split('\n')) {
360
+ if (!rawLine)
361
+ continue;
362
+ const tab = rawLine.indexOf('\t');
363
+ if (tab < 0)
364
+ continue;
365
+ const filePath = rawLine.slice(0, tab);
366
+ const size = Number.parseInt(rawLine.slice(tab + 1), 10);
367
+ if (!filePath || !Number.isFinite(size))
368
+ continue;
369
+ entries.push({ path: filePath, size });
370
+ }
371
+ return entries;
296
372
  });
297
- if (result.exitCode !== 0)
298
- return [];
299
- const entries = [];
300
- for (const rawLine of result.stdout.split('\n')) {
301
- if (!rawLine)
302
- continue;
303
- const tab = rawLine.indexOf('\t');
304
- if (tab < 0)
305
- continue;
306
- const filePath = rawLine.slice(0, tab);
307
- const size = Number.parseInt(rawLine.slice(tab + 1), 10);
308
- if (!filePath || !Number.isFinite(size))
309
- continue;
310
- entries.push({ path: filePath, size });
311
- }
312
- return entries;
313
373
  },
314
374
  async destroy(options) {
315
- status = 'destroyed';
375
+ if (retirementPromise) {
376
+ const observation = await retirementPromise;
377
+ if (observation.accepted)
378
+ return;
379
+ retirementPromise = undefined;
380
+ }
316
381
  // Let the orchestrator DELETE failure propagate — the
317
382
  // Vandal-side lifecycle wraps this with logging, and a
318
383
  // swallowed error here means orphaned microVMs (and their
319
384
  // netns / UFFD handlers) pile up with no observability handle.
320
- await destroy(options?.signal);
385
+ await teardownSandbox(options?.signal);
321
386
  },
322
387
  };
323
388
  }