diff --git a/flake.lock b/flake.lock index 3e0cc6b..57d9775 100644 --- a/flake.lock +++ b/flake.lock @@ -630,11 +630,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1783064987, - "narHash": "sha256-uW5Yqg7ygU6NKD8uDuFaK2SdXVEN4bje3/DHFOxASVU=", + "lastModified": 1783432822, + "narHash": "sha256-NaUTAkPf7i8qLEWYf+bE106Revl2cUpm5YjoYawDduM=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "a2430dc43803db87dd99ae8a71fc8df41c5ac03a", + "rev": "1845e484191deab963a4e123e6d81e250a0afbd0", "type": "github" }, "original": { @@ -660,11 +660,11 @@ "nur": "nur" }, "locked": { - "lastModified": 1783269454, - "narHash": "sha256-HAV0itn6C04eLIQb5WIBmOdWkq/3LCVTQJVk3ufCh8g=", + "lastModified": 1783445983, + "narHash": "sha256-FczF1Denyh5EQ+LcIXKNxSclWf3+PF3ZXd607xMsSss=", "ref": "refs/heads/master", - "rev": "ed976b0e9e8ffeabdc5e60aa7f00c298ab722a03", - "revCount": 82, + "rev": "10876be5e6d831ba54fa1d87b37d1ac398476d42", + "revCount": 86, "type": "git", "url": "ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home" }, @@ -984,11 +984,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1782918843, - "narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=", + "lastModified": 1783279667, + "narHash": "sha256-/NAkDSsve+GNM0Bt6tleJdCGfsTlK89nPjkVOzZMo0s=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e8273b29fe1390ec8d4603f2477357555291432e", + "rev": "f205b5574fd0cb7da5b702a2da51507b7f4fdd1b", "type": "github" }, "original": { diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 716333f..d823882 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -68,11 +68,8 @@ "m3tam3re" ]; # Set users that are allowed to use the flake command }; - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 30d"; - }; + # Garbage collection is handled by programs.nh.clean on each host. + # Keep nix.gc.automatic disabled to avoid dueling GC timers. optimise.automatic = true; registry = (lib.mapAttrs (_: flake: {inherit flake;})) diff --git a/hosts/m3-ares/services/default.nix b/hosts/m3-ares/services/default.nix index d5cd37b..4e135e1 100644 --- a/hosts/m3-ares/services/default.nix +++ b/hosts/m3-ares/services/default.nix @@ -2,7 +2,6 @@ imports = [ ./containers ./greetd.nix - ./hermes-agent.nix ./netbird.nix #./n8n.nix ./mem0.nix diff --git a/hosts/m3-ares/services/hermes-agent.nix b/hosts/m3-ares/services/hermes-agent.nix deleted file mode 100644 index a77bafa..0000000 --- a/hosts/m3-ares/services/hermes-agent.nix +++ /dev/null @@ -1,195 +0,0 @@ -{config, ...}: let - # Default ElevenLabs voice: Bella (German-capable female) - elevenlabsVoiceId = "hpp4J3VqNfWAUOO0d1Us"; -in { - services.hermes-agent = { - enable = true; - addToSystemPackages = true; - - # Secrets via agenix - environmentFiles = [config.age.secrets."hermes-env".path]; - - # Non-secret environment variables - environment = { - GLM_BASE_URL = "https://api.z.ai/api/coding/paas/v4/"; - }; - - settings = { - # ── Model ────────────────────────────────────────────────────────── - model = { - default = "gpt-5.5"; - provider = "openai-codex"; - }; - - fallback_providers = [ - { - provider = "zai"; - model = "glm-5.1"; - } - { - provider = "minimax"; - model = "MiniMax-M2.7"; - } - ]; - - credential_pool_strategies = { - zai = "fill_first"; - }; - - toolsets = ["all"]; - - # ── Agent ────────────────────────────────────────────────────────── - agent = { - max_turns = 90; - gateway_timeout = 1800; - tool_use_enforcement = "auto"; - }; - - # ── Terminal ─────────────────────────────────────────────────────── - terminal = { - backend = "ssh"; - modal_mode = "auto"; - cwd = "."; - timeout = 180; - persistent_shell = true; - }; - - # ── Browser ──────────────────────────────────────────────────────── - browser = { - inactivity_timeout = 120; - command_timeout = 30; - cloud_provider = "local"; - }; - - # ── Checkpoints / Compression ────────────────────────────────────── - checkpoints = { - enabled = true; - max_snapshots = 50; - }; - - file_read_max_chars = 100000; - - compression = { - enabled = true; - threshold = 0.5; - target_ratio = 0.2; - protect_last_n = 20; - }; - - # ── Display ──────────────────────────────────────────────────────── - display = { - compact = false; - personality = "kawaii"; - resume_display = "full"; - busy_input_mode = "interrupt"; - inline_diffs = true; - skin = "default"; - tool_progress = "all"; - }; - - # ── TTS / STT / Voice ────────────────────────────────────────────── - tts = { - provider = "elevenlabs"; - elevenlabs = { - voice_id = elevenlabsVoiceId; - model_id = "eleven_multilingual_v2"; - }; - }; - - stt = { - enabled = true; - provider = "local"; - local = {model = "base";}; - }; - - voice = { - record_key = "ctrl+b"; - max_recording_seconds = 120; - silence_threshold = 200; - silence_duration = 3.0; - }; - - # ── Memory ───────────────────────────────────────────────────────── - memory = { - memory_enabled = true; - user_profile_enabled = true; - memory_char_limit = 2200; - user_char_limit = 1375; - }; - - # ── Delegation ───────────────────────────────────────────────────── - delegation = { - max_iterations = 50; - }; - - # ── Discord ──────────────────────────────────────────────────────── - discord = { - require_mention = true; - auto_thread = true; - reactions = true; - }; - - # ── Approvals / Security ─────────────────────────────────────────── - approvals = { - mode = "manual"; - timeout = 60; - }; - - security = { - redact_secrets = true; - tirith_enabled = true; - tirith_fail_open = true; - }; - - # ── Cron / Session ───────────────────────────────────────────────── - cron = {wrap_response = true;}; - - session_reset = { - mode = "both"; - idle_minutes = 1440; - at_hour = 4; - }; - - # ── Web ──────────────────────────────────────────────────────────── - web = {backend = "exa";}; - - # ── Platform Toolsets ────────────────────────────────────────────── - platform_toolsets = { - cli = [ - "browser" - "clarify" - "code_execution" - "cronjob" - "delegation" - "file" - "image_gen" - "memory" - "session_search" - "skills" - "terminal" - "todo" - "tts" - "vision" - "web" - ]; - telegram = [ - "browser" - "clarify" - "code_execution" - "cronjob" - "delegation" - "file" - "image_gen" - "memory" - "session_search" - "skills" - "terminal" - "todo" - "tts" - "vision" - "web" - ]; - }; - }; - }; -}