hermes-agent/flake.nix
alt-glitch da20df2647 feat(nix): opt-in NixOS VM integration test for the module
First VM-level coverage for nixosModules.default: boots a VM with
services.hermes-agent enabled, then asserts tmpfiles state-dir modes
(2770 hermes:hermes across the .hermes tree), the sealed CLI working as
the hermes user, the activation .managed marker, and a credential-less
gateway that starts and STAYS active (asserted via the 'No messaging
platforms enabled.' startup log rather than a bare wait_for_unit, which
could pass mid-restart-loop).

Exposed as packages.x86_64-linux.nixos-vm-test, deliberately NOT a flake
check: booting a VM over the ~700MB closure is too costly for every
'nix flake check'. Run explicitly: nix build .#nixos-vm-test -L
(requires kvm/nixos-test system features).
2026-07-22 21:36:34 +05:30

49 lines
1.2 KiB
Nix

{
description = "Hermes Agent - AI agent framework by Nous Research";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
pyproject-nix = {
url = "github:pyproject-nix/pyproject.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
uv2nix = {
url = "github:pyproject-nix/uv2nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pyproject-nix.follows = "pyproject-nix";
};
pyproject-build-systems = {
url = "github:pyproject-nix/build-system-pkgs";
inputs.nixpkgs.follows = "nixpkgs";
inputs.pyproject-nix.follows = "pyproject-nix";
inputs.uv2nix.follows = "uv2nix";
};
npm-lockfile-fix = {
url = "github:jeslie0/npm-lockfile-fix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
imports = [
./nix/packages.nix
./nix/overlays.nix
./nix/nixosModules.nix
./nix/checks.nix
./nix/vmTest.nix
./nix/devShell.nix
];
};
}