eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
55 lines (54 loc) • 2.3 kB
TypeScript
import type { SandboxNetworkPolicy } from "#shared/sandbox-network-policy.js";
/**
* Options accepted by `microsandbox(opts)`.
*
* The microsandbox backend 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
* bootstrap code runs. Install authored runtime tools such as Node,
* Python, or ripgrep in sandbox bootstrap or provide them through a
* custom image.
*
* @default "ghcr.io/vercel/eve:latest"
*/
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";
/**
* 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;
};
/** Initial network policy applied to sandboxes after framework setup. */
readonly networkPolicy?: SandboxNetworkPolicy;
}
/**
* Options accepted by the microsandbox backend's `bootstrap({ use })` hook.
*/
export interface MicrosandboxBootstrapUseOptions {
readonly networkPolicy?: SandboxNetworkPolicy;
}
/**
* Options accepted by the microsandbox backend's `onSession({ use })` hook.
*/
export interface MicrosandboxSessionUseOptions {
readonly networkPolicy?: SandboxNetworkPolicy;
}