From 27e0fe85bb6d288e0642866da14841cb8d2136e3 Mon Sep 17 00:00:00 2001 From: Yuto Nishida Date: Sat, 19 Sep 2026 20:41:51 -0700 Subject: [PATCH] [system-sodium] install claude-code from numtide/llm-agents.nix Replace soup's ryoppippi claude-code overlay with the #claude-code package from github:numtide/llm-agents.nix, exposed via a pkgs overlay so sodium.nix's pkgs.claude-code keeps working. Deliberately no nixpkgs.follows: keeps llm-agents' own pin so its binary cache (cache.numtide.com, added to nixConfig) applies, and avoids rebuilding its eagerly-filtered package set against our pin (a sibling pkg wants electron_44 we lack, which otherwise aborts evaluation). On soup's side, mark the claude-code-overlay as deprecated with a TODO to remove it in favor of per-profile llm-agents usage. Co-Authored-By: Claude Opus 4.8 (1M context) --- flake-profiles/system-sodium/flake.lock | 190 ++++++++++++++++++++---- flake-profiles/system-sodium/flake.nix | 9 +- soup/overlays/default.nix | 2 + 3 files changed, 170 insertions(+), 31 deletions(-) diff --git a/flake-profiles/system-sodium/flake.lock b/flake-profiles/system-sodium/flake.lock index cbfbd1c..c2d42be 100644 --- a/flake-profiles/system-sodium/flake.lock +++ b/flake-profiles/system-sodium/flake.lock @@ -34,14 +34,48 @@ }, "bun2nix": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": [ + "llm-agents", + "flake-parts" + ], + "nixpkgs": [ + "llm-agents", + "nixpkgs" + ], + "systems": [ + "llm-agents", + "systems" + ], + "treefmt-nix": [ + "llm-agents", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1788011267, + "narHash": "sha256-mEq2kU+ljompTToZ44Afvm7d/rHJ5iMBl0tjZuyShJs=", + "owner": "Mic92", + "repo": "bun2nix", + "rev": "5765b0614591f75ee8ba5596e81ae85c167d1071", + "type": "github" + }, + "original": { + "owner": "Mic92", + "ref": "fix-structured-attrs-hook", + "repo": "bun2nix", + "type": "github" + } + }, + "bun2nix_2": { + "inputs": { + "flake-parts": "flake-parts_3", "nixpkgs": [ "soup", "papyrus", "nixpkgs" ], - "systems": "systems_6", - "treefmt-nix": "treefmt-nix" + "systems": "systems_7", + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1782772816, @@ -147,7 +181,7 @@ "soup", "nixpkgs-devenv" ], - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1733554501, @@ -175,7 +209,7 @@ "soup", "nixpkgs-devenv" ], - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1733554669, @@ -258,7 +292,7 @@ "soup", "nixpkgs-devenv" ], - "systems": "systems_4" + "systems": "systems_5" }, "locked": { "lastModified": 1733554618, @@ -415,6 +449,27 @@ } }, "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "llm-agents", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1788450739, + "narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "soup", @@ -457,7 +512,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1731533236, @@ -475,7 +530,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_7" + "systems": "systems_8" }, "locked": { "lastModified": 1731533236, @@ -493,7 +548,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_8" + "systems": "systems_9" }, "locked": { "lastModified": 1731533236, @@ -511,7 +566,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_9" + "systems": "systems_10" }, "locked": { "lastModified": 1731533236, @@ -676,6 +731,28 @@ "type": "github" } }, + "llm-agents": { + "inputs": { + "bun2nix": "bun2nix", + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs", + "systems": "systems_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1789858916, + "narHash": "sha256-y1ktPuDcgROTj+8KAuj1h0DTCMp4qUlVczzkfDd1z2g=", + "owner": "numtide", + "repo": "llm-agents.nix", + "rev": "91412318114998c8dbbda4fd873af413d3e7bfd6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "llm-agents.nix", + "type": "github" + } + }, "love": { "flake": false, "locked": { @@ -748,11 +825,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1787209939, - "narHash": "sha256-WvvHR4kSQLAbtouMC/ruZ5UpLwlUcY3K4FAllMN+yGk=", + "lastModified": 1789632929, + "narHash": "sha256-RjR8AyvGlWuw16XRj7C1YDEw4E27ciuyPeB2nDMzgTU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "391b592eb44808b3bd0cb80bb71b63a5a118b8bb", + "rev": "a32edd7654519351e48e80372a928df336394670", "type": "github" }, "original": { @@ -783,6 +860,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1787209939, + "narHash": "sha256-WvvHR4kSQLAbtouMC/ruZ5UpLwlUcY3K4FAllMN+yGk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "391b592eb44808b3bd0cb80bb71b63a5a118b8bb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1783915482, "narHash": "sha256-FmieJB8/OUvNxbkboi7+IGfIuSXY3nF/hZQm8kD0r50=", @@ -798,7 +891,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1783816212, "narHash": "sha256-2aZisVTVGSFEk3MYcOiWQp3zvwyzbqpktB69Rcfp150=", @@ -814,7 +907,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1783816212, "narHash": "sha256-2aZisVTVGSFEk3MYcOiWQp3zvwyzbqpktB69Rcfp150=", @@ -832,9 +925,9 @@ }, "papyrus": { "inputs": { - "bun2nix": "bun2nix", + "bun2nix": "bun2nix_2", "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "silverwood": "silverwood" }, "locked": { @@ -875,12 +968,13 @@ "herdr": "herdr", "home-manager": "home-manager", "jellyfin-mpv-shim-darwin": "jellyfin-mpv-shim-darwin", + "llm-agents": "llm-agents", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-firefox-darwin": "nixpkgs-firefox-darwin", "sops-nix": "sops-nix", "soup": "soup", - "systems": "systems_10" + "systems": "systems_11" } }, "rust-analyzer-src": { @@ -927,7 +1021,7 @@ "advisory-db": "advisory-db", "crane": "crane", "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "path": "../silverwood", @@ -947,7 +1041,7 @@ "advisory-db": "advisory-db_2", "crane": "crane_2", "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "dir": "experimental/silverwood", @@ -1049,7 +1143,7 @@ "type": "github" } }, - "systems_2": { + "systems_11": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1064,7 +1158,7 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1079,22 +1173,22 @@ "type": "github" } }, - "systems_4": { + "systems_3": { "locked": { - "lastModified": 1689347925, - "narHash": "sha256-ozenz5bFe1UUqOn7f60HRmgc01BgTGIKZ4Xl+HbocGQ=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-darwin", - "rev": "2235d7e6cc29ae99878133c95e9fe5e157661ffb", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-darwin", + "repo": "default", "type": "github" } }, - "systems_5": { + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1109,6 +1203,21 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1689347925, + "narHash": "sha256-ozenz5bFe1UUqOn7f60HRmgc01BgTGIKZ4Xl+HbocGQ=", + "owner": "nix-systems", + "repo": "default-darwin", + "rev": "2235d7e6cc29ae99878133c95e9fe5e157661ffb", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-darwin", + "type": "github" + } + }, "systems_6": { "locked": { "lastModified": 1681028828, @@ -1170,6 +1279,27 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "llm-agents", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1786901030, + "narHash": "sha256-WSFCsDSE5ffgD2MqzkM2CYjeFiKhRF/dJUN8uedb6YE=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "27b3b12a8e6375f28ebe122f07d230ca5459bbfa", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "soup", diff --git a/flake-profiles/system-sodium/flake.nix b/flake-profiles/system-sodium/flake.nix index dba3c47..7f7b2e3 100644 --- a/flake-profiles/system-sodium/flake.nix +++ b/flake-profiles/system-sodium/flake.nix @@ -25,6 +25,9 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + # Keep llm-agents' own nixpkgs pin to use llm-agents's binary cache. + llm-agents.url = "github:numtide/llm-agents.nix"; + jellyfin-mpv-shim-darwin = { url = "path:./../../experimental/jellyfin-mpv-shim-darwin-compat"; inputs.nixpkgs.follows = "nixpkgs"; # Follow modern nixpkgs (drops the stale apple_sdk_11_0 pin) @@ -50,10 +53,12 @@ extra-trusted-public-keys = [ "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g=" # llm-agents ]; extra-substituters = [ "https://devenv.cachix.org" "https://nix-community.cachix.org" + "https://cache.numtide.com" # llm-agents ]; }; @@ -78,7 +83,9 @@ (final: super: { jujutsu = inputs.soup.legacyPackages."aarch64-darwin".jujutsu-bin; }) - inputs.soup.overlays.claude-code-overlay + (final: super: { + claude-code = inputs.llm-agents.packages."aarch64-darwin".claude-code; + }) (final: super: { check-gits = inputs.soup.legacyPackages."aarch64-darwin".check-gits; }) diff --git a/soup/overlays/default.nix b/soup/overlays/default.nix index 0ef31cb..d1425ec 100644 --- a/soup/overlays/default.nix +++ b/soup/overlays/default.nix @@ -51,6 +51,8 @@ else maybe-flake-inputs.jujutsu.overlays.default; + # TODO: DEPRECATED. This claude-code overlay (github:ryoppippi/claude-code-overlay) + # should be removed in favor of per-profile github:numtide/llm-agents.nix usage. claude-code-overlay = if builtins.isNull maybe-flake-inputs then throw "claude-code-overlay overlay requires flake inputs" -- 2.51.2