diff --git a/pkgs/development/python-modules/llm-tools-datasette/default.nix b/pkgs/development/python-modules/llm-tools-datasette/default.nix new file mode 100644 index 000000000000..5229c71bb6ea --- /dev/null +++ b/pkgs/development/python-modules/llm-tools-datasette/default.nix @@ -0,0 +1,49 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + llm, + llm-tools-datasette, + llm-echo, + pytestCheckHook, + pytest-httpx, + writableTmpDirAsHomeHook, +}: + +buildPythonPackage rec { + pname = "llm-tools-datasette"; + version = "0.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "simonw"; + repo = "llm-tools-datasette"; + tag = version; + hash = "sha256-Us9bPk2qpTlgJqQ0Cl9QdeqW+h8j+pmnkriM0WXEyyA="; + }; + + build-system = [ + setuptools + llm + ]; + + nativeCheckInputs = [ + llm-echo + pytestCheckHook + pytest-httpx + writableTmpDirAsHomeHook + ]; + + pythonImportsCheck = [ "llm_tools_datasette" ]; + + passthru.tests = llm.mkPluginTest llm-tools-datasette; + + meta = { + description = "Expose Datasette instances to LLM as a tool"; + homepage = "https://github.com/simonw/llm-tools-datasette"; + changelog = "https://github.com/simonw/llm-tools-datasette/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 a1b128be406a..d17063c115fa 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-datasette ? false, llm-tools-quickjs ? false, llm-tools-sqlite ? false, llm-venice ? false, diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 210d61727d55..24cbe8744992 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-datasette = callPackage ../development/python-modules/llm-tools-datasette { }; + llm-tools-quickjs = callPackage ../development/python-modules/llm-tools-quickjs { }; llm-tools-sqlite = callPackage ../development/python-modules/llm-tools-sqlite { };