{ inputs, ... }: { flake.modules.nixos.aquatic-ai = { config, ... }: let llama_model="unsloth/Qwen3.6-27B-GGUF:Q4_K_M"; in { age.secrets.hermesenv.file = ../../../../secrets/hermes-env.age; imports = [ inputs.hermes-agent.nixosModules.default ]; services.hermes-agent = { enable = true; settings = { model = { provider = "custom"; base_url = "http://127.0.0.1:8080/v1"; default = "${llama_model}"; # from curl http://localhost:8080/v1/models context_length = 120000; supports_vision = true; }; compression = { enabled = true; threshold = 0.85; summary_model = "${llama_model}"; # same one from model.default }; }; environmentFiles = [ config.age.secrets.hermesenv.path ]; addToSystemPackages = true; }; systemd.services.hermes-dashboard = { description = "Hermes Agent web dashboard"; after = [ "network.target" "hermes-agent.service" ]; wantedBy = [ "multi-user.target" ]; environment = { HERMES_HOME = "${config.services.hermes-agent.stateDir}/.hermes"; }; serviceConfig = { Type = "simple"; User = config.services.hermes-agent.user; Group = config.services.hermes-agent.group; ExecStart = "${config.services.hermes-agent.package}/bin/hermes dashboard --host 127.0.0.1 --port 9119 --no-open"; Restart = "always"; RestartSec = 5; NoNewPrivileges = true; ProtectSystem = "strict"; PrivateTmp = true; ReadWritePaths = [ config.services.hermes-agent.stateDir ]; }; }; }; }