import type { JsRuntimeConfig } from "./JsRuntimeConfig.js"; import type { NativeRootFilesystemConfig } from "./NativeRootFilesystemConfig.js"; import type { PermissionsPolicy } from "./PermissionsPolicy.js"; import type { RootFilesystemConfig } from "./RootFilesystemConfig.js"; import type { VmDnsConfig } from "./VmDnsConfig.js"; import type { VmLimitsConfig } from "./VmLimitsConfig.js"; import type { VmListenPolicyConfig } from "./VmListenPolicyConfig.js"; import type { VmUserConfig } from "./VmUserConfig.js"; /** * Canonical Rust-side VM config. Unknown fields must stay rejected here and in * the TS preflight schema at * `packages/core/src/node-runtime-options-schema.ts`; update both when a * public `NodeRuntime.create(...)` option changes the generated VM config. */ export type CreateVmConfig = { cwd?: string; env: Record; user?: VmUserConfig; rootFilesystem: RootFilesystemConfig; permissions?: PermissionsPolicy; limits?: VmLimitsConfig; dns?: VmDnsConfig; nativeRoot?: NativeRootFilesystemConfig; listen?: VmListenPolicyConfig; loopbackExemptPorts: Array; jsRuntime?: JsRuntimeConfig; bootstrapCommands?: Array; };