Files
nixos/hosts/unstable/hermes/default.nix
T

133 lines
3.2 KiB
Nix
Raw Normal View History

2026-07-21 16:11:39 -05:00
{
2026-07-21 20:04:23 -05:00
config,
2026-07-21 16:11:39 -05:00
modulesPath,
2026-07-21 20:04:23 -05:00
lib,
2026-07-21 16:11:39 -05:00
top,
...
}:
{
imports = [
(modulesPath + "/virtualisation/proxmox-lxc.nix")
top.hermes.nixosModules.default
];
greg = {
2026-07-21 17:16:37 -05:00
nebula = {
enable = true;
nebulaIp = "10.157.0.8";
};
2026-07-21 20:04:23 -05:00
proxies = lib.genAttrs' [ "thehellings.lan" "nebula.thehellings.com" "shire-zebra.ts.net" ] (
name:
(lib.nameValuePair "${config.networking.hostName}.${name}" { target = "http://127.0.0.1:9119"; })
);
2026-07-21 16:11:39 -05:00
};
nix.settings = {
sandbox = false;
};
proxmoxLXC = {
2026-07-21 19:07:39 -05:00
manageHostName = true;
2026-07-21 16:11:39 -05:00
manageNetwork = false;
privileged = true;
};
services = {
fstrim.enable = false;
hermes-agent = {
enable = true;
settings = {
agent = {
reasoning_effort = "medium";
reasoning_overrides = {
claude-fable = "xhigh";
claude-opus = "high";
};
tool_loop_guardrails = {
hard_stop_enabled = true;
warnings_enabled = true;
};
tool_use_enforcement = "auto";
};
code_execution = {
mode = "strict";
timeout = 300;
};
compression = {
enabled = true;
protect_first_n = 3;
protect_last_n = 5;
target_ratio = 0.25;
threshold = 0.75;
};
context_file_max_chars = 25000;
file_read_max_chars = 100000;
goals = {
2026-07-21 17:16:37 -05:00
max_turns = 20; # Number of times Hermes tells the model to keep working towards the goal
2026-07-21 16:11:39 -05:00
};
memory = {
memory_enabled = true;
user_profile_enabled = true;
write_approval = true;
};
quick_commands = {
disk = {
type = "exec";
command = "df -h";
};
free = {
type = "exec";
command = "free -h";
};
restart = {
type = "alias";
target = "/gateway restart";
};
};
skills = {
guard_agent_created = true;
write_approval = true;
};
stt = {
enabled = true;
echo_transcripts = true;
provider = "local";
local.model = "medium";
};
terminal = {
backend = "local";
};
tool_output = {
max_bytes = 50000;
max_lines = 2000;
max_line_length = 2000;
};
worktree = true; # Enable multiple agents in the same repo
};
};
openssh = {
enable = true;
openFirewall = true;
settings = {
PermitRootLogin = "yes";
PasswordAuthentication = true;
PermitEmptyPasswords = "yes";
};
};
wyoming.faster-whisper.servers.medium = {
enable = true;
device = "cpu";
initialPrompt = ''
The user's name is 'Greg Hellings'. The street he lives on is 'Kardinal Court'
in 'Midlothian'. Keep these in mind as they are often misspelled.
'';
language = "en";
model = "medium";
uri = "tcp://127.0.0.1:10300";
sttLibrary = "faster-whisper";
};
};
2026-07-21 19:07:39 -05:00
systemd.suppressedSystemUnits = [
"dev-mqueue.mount"
"sys-kernel-debug.mount"
"sys-fs-fuse-connections.mount"
];
2026-07-21 16:11:39 -05:00
}