hyperhive/nix/packages/assets.nix

63 lines
1.8 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
stdenv,
librsvg,
}:
# Branding SVG/PNG family + claude prompts, split out from the rust
# workspace so a tweak here doesn't invalidate the rust cargo cache.
# Rationale + agent-configs PNG rendering: docs/gotchas.md::Split asset
# derivations away from the rust workspace.
#
# Output layout:
# $out/share/hyperhive/branding/{hyperhive,agent-configs}.{svg,png}
# $out/share/hyperhive/prompts/{system.md, claude-settings.json}
#
# The repo docs/ tree is a SEPARATE derivation (./reference-docs.nix)
# so agents can consume the docs without the branding+prompt assets and
# the website repo can reuse it — see that file.
stdenv.mkDerivation {
pname = "hyperhive-assets";
version = "0.1.0";
# Narrow `srcs` (branding/ + hive-agent/prompts/) is what decouples
# this derivation's input hash from the rest of the tree.
srcs = [
../../branding
../../hive-agent/prompts
];
unpackPhase = ''
runHook preUnpack
cp -r ${../../branding} branding
cp -r ${../../hive-agent/prompts} prompts
chmod -R u+w branding prompts
runHook postUnpack
'';
nativeBuildInputs = [ librsvg ];
# 300×300 matches branding/hyperhive.png — the size Forgejo's avatar
# endpoint accepts without resampling on upload.
buildPhase = ''
runHook preBuild
rsvg-convert --width 300 --height 300 \
-o branding/agent-configs.png \
branding/agent-configs.svg
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/hyperhive
cp -r branding $out/share/hyperhive/branding
cp -r prompts $out/share/hyperhive/prompts
runHook postInstall
'';
# Pure data — no executables to fixup, no shared libs to patchelf.
dontFixup = true;
meta = {
description = "hyperhive static assets (branding + claude prompts)";
homepage = "https://forge.darkest.space/hyperhive/hyperhive";
};
}