diff --git a/machines/configuration.nix b/machines/configuration.nix index 731ba72..eee3f25 100644 --- a/machines/configuration.nix +++ b/machines/configuration.nix @@ -5,7 +5,6 @@ let nixpkgs-unstable nixos-hardware sops-nix - hermes-agent #hyprland ; nixosSystem = nixpkgs.lib.makeOverridable nixpkgs.lib.nixosSystem; @@ -63,7 +62,6 @@ in specialArgs = { inherit self; }; modules = defaultModules ++ [ # nixos-hardware.nixosModules.mibook - hermes-agent.nixosModules.default ./mibook/configuration.nix ]; }; diff --git a/modules/environments/hermes-agent/default.nix b/modules/environments/hermes-agent/default.nix index 81d2ba3..89c3dd1 100644 --- a/modules/environments/hermes-agent/default.nix +++ b/modules/environments/hermes-agent/default.nix @@ -3,21 +3,31 @@ config, lib, pkgs, + self, ... }: let cfg = config.my.profiles.hermes-agent; in { + imports = [ self.inputs.hermes-agent.nixosModules.default ]; + options.my.profiles.hermes-agent.enable = lib.mkEnableOption "Hermes Agent (Telegram + Email gateway)"; config = lib.mkIf cfg.enable { services.hermes-agent = { enable = true; + # Deliberate pin, matches the approved design — bump on purpose, not by drift. settings.model.default = "anthropic/claude-sonnet-4-5"; environmentFiles = [ config.sops.secrets."hermes-env".path ]; addToSystemPackages = true; }; + + # addToSystemPackages only puts `hermes` on $PATH; using it needs group + # access to /var/lib/hermes/.hermes (mode 2770 hermes:hermes). finn is + # this machine's one human user and already knows hermes-env's contents + # (typed them into sops directly), so this is not new exposure. + users.users.finn.extraGroups = [ "hermes" ]; }; }