diff --git a/nix/packages.nix b/nix/packages.nix index 131444fb3..d11a21d2c 100644 --- a/nix/packages.nix +++ b/nix/packages.nix @@ -2,54 +2,62 @@ { inputs, ... }: { perSystem = - { pkgs, lib, inputs', ... }: + { + pkgs, + lib, + inputs', + ... + }: let - hermesAgent = pkgs.callPackage ./hermes-agent.nix { + minimal = pkgs.callPackage ./hermes-agent.nix { inherit (inputs) uv2nix pyproject-nix pyproject-build-systems; npm-lockfile-fix = inputs'.npm-lockfile-fix.packages.default; # Only embed clean revs — dirtyRev doesn't represent any upstream # commit, so comparing it would always claim "update available". rev = inputs.self.rev or null; }; + + # All platform-portable optional integrations pre-built. + full = minimal.override { + extraDependencyGroups = [ + "anthropic" + "azure-identity" + "bedrock" + "daytona" + "dingtalk" + "edge-tts" + "exa" + "fal" + "feishu" + "firecrawl" + "hindsight" + "honcho" + "messaging" + "modal" + "parallel-web" + "tts-premium" + "voice" + ] + # matrix is Linux-only (oqs/liboqs lacks aarch64-darwin wheels). + ++ lib.optionals pkgs.stdenv.isLinux [ "matrix" ]; + }; in { packages = { - default = hermesAgent; + default = full; + + inherit minimal; # Ships discord.py + python-telegram-bot + slack-sdk so a plain # `nix profile install .#messaging` connects to Discord/Telegram/Slack # on first run — lazy-install can't write to the read-only /nix/store. - messaging = hermesAgent.override { + messaging = minimal.override { extraDependencyGroups = [ "messaging" ]; }; - # All platform-portable optional integrations pre-built. - # matrix is Linux-only (oqs/liboqs lacks aarch64-darwin wheels). - full = hermesAgent.override { - extraDependencyGroups = [ - "anthropic" - "azure-identity" - "bedrock" - "daytona" - "dingtalk" - "edge-tts" - "exa" - "fal" - "feishu" - "firecrawl" - "hindsight" - "honcho" - "messaging" - "modal" - "parallel-web" - "tts-premium" - "voice" - ] ++ lib.optionals pkgs.stdenv.isLinux [ "matrix" ]; - }; - - tui = hermesAgent.hermesTui; - web = hermesAgent.hermesWeb; - desktop = hermesAgent.hermesDesktop; + tui = full.hermesTui; + web = full.hermesWeb; + desktop = full.hermesDesktop; }; }; }