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

@ -117,8 +117,8 @@ in
{
# All workspace binaries in one derivation — a symlinkJoin over the
# per-bin packages, pure assembly with no extra compilation. The
# NixOS module's `pkgs.hyperhive` (= this) and `nix build .#` both
# land here.
# host module's `services.hyperhive.c0re.package` and `nix build .#`
# both land here.
default = pkgs.symlinkJoin {
name = "hyperhive";
paths = lib.attrValues binPkgs;

View file

@ -1,35 +0,0 @@
{ pkgs, lib }:
# hive-forge — Forgejo CLI wrapper for hyperhive.
#
# Previously a ~600-line bash script. Rewritten as a proper Rust
# binary in `/hive-forge` so we get:
# - typed clap subcommands (`hive-forge <verb> --help` instead of
# reading the case statement),
# - one reqwest client with consistent error surfaces (no more
# `curl --fail-with-body` repeated per verb),
# - sane shell quoting (no more HEREDOC-eaten-by-positional traps),
# - and a single test surface.
#
# This Nix file is now a thin extractor: it pulls just the
# `hive-forge` binary out of the hyperhive workspace package so
# agents that already imported this file via
# `pkgs.callPackage ../packages/hive-forge-tools.nix { }` keep
# working, getting only the verb they need on PATH (not the full
# `hive-c0re` / `hive` surface).
#
# Requires the hyperhive overlay (see `flake.nix`'s `overlays.default`)
# so `pkgs.hyperhive` resolves.
let
_ = lib; # placeholder; kept so callers don't break when reading the args.
in
pkgs.runCommand "hive-forge"
{
meta = {
description = "Forgejo CLI wrapper for hyperhive (Rust)";
mainProgram = "hive-forge";
};
}
''
mkdir -p $out/bin
ln -s ${pkgs.hyperhive}/bin/hive-forge $out/bin/hive-forge
''