From 858291df55ff6b46f4c716bc867fd3f35f51746e Mon Sep 17 00:00:00 2001 From: 0xrsydn Date: Wed, 24 Dec 2025 10:44:23 +0700 Subject: [PATCH] fix: nixpkgs unfollow constraint, fetchPnpm --- flake.lock | 233 ++++++++++++++++++++++------- flake.nix | 8 +- modules/home/devtools/ai-tools.nix | 21 +-- 3 files changed, 196 insertions(+), 66 deletions(-) diff --git a/flake.lock b/flake.lock index ba7a45b..73ccf82 100644 --- a/flake.lock +++ b/flake.lock @@ -22,6 +22,28 @@ "type": "github" } }, + "blueprint_2": { + "inputs": { + "nixpkgs": [ + "llm-agents-pinned", + "nixpkgs" + ], + "systems": "systems_3" + }, + "locked": { + "lastModified": 1763308703, + "narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=", + "owner": "numtide", + "repo": "blueprint", + "rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "blueprint", + "type": "github" + } + }, "chaotic": { "inputs": { "flake-schemas": "flake-schemas", @@ -31,11 +53,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1764596563, - "narHash": "sha256-tH3AGDWlAN3ImVuBBCLmqaqD0EbkISiPCHGeMcd430k=", + "lastModified": 1765204341, + "narHash": "sha256-7xd45skcuLCu2DHxVvU+W/z+7CUOjyv+QPtT4PLZaIU=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "0701ee838b0fb34a77b6dd4b35476b4bb09fbca9", + "rev": "aacb796ccd42be1555196c20013b9b674b71df75", "type": "github" }, "original": { @@ -52,11 +74,11 @@ ] }, "locked": { - "lastModified": 1764161084, - "narHash": "sha256-HN84sByg9FhJnojkGGDSrcjcbeioFWoNXfuyYfJ1kBE=", + "lastModified": 1766038392, + "narHash": "sha256-ht/GuKaw5NT3M12xM+mkUtkSBVtzjJ8IHIy6R/ncv9g=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "e95de00a471d07435e0527ff4db092c84998698e", + "rev": "5fb45ece6129bd7ad8f7310df0ae9c00bae7c562", "type": "github" }, "original": { @@ -68,11 +90,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -135,6 +157,7 @@ "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils", + "home-manager": "home-manager_2", "nixpkgs": [ "nixpkgs" ], @@ -142,11 +165,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1764605702, - "narHash": "sha256-ZGIKHORnvJ+6ghU/KjtXTesbRB4S75KwwAat7UFMpXU=", + "lastModified": 1766101315, + "narHash": "sha256-FZLl2/ufs2l4XBNO5gelF9g0XmrAvyTiiHJ7GRTB0aI=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "5714ed07a1012573261b7b7e3ed2add9c1504496", + "rev": "fa0a982ff26ac851b6cb5d31717ad3deb037be9c", "type": "github" }, "original": { @@ -163,11 +186,11 @@ ] }, "locked": { - "lastModified": 1764194569, - "narHash": "sha256-iUM9ktarEzThkayyZrzQ7oycPshAY2XRQqVKz0xX/L0=", + "lastModified": 1764998300, + "narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=", "owner": "nix-community", "repo": "home-manager", - "rev": "9651819d75f6c7ffaf8a9227490ac704f29659f0", + "rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb", "type": "github" }, "original": { @@ -179,15 +202,37 @@ "home-manager_2": { "inputs": { "nixpkgs": [ + "ghostty", "nixpkgs" ] }, "locked": { - "lastModified": 1764636297, - "narHash": "sha256-S41K55kw+hWgDfgKmZ9/fMZ3F0BQDMvqFfE120fMHeE=", + "lastModified": 1755776884, + "narHash": "sha256-CPM7zm6csUx7vSfKvzMDIjepEJv1u/usmaT7zydzbuI=", "owner": "nix-community", "repo": "home-manager", - "rev": "ff067cfc619fdf6f82d50344e7d19ff2323f0827", + "rev": "4fb695d10890e9fc6a19deadf85ff79ffb78da86", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.05", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1765980955, + "narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173", "type": "github" }, "original": { @@ -205,11 +250,11 @@ ] }, "locked": { - "lastModified": 1764275117, - "narHash": "sha256-DRcv8Y0BnWm4ZhUQnaYk1dNzC6ZhA2W9Vv5Jl4n0RbE=", + "lastModified": 1764922999, + "narHash": "sha256-LSvUxKm6S6ZAd/otQSkAHd3+8KJhi8OwGJGSe0K//B8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "96023dcc9a0febaaa3b91f447b9ae2fbe86f2923", + "rev": "9b9ead1b5591b68f4048e7205ba1397bc85ce6c4", "type": "github" }, "original": { @@ -221,17 +266,15 @@ "llm-agents": { "inputs": { "blueprint": "blueprint", - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_2", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1766028137, - "narHash": "sha256-eM4l4J4G43WiHsixxnbQWGKG+9Jc1tmTK8I2ojJrSyc=", + "lastModified": 1766544540, + "narHash": "sha256-F3uv6W8C/bYlUy1DDUiP8CxsKHvKwFupuQ2Uimd4ugI=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "16aaf36953b4bf65783dc05cecaa521262f3705b", + "rev": "81bd9845d03effdfc1eea3966b1b7e600f8f702d", "type": "github" }, "original": { @@ -240,6 +283,27 @@ "type": "github" } }, + "llm-agents-pinned": { + "inputs": { + "blueprint": "blueprint_2", + "nixpkgs": "nixpkgs_3", + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1765334436, + "narHash": "sha256-ZgoKKHNEE1rTTePCnFkSMJrfBaENTvpVlgTr1OVpMgo=", + "owner": "numtide", + "repo": "llm-agents.nix", + "rev": "4a12b5bef5a82b71da765603df5192c511a60cc2", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "llm-agents.nix", + "rev": "4a12b5bef5a82b71da765603df5192c511a60cc2", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -265,11 +329,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1764517877, - "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=", + "lastModified": 1764950072, + "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c", + "rev": "f61125a668a320878494449750330ca58b78c557", "type": "github" }, "original": { @@ -296,24 +360,43 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1758360447, - "narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=", - "rev": "8eaee110344796db060382e15d3af0a9fc396e0e", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz" + "lastModified": 1766471942, + "narHash": "sha256-Wv+xrUNXgtxAXAMZE3EDzzeRgN1MEw+PnKr8zDozeLU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cfc52a405c6e85462364651a8f11e28ae8065c91", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_3": { "locked": { - "lastModified": 1764517877, - "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=", + "lastModified": 1764947035, + "narHash": "sha256-EYHSjVM4Ox4lvCXUMiKKs2vETUSL5mx+J2FfutM7T9w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c", + "rev": "a672be65651c80d3f592a89b3945466584a22069", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "type": "github" }, "original": { @@ -328,9 +411,10 @@ "chaotic": "chaotic", "darwin": "darwin", "ghostty": "ghostty", - "home-manager": "home-manager_2", + "home-manager": "home-manager_3", "llm-agents": "llm-agents", - "nixpkgs": "nixpkgs_3", + "llm-agents-pinned": "llm-agents-pinned", + "nixpkgs": "nixpkgs_4", "sops-nix": "sops-nix", "try": "try" } @@ -343,11 +427,11 @@ ] }, "locked": { - "lastModified": 1764211126, - "narHash": "sha256-p5y13PnMZYd5WdHk+XCzyUaLGBUCwnz2n4KYKEZM0Pw=", + "lastModified": 1765075567, + "narHash": "sha256-KFDCdQcHJ0hE3Nt5Gm5enRIhmtEifAjpxgUQ3mzSJpA=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "895935bff08cfcfb663fb9c8263c43596e7cd1ed", + "rev": "769156779b41e8787a46ca3d7d76443aaf68be6f", "type": "github" }, "original": { @@ -363,11 +447,11 @@ ] }, "locked": { - "lastModified": 1764483358, - "narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=", + "lastModified": 1765836173, + "narHash": "sha256-hWRYfdH2ONI7HXbqZqW8Q1y9IRbnXWvtvt/ONZovSNY=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5aca6ff67264321d47856a2ed183729271107c9c", + "rev": "443a7f2e7e118c4fc63b7fae05ab3080dd0e5c63", "type": "github" }, "original": { @@ -406,6 +490,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -427,6 +526,27 @@ "type": "github" } }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "llm-agents-pinned", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762938485, + "narHash": "sha256-AlEObg0syDl+Spi4LsZIBrjw+snSVU4T8MOeuZJUJjM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "5b4ee75aeefd1e2d5a1cc43cf6ba65eba75e83e4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "try": { "inputs": { "flake-parts": "flake-parts", @@ -435,11 +555,11 @@ ] }, "locked": { - "lastModified": 1764893252, - "narHash": "sha256-Ua2TYmHHsJCCse6Oo6jT7ZD7Ko73dd7a70PRqqhTd6w=", + "lastModified": 1765037997, + "narHash": "sha256-OULPSaxqO2HmUT+6Eprnf9A5nLrJ8WwGP1L/gqANsf4=", "owner": "tobi", "repo": "try", - "rev": "9babc916eb199148c5949e7e8dee318a3f3a4770", + "rev": "08f70fa34761e308acc0546b723d038e41aa0fee", "type": "github" }, "original": { @@ -464,11 +584,11 @@ ] }, "locked": { - "lastModified": 1760401936, - "narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=", + "lastModified": 1763295135, + "narHash": "sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS+NzcJsssE=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "365085b6652259753b598d43b723858184980bbe", + "rev": "64f8b42cfc615b2cf99144adf2b7728c7847c72a", "type": "github" }, "original": { @@ -479,7 +599,10 @@ }, "zon2nix": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": [ + "ghostty", + "nixpkgs" + ] }, "locked": { "lastModified": 1758405547, diff --git a/flake.nix b/flake.nix index f8bbf5f..011609f 100644 --- a/flake.nix +++ b/flake.nix @@ -12,8 +12,12 @@ ghostty.url = "github:ghostty-org/ghostty"; ghostty.inputs.nixpkgs.follows = "nixpkgs"; + # Latest llm-agents for most tools (uses its own nixpkgs for compatibility) llm-agents.url = "github:numtide/llm-agents.nix"; - llm-agents.inputs.nixpkgs.follows = "nixpkgs"; + + # Pinned llm-agents for Claude Code 2.0.64 (uses its own nixpkgs for compatibility) + llm-agents-pinned.url = + "github:numtide/llm-agents.nix/4a12b5bef5a82b71da765603df5192c511a60cc2"; sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; @@ -25,7 +29,7 @@ }; outputs = inputs@{ self, nixpkgs, darwin, home-manager, ghostty, llm-agents - , sops-nix, chaotic, try, ... }: + , llm-agents-pinned, sops-nix, chaotic, try, ... }: let inherit (nixpkgs.lib) genAttrs; lib = nixpkgs.lib; diff --git a/modules/home/devtools/ai-tools.nix b/modules/home/devtools/ai-tools.nix index 232de2a..4511684 100644 --- a/modules/home/devtools/ai-tools.nix +++ b/modules/home/devtools/ai-tools.nix @@ -3,13 +3,17 @@ let inherit (lib) mkEnableOption mkOption types mkIf escapeShellArg; cfg = config.rsydn.aiTools; system = pkgs.stdenv.hostPlatform.system; + + # Latest llm-agents for most tools llmPkgs = inputs.llm-agents.packages.${system}; + # Pinned llm-agents for Claude Code 2.0.64 + llmPkgsPinned = inputs.llm-agents-pinned.packages.${system}; # Z.AI Gateway wrapper for Claude Code zaiWrapperPackages = let zaiCfg = cfg.zai; in if zaiCfg.enable then let - claudeExe = lib.getExe llmPkgs.claude-code; + claudeExe = lib.getExe llmPkgsPinned.claude-code; commandName = zaiCfg.commandName; baseUrl = zaiCfg.baseUrl; model = zaiCfg.model; @@ -56,7 +60,7 @@ in { }; model = mkOption { type = types.str; - default = "glm-4.6"; + default = "glm-4.7"; description = "Model identifier passed via ANTHROPIC_MODEL."; }; tokenEnvVar = mkOption { @@ -71,7 +75,7 @@ in { enable = false; commandName = "glm"; baseUrl = "https://api.z.ai/api/anthropic"; - model = "glm-4.6"; + model = "glm-4.7"; tokenEnvVar = "ZAI_API_KEY"; }; description = @@ -88,12 +92,11 @@ in { config = mkIf cfg.enable { home.packages = [ - llmPkgs.claude-code - llmPkgs.codex - llmPkgs.opencode - llmPkgs.crush - llmPkgs.ccstatusline - llmPkgs.ccusage + llmPkgsPinned.claude-code # pinned to 2.0.64 + llmPkgs.opencode # latest + llmPkgs.crush # latest + llmPkgs.ccstatusline # latest + llmPkgs.ccusage # latest ] ++ zaiWrapperPackages ++ cfg.extraPackages; }; }