From d8f7f602edc38628c8a02b36771349ae20835a98 Mon Sep 17 00:00:00 2001 From: Alexander Miroshnichenko Date: Fri, 8 May 2026 21:18:08 +0300 Subject: [PATCH] feat(packages): add graphify v0.7.10 Add graphify, a tool that turns any folder of code, docs, papers, images, or videos into a queryable knowledge graph for AI coding assistants. Includes tree-sitter grammar filtering to use only grammars available in nixpkgs, with missing grammars falling back to runtime downloads. --- README.md | 2 + packages/graphify/default.nix | 5 +++ packages/graphify/package.nix | 83 +++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 packages/graphify/default.nix create mode 100644 packages/graphify/package.nix diff --git a/README.md b/README.md index c5f9a2f..8b91069 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ A custom Nix overlay and flake providing additional packages not found in upstre |---------|-------------|----------| | `container-use` | Containerized environments for coding agents | AI Coding Agents | | `goose-cli` | CLI for Goose - a local, extensible, open source AI agent that automates engineering tasks | AI Coding Agents | +| `graphify` | Turn any folder of code, docs, papers, images, or videos into a queryable knowledge graph | AI Coding Agents | | `mcp-gateway` | Universal Model Context Protocol gateway that sits between AI client and MCP tools/servers | MCP Servers | | `skillsmcp` | MCP server that exposes Agent Skills to AI agents via the Model Context Protocol | MCP Servers | | `kubernetes-mcp-server` | Model Context Protocol (MCP) server for Kubernetes and OpenShift | MCP Servers | @@ -105,6 +106,7 @@ nix-overlay/ │ ├── default/ # Meta-package listing all packages │ ├── flake-inputs/ # Utility for caching flake inputs │ ├── goose-cli/ # Goose AI agent CLI +│ ├── graphify/ # Knowledge graph generator for code folders │ ├── mcp-gateway/ # MCP protocol gateway │ └── skillsmcp/ # MCP server for Agent Skills └── README.md diff --git a/packages/graphify/default.nix b/packages/graphify/default.nix new file mode 100644 index 0000000..291b4f4 --- /dev/null +++ b/packages/graphify/default.nix @@ -0,0 +1,5 @@ +{ + pkgs, + ... +}: +pkgs.callPackage ./package.nix { } diff --git a/packages/graphify/package.nix b/packages/graphify/package.nix new file mode 100644 index 0000000..0820596 --- /dev/null +++ b/packages/graphify/package.nix @@ -0,0 +1,83 @@ +{ + lib, + python3Packages, + fetchFromGitHub, +}: + +python3Packages.buildPythonApplication rec { + pname = "graphifyy"; + version = "0.7.10"; + pyproject = true; + + src = fetchFromGitHub { + owner = "safishamsi"; + repo = "graphify"; + rev = "v${version}"; + hash = "sha256-sSlmYPDwY43ro+kd5uQyvE9cEPNAMXUd5TIEPcaoioc="; + }; + + build-system = with python3Packages; [ + setuptools + ]; + + # Only tree-sitter grammars available in nixpkgs are included. + # Missing grammars will be downloaded by tree-sitter at runtime on demand. + dependencies = with python3Packages; [ + networkx + datasketch + rapidfuzz + tree-sitter + tree-sitter-python + tree-sitter-javascript + tree-sitter-rust + tree-sitter-c-sharp + tree-sitter-sql + ]; + + # Remove unavailable tree-sitter grammars from pyproject.toml + postPatch = '' + sed -i \ + -e '/"tree-sitter-typescript"/d' \ + -e '/"tree-sitter-go"/d' \ + -e '/"tree-sitter-java"/d' \ + -e '/"tree-sitter-groovy"/d' \ + -e '/"tree-sitter-c"/d' \ + -e '/"tree-sitter-cpp"/d' \ + -e '/"tree-sitter-ruby"/d' \ + -e '/"tree-sitter-kotlin"/d' \ + -e '/"tree-sitter-scala"/d' \ + -e '/"tree-sitter-php"/d' \ + -e '/"tree-sitter-swift"/d' \ + -e '/"tree-sitter-lua"/d' \ + -e '/"tree-sitter-zig"/d' \ + -e '/"tree-sitter-powershell"/d' \ + -e '/"tree-sitter-elixir"/d' \ + -e '/"tree-sitter-objc"/d' \ + -e '/"tree-sitter-julia"/d' \ + -e '/"tree-sitter-verilog"/d' \ + -e '/"tree-sitter-fortran"/d' \ + pyproject.toml + ''; + + doCheck = false; + pythonImportsCheck = [ "graphify" ]; + + passthru = { + category = "AI Coding Agents"; + updateScript = [ + "nix-update" + "--flake" + ".#graphify" + "--version=branch=main" + ]; + }; + + meta = { + description = "AI coding assistant skill - turn any folder of code, docs, papers, images, or videos into a queryable knowledge graph"; + homepage = "https://github.com/safishamsi/graphify"; + changelog = "https://github.com/safishamsi/graphify/releases/tag/v${version}"; + license = lib.licenses.mit; + mainProgram = "graphify"; + platforms = lib.platforms.all; + }; +}