import { homedir } from "node:os"; import { join } from "node:path"; const HOME = homedir(); export const CONFIG = { firecrackerBin: "/usr/local/bin/firecracker", baseDir: join(HOME, ".fireclaw"), kernelPath: join(HOME, ".fireclaw", "vmlinux"), baseRootfs: join(HOME, ".fireclaw", "base-rootfs.ext4"), runsDir: join(HOME, ".fireclaw", "runs"), sshKeyPath: join(HOME, ".fireclaw", "id_ed25519"), sshPubKeyPath: join(HOME, ".fireclaw", "id_ed25519.pub"), socketDir: "/tmp/fireclaw", ipPoolFile: join(HOME, ".fireclaw", "ip-pool.json"), ipPoolLock: join(HOME, ".fireclaw", "ip-pool.lock"), bridge: { name: "fcbr0", ip: "172.16.0.1", subnet: "172.16.0.0/24", netmask: "255.255.255.0", gateway: "172.16.0.1", prefix: "172.16.0", minHost: 2, maxHost: 254, }, vm: { vcpuCount: 1, memSizeMib: 256, defaultTimeoutMs: 60_000, bootTimeoutMs: 15_000, sshPollIntervalMs: 100, }, snapshot: { rootfsPath: join(HOME, ".fireclaw", "snapshot-rootfs.ext4"), statePath: join(HOME, ".fireclaw", "snapshot.state"), memPath: join(HOME, ".fireclaw", "snapshot.mem"), tapDevice: "fctap200", ip: "172.16.0.200", octet: 200, }, workspacesDir: join(HOME, ".fireclaw", "workspaces"), workspaceSizeMib: 64, // S3 URLs for Firecracker CI assets assets: { kernelUrl: "https://s3.amazonaws.com/spec.ccfc.min/firecracker-ci/v1.11/x86_64/vmlinux-5.10.225", rootfsListUrl: "http://spec.ccfc.min.s3.amazonaws.com/?prefix=firecracker-ci/v1.11/x86_64/ubuntu", rootfsBaseUrl: "https://s3.amazonaws.com/spec.ccfc.min", }, } as const;