oizys/pkgs/llm/llm-with-plugins/default.nix

41 lines
1 KiB
Nix

{
pkgs,
...
}:
let
inherit (builtins) mapAttrs attrValues;
inherit (pkgs) python3Packages;
mkPlugin = name: attrs: python3Packages.callPackage (import (../. + "/llm-${name}") attrs) { };
llm = python3Packages.callPackage ../llm { };
pluginAttr = {
anthropic = {
version = "0.13";
hash = "sha256-eIppCyFu/2VKExkO88iRozC9AVDcRQaUKrNeLU89rrQ=";
};
gemini = {
version = "0.11";
hash = "sha256-xYtfIajEU1iqHvSPDLmg9lHEllcKpVYyUuNZUGNcccw=";
};
cmd = {
version = "0.2a0";
hash = "sha256-RhwQEllpee/XP1p0nrgL4m+KjSZzf61J8l1jJGlg94E=";
};
jq = {
version = "0.1.1";
hash = "sha256-Mf/tbB9+UdmSRpulqv5Wagr8wjDcRrNs2741DNQZhO4=";
};
python = {
version = "0.1";
hash = "sha256-Z991f0AGO5iaCeoG9dkFhTLtuR45PgCS9awCvOAuPPs=";
};
};
pluginPackages = pluginAttr |> mapAttrs mkPlugin |> attrValues;
pyWithLlm = (pkgs.python3.withPackages (_: [ llm ] ++ pluginPackages));
in
pkgs.writeShellScriptBin "llm" ''
exec ${pyWithLlm}/bin/llm "$@"
''