133 lines
3.2 KiB
Nix
133 lines
3.2 KiB
Nix
{
|
|
config,
|
|
modulesPath,
|
|
lib,
|
|
top,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
(modulesPath + "/virtualisation/proxmox-lxc.nix")
|
|
top.hermes.nixosModules.default
|
|
];
|
|
greg = {
|
|
nebula = {
|
|
enable = true;
|
|
nebulaIp = "10.157.0.8";
|
|
};
|
|
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"; })
|
|
);
|
|
};
|
|
nix.settings = {
|
|
sandbox = false;
|
|
};
|
|
proxmoxLXC = {
|
|
manageHostName = true;
|
|
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 = {
|
|
max_turns = 20; # Number of times Hermes tells the model to keep working towards the goal
|
|
};
|
|
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";
|
|
};
|
|
};
|
|
|
|
systemd.suppressedSystemUnits = [
|
|
"dev-mqueue.mount"
|
|
"sys-kernel-debug.mount"
|
|
"sys-fs-fuse-connections.mount"
|
|
];
|
|
}
|