import { execSync } from "node:child_process"; import { existsSync, mkdirSync } from "node:fs"; export const DOCKER_IMAGE = "sandbox-agent-boxlite"; export const OCI_DIR = new URL("../oci-image", import.meta.url).pathname; export function setupImage() { console.log(`Building image "${DOCKER_IMAGE}" (cached after first run)...`); execSync(`docker build -t ${DOCKER_IMAGE} ${new URL("..", import.meta.url).pathname}`, { stdio: "inherit" }); if (!existsSync(`${OCI_DIR}/oci-layout`)) { console.log("Exporting to OCI layout..."); mkdirSync(OCI_DIR, { recursive: true }); execSync(`docker save ${DOCKER_IMAGE} | tar -xf - -C ${OCI_DIR}`, { stdio: "inherit" }); } }