diff --git a/pkgs/development/python-modules/llm-tools-quickjs/default.nix b/pkgs/development/python-modules/llm-tools-quickjs/default.nix new file mode 100644 index 000000000000..b8f934c5a5b6 --- /dev/null +++ b/pkgs/development/python-modules/llm-tools-quickjs/default.nix @@ -0,0 +1,50 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + quickjs, + llm, + llm-tools-quickjs, + llm-echo, + pytestCheckHook, + writableTmpDirAsHomeHook, +}: + +buildPythonPackage rec { + pname = "llm-tools-quickjs"; + version = "0.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "simonw"; + repo = "llm-tools-quickjs"; + tag = version; + hash = "sha256-Si3VcHnRUj8Q/N8pRhltPOM6K64TX9DBH/u4WQxQJjQ="; + }; + + build-system = [ + setuptools + llm + ]; + + dependencies = [ quickjs ]; + + nativeCheckInputs = [ + llm-echo + pytestCheckHook + writableTmpDirAsHomeHook + ]; + + pythonImportsCheck = [ "llm_tools_quickjs" ]; + + passthru.tests = llm.mkPluginTest llm-tools-quickjs; + + meta = { + description = "JavaScript execution as a tool for LLM"; + homepage = "https://github.com/simonw/llm-tools-quickjs"; + changelog = "https://github.com/simonw/llm-tools-quickjs/releases/tag/${version}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ philiptaron ]; + }; +} diff --git a/pkgs/development/python-modules/llm/default.nix b/pkgs/development/python-modules/llm/default.nix index e6d693165763..826a502de7f8 100644 --- a/pkgs/development/python-modules/llm/default.nix +++ b/pkgs/development/python-modules/llm/default.nix @@ -82,6 +82,7 @@ let llm-sentence-transformers ? false, llm-templates-fabric ? false, llm-templates-github ? false, + llm-tools-quickjs ? false, llm-venice ? false, llm-video-frames ? false, ... @@ -162,7 +163,8 @@ let patches = [ ./001-disable-install-uninstall-commands.patch ]; postPatch = '' - substituteInPlace llm/cli.py --replace-fail "@listOfPackagedPlugins@" "$(< ${listOfPackagedPlugins})" + substituteInPlace llm/cli.py \ + --replace-fail "@listOfPackagedPlugins@" "$(< ${listOfPackagedPlugins})" ''; dependencies = [ diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 08ce80666cde..8bdcd385da26 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8334,6 +8334,8 @@ self: super: with self; { llm-templates-github = callPackage ../development/python-modules/llm-templates-github { }; + llm-tools-quickjs = callPackage ../development/python-modules/llm-tools-quickjs { }; + llm-venice = callPackage ../development/python-modules/llm-venice { }; llm-video-frames = callPackage ../development/python-modules/llm-video-frames { };