diff --git a/flake.lock b/flake.lock index fb1f9cd..a52b6df 100644 --- a/flake.lock +++ b/flake.lock @@ -440,11 +440,11 @@ ] }, "locked": { - "lastModified": 1748226808, - "narHash": "sha256-GaBRgxjWO1bAQa8P2+FDxG4ANBVhjnSjBms096qQdxo=", + "lastModified": 1750792728, + "narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", "owner": "nix-community", "repo": "home-manager", - "rev": "83665c39fa688bd6a1f7c43cf7997a70f6a109f9", + "rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", "type": "github" }, "original": { @@ -727,11 +727,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1748162331, - "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", + "lastModified": 1750969886, + "narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", + "rev": "a676066377a2fe7457369dd37c31fd2263b662f4", "type": "github" }, "original": { @@ -1075,11 +1075,11 @@ }, "unstable": { "locked": { - "lastModified": 1748190013, - "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", + "lastModified": 1751011381, + "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", + "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7", "type": "github" }, "original": { diff --git a/overlays/unstable/claude-code/package-lock.json b/overlays/unstable/claude-code/package-lock.json index 11d58aa..a5d7de7 100644 --- a/overlays/unstable/claude-code/package-lock.json +++ b/overlays/unstable/claude-code/package-lock.json @@ -1,17 +1,18 @@ { "name": "claude-code", + "version": "1.0.17", "lockfileVersion": 3, "requires": true, "packages": { "": { "dependencies": { - "@anthropic-ai/claude-code": "^1.0.31" + "@anthropic-ai/claude-code": "^1.0.35" } }, "node_modules/@anthropic-ai/claude-code": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.31.tgz", - "integrity": "sha512-prn3DEIBm5ALgCjp0sCcXwNbfBR5w98bEOXQbWViow/3BwkTgW784V8i0S/kfIWDVorz0o4cqR5D0fB4hbjNIg==", + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.35.tgz", + "integrity": "sha512-rQr03moVxUZSR9hZGHXatjukxmgK9VoihiVG/lkUWFb6NDxhG+EZB+jSY2gtTsxJwnE1pQciLvOPVI/UxXo4TA==", "hasInstallScript": true, "license": "SEE LICENSE IN README.md", "bin": { diff --git a/overlays/unstable/claude-code/package.nix b/overlays/unstable/claude-code/package.nix index 4805025..606b8df 100644 --- a/overlays/unstable/claude-code/package.nix +++ b/overlays/unstable/claude-code/package.nix @@ -1,22 +1,22 @@ -{ - lib, - buildNpmPackage, - fetchzip, - nodejs_20, +{ lib +, buildNpmPackage +, fetchzip +, nodejs_20 +, }: buildNpmPackage rec { pname = "claude-code"; - version = "1.0.31"; + version = "1.0.35"; nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin src = fetchzip { url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz"; - hash = "sha256-DrjR1LHnLXk2cW3zXO1jxc3octITMq6t28E2KJHBxZE="; + hash = "sha256-Lt79XxHrgy6rPAHBf1QtwjsKnrZmsKFeVFOvHwN4aOY="; }; - npmDepsHash = "sha256-I3yjsxYXb9PzWb1pSDI40s17AJP9bnQZld5rH5bwwgE="; + npmDepsHash = "sha256-TXz2+Vw9/CtcTbd/ta0i4thjfadxfJ64PxvdT1zUQnI="; postPatch = '' cp ${./package-lock.json} package-lock.json @@ -36,11 +36,14 @@ buildNpmPackage rec { passthru.updateScript = ./update.sh; meta = { - description = "An agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; + description = "Agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster"; homepage = "https://github.com/anthropics/claude-code"; downloadPage = "https://www.npmjs.com/package/@anthropic-ai/claude-code"; license = lib.licenses.unfree; - maintainers = [ lib.maintainers.malo ]; + maintainers = with lib.maintainers; [ + malo + omarjatoi + ]; mainProgram = "claude"; }; } diff --git a/overlays/unstable/gemini-cli/package-lock.json b/overlays/unstable/gemini-cli/package-lock.json index b8636c4..803e0a7 100644 --- a/overlays/unstable/gemini-cli/package-lock.json +++ b/overlays/unstable/gemini-cli/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@google/gemini-cli": "^0.1.4" + "@google/gemini-cli": "^0.1.7" } }, "node_modules/@alcalzone/ansi-tokenize": { @@ -45,15 +45,16 @@ } }, "node_modules/@google/gemini-cli": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@google/gemini-cli/-/gemini-cli-0.1.4.tgz", - "integrity": "sha512-RgHzsejPPHVGSUmtR22ByL3oDNA1Jt2Q4cD79j1ZaZOn7MOmMAgJmTWNCN1kyatMvrkISL3x+h2sjwC1knw+EQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@google/gemini-cli/-/gemini-cli-0.1.7.tgz", + "integrity": "sha512-iMYGTAHykJeryg3x5f7pwN9Apv0Ofmmt5HFrgU2zkZS8EK7oX8h+JtuT98M4ny9bXcoGiX73aUmmQc+j1YPP7g==", "dependencies": { - "@google/gemini-cli-core": "0.1.4", + "@google/gemini-cli-core": "0.1.7", "@types/update-notifier": "^6.0.8", "command-exists": "^1.2.9", "diff": "^7.0.0", "dotenv": "^16.4.7", + "gaxios": "^6.1.1", "glob": "^10.4.1", "highlight.js": "^11.11.1", "ink": "^5.2.0", @@ -83,9 +84,9 @@ } }, "node_modules/@google/gemini-cli-core": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@google/gemini-cli-core/-/gemini-cli-core-0.1.4.tgz", - "integrity": "sha512-5x2Y/UReU5BpWkLa8IYjw1vFQJUO2YsOvCjX14TzVryqdeMMToQRPxkRANXDuXbDYqg4wTuln/cq3FOUFPSwCg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@google/gemini-cli-core/-/gemini-cli-core-0.1.7.tgz", + "integrity": "sha512-V3KYamCruqhBSoWNvWm5MJn6EwwZVv/129h0f2SFVfgJP759QVAvcnT4nGq18Jf5nNqDkq01Uug3yR/NfGJN+g==", "dependencies": { "@google/genai": "^1.4.0", "@modelcontextprotocol/sdk": "^1.11.0", @@ -99,6 +100,7 @@ "@types/html-to-text": "^9.0.4", "diff": "^7.0.0", "dotenv": "^16.4.7", + "gaxios": "^6.1.1", "glob": "^10.4.5", "google-auth-library": "^9.11.0", "html-to-text": "^9.0.5", @@ -235,9 +237,9 @@ "license": "MIT" }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.1.tgz", - "integrity": "sha512-8q6+9aF0yA39/qWT/uaIj6zTpC+Qu07DnN/lb9mjoquCJsAh6l3HyYqc9O3t2j7GilseOQOQimLg7W3By6jqvg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.13.2.tgz", + "integrity": "sha512-Vx7qOcmoKkR3qhaQ9qf3GxiVKCEu+zfJddHv6x3dY/9P6+uIwJnmuAur5aB+4FDXf41rRrDnOEGkviX5oYZ67w==", "license": "MIT", "dependencies": { "ajv": "^6.12.6", @@ -861,9 +863,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.0.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.4.tgz", - "integrity": "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==", + "version": "24.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.7.tgz", + "integrity": "sha512-YIEUUr4yf8q8oQoXPpSlnvKNVKDQlPMWrmOcgzoduo7kvA2UF0/BwJ/eMKFTiTtkNL17I0M6Xe2tvwFU7be6iw==", "license": "MIT", "dependencies": { "undici-types": "~7.8.0" @@ -1850,9 +1852,9 @@ } }, "node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "license": "BSD-2-Clause", "engines": { "node": ">=12" @@ -4696,9 +4698,9 @@ } }, "node_modules/undici": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.10.0.tgz", - "integrity": "sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.11.0.tgz", + "integrity": "sha512-heTSIac3iLhsmZhUCjyS3JQEkZELateufzZuBaVM5RHXdSBMb1LPMQf5x+FH7qjsZYDP0ttAc3nnVpUB+wYbOg==", "license": "MIT", "engines": { "node": ">=20.18.1" diff --git a/overlays/unstable/gemini-cli/package.nix b/overlays/unstable/gemini-cli/package.nix index f205d71..962596d 100644 --- a/overlays/unstable/gemini-cli/package.nix +++ b/overlays/unstable/gemini-cli/package.nix @@ -1,43 +1,59 @@ -{ lib -, buildNpmPackage -, fetchFromGitHub -, nix-update-script -, +{ + lib, + buildNpmPackage, + fetchFromGitHub, + fetchNpmDeps, + writeShellApplication, + cacert, + curl, + gnused, + jq, + nix-prefetch-github, + prefetch-npm-deps, + gitUpdater, }: -let +buildNpmPackage (finalAttrs: { pname = "gemini-cli"; - version = "0.1.4"; -in -buildNpmPackage { - inherit pname version; + version = "0.1.7"; src = fetchFromGitHub { owner = "google-gemini"; repo = "gemini-cli"; - # Currently there's no release tag, use the `package-lock.json` to see - # what's the latest version - rev = "a8763abfb7eeb91bc48445a5e0a24ab0532a714d"; - hash = "sha256-yRzTYr4LHmT9t93I0P4Ewx5kO1E7aeIPVxXvB3A1Ofc="; + tag = "v${finalAttrs.version}"; + hash = "sha256-DAenod/w9BydYdYsOnuLj7kCQRcTnZ81tf4MhLUug6c="; }; - npmDepsHash = "sha256-RwEQtlwNPSu6WiWPW5N1s7tUNuVjZogN5RTAmNXqjLU="; + npmDeps = fetchNpmDeps { + inherit (finalAttrs) src; + hash = "sha256-otogkSsKJ5j1BY00y4SRhL9pm7CK9nmzVisvGCDIMlU="; + }; - fixupPhase = '' - runHook preFixup - - # Remove broken symlinks - find $out -type l -exec test ! -e {} \; -delete 2>/dev/null || true - - mkdir -p "$out/bin" - ln -sf "$out/lib/node_modules/@google/gemini-cli/bundle/gemini.js" "$out/bin/gemini" - - patchShebangs "$out/bin" "$out/lib/node_modules/@google/gemini-cli/bundle/" - - runHook postFixup + preConfigure = '' + mkdir -p packages/generated + echo "export const GIT_COMMIT_INFO = { commitHash: '${finalAttrs.src.rev}' };" > packages/generated/git-commit.ts ''; - passthru.updateScript = ./update.sh; + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,share/gemini-cli} + + cp -r node_modules $out/share/gemini-cli/ + + rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli + rm -f $out/share/gemini-cli/node_modules/@google/gemini-cli-core + cp -r packages/cli $out/share/gemini-cli/node_modules/@google/gemini-cli + cp -r packages/core $out/share/gemini-cli/node_modules/@google/gemini-cli-core + + ln -s $out/share/gemini-cli/node_modules/@google/gemini-cli/dist/index.js $out/bin/gemini + runHook postInstall + ''; + + postInstall = '' + chmod +x "$out/bin/gemini" + ''; + + passthru.updateScript = gitUpdater { }; meta = { description = "AI agent that brings the power of Gemini directly into your terminal"; @@ -47,4 +63,4 @@ buildNpmPackage { platforms = lib.platforms.all; mainProgram = "gemini"; }; -} +})