mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-30 06:41:51 +00:00
* fix(plugins/discord): correct install_hint extra to [messaging]
The Discord platform registered install_hint pointing at
'hermes-agent[discord]', but pyproject.toml has no [discord] extra —
the deps live in [messaging] alongside Telegram and Slack. Users hitting
"Platform 'Discord' requirements not met" were directed at a pip command
that installs nothing.
* feat(nix): add #messaging and #full package variants
Make Discord/Telegram/Slack work out of the box for `nix profile install`
users. Messaging deps were dropped from [all] on 2026-05-12 in favor of
lazy-install, but lazy-install can't write to the read-only /nix/store —
users hit "No adapter available for discord" with no actionable guidance.
- #messaging: pre-built with discord.py/telegram/slack (+33 MB venv)
- #full: all 18 platform-portable extras + matrix on Linux only
(python-olm lacks Darwin PyPI wheels) (+738 MB venv)
Also adds a `messaging-variant` flake check that verifies `import discord`
succeeds in the sealed venv — regression guard for the lazy-install
migration.
Docs updated: Quick Start callout, extraDependencyGroups rewrite with
messaging as primary example + full extras table, troubleshooting row,
cheatsheet row.
Closure size deltas (measured x86_64-linux):
default 1792 MB pkg / 512 MB venv
messaging 1826 MB pkg / 546 MB venv (+33 MB)
full 2530 MB pkg / 1250 MB venv (+738 MB)
* chore(nix): trim variant comments + alphabetize full extras
Drop the date-stamped changelog from messaging-variant's comment and the
"+33 MB / +704 MB" numbers from the variant defs — those drift and belong
in the PR description, not source. Alphabetize the 18-extra list in #full
so future additions produce clean one-line diffs.
No semantic change. messaging-variant check still passes.
59 lines
1.8 KiB
Nix
59 lines
1.8 KiB
Nix
# nix/packages.nix — Hermes Agent package built with uv2nix
|
|
{ inputs, ... }:
|
|
{
|
|
perSystem =
|
|
{ pkgs, lib, inputs', ... }:
|
|
let
|
|
hermesAgent = 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;
|
|
};
|
|
in
|
|
{
|
|
packages = {
|
|
default = hermesAgent;
|
|
|
|
# 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 {
|
|
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"
|
|
"vercel"
|
|
"voice"
|
|
] ++ lib.optionals pkgs.stdenv.isLinux [ "matrix" ];
|
|
};
|
|
|
|
tui = hermesAgent.hermesTui;
|
|
web = hermesAgent.hermesWeb;
|
|
|
|
fix-lockfiles = hermesAgent.hermesNpmLib.mkFixLockfiles {
|
|
packages = [ hermesAgent.hermesTui hermesAgent.hermesWeb ];
|
|
};
|
|
};
|
|
};
|
|
}
|