eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
49 lines (48 loc) • 2.41 kB
TypeScript
import type { SandboxSession } from "#shared/sandbox-session.js";
import type { SandboxNetworkOptions, SandboxNetworkPolicy } from "#shared/sandbox-network-policy.js";
/**
* Options accepted by microsandbox environment constructors.
*
* The microsandbox provider runs sandboxes in lightweight local VMs via
* [microsandbox](https://www.npmjs.com/package/microsandbox). Options
* are eve-owned rather than a raw passthrough so the public surface can
* stay stable while the underlying runtime evolves. Supported hosts:
* macOS on Apple Silicon, or Linux (glibc) with KVM enabled.
*/
export interface MicrosandboxSandboxCreateOptions {
/**
* OCI image used as the base runtime. eve prepares this image with
* Bash, the framework workspace, and the sandbox user before authored
* environment preparation runs. Install authored runtime tools such as Node,
* Python, or ripgrep during preparation or provide them through a
* custom image.
*
* @default The `ghcr.io/vercel/eve` tag matching the installed eve version without build metadata, or `EVE_SANDBOX_IMAGE_TAG` when set.
*/
readonly image?: string;
/** Number of virtual CPUs assigned to each sandbox. @default 1 */
readonly cpus?: number;
/** Memory assigned to each sandbox in MiB. @default 1024 */
readonly memoryMiB?: number;
/** Environment variables applied to every sandbox command. */
readonly env?: Readonly<Record<string, string>>;
/** OCI image pull policy. @default "if-missing" */
readonly pullPolicy?: "always" | "if-missing" | "never";
/** Idempotent setup captured in the prepared VM snapshot. */
readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
/**
* Installation behavior for the microsandbox npm package and its VM
* runtime. By default eve installs both automatically when missing —
* the npm package with the project's package manager (during
* `eve dev` only), the runtime via microsandbox's own installer.
*/
readonly setup?: {
readonly autoInstall?: boolean;
readonly skipVerify?: boolean;
};
}
/** Options applied when eve creates one live microsandbox VM. */
export interface MicrosandboxSandboxRuntimeOptions extends SandboxNetworkOptions {
/** Initial network policy for this VM. @default "allow-all" */
readonly networkPolicy?: SandboxNetworkPolicy;
}