Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e60f73251 | ||
|
|
bc986f0e51 | ||
|
|
214f6a4d2a | ||
|
|
41d02d19ea | ||
|
|
4f79033b04 |
Generated
+146
-3
@@ -176,6 +176,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"hermes",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772408722,
|
||||||
|
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixvimunstable",
|
"nixvimunstable",
|
||||||
@@ -196,7 +217,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nurpkgs",
|
"nurpkgs",
|
||||||
@@ -235,6 +256,31 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hermes": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixunstable"
|
||||||
|
],
|
||||||
|
"npm-lockfile-fix": "npm-lockfile-fix",
|
||||||
|
"pyproject-build-systems": "pyproject-build-systems",
|
||||||
|
"pyproject-nix": "pyproject-nix",
|
||||||
|
"uv2nix": "uv2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784663791,
|
||||||
|
"narHash": "sha256-bPip7Rk/5n5idLvedBXWjzuRw6cc30XGxCRJewlwwUE=",
|
||||||
|
"owner": "nousresearch",
|
||||||
|
"repo": "hermes-agent",
|
||||||
|
"rev": "e2e8823f1d2de2aa95c8147d0abd105539d5daff",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nousresearch",
|
||||||
|
"repo": "hermes-agent",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hmunstable": {
|
"hmunstable": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -512,7 +558,7 @@
|
|||||||
},
|
},
|
||||||
"nixvimunstable": {
|
"nixvimunstable": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
@@ -531,9 +577,30 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"npm-lockfile-fix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hermes",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1775903712,
|
||||||
|
"narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=",
|
||||||
|
"owner": "jeslie0",
|
||||||
|
"repo": "npm-lockfile-fix",
|
||||||
|
"rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jeslie0",
|
||||||
|
"repo": "npm-lockfile-fix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nurpkgs": {
|
"nurpkgs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -550,6 +617,56 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pyproject-build-systems": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hermes",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"hermes",
|
||||||
|
"pyproject-nix"
|
||||||
|
],
|
||||||
|
"uv2nix": [
|
||||||
|
"hermes",
|
||||||
|
"uv2nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772555609,
|
||||||
|
"narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"rev": "c37f66a953535c394244888598947679af231863",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "build-system-pkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pyproject-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hermes",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772865871,
|
||||||
|
"narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"rev": "e537db02e72d553cea470976b9733581bcf5b3ed",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "pyproject.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
@@ -557,6 +674,7 @@
|
|||||||
"colmena": "colmena",
|
"colmena": "colmena",
|
||||||
"darwin": "darwin_2",
|
"darwin": "darwin_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
|
"hermes": "hermes",
|
||||||
"hmunstable": "hmunstable",
|
"hmunstable": "hmunstable",
|
||||||
"minecraft": "minecraft",
|
"minecraft": "minecraft",
|
||||||
"niks3": "niks3",
|
"niks3": "niks3",
|
||||||
@@ -688,6 +806,31 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"uv2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hermes",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pyproject-nix": [
|
||||||
|
"hermes",
|
||||||
|
"pyproject-nix"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1773039484,
|
||||||
|
"narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=",
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pyproject-nix",
|
||||||
|
"repo": "uv2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vsext": {
|
"vsext": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_7"
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
|||||||
@@ -19,6 +19,10 @@
|
|||||||
inputs.nixpkgs.follows = "nixunstable";
|
inputs.nixpkgs.follows = "nixunstable";
|
||||||
};
|
};
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
hermes = {
|
||||||
|
url = "github:nousresearch/hermes-agent";
|
||||||
|
inputs.nixpkgs.follows = "nixunstable";
|
||||||
|
};
|
||||||
hmunstable = {
|
hmunstable = {
|
||||||
url = "github:nix-community/home-manager/master";
|
url = "github:nix-community/home-manager/master";
|
||||||
inputs.nixpkgs.follows = "nixunstable";
|
inputs.nixpkgs.follows = "nixunstable";
|
||||||
|
|||||||
@@ -27,9 +27,12 @@
|
|||||||
|
|
||||||
"*" = {
|
"*" = {
|
||||||
DynamicForward = [ "10240" ];
|
DynamicForward = [ "10240" ];
|
||||||
ServerAliveInterval = 60;
|
ForwardAgent = "yes";
|
||||||
LogLevel = "error";
|
LogLevel = "error";
|
||||||
SetEnv = { TERM = "xterm-256color"; };
|
ServerAliveInterval = 60;
|
||||||
|
SetEnv = {
|
||||||
|
TERM = "xterm-256color";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"10.42.1.4" = lib.hm.dag.entryBefore [ "10.42.*" ] nas;
|
"10.42.1.4" = lib.hm.dag.entryBefore [ "10.42.*" ] nas;
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
{...}: {}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{...}: {}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, modulesPath, pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/virtualisation/proxmox-lxc.nix") ];
|
||||||
|
nix.settings = { sandbox = false; };
|
||||||
|
proxmoxLXC = {
|
||||||
|
manageNetwork = false;
|
||||||
|
privileged = true;
|
||||||
|
};
|
||||||
|
services.fstrim.enable = false; # Let Proxmox host handle fstrim
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
PermitRootLogin = "yes";
|
||||||
|
PasswordAuthentication = true;
|
||||||
|
PermitEmptyPasswords = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
{
|
||||||
|
modulesPath,
|
||||||
|
top,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/virtualisation/proxmox-lxc.nix")
|
||||||
|
top.hermes.nixosModules.default
|
||||||
|
];
|
||||||
|
greg = {
|
||||||
|
home = true;
|
||||||
|
tailscale.enable = true;
|
||||||
|
};
|
||||||
|
nix.settings = {
|
||||||
|
sandbox = false;
|
||||||
|
};
|
||||||
|
proxmoxLXC = {
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,6 +9,10 @@
|
|||||||
"tailscale": "100.64.0.0/10"
|
"tailscale": "100.64.0.0/10"
|
||||||
},
|
},
|
||||||
"hosts": {
|
"hosts": {
|
||||||
|
"builder2": {
|
||||||
|
"ip": "10.42.1.17",
|
||||||
|
"system": "x86_64-linux"
|
||||||
|
},
|
||||||
"chronicles": {
|
"chronicles": {
|
||||||
"ip": "10.42.1.4",
|
"ip": "10.42.1.4",
|
||||||
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS",
|
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS",
|
||||||
@@ -31,6 +35,12 @@
|
|||||||
"tags": ["router", "server"],
|
"tags": ["router", "server"],
|
||||||
"nebulaIp": "10.157.0.2"
|
"nebulaIp": "10.157.0.2"
|
||||||
},
|
},
|
||||||
|
"hermes": {
|
||||||
|
"ip": "10.42.1.18",
|
||||||
|
"mac": "BC:24:11:EF:3B:94",
|
||||||
|
"system": "x86_64-linux",
|
||||||
|
"tags": ["server"]
|
||||||
|
},
|
||||||
"hosea": {
|
"hosea": {
|
||||||
"ip": "10.42.1.7",
|
"ip": "10.42.1.7",
|
||||||
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz",
|
"pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz",
|
||||||
@@ -127,16 +137,35 @@
|
|||||||
"ip": "10.42.1.15",
|
"ip": "10.42.1.15",
|
||||||
"system": "x86_64-linux"
|
"system": "x86_64-linux"
|
||||||
},
|
},
|
||||||
|
"pve2bmc": {
|
||||||
|
"derp": "10.42.2.129",
|
||||||
|
"external": true,
|
||||||
|
"mac": "00:25:90:4b:34:e8",
|
||||||
|
"ip": "10.42.6.2",
|
||||||
|
"system": "ipmi"
|
||||||
|
},
|
||||||
"pve3": {
|
"pve3": {
|
||||||
"external": true,
|
"external": true,
|
||||||
"ip": "10.42.1.16",
|
"ip": "10.42.1.16",
|
||||||
"system": "x86_64-linux"
|
"system": "x86_64-linux"
|
||||||
},
|
},
|
||||||
|
"pve3bmc": {
|
||||||
|
"derp": "10.42.2.181",
|
||||||
|
"external": true,
|
||||||
|
"ip": "10.42.6.3",
|
||||||
|
"mac": "00:25:90:4a:dc:2e",
|
||||||
|
"system": "ipmi"
|
||||||
|
},
|
||||||
"pve4": {
|
"pve4": {
|
||||||
"external": true,
|
"external": true,
|
||||||
"ip": "10.42.1.17",
|
"ip": "10.42.1.17",
|
||||||
"system": "x86_64-linux"
|
"system": "x86_64-linux"
|
||||||
},
|
},
|
||||||
|
"pve4bmc": {
|
||||||
|
"external": true,
|
||||||
|
"ip": "10.42.6.4",
|
||||||
|
"system": "ipmi"
|
||||||
|
},
|
||||||
"wsl": {
|
"wsl": {
|
||||||
"external": true,
|
"external": true,
|
||||||
"system": "aarch64-linux"
|
"system": "aarch64-linux"
|
||||||
|
|||||||
Reference in New Issue
Block a user