diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 9738af4..f14e070 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1,3 +1,4 @@ +{"_type":"issue","id":"nix-overlay-27z","title":"freebuff","description":"В данный nixos overlay репозиторй необходимо добавить новый пакет https://www.npmjs.com/package/freebuff .\nИспользуй mcp: nixos, karpathy-guidelines и Sequential Thinking для планирования шаг за шагом задачи. Управление тасками используй beads. Разбей задачу на подзадачи, используя beads с указанием parent task.\n\nRequired Skills\ncaveman,karpathy-guidelines,nix,nix-flakes","status":"closed","priority":2,"issue_type":"feature","assignee":"Alexander Miroshnichenko","owner":"alex@millerson.name","created_at":"2026-05-11T16:11:44Z","created_by":"Alexander Miroshnichenko","updated_at":"2026-05-11T17:03:53Z","started_at":"2026-05-11T16:17:34Z","closed_at":"2026-05-11T17:03:53Z","close_reason":"Closed","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"nix-overlay-qlc.5","title":"Update package metadata and updateScript","description":"Remove binaryNativeCode sourceProvenance, update meta, adjust updateScript for source build","status":"closed","priority":2,"issue_type":"task","assignee":"Alexander Miroshnichenko","owner":"alex@millerson.name","created_at":"2026-05-11T13:51:22Z","created_by":"Alexander Miroshnichenko","updated_at":"2026-05-11T15:01:06Z","started_at":"2026-05-11T14:59:33Z","closed_at":"2026-05-11T15:01:06Z","close_reason":"Closed","dependencies":[{"issue_id":"nix-overlay-qlc.5","depends_on_id":"nix-overlay-qlc","type":"parent-child","created_at":"2026-05-11T16:51:21Z","created_by":"Alexander Miroshnichenko","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"nix-overlay-qlc.4","title":"Test build and verify functionality","description":"Build radar from source and verify it runs correctly","status":"closed","priority":2,"issue_type":"task","owner":"alex@millerson.name","created_at":"2026-05-11T13:51:11Z","created_by":"Alexander Miroshnichenko","updated_at":"2026-05-11T14:59:55Z","closed_at":"2026-05-11T14:59:55Z","close_reason":"Closed","dependencies":[{"issue_id":"nix-overlay-qlc.4","depends_on_id":"nix-overlay-qlc","type":"parent-child","created_at":"2026-05-11T16:51:10Z","created_by":"Alexander Miroshnichenko","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"nix-overlay-qlc.3","title":"Handle go:embed frontend assets","description":"Ensure frontend assets are copied to internal/static/dist before Go build so go:embed works correctly","status":"closed","priority":2,"issue_type":"task","owner":"alex@millerson.name","created_at":"2026-05-11T13:51:02Z","created_by":"Alexander Miroshnichenko","updated_at":"2026-05-11T14:59:55Z","closed_at":"2026-05-11T14:59:55Z","close_reason":"Closed","dependencies":[{"issue_id":"nix-overlay-qlc.3","depends_on_id":"nix-overlay-qlc","type":"parent-child","created_at":"2026-05-11T16:51:02Z","created_by":"Alexander Miroshnichenko","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} diff --git a/README.md b/README.md index 27c95fc..8b8a3f6 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 | | `desloppify` | Multi-language codebase health scanner and technical debt tracker for AI agents | AI Coding Agents | +| `freebuff` | The world's strongest free coding agent | 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 | @@ -107,6 +108,7 @@ nix-overlay/ ├── packages/ # Package definitions │ ├── default/ # Meta-package listing all packages │ ├── desloppify/ # Codebase health scanner for AI agents +│ ├── freebuff/ # Free coding agent (Codebuff) │ ├── flake-inputs/ # Utility for caching flake inputs │ ├── goose-cli/ # Goose AI agent CLI │ ├── graphify/ # Knowledge graph generator for code folders diff --git a/packages/freebuff/default.nix b/packages/freebuff/default.nix new file mode 100644 index 0000000..0ee9128 --- /dev/null +++ b/packages/freebuff/default.nix @@ -0,0 +1 @@ +{ pkgs, ... }: pkgs.callPackage ./package.nix { } diff --git a/packages/freebuff/package.nix b/packages/freebuff/package.nix new file mode 100644 index 0000000..3ec81b6 --- /dev/null +++ b/packages/freebuff/package.nix @@ -0,0 +1,104 @@ +{ + lib, + stdenv, + fetchurl, + nodejs, + makeWrapper, +}: + +let + version = "0.0.85"; + + freebuffSrc = fetchurl { + url = "https://registry.npmjs.org/freebuff/-/freebuff-${version}.tgz"; + hash = "sha256-1x593yLMkoFIO5O+k5NKeEpi729VhINQlW1xFbYGnXM="; + }; + + pkgTar = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-7.5.15.tgz"; + hash = "sha256-hl60jJtM1W2THQyGZj8G72GEG8QvVrHvNnr7EU1liBw="; + }; + + pkgFsMinipass = fetchurl { + url = "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz"; + hash = "sha256-esKG48zMHqiYDnniA53va7l9MYLheVHNkJTwQA7ZgjY="; + }; + + pkgChownr = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz"; + hash = "sha256-TCT12qYwFCJS2oneZV998JDqR5RQqIJYl3UdeDIbE2A="; + }; + + pkgMinipass = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz"; + hash = "sha256-UqxhvnQ3VeP9yY5WAIbQ1KHix/02Qzh3kts44yLSfRI="; + }; + + pkgMinizlib = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz"; + hash = "sha256-mb8uKWGBct1x8GVHN0kMaPcbx+I3nUc+OPn+8tvs4uM="; + }; + + pkgYallist = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz"; + hash = "sha256-fJ1D26t8qzsxM7Dmpa8UAUSCKFMWs57J9QjvrdnrzpU="; + }; + +in + +stdenv.mkDerivation rec { + pname = "freebuff"; + version = "0.0.85"; + + src = freebuffSrc; + + nativeBuildInputs = [ makeWrapper ]; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/lib/node_modules/freebuff" + cp -r * "$out/lib/node_modules/freebuff/" + + # Extract npm dependencies from pre-fetched tarballs + extractNpmPkg() { + local src="$1" target="$2" + mkdir -p "$target" + tar xzf "$src" -C "$target" --strip-components=1 + } + + extractNpmPkg "${pkgTar}" "$out/lib/node_modules/tar" + extractNpmPkg "${pkgChownr}" "$out/lib/node_modules/chownr" + extractNpmPkg "${pkgMinipass}" "$out/lib/node_modules/minipass" + extractNpmPkg "${pkgMinizlib}" "$out/lib/node_modules/minizlib" + extractNpmPkg "${pkgYallist}" "$out/lib/node_modules/yallist" + mkdir -p "$out/lib/node_modules/@isaacs" + extractNpmPkg "${pkgFsMinipass}" "$out/lib/node_modules/@isaacs/fs-minipass" + + mkdir -p "$out/bin" + makeWrapper "${nodejs}/bin/node" "$out/bin/freebuff" \ + --set NODE_PATH "$out/lib/node_modules" \ + --add-flags "$out/lib/node_modules/freebuff/index.js" + + runHook postInstall + ''; + + doCheck = false; + + passthru = { + category = "AI Coding Agents"; + updateScript = [ + "nix-update" + "--flake" + ".#freebuff" + ]; + }; + + meta = with lib; { + description = "The world's strongest free coding agent"; + homepage = "https://codebuff.com"; + license = licenses.mit; + mainProgram = "freebuff"; + platforms = platforms.all; + }; +}