hermes-speckl/nix/packages.nix

53 lines
1.4 KiB
Nix

{ inputs, ... }:
let
forAllSystems = inputs.nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ];
in
{
flake.packages = forAllSystems (system:
let
pkgs = inputs.nixpkgs.legacyPackages.${system};
# Hermes agent with messaging platform support (Discord, Slack, Telegram)
hermesMessaging = inputs.hermes-agent.packages.${system}.default.override {
extraDependencyGroups = [ "messaging" ];
};
# OCI container image for k3s deployment
hermesImage = pkgs.dockerTools.buildLayeredImage {
name = "hermes-speckl/sme";
tag = "latest";
created = "now";
contents = [
hermesMessaging
pkgs.cacert
pkgs.tzdata
pkgs.bash
pkgs.coreutils
];
config = {
Entrypoint = [ "/bin/hermes" "gateway" "run" ];
Env = [
"PATH=/bin"
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
];
};
};
in {
default = hermesMessaging;
docker-image = hermesImage;
speckl-config = pkgs.writeTextDir "speckl-config.yaml" ''
# Speckl SME — generated config
# Override via services.hermes-speckl.settings
model:
default: "anthropic/claude-opus-4.6"
memory:
memory_enabled: true
skill_generation: true
user_profile_enabled: true
toolsets:
- all
'';
}
);
}