Firecracker microVM-based multi-agent system with IRC orchestration and local LLMs. Features: - Ephemeral command runner with VM snapshots (~1.1s) - Multi-agent orchestration via overseer IRC bot - 5 agent templates (worker, coder, researcher, quick, creative) - Tool access (shell + podman containers inside VMs) - Persistent workspace + memory system (MEMORY.md pattern) - Agent hot-reload (model/persona swap via SSH + SIGHUP) - Non-root agents, graceful shutdown, crash recovery - Agent-to-agent communication via IRC - DM support, /invite support - Systemd service, 20 regression tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
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;
|