refactor: thread agent packages via option, drop overlay and forge-tools shim

This commit is contained in:
müde 2026-07-13 21:43:26 +02:00
commit 281667d5a8
13 changed files with 139 additions and 168 deletions

View file

@ -31,6 +31,7 @@
./matrix.nix
./mcp.nix
./network.nix
./packages.nix
./user.nix
./weston-vnc.nix
];
@ -153,22 +154,24 @@
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "claude-code" ];
# Core tooling every agent gets. Per-bin split packages (see
# nix/packages/default.nix) rather than the full `pkgs.hyperhive`
# bundle — that bundle also carries `hivectl` (a host-admin CLI
# that dials the *host* admin socket — useless and unreachable
# from inside a container — wrapped with `wireguard-tools` for
# `hivectl wg`). The daemon/harness/MCP bins the harness execs
# (hive-agent{,-mcp}, hive-bash-daemon, hive-matrix-daemon,
# hive-bash-mcp, hive-matrix-mcp) are wired via their own
# ExecStart/command lines in the sibling modules with the matching
# `pkgs.hive-*` package — they don't need to be on PATH too. Only
# these two are actually looked up on PATH by claude/shell code
# inside the container: `hive-agent-wake` (external wake CLI,
# docs/turn-loop/mcp.md) and `hive-metric` (agent-emitted custom
# metrics CLI, docs/observability.md).
environment.systemPackages = with pkgs; [
hive-agent-wake
hive-metric
# nix/packages/default.nix + ./packages.nix) rather than the full
# `hyperhive` bundle — that bundle also carries `hivectl` (a
# host-admin CLI that dials the *host* admin socket — useless and
# unreachable from inside a container — wrapped with
# `wireguard-tools` for `hivectl wg`). The daemon/harness/MCP bins
# the harness execs (hive-agent{,-mcp}, hive-bash-daemon,
# hive-matrix-daemon, hive-bash-mcp, hive-matrix-mcp) are wired via
# their own ExecStart/command lines in the sibling modules — they
# don't need to be on PATH too. Only these two are actually looked
# up on PATH by claude/shell code inside the container:
# `hive-agent-wake` (external wake CLI, docs/turn-loop/mcp.md) and
# `hive-metric` (agent-emitted custom metrics CLI,
# docs/observability.md).
environment.systemPackages = [
config.hyperhive.packages.hive-agent-wake
config.hyperhive.packages.hive-metric
]
++ (with pkgs; [
claude-code
bashInteractive
coreutils-full
@ -180,7 +183,7 @@
jq
# curl: HTTP client for forge REST API and other web requests.
curl
];
]);
# HIVE_ASSETS_DIR points at the project's static runtime assets
# (branding + claude prompts; see `nix/packages/assets.nix`). Set
@ -191,7 +194,7 @@
# host-level `services.hyperhive.c0re.contextWindowTokens` option — not
# set here.
environment.variables = {
HIVE_ASSETS_DIR = "${pkgs.hyperhive-assets}/share/hyperhive";
HIVE_ASSETS_DIR = "${config.hyperhive.packages.assets}/share/hyperhive";
SHELL = "${pkgs.bashInteractive}/bin/bash";
# Route interactive-shell nix invocations through the host daemon.
# Redundant with /etc/profile.d/nix-daemon.sh but ensures it's set