{ lib , buildNpmPackage , fetchFromGitHub , nodejs , pkg-config , pixman , cairo , pango , libjpeg , giflib , librsvg , }: buildNpmPackage rec { pname = "pi-coding-agent"; version = "0.52.0"; src = fetchFromGitHub { owner = "badlogic"; repo = "pi-mono"; rev = "v${version}"; hash = "sha256-pGclunj+DTLkOe4b7NqQt7kgbNR6+mnw4/I1tHWdArM="; }; npmDepsHash = "sha256-w1P3M6ZeqKty+BnxJwMwEhPVuzRpTgN/r708I3Y8Y5s="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ pixman cairo pango libjpeg giflib librsvg ]; # Skip generate-models in ai package (models.generated.ts already in repo) preBuild = '' substituteInPlace packages/ai/package.json \ --replace-fail '"build": "npm run generate-models && tsgo -p tsconfig.build.json"' \ '"build": "tsgo -p tsconfig.build.json"' ''; # Build coding-agent dependencies in order buildPhase = '' runHook preBuild cd packages/tui && npm run build && cd ../.. cd packages/ai && npm run build && cd ../.. cd packages/agent && npm run build && cd ../.. cd packages/coding-agent && npm run build && cd ../.. runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/lib/pi-coding-agent $out/bin # Copy node_modules and the packages directory cp -r node_modules $out/lib/pi-coding-agent/ cp -r packages $out/lib/pi-coding-agent/ cat > $out/bin/pi <