{ pkgs, ... }: { imports = [ ./harness-base.nix ]; systemd.services.hive-ag3nt = { description = "hive-ag3nt harness"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; # systemd units get a minimal PATH by default and don't inherit # `environment.systemPackages`. Pointing at `/run/current-system/sw` # gives the harness (and any tools claude shells out to via Bash) # access to everything declared in `systemPackages` — including # anything an agent adds to its own `agent.nix` — without having to # touch the service definition. path = [ "/run/current-system/sw" ]; environment.SHELL = "${pkgs.bashInteractive}/bin/bash"; serviceConfig = { ExecStart = "${pkgs.hyperhive}/bin/hive-ag3nt serve"; Restart = "on-failure"; RestartSec = 2; }; }; }