flake: expose agent-base + manager toplevels as packages, opt-in pre-build via hive-c0re module (closes #97)
This commit is contained in:
parent
c62c73e546
commit
dfc944d5fa
3 changed files with 76 additions and 0 deletions
27
flake.nix
27
flake.nix
|
|
@ -69,6 +69,24 @@
|
|||
frontend = pkgs.callPackage ./nix/frontend.nix {
|
||||
branding-svg = ./branding/hyperhive.svg;
|
||||
};
|
||||
# Pre-built per-container system closures. Exposed as packages
|
||||
# so operators can `nix build .#agent-base-toplevel` (or wire
|
||||
# them into their host system closure via the
|
||||
# `preBuildAgentTemplates` option on the hive-c0re module —
|
||||
# see nix/modules/hive-c0re.nix). Speeds up the first agent
|
||||
# spawn dramatically because the heavy lifting (nixpkgs +
|
||||
# claude-code + hive-ag3nt binary) is already in the store
|
||||
# when the meta evaluator goes to build the container.
|
||||
# Closes #97.
|
||||
#
|
||||
# nixosConfigurations are pinned to x86_64-linux (nixos-
|
||||
# containers only run native arch), so these toplevels are
|
||||
# only useful on an x86_64-linux host — flake check across
|
||||
# systems still tolerates evaluating them on aarch64 because
|
||||
# they're plain derivations, but `nix build` from a non-x86
|
||||
# host would only succeed via a remote x86 builder.
|
||||
agent-base-toplevel = self.nixosConfigurations.agent-base.config.system.build.toplevel;
|
||||
manager-toplevel = self.nixosConfigurations.manager.config.system.build.toplevel;
|
||||
}
|
||||
);
|
||||
|
||||
|
|
@ -117,6 +135,15 @@
|
|||
hyperhivePackage = system: self.packages.${system}.default;
|
||||
hyperhiveFrontend = system: self.packages.${system}.frontend;
|
||||
hyperhiveFlake = "${self}";
|
||||
# Per-container toplevels — wired into `system.extraDependencies`
|
||||
# when `services.hive-c0re.preBuildAgentTemplates` is on so the
|
||||
# host system closure pre-fetches the heavy build inputs (#97).
|
||||
# Defined only for x86_64-linux because nixosConfigurations are
|
||||
# hardcoded to that system; the option's default keeps the
|
||||
# extra deps gated so aarch64 hosts don't accidentally pull
|
||||
# them in via cross-build.
|
||||
agentBaseToplevel = self.packages.x86_64-linux.agent-base-toplevel;
|
||||
managerToplevel = self.packages.x86_64-linux.manager-toplevel;
|
||||
};
|
||||
hive-forge = ./nix/modules/hive-forge.nix;
|
||||
# Convenience alias: one import covers the full hyperhive host
|
||||
|
|
|
|||
Loading…
Reference in a new issue