From 41661dc0a22c40e141be8cb858fe7fde9c43ed30 Mon Sep 17 00:00:00 2001 From: dawn <90008@gaze.systems> Date: Tue, 19 May 2026 22:19:20 +0300 Subject: [PATCH] weh --- _sources/generated.json | 112 +++++---- _sources/generated.nix | 106 ++++---- deploy.nu | 29 ++- dns/dnsconfig.js | 4 +- flake.lock | 8 +- flake.nix | 4 +- hosts/trimounts/modules/drop.nix | 44 ++++ .../trimounts/modules/tangled.nix/default.nix | 2 +- hosts/volsinii/modules/bobbin.nix | 120 +++++++++ hosts/volsinii/modules/relay.nix | 22 +- hosts/volsinii/modules/slingshot.nix | 67 +++++ nvfetcher.toml | 4 + pkgs-set/exported.nix | 2 + pkgs-set/pkgs/bobbin.nix | 45 ++++ pkgs-set/pkgs/drop.nix | 4 + pkgs-set/pkgs/headroom-ai.nix | 136 ++++++++++ pkgs-set/pkgs/helium.nix | 4 +- pkgs-set/pkgs/ik-llama-cpp.nix | 197 +++++++++++++++ pkgs-set/pkgs/llama-cpp-mtp.nix | 236 ++++++++++++++++++ pkgs-set/pkgs/llama-cpp.nix | 2 +- pkgs-set/pkgs/slingshot.nix | 50 ++++ users/mayer/default.nix | 6 +- users/modules/niri/config.kdl | 7 +- 23 files changed, 1082 insertions(+), 129 deletions(-) create mode 100644 hosts/trimounts/modules/drop.nix create mode 100644 hosts/volsinii/modules/bobbin.nix create mode 100644 hosts/volsinii/modules/slingshot.nix create mode 100644 pkgs-set/pkgs/bobbin.nix create mode 100644 pkgs-set/pkgs/drop.nix create mode 100644 pkgs-set/pkgs/headroom-ai.nix create mode 100644 pkgs-set/pkgs/ik-llama-cpp.nix create mode 100644 pkgs-set/pkgs/llama-cpp-mtp.nix create mode 100644 pkgs-set/pkgs/slingshot.nix diff --git a/_sources/generated.json b/_sources/generated.json index 7d4188b..ca87527 100644 --- a/_sources/generated.json +++ b/_sources/generated.json @@ -102,7 +102,7 @@ }, "compare-plc": { "cargoLock": null, - "date": "2026-04-19", + "date": "2026-05-07", "extract": null, "name": "compare-plc", "passthru": null, @@ -112,17 +112,17 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "ffdc2ac48839352630ef3fdbeb1053ee53f0fb6e", - "sha256": "sha256-yCO8prigt/88IZoBejIbmsqlR6cVfpZPfMy4aHbvG2s=", + "rev": "463db90aa92a40e6fcf9c91eafe1257a04e938a8", + "sha256": "sha256-jzlVoPGRWfKCCZxQ1SNMPnqCJ/3iZhRFUK/O+orehXg=", "sparseCheckout": [], "type": "git", "url": "https://tangled.org/@ptr.pet/compare-plc" }, - "version": "ffdc2ac48839352630ef3fdbeb1053ee53f0fb6e" + "version": "463db90aa92a40e6fcf9c91eafe1257a04e938a8" }, "disko": { "cargoLock": null, - "date": "2026-03-19", + "date": "2026-05-02", "extract": null, "name": "disko", "passthru": null, @@ -134,12 +134,32 @@ "name": null, "owner": "nix-community", "repo": "disko", - "rev": "5ad85c82cc52264f4beddc934ba57f3789f28347", - "sha256": "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw=", + "rev": "63b4e7e6cf75307c1d26ac3762b886b5b0247267", + "sha256": "sha256-8GzXDOXckDWwST8TY5DbwYFjdvQLlP7K9CLSVx6iTTo=", "sparseCheckout": [], "type": "github" }, - "version": "5ad85c82cc52264f4beddc934ba57f3789f28347" + "version": "63b4e7e6cf75307c1d26ac3762b886b5b0247267" + }, + "drop": { + "cargoLock": null, + "date": "2026-05-19", + "extract": null, + "name": "drop", + "passthru": null, + "pinned": false, + "src": { + "deepClone": false, + "fetchSubmodules": false, + "leaveDotGit": false, + "name": null, + "rev": "b184c0e959acb960f9b9500babf85abe94080f10", + "sha256": "sha256-00084BVoJb6Jp3kFbt/iAuK7Vs5RLigZD+KwmWkUx98=", + "sparseCheckout": [], + "type": "git", + "url": "https://tangled.org/ptr.pet/drop" + }, + "version": "b184c0e959acb960f9b9500babf85abe94080f10" }, "dysnomia": { "cargoLock": null, @@ -205,7 +225,7 @@ }, "home": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-14", "extract": null, "name": "home", "passthru": null, @@ -217,16 +237,16 @@ "name": null, "owner": "nix-community", "repo": "home-manager", - "rev": "03bdcf84f092956943dcf9ef164481e463512716", - "sha256": "sha256-MCaiC3iWarAsmu8KJXgJHb1H8lf+BD9gymvxkbmNVdc=", + "rev": "c68d2a24376da3860ef161373d91348b1542356b", + "sha256": "sha256-t7GW8f4So0b+ATPACjTkCy9UesbSidDW3X9w3utVC1A=", "sparseCheckout": [], "type": "github" }, - "version": "03bdcf84f092956943dcf9ef164481e463512716" + "version": "c68d2a24376da3860ef161373d91348b1542356b" }, "hydrant": { "cargoLock": null, - "date": "2026-04-24", + "date": "2026-05-12", "extract": null, "name": "hydrant", "passthru": null, @@ -236,13 +256,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "c93a1abc6cd03cdccdc412974f622424fe3f0253", - "sha256": "sha256-Uk96t1USqX5ARGMjHcxnFcuXL054NkPUytwA+dU54W8=", + "rev": "a9d29ed76de8ebfdec653081f1d325ea4c1adf56", + "sha256": "sha256-eTdVSI5yt/XsEefY5Jj/QldXv4XalwfUT5loQLHsHMc=", "sparseCheckout": [], "type": "git", "url": "https://tangled.org/@ptr.pet/hydrant" }, - "version": "c93a1abc6cd03cdccdc412974f622424fe3f0253" + "version": "a9d29ed76de8ebfdec653081f1d325ea4c1adf56" }, "limbusart": { "cargoLock": null, @@ -266,7 +286,7 @@ }, "moonlight": { "cargoLock": null, - "date": "2026-04-01", + "date": "2026-05-13", "extract": null, "name": "moonlight", "passthru": null, @@ -278,12 +298,12 @@ "name": null, "owner": "moonlight-mod", "repo": "moonlight", - "rev": "8e1ba6f769ca85532b84c81c0c153824938222c7", - "sha256": "sha256-5m6SZrS8Phui8xHrg7wCVoKB1ikvmXqv1ml17Eu9sn8=", + "rev": "2db8e1ac40abf13298e81f093b40a460276b064c", + "sha256": "sha256-jSg8y1wkTLdzZscf3HgXCPoIBfg/aSmTOKdbbJvyfrM=", "sparseCheckout": [], "type": "github" }, - "version": "8e1ba6f769ca85532b84c81c0c153824938222c7" + "version": "2db8e1ac40abf13298e81f093b40a460276b064c" }, "ncr": { "cargoLock": null, @@ -307,7 +327,7 @@ }, "nixos-hardware": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-12", "extract": null, "name": "nixos-hardware", "passthru": null, @@ -319,16 +339,16 @@ "name": null, "owner": "NixOS", "repo": "nixos-hardware", - "rev": "80afbd13eea0b7c4ac188de949e1711b31c2b5f0", - "sha256": "sha256-6MWaMLXK9QMndI94CIxeiPafi3wuO+imCtK9tfhsZdw=", + "rev": "9bd7c80d43e258aaa607d83b43661df11444d808", + "sha256": "sha256-xYGrSg6354UK2K4WSQd4+TfyvfqmvFbSY+ZtGQUXK0c=", "sparseCheckout": [], "type": "github" }, - "version": "80afbd13eea0b7c4ac188de949e1711b31c2b5f0" + "version": "9bd7c80d43e258aaa607d83b43661df11444d808" }, "nixpkgs-xr": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-14", "extract": null, "name": "nixpkgs-xr", "passthru": null, @@ -340,12 +360,12 @@ "name": null, "owner": "nix-community", "repo": "nixpkgs-xr", - "rev": "bf08f400e1979b2af5383ccc5c6e80d3feac00c3", - "sha256": "sha256-8gRQXTIhspvFsNPJo6o09OBrtfKqdoOcBNGa5J7rG40=", + "rev": "c6af4789d7801fa243205a8ce9b8e3feffbf42b4", + "sha256": "sha256-PFtYr0cCf7sKE275o5FF/JkA7YonFLZwu1vVvpbVtEo=", "sparseCheckout": [], "type": "github" }, - "version": "bf08f400e1979b2af5383ccc5c6e80d3feac00c3" + "version": "c6af4789d7801fa243205a8ce9b8e3feffbf42b4" }, "nsid-tracker": { "cargoLock": null, @@ -399,13 +419,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "1be6c3bde64da46d4c369135479118e62690d3d5", - "sha256": "sha256-z54L8Iks5wMbxkiD4oabTMpguXtVuq9rZizo7zRhhAY=", + "rev": "6a299e8590b83b59d3a8124f670c9d36fa06208b", + "sha256": "sha256-NJxao+2AaytXR1N7NxbHszCFV7acxrq+I2cDFslGn5Q=", "sparseCheckout": [], "type": "git", "url": "https://tangled.org/@ptr.pet/random.wisp.place" }, - "version": "1be6c3bde64da46d4c369135479118e62690d3d5" + "version": "6a299e8590b83b59d3a8124f670c9d36fa06208b" }, "slopview": { "cargoLock": null, @@ -419,17 +439,17 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "0966b6b0488d9ec48af788ac6a9f7cf1bc968305", - "sha256": "sha256-rritHO9NbZAiO2X8gN1nVqK085KoswgrIPbt+WvyqR8=", + "rev": "2c2e4e4d7dd28795589917374abc37ee13437b11", + "sha256": "sha256-D00r6KfGSeM6D0fkBxn+eXSPy1vkMXggS5vE3tN62C0=", "sparseCheckout": [], "type": "git", "url": "https://tangled.org/@ptr.pet/slopview" }, - "version": "0966b6b0488d9ec48af788ac6a9f7cf1bc968305" + "version": "2c2e4e4d7dd28795589917374abc37ee13437b11" }, "stylix": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-14", "extract": null, "name": "stylix", "passthru": null, @@ -441,16 +461,16 @@ "name": null, "owner": "nix-community", "repo": "stylix", - "rev": "6d0502ef7447090abf8b00362b5cda8ac64595b4", - "sha256": "sha256-eVKt8wpQqg6Hq/UdHQkV1izXGloGQxdlE4SSk9/X27s=", + "rev": "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819", + "sha256": "sha256-YhnEcpiY6+l3RFA+cPmdTaeODGvNRuqE8B7VBjPVIxo=", "sparseCheckout": [], "type": "github" }, - "version": "6d0502ef7447090abf8b00362b5cda8ac64595b4" + "version": "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819" }, "tangled": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-18", "extract": null, "name": "tangled", "passthru": null, @@ -460,13 +480,13 @@ "fetchSubmodules": false, "leaveDotGit": false, "name": null, - "rev": "36685bea67871a693518a947eb0e067581056c9f", - "sha256": "sha256-zhfQlGEWLFh0QehOOzhWVGHEUvMrXhCJsQ+MKVbpAX8=", + "rev": "f165a3ee87200a7704723aabb440251a4d8533a7", + "sha256": "sha256-cbVRx2vdKcNMEsmiu6u3Ao6OkJ03FnqmlX8h2TH4r7s=", "sparseCheckout": [], "type": "git", "url": "https://tangled.org/tangled.org/core" }, - "version": "36685bea67871a693518a947eb0e067581056c9f" + "version": "f165a3ee87200a7704723aabb440251a4d8533a7" }, "tangled-sqlite-lib": { "cargoLock": null, @@ -504,7 +524,7 @@ }, "zen-browser": { "cargoLock": null, - "date": "2026-04-03", + "date": "2026-05-12", "extract": null, "name": "zen-browser", "passthru": null, @@ -516,11 +536,11 @@ "name": null, "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "9968536e8ee4f715554dfc994b5399982bcec9e5", - "sha256": "sha256-gECGt/SbcrGQZjeIYKY6WQtyaoLucOoEV8bpJaDVsEQ=", + "rev": "42f41abcef13dc81c85407b57aa1fd1bde46e46c", + "sha256": "sha256-yfxy9aTlIgU2Z36H8cJURgYLgjT4qvFeOzoAC/HXcKM=", "sparseCheckout": [], "type": "github" }, - "version": "9968536e8ee4f715554dfc994b5399982bcec9e5" + "version": "42f41abcef13dc81c85407b57aa1fd1bde46e46c" } } \ No newline at end of file diff --git a/_sources/generated.nix b/_sources/generated.nix index a963b9c..354c858 100644 --- a/_sources/generated.nix +++ b/_sources/generated.nix @@ -76,29 +76,43 @@ }; compare-plc = { pname = "compare-plc"; - version = "ffdc2ac48839352630ef3fdbeb1053ee53f0fb6e"; + version = "463db90aa92a40e6fcf9c91eafe1257a04e938a8"; src = fetchgit { url = "https://tangled.org/@ptr.pet/compare-plc"; - rev = "ffdc2ac48839352630ef3fdbeb1053ee53f0fb6e"; + rev = "463db90aa92a40e6fcf9c91eafe1257a04e938a8"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-yCO8prigt/88IZoBejIbmsqlR6cVfpZPfMy4aHbvG2s="; + sha256 = "sha256-jzlVoPGRWfKCCZxQ1SNMPnqCJ/3iZhRFUK/O+orehXg="; }; - date = "2026-04-19"; + date = "2026-05-07"; }; disko = { pname = "disko"; - version = "5ad85c82cc52264f4beddc934ba57f3789f28347"; + version = "63b4e7e6cf75307c1d26ac3762b886b5b0247267"; src = fetchFromGitHub { owner = "nix-community"; repo = "disko"; - rev = "5ad85c82cc52264f4beddc934ba57f3789f28347"; + rev = "63b4e7e6cf75307c1d26ac3762b886b5b0247267"; fetchSubmodules = false; - sha256 = "sha256-PAqwnsBSI9SVC2QugvQ3xeYCB0otOwCacB1ueQj2tgw="; + sha256 = "sha256-8GzXDOXckDWwST8TY5DbwYFjdvQLlP7K9CLSVx6iTTo="; }; - date = "2026-03-19"; + date = "2026-05-02"; + }; + drop = { + pname = "drop"; + version = "b184c0e959acb960f9b9500babf85abe94080f10"; + src = fetchgit { + url = "https://tangled.org/ptr.pet/drop"; + rev = "b184c0e959acb960f9b9500babf85abe94080f10"; + fetchSubmodules = false; + deepClone = false; + leaveDotGit = false; + sparseCheckout = [ ]; + sha256 = "sha256-00084BVoJb6Jp3kFbt/iAuK7Vs5RLigZD+KwmWkUx98="; + }; + date = "2026-05-19"; }; dysnomia = { pname = "dysnomia"; @@ -140,29 +154,29 @@ }; home = { pname = "home"; - version = "03bdcf84f092956943dcf9ef164481e463512716"; + version = "c68d2a24376da3860ef161373d91348b1542356b"; src = fetchFromGitHub { owner = "nix-community"; repo = "home-manager"; - rev = "03bdcf84f092956943dcf9ef164481e463512716"; + rev = "c68d2a24376da3860ef161373d91348b1542356b"; fetchSubmodules = false; - sha256 = "sha256-MCaiC3iWarAsmu8KJXgJHb1H8lf+BD9gymvxkbmNVdc="; + sha256 = "sha256-t7GW8f4So0b+ATPACjTkCy9UesbSidDW3X9w3utVC1A="; }; - date = "2026-04-03"; + date = "2026-05-14"; }; hydrant = { pname = "hydrant"; - version = "c93a1abc6cd03cdccdc412974f622424fe3f0253"; + version = "a9d29ed76de8ebfdec653081f1d325ea4c1adf56"; src = fetchgit { url = "https://tangled.org/@ptr.pet/hydrant"; - rev = "c93a1abc6cd03cdccdc412974f622424fe3f0253"; + rev = "a9d29ed76de8ebfdec653081f1d325ea4c1adf56"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-Uk96t1USqX5ARGMjHcxnFcuXL054NkPUytwA+dU54W8="; + sha256 = "sha256-eTdVSI5yt/XsEefY5Jj/QldXv4XalwfUT5loQLHsHMc="; }; - date = "2026-04-24"; + date = "2026-05-12"; }; limbusart = { pname = "limbusart"; @@ -180,15 +194,15 @@ }; moonlight = { pname = "moonlight"; - version = "8e1ba6f769ca85532b84c81c0c153824938222c7"; + version = "2db8e1ac40abf13298e81f093b40a460276b064c"; src = fetchFromGitHub { owner = "moonlight-mod"; repo = "moonlight"; - rev = "8e1ba6f769ca85532b84c81c0c153824938222c7"; + rev = "2db8e1ac40abf13298e81f093b40a460276b064c"; fetchSubmodules = false; - sha256 = "sha256-5m6SZrS8Phui8xHrg7wCVoKB1ikvmXqv1ml17Eu9sn8="; + sha256 = "sha256-jSg8y1wkTLdzZscf3HgXCPoIBfg/aSmTOKdbbJvyfrM="; }; - date = "2026-04-01"; + date = "2026-05-13"; }; ncr = { pname = "ncr"; @@ -206,27 +220,27 @@ }; nixos-hardware = { pname = "nixos-hardware"; - version = "80afbd13eea0b7c4ac188de949e1711b31c2b5f0"; + version = "9bd7c80d43e258aaa607d83b43661df11444d808"; src = fetchFromGitHub { owner = "NixOS"; repo = "nixos-hardware"; - rev = "80afbd13eea0b7c4ac188de949e1711b31c2b5f0"; + rev = "9bd7c80d43e258aaa607d83b43661df11444d808"; fetchSubmodules = false; - sha256 = "sha256-6MWaMLXK9QMndI94CIxeiPafi3wuO+imCtK9tfhsZdw="; + sha256 = "sha256-xYGrSg6354UK2K4WSQd4+TfyvfqmvFbSY+ZtGQUXK0c="; }; - date = "2026-04-03"; + date = "2026-05-12"; }; nixpkgs-xr = { pname = "nixpkgs-xr"; - version = "bf08f400e1979b2af5383ccc5c6e80d3feac00c3"; + version = "c6af4789d7801fa243205a8ce9b8e3feffbf42b4"; src = fetchFromGitHub { owner = "nix-community"; repo = "nixpkgs-xr"; - rev = "bf08f400e1979b2af5383ccc5c6e80d3feac00c3"; + rev = "c6af4789d7801fa243205a8ce9b8e3feffbf42b4"; fetchSubmodules = false; - sha256 = "sha256-8gRQXTIhspvFsNPJo6o09OBrtfKqdoOcBNGa5J7rG40="; + sha256 = "sha256-PFtYr0cCf7sKE275o5FF/JkA7YonFLZwu1vVvpbVtEo="; }; - date = "2026-04-03"; + date = "2026-05-14"; }; nsid-tracker = { pname = "nsid-tracker"; @@ -258,57 +272,57 @@ }; random-wisp-place = { pname = "random-wisp-place"; - version = "1be6c3bde64da46d4c369135479118e62690d3d5"; + version = "6a299e8590b83b59d3a8124f670c9d36fa06208b"; src = fetchgit { url = "https://tangled.org/@ptr.pet/random.wisp.place"; - rev = "1be6c3bde64da46d4c369135479118e62690d3d5"; + rev = "6a299e8590b83b59d3a8124f670c9d36fa06208b"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-z54L8Iks5wMbxkiD4oabTMpguXtVuq9rZizo7zRhhAY="; + sha256 = "sha256-NJxao+2AaytXR1N7NxbHszCFV7acxrq+I2cDFslGn5Q="; }; date = "2026-04-20"; }; slopview = { pname = "slopview"; - version = "0966b6b0488d9ec48af788ac6a9f7cf1bc968305"; + version = "2c2e4e4d7dd28795589917374abc37ee13437b11"; src = fetchgit { url = "https://tangled.org/@ptr.pet/slopview"; - rev = "0966b6b0488d9ec48af788ac6a9f7cf1bc968305"; + rev = "2c2e4e4d7dd28795589917374abc37ee13437b11"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-rritHO9NbZAiO2X8gN1nVqK085KoswgrIPbt+WvyqR8="; + sha256 = "sha256-D00r6KfGSeM6D0fkBxn+eXSPy1vkMXggS5vE3tN62C0="; }; date = "2026-04-25"; }; stylix = { pname = "stylix"; - version = "6d0502ef7447090abf8b00362b5cda8ac64595b4"; + version = "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819"; src = fetchFromGitHub { owner = "nix-community"; repo = "stylix"; - rev = "6d0502ef7447090abf8b00362b5cda8ac64595b4"; + rev = "e8ea85b4f7dddda9603e0f1ac86cd92cee3b2819"; fetchSubmodules = false; - sha256 = "sha256-eVKt8wpQqg6Hq/UdHQkV1izXGloGQxdlE4SSk9/X27s="; + sha256 = "sha256-YhnEcpiY6+l3RFA+cPmdTaeODGvNRuqE8B7VBjPVIxo="; }; - date = "2026-04-03"; + date = "2026-05-14"; }; tangled = { pname = "tangled"; - version = "36685bea67871a693518a947eb0e067581056c9f"; + version = "f165a3ee87200a7704723aabb440251a4d8533a7"; src = fetchgit { url = "https://tangled.org/tangled.org/core"; - rev = "36685bea67871a693518a947eb0e067581056c9f"; + rev = "f165a3ee87200a7704723aabb440251a4d8533a7"; fetchSubmodules = false; deepClone = false; leaveDotGit = false; sparseCheckout = [ ]; - sha256 = "sha256-zhfQlGEWLFh0QehOOzhWVGHEUvMrXhCJsQ+MKVbpAX8="; + sha256 = "sha256-cbVRx2vdKcNMEsmiu6u3Ao6OkJ03FnqmlX8h2TH4r7s="; }; - date = "2026-04-03"; + date = "2026-05-18"; }; tangled-sqlite-lib = { pname = "tangled-sqlite-lib"; @@ -334,14 +348,14 @@ }; zen-browser = { pname = "zen-browser"; - version = "9968536e8ee4f715554dfc994b5399982bcec9e5"; + version = "42f41abcef13dc81c85407b57aa1fd1bde46e46c"; src = fetchFromGitHub { owner = "0xc000022070"; repo = "zen-browser-flake"; - rev = "9968536e8ee4f715554dfc994b5399982bcec9e5"; + rev = "42f41abcef13dc81c85407b57aa1fd1bde46e46c"; fetchSubmodules = false; - sha256 = "sha256-gECGt/SbcrGQZjeIYKY6WQtyaoLucOoEV8bpJaDVsEQ="; + sha256 = "sha256-yfxy9aTlIgU2Z36H8cJURgYLgjT4qvFeOzoAC/HXcKM="; }; - date = "2026-04-03"; + date = "2026-05-12"; }; } diff --git a/deploy.nu b/deploy.nu index 52493bc..99e480a 100755 --- a/deploy.nu +++ b/deploy.nu @@ -62,7 +62,7 @@ let hosts = { }, } -def deploy [hostname: string] { +def deploy [hostname: string, boot: bool] { log info $"start deploy host ($hostname)" let hooktitle = $"/($hostname)/deploy" let hostcfg = $hosts | get $hostname @@ -70,13 +70,15 @@ def deploy [hostname: string] { webhook $hooktitle $"=== deploy for ($hostname): started ===\n\n(sys disks | to text)\n\n(sys mem | to text)" def run_step [action: string, block]: nothing -> bool { - webhook $"($hooktitle)/($action)" $"=== ($action) ($hostname) started ===" - let result = time-block { do $block | tee -e {print -r} | tee {print -r} | complete } - let failed = $result.result.exit_code != 0 - webhook $"($hooktitle)/($action)" $"=== ($action) ($hostname) is done ===\n\ntook ($result.elapsed)\n\nlog: ($result.result | upload-paste)" $result.result.exit_code $failed - return $failed + webhook $"($hooktitle)/($action)" $"=== ($action) ($hostname) started ===" + let start = date now + do $block + let exit_code = $env.LAST_EXIT_CODE + let elapsed = (date now) - $start + let failed = $exit_code != 0 + webhook $"($hooktitle)/($action)" $"=== ($action) ($hostname) is done ===\n\ntook ($elapsed)" $exit_code $failed + return $failed } - let result_dir = mktemp -d | path join "result" let build_cmd = { match $hostcfg.type { @@ -96,11 +98,16 @@ def deploy [hostname: string] { } let activate_cmd = { + let action = if $boot { "boot" } else { "switch" } let cmd = match $hostcfg.type { - "nixos" => $"sudo '($result_link)/bin/switch-to-configuration' 'switch'", + "nixos" => $"sudo '($result_link)/bin/switch-to-configuration' '($action)'", "home" => $"($result_link)/activate", } ssh $target $cmd + if $boot { + log info "rebooting target..." + ssh $target "sudo reboot" + } } if (run_step "activate" $activate_cmd) { return @@ -143,7 +150,7 @@ def update-inputs []: list -> bool { $is_ok } -def main [hostname: string = "wolumonde", --only-deploy (-d)] { +def main [hostname: string = "wolumonde", --only-deploy (-d), --boot (-b)] { webhook "deploy" "=== started deploying ===" mut inputs_updated = false @@ -158,9 +165,9 @@ def main [hostname: string = "wolumonde", --only-deploy (-d)] { } if $hostname == "all" { - $hosts | columns | each {|host| deploy $host} + $hosts | columns | each {|host| deploy $host $boot} } else { - deploy $hostname + deploy $hostname $boot } if $inputs_updated { diff --git a/dns/dnsconfig.js b/dns/dnsconfig.js index b808347..69cae52 100644 --- a/dns/dnsconfig.js +++ b/dns/dnsconfig.js @@ -95,9 +95,9 @@ D( "klbr.net", REG_NONE, DnsProvider(DSP_PRIMARY), - TRIMOUNTS(["api.compare.plc", "api.spool", "bsky"]), + TRIMOUNTS(["api.compare.plc", "api.spool", "bsky", "drop"]), DZWONEK("vpn"), - VOLSINII(["plc", "relay"]), + VOLSINII(["bobbin", "plc", "relay", "sl"]), TXT("@", "data endpoint for services and projects that fall under klbr.net."), TXT( "@", diff --git a/flake.lock b/flake.lock index 6c02711..e69cf1d 100644 --- a/flake.lock +++ b/flake.lock @@ -121,11 +121,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1776548001, - "narHash": "sha256-qH3mBrZnNsPdwpAgvG2Olgzsp5kt+Sibpm1tx1pxkcQ=", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", + "lastModified": 1778443072, + "narHash": "sha256-rNDJzV2JTV5SUTwv1cgKZYMdyoUYU9/YfegSaUf3QfY=", + "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre982522.b12141ef619e/nixexprs.tar.xz?lastModified=1776548001&rev=b12141ef619e0a9c1c84dc8c684040326f27cdcc" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre995699.da5ad661ba4e/nixexprs.tar.xz?lastModified=1778443072&rev=da5ad661ba4e5ef59ba743f0d112cbc30e474f32" }, "original": { "type": "tarball", diff --git a/flake.nix b/flake.nix index 2741643..4758f5c 100644 --- a/flake.nix +++ b/flake.nix @@ -46,8 +46,8 @@ nixosConfigurations = import ./hosts { inherit lib tlib allPkgsSets; }; homeConfigurations = import ./users { inherit lib tlib allPkgsSets; }; - # legacyPackages = l.mapAttrs (_: set: set.pkgs // { inherit (set) inputs; }) allPkgsSets; - # packages = l.mapAttrs (_: set: set.exported) allPkgsSets; + legacyPackages = l.mapAttrs (_: set: set.pkgs // { inherit (set) inputs; }) allPkgsSets; + packages = l.mapAttrs (_: set: set.exported) allPkgsSets; apps = miscApps; # topology = lib.mapAttrs (_: pkgs: diff --git a/hosts/trimounts/modules/drop.nix b/hosts/trimounts/modules/drop.nix new file mode 100644 index 0000000..a4ccb1e --- /dev/null +++ b/hosts/trimounts/modules/drop.nix @@ -0,0 +1,44 @@ +{pkgs, terra, inputs, ...}: +{ + users.users.drop = { + isSystemUser = true; + group = "drop"; + home = "/var/lib/drop"; + createHome = true; + }; + users.groups.drop = {}; + + systemd.services.drop = { + description = "drop"; + wantedBy = ["multi-user.target"]; + after = ["network.target"]; + environment = { + PORT = "8663"; + }; + serviceConfig = { + Type = "simple"; + ExecStart = "${terra.drop}/bin/drop"; + Restart = "on-failure"; + RestartSec = "10s"; + StateDirectory = "drop"; + WorkingDirectory = "/var/lib/drop"; + User = "drop"; + Group = "drop"; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectSystem = "strict"; + ProtectHome = true; + ReadWritePaths = ["/var/lib/drop"]; + }; + }; + + security.acme.certs."drop.klbr.net" = {}; + services.nginx.virtualHosts."drop.klbr.net" = { + useACMEHost = "drop.klbr.net"; + forceSSL = true; + quic = true; + kTLS = true; + locations."/".proxyPass = "http://127.0.0.1:8663"; + extraConfig = "client_max_body_size 100M;"; + }; +} \ No newline at end of file diff --git a/hosts/trimounts/modules/tangled.nix/default.nix b/hosts/trimounts/modules/tangled.nix/default.nix index 0c4a114..49594ba 100644 --- a/hosts/trimounts/modules/tangled.nix/default.nix +++ b/hosts/trimounts/modules/tangled.nix/default.nix @@ -1,6 +1,6 @@ { imports = [ ./knot.nix - ./spindle.nix + # ./spindle.nix ]; } diff --git a/hosts/volsinii/modules/bobbin.nix b/hosts/volsinii/modules/bobbin.nix new file mode 100644 index 0000000..8f05557 --- /dev/null +++ b/hosts/volsinii/modules/bobbin.nix @@ -0,0 +1,120 @@ +{ + terra, + ... +}: +let + domain = "bobbin.klbr.net"; + bobbinPort = 8090; + hydrantPort = 13010; + slingshotPort = 8081; + hydrantPkg = terra.hydrant.overrideAttrs (old: { + doCheck = false; + }); +in +{ + users.users.bobbin = { + isSystemUser = true; + group = "bobbin"; + home = "/var/lib/bobbin"; + }; + users.groups.bobbin = { }; + + users.users.hydrant-bobbin = { + isSystemUser = true; + group = "hydrant-bobbin"; + home = "/var/lib/hydrant-bobbin"; + }; + users.groups.hydrant-bobbin = { }; + + systemd.services.hydrant-bobbin = { + description = "hydrant atproto relay for bobbin"; + wantedBy = [ "multi-user.target" ]; + after = [ + "network-online.target" + "hydrant.service" + "allegedly.service" + ]; + wants = [ + "network-online.target" + "hydrant.service" + "allegedly.service" + ]; + environment = { + HYDRANT_API_BIND = "127.0.0.1:${toString hydrantPort}"; + HYDRANT_PLC_URL = "http://127.0.0.1:8000"; + HYDRANT_RELAY_HOSTS = "http://127.0.0.1:13579"; + HYDRANT_FILTER_SIGNALS = "sh.tangled.actor.profile,sh.tangled.feed.reaction,sh.tangled.feed.star,sh.tangled.git.refUpdate,sh.tangled.graph.follow,sh.tangled.graph.vouch,sh.tangled.knot,sh.tangled.knot.member,sh.tangled.label.definition,sh.tangled.label.op,sh.tangled.pipeline,sh.tangled.pipeline.status,sh.tangled.publicKey,sh.tangled.repo,sh.tangled.repo.artifact,sh.tangled.repo.collaborator,sh.tangled.repo.issue,sh.tangled.repo.issue.comment,sh.tangled.repo.issue.state,sh.tangled.repo.pull,sh.tangled.repo.pull.comment,sh.tangled.repo.pull.status,sh.tangled.spindle,sh.tangled.spindle.member,sh.tangled.string"; + HYDRANT_FILTER_COLLECTIONS = "sh.tangled.*"; + HYDRANT_VERIFY_SIGNATURES = "none"; + HYDRANT_REPO_FETCH_TIMEOUT = "1h"; + HYDRANT_FIREHOSE_WORKERS = "24"; + HYDRANT_BACKFILL_CONCURRENCY_LIMIT = "64"; + }; + serviceConfig = { + Type = "simple"; + ExecStart = "${hydrantPkg}/bin/hydrant"; + Restart = "on-failure"; + RestartSec = "10s"; + StateDirectory = "hydrant-bobbin"; + WorkingDirectory = "/var/lib/hydrant-bobbin"; + User = "hydrant-bobbin"; + Group = "hydrant-bobbin"; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectSystem = "strict"; + ProtectHome = true; + ReadWritePaths = [ "/var/lib/hydrant-bobbin" ]; + LimitNOFILE = 1048576; + }; + }; + + systemd.services.bobbin = { + description = "bobbin tangled graph index"; + wantedBy = [ "multi-user.target" ]; + after = [ + "network-online.target" + "hydrant-bobbin.service" + "slingshot.service" + ]; + wants = [ + "network-online.target" + "hydrant-bobbin.service" + "slingshot.service" + ]; + environment = { + BOBBIN_BIND = "127.0.0.1:${toString bobbinPort}"; + BOBBIN_HYDRANT_URL = "http://127.0.0.1:${toString hydrantPort}"; + BOBBIN_SLINGSHOT_URL = "http://127.0.0.1:${toString slingshotPort}"; + # BOBBIN_LOG_FORMAT = "json"; + BOBBIN_LOG = "info"; + }; + serviceConfig = { + Type = "simple"; + ExecStart = "${terra.bobbin}/bin/bobbin"; + Restart = "on-failure"; + RestartSec = "10s"; + StateDirectory = "bobbin"; + WorkingDirectory = "/var/lib/bobbin"; + User = "bobbin"; + Group = "bobbin"; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectSystem = "strict"; + ProtectHome = true; + ReadWritePaths = [ "/var/lib/bobbin" ]; + LimitNOFILE = 1048576; + }; + }; + + security.acme.certs.${domain} = { }; + services.nginx.virtualHosts.${domain} = { + useACMEHost = domain; + forceSSL = true; + quic = true; + kTLS = true; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString bobbinPort}"; + proxyWebsockets = true; + }; + }; +} diff --git a/hosts/volsinii/modules/relay.nix b/hosts/volsinii/modules/relay.nix index 307063d..cc0c662 100644 --- a/hosts/volsinii/modules/relay.nix +++ b/hosts/volsinii/modules/relay.nix @@ -1,9 +1,9 @@ -{terra, ...}: +{ terra, ... }: let port = "13579"; pkg = terra.hydrant.overrideAttrs (old: { cargoBuildNoDefaultFeatures = true; - cargoBuildFeatures = ["relay"]; + cargoBuildFeatures = [ "relay" ]; doCheck = false; }); in @@ -13,17 +13,17 @@ in group = "hydrant"; home = "/var/lib/hydrant"; }; - users.groups.hydrant = {}; + users.groups.hydrant = { }; systemd.services.hydrant = { description = "hydrant atproto relay"; - wantedBy = ["multi-user.target"]; - after = ["network.target"]; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; environment = { - HYDRANT_API_PORT = port; + HYDRANT_API_BIND = "0.0.0.0:${port},[::]:${port}"; HYDRANT_CURSOR_SAVE_INTERVAL = "1sec"; - HYDRANT_SEED_HOSTS= "https://bsky.network,https://relay.bas.sh"; - HYDRANT_PLC_URL = "http://localhost:8000"; + HYDRANT_SEED_HOSTS = "https://bsky.network,https://relay.bas.sh"; + HYDRANT_PLC_URL = "http://127.0.0.1:8000"; HYDRANT_DATA_COMPRESSION = "zstd"; HYDRANT_JOURNAL_COMPRESSION = "zstd"; HYDRANT_RATE_TIERS = "default:5000/10.0/18000000/432000000/10000000"; @@ -43,7 +43,7 @@ in PrivateTmp = true; ProtectSystem = "strict"; ProtectHome = true; - ReadWritePaths = ["/var/lib/hydrant"]; + ReadWritePaths = [ "/var/lib/hydrant" ]; LimitNOFILE = 1048576; }; }; @@ -63,7 +63,7 @@ in } ]; - security.acme.certs."plc.klbr.net".extraDomainNames = ["relay.klbr.net"]; + security.acme.certs."plc.klbr.net".extraDomainNames = [ "relay.klbr.net" ]; services.nginx.virtualHosts."relay.klbr.net" = { useACMEHost = "plc.klbr.net"; forceSSL = true; @@ -76,4 +76,4 @@ in }; locations."/_health".proxyPass = "http://localhost:${port}"; }; -} \ No newline at end of file +} diff --git a/hosts/volsinii/modules/slingshot.nix b/hosts/volsinii/modules/slingshot.nix new file mode 100644 index 0000000..2016f1f --- /dev/null +++ b/hosts/volsinii/modules/slingshot.nix @@ -0,0 +1,67 @@ +{ + terra, + ... +}: + +let + domain = "sl.klbr.net"; + port = 8081; +in +{ + users.users.slingshot = { + isSystemUser = true; + group = "slingshot"; + home = "/var/lib/slingshot"; + }; + users.groups.slingshot = { }; + + systemd.services.slingshot = { + description = "slingshot atproto record edge cache"; + wantedBy = [ "multi-user.target" ]; + after = [ "network-online.target" ]; + wants = [ "network-online.target" ]; + environment = { + RUST_BACKTRACE = "1"; + RUST_LOG = "info,slingshot=trace"; + }; + serviceConfig = { + Type = "simple"; + ExecStart = '' + ${terra.slingshot}/bin/slingshot \ + --jetstream wss://jetstream1.us-east.fire.hose.cam/subscribe \ + --cache-dir /var/lib/slingshot/cache \ + --bind 127.0.0.1:${toString port} \ + --record-cache-memory-mb 1024 \ + --record-cache-disk-gb 72 \ + --identity-cache-memory-mb 1024 \ + --identity-cache-disk-gb 8 \ + --collect-metrics \ + --bind-metrics 127.0.0.1:8765 + ''; + Restart = "on-failure"; + RestartSec = "10s"; + StateDirectory = "slingshot"; + WorkingDirectory = "/var/lib/slingshot"; + User = "slingshot"; + Group = "slingshot"; + NoNewPrivileges = true; + PrivateTmp = true; + ProtectSystem = "strict"; + ProtectHome = true; + ReadWritePaths = [ "/var/lib/slingshot" ]; + LimitNOFILE = 1048576; + }; + }; + + security.acme.certs.${domain} = { }; + services.nginx.virtualHosts.${domain} = { + useACMEHost = domain; + forceSSL = true; + quic = true; + kTLS = true; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString port}"; + proxyWebsockets = true; + }; + }; +} diff --git a/nvfetcher.toml b/nvfetcher.toml index 573d187..0373e4f 100644 --- a/nvfetcher.toml +++ b/nvfetcher.toml @@ -74,6 +74,10 @@ fetch.git = "https://tangled.org/@ptr.pet/random.wisp.place" src.git = "https://tangled.org/@ptr.pet/slopview" fetch.git = "https://tangled.org/@ptr.pet/slopview" +[drop] +src.git = "https://tangled.org/ptr.pet/drop" +fetch.git = "https://tangled.org/ptr.pet/drop" + ## TANGLED ## [tangled] diff --git a/pkgs-set/exported.nix b/pkgs-set/exported.nix index a814f18..37693df 100644 --- a/pkgs-set/exported.nix +++ b/pkgs-set/exported.nix @@ -1,4 +1,6 @@ [ "comic-mono" + "ik-llama-cpp" + "llama-cpp-mtp" "percli" ] diff --git a/pkgs-set/pkgs/bobbin.nix b/pkgs-set/pkgs/bobbin.nix new file mode 100644 index 0000000..7ef7a2f --- /dev/null +++ b/pkgs-set/pkgs/bobbin.nix @@ -0,0 +1,45 @@ +{ + lib, + inputs, + rustPlatform, + fetchzip, + ... +}: + +rustPlatform.buildRustPackage rec { + pname = "bobbin"; + version = "05df522f1fd2babc3540e2652c6ed348221612dd"; + + src = fetchzip { + url = "https://tangled.org/oyster.cafe/bobbin/archive/${version}.tar.gz"; + hash = "sha256-ly9q9gVXfzvl1FRhGYFK7XYkybUdH4PLccqHqXQwcHk="; + stripRoot = false; + }; + + cargoHash = "sha256-Ojy5LZvyM3J+0zwMn96G/K2XXpj5ASM7ho5Y3Xj8Apg="; + + postPatch = '' + substituteInPlace Cargo.toml \ + --replace-fail 'rust-version = "1.95"' 'rust-version = "1.94"' + ''; + + cargoBuildFlags = [ + "--bin" + "bobbin" + "--package" + "bobbin" + ]; + + preBuild = '' + export BOBBIN_LEXICONS_DIR=${inputs.tangled}/lexicons + ''; + + doCheck = false; + + meta = { + description = "Tangled graph edge index and XRPC service"; + homepage = "https://tangled.org/oyster.cafe/bobbin"; + license = lib.licenses.mit; + mainProgram = "bobbin"; + }; +} diff --git a/pkgs-set/pkgs/drop.nix b/pkgs-set/pkgs/drop.nix new file mode 100644 index 0000000..ceea789 --- /dev/null +++ b/pkgs-set/pkgs/drop.nix @@ -0,0 +1,4 @@ +{inputs, callPackage, ...}: callPackage "${inputs.drop}/nix" { + modules = callPackage "${inputs.drop}/nix/modules.nix" {}; + webModules = callPackage "${inputs.drop}/nix/web-modules.nix" {}; +} diff --git a/pkgs-set/pkgs/headroom-ai.nix b/pkgs-set/pkgs/headroom-ai.nix new file mode 100644 index 0000000..edb8304 --- /dev/null +++ b/pkgs-set/pkgs/headroom-ai.nix @@ -0,0 +1,136 @@ +{ + python3Packages, + ast-grep, + onnxruntime, + ... +}: +python3Packages.callPackage ( +{ + lib, + buildPythonPackage, + fetchFromGitHub, + litellm, + tiktoken, + pydantic, + click, + rich, + opentelemetry-api, + ast-grep-py, + python, + magika, + mcp, + fastapi, + uvicorn, + httpx, + h2, + openai, + zstandard, + websockets, + onnxruntime, + transformers, + watchdog, + sqlite-vec, + rtk, + rustPlatform, + onnxruntimeBin, + pkg-config, + pythonRelaxDepsHook, + ... +}: +let +ast-grep-cli = buildPythonPackage rec { + pname = "ast-grep-cli"; + version = ast-grep.version; + format = "other"; + dontUnpack = true; + dontBuild = true; + propagatedBuildInputs = [ ast-grep ]; + installPhase = '' + dist=$out/${python.sitePackages}/ast_grep_cli-${version}.dist-info + mkdir -p $dist + printf 'Metadata-Version: 2.1\nName: ast-grep-cli\nVersion: ${version}\n' \ + > $dist/METADATA + touch $dist/RECORD + ''; +}; +in +buildPythonPackage rec { + pname = "headroom-ai"; + version = "0.21.36"; + pyproject = true; + + src = fetchFromGitHub { + owner = "chopratejas"; + repo = "headroom"; + rev = "v${version}"; + hash = "sha256-XXCuie9NPrQO0gXLv3+qtVScBowxlSXf2tsM69M9jDU="; + }; + + env.ORT_LIB_LOCATION = "${onnxruntimeBin}/lib"; + env.ORT_PREFER_DYNAMIC_LINK = "1"; + + nativeBuildInputs = with rustPlatform; [ + cargoSetupHook + maturinBuildHook + pkg-config + pythonRelaxDepsHook + ]; + buildInputs = [onnxruntimeBin]; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + hash = "sha256-WQBvil0bsS6/Z6b+uRauwOQq4VZ57VwAoghcyFdVgLE="; + }; + + makeWrapperArgs = [ + "--set PYTHONPATH ${python.pkgs.makePythonPath dependencies}" + ]; + + pythonRelaxDeps = ["litellm"]; + + dependencies = [ + tiktoken + pydantic + click + rich + litellm + ast-grep-py + ast-grep-cli + opentelemetry-api + magika + mcp + fastapi + uvicorn + httpx + h2 + openai + zstandard + websockets + onnxruntime + transformers + watchdog + sqlite-vec + rtk + ]; + + postPatch = '' + substituteInPlace headroom/install/runtime.py \ + --replace-fail 'sys.executable, "-m", "headroom.cli"' '"headroom"' + substituteInPlace headroom/cli/wrap.py \ + --replace-fail 'sys.executable, "-m", "headroom.cli", "proxy"' '"headroom", "proxy"' + # substituteInPlace headroom/cli/wrap.py \ + # --replace-fail \ + # 'f'"'"'env_key = "OPENAI_API_KEY"\n'"'"''' \ + # '""' + ''; + + doCheck = false; + + meta = { + description = "context optimization layer for llm applications"; + homepage = "https://github.com/chopratejas/headroom"; + license = lib.licenses.asl20; + mainProgram = "headroom"; + }; +} +) { inherit ast-grep; onnxruntimeBin = onnxruntime; } \ No newline at end of file diff --git a/pkgs-set/pkgs/helium.nix b/pkgs-set/pkgs/helium.nix index 390c8d4..b094451 100644 --- a/pkgs-set/pkgs/helium.nix +++ b/pkgs-set/pkgs/helium.nix @@ -5,7 +5,7 @@ }: pkgs.appimageTools.wrapType2 rec { pname = "helium"; - version = "0.11.4.1"; + version = "0.12.3.1"; src = let platformMap = { @@ -16,7 +16,7 @@ pkgs.appimageTools.wrapType2 rec { platform = platformMap.${pkgs.system}; hashes = { - "x86_64-linux" = "sha256-EavHZuleVkgD4J+gcUQ2ZgGHjvWXzdamUh7r42bUkas="; + "x86_64-linux" = "sha256-VnOhzhAulvFNBB/0AD1d+K/TzfFL9Zwtk/vcm5vWl+I="; "aarch64-linux" = ""; }; diff --git a/pkgs-set/pkgs/ik-llama-cpp.nix b/pkgs-set/pkgs/ik-llama-cpp.nix new file mode 100644 index 0000000..22f6fe1 --- /dev/null +++ b/pkgs-set/pkgs/ik-llama-cpp.nix @@ -0,0 +1,197 @@ +{ + lib, + autoAddDriverRunpath, + cmake, + fetchFromGitHub, + installShellFiles, + nix-update-script, + stdenv, + + config, + cudaSupport ? config.cudaSupport or false, + cudaPackages ? { }, + + rocmSupport ? config.rocmSupport or false, + rocmPackages ? { }, + rocmGpuTargets ? rocmPackages.clr.localGpuTargets or rocmPackages.clr.gpuTargets or [], + + openclSupport ? false, + clblast, + + blasSupport ? builtins.all (x: !x) [ + cudaSupport + metalSupport + openclSupport + rocmSupport + vulkanSupport + ], + blas, + + fetchNpmDeps, + nodejs, + npmHooks, + + pkg-config, + metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 && !openclSupport, + vulkanSupport ? false, + rpcSupport ? false, + openssl, + shaderc, + vulkan-headers, + vulkan-loader, + ninja, + + # -march=native is non-deterministic; override with platform-specific flags if needed + native ? false, + + ... +}: + +let + # It's necessary to consistently use backendStdenv when building with CUDA support, + # otherwise we get libstdc++ errors downstream. + # cuda imposes an upper bound on the gcc version + effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv; + inherit (lib) + cmakeBool + cmakeFeature + optionals + optionalString + ; + + cudaBuildInputs = with cudaPackages; [ + cuda_cccl # + + # A temporary hack for reducing the closure size, remove once cudaPackages + # have stopped using lndir: https://github.com/NixOS/nixpkgs/issues/271792 + cuda_cudart + libcublas + ]; + + rocmBuildInputs = with rocmPackages; [ + clr + hipblas + rocblas + ]; + + vulkanBuildInputs = [ + shaderc + vulkan-headers + vulkan-loader + ]; +in +effectiveStdenv.mkDerivation (finalAttrs: { + pname = "ik-llama-cpp"; + version = "1744-pr"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchFromGitHub { + owner = "SamuelOliveirads"; + repo = "ik_llama.cpp"; + rev = "a703033607ed3edbeab0205d8c9ad75cc1b5759f"; + hash = "sha256-737rn0o8pnFYMZuhWFvs0TE4JfPlU4ueTKj67JUO5nE="; + leaveDotGit = true; + postFetch = '' + git -C "$out" rev-parse --short HEAD > $out/COMMIT + find "$out" -name .git -print0 | xargs -0 rm -rf + ''; + }; + + patches = [ ]; + + postPatch = '' + # We will try building without webui for now since sass-embedded is a pain in Nix + # and users usually want the server binary for API access anyway. + # If they really want the UI, we can try more hacks later. + rm -rf examples/server/webui + ''; + + nativeBuildInputs = [ + cmake + installShellFiles + ninja + pkg-config + ] + ++ optionals cudaSupport [ + cudaPackages.cuda_nvcc + autoAddDriverRunpath + ]; + + buildInputs = + optionals cudaSupport cudaBuildInputs + ++ optionals openclSupport [ clblast ] + ++ optionals rocmSupport rocmBuildInputs + ++ optionals blasSupport [ blas ] + ++ optionals vulkanSupport vulkanBuildInputs + ++ [ openssl ]; + + preConfigure = '' + prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)" + ''; + + cmakeFlags = [ + (cmakeBool "GGML_NATIVE" native) + (cmakeBool "LLAMA_BUILD_EXAMPLES" true) + (cmakeBool "LLAMA_BUILD_SERVER" true) + (cmakeBool "LLAMA_BUILD_TESTS" (finalAttrs.finalPackage.doCheck or false)) + (cmakeBool "LLAMA_OPENSSL" true) + (cmakeBool "BUILD_SHARED_LIBS" true) + (cmakeBool "GGML_BLAS" blasSupport) + (cmakeBool "GGML_CLBLAST" openclSupport) + (cmakeBool "GGML_CUDA" cudaSupport) + (cmakeBool "GGML_HIP" rocmSupport) + (cmakeBool "GGML_METAL" metalSupport) + (cmakeBool "GGML_RPC" rpcSupport) + (cmakeBool "GGML_VULKAN" vulkanSupport) + (cmakeFeature "LLAMA_BUILD_NUMBER" finalAttrs.version) + ] + ++ optionals cudaSupport [ + (cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString) + ] + ++ optionals rocmSupport [ + (cmakeFeature "CMAKE_HIP_COMPILER" "''${rocmPackages.clr.hipClangPath}/clang++") + (cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmGpuTargets)) + ] + ++ optionals metalSupport [ + (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") + (cmakeBool "LLAMA_METAL_EMBED_LIBRARY" true) + ] + ++ optionals rpcSupport [ + # This is done so we can move rpc-server out of bin because llama.cpp doesn't + # install rpc-server in their install target. + (cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + ]; + + # upstream plans on adding targets at the cmakelevel, remove those + # additional steps after that + postInstall = '' + # Match previous binary name for this package + # In ik_llama.cpp fork, the server binary might be named llama-server + # Let's check if it exists before symlinking + if [ -f $out/bin/llama-server ]; then + ln -sf $out/bin/llama-server $out/bin/llama + fi + + mkdir -p $out/include + cp $src/include/llama.h $out/include/ + + '' + + optionalString rpcSupport "cp bin/rpc-server $out/bin/llama-rpc-server"; + + # the tests are failing as of 2025-08 + doCheck = false; + + meta = { + description = "Inference of Meta's LLaMA model (and others) in pure C/C++ (ikawrakow fork, PR 1744)"; + homepage = "https://github.com/SamuelOliveirads/ik_llama.cpp"; + license = lib.licenses.mit; + mainProgram = "llama"; + platforms = lib.platforms.unix; + badPlatforms = optionals (cudaSupport || openclSupport) lib.platforms.darwin; + broken = metalSupport && !effectiveStdenv.hostPlatform.isDarwin; + }; +}) diff --git a/pkgs-set/pkgs/llama-cpp-mtp.nix b/pkgs-set/pkgs/llama-cpp-mtp.nix new file mode 100644 index 0000000..0ae1d53 --- /dev/null +++ b/pkgs-set/pkgs/llama-cpp-mtp.nix @@ -0,0 +1,236 @@ +{ + lib, + autoAddDriverRunpath, + cmake, + fetchFromGitHub, + fetchpatch, + installShellFiles, + nix-update-script, + stdenv, + + config, + cudaSupport ? config.cudaSupport, + cudaPackages ? { }, + + rocmSupport ? config.rocmSupport, + rocmPackages ? { }, + rocmGpuTargets ? rocmPackages.clr.localGpuTargets or rocmPackages.clr.gpuTargets, + + openclSupport ? false, + clblast, + + blasSupport ? builtins.all (x: !x) [ + cudaSupport + metalSupport + openclSupport + rocmSupport + vulkanSupport + ], + blas, + + fetchNpmDeps, + nodejs, + npmHooks, + + pkg-config, + metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 && !openclSupport, + vulkanSupport ? false, + rpcSupport ? false, + openssl, + llama-cpp, + shaderc, + vulkan-headers, + vulkan-loader, + ninja, + + # -march=native is non-deterministic; override with platform-specific flags if needed + native ? false, + + ... +}: + +let + # It's necessary to consistently use backendStdenv when building with CUDA support, + # otherwise we get libstdc++ errors downstream. + # cuda imposes an upper bound on the gcc version + effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv; + inherit (lib) + cmakeBool + cmakeFeature + optionals + optionalString + ; + + cudaBuildInputs = with cudaPackages; [ + cuda_cccl # + + # A temporary hack for reducing the closure size, remove once cudaPackages + # have stopped using lndir: https://github.com/NixOS/nixpkgs/issues/271792 + cuda_cudart + libcublas + ]; + + rocmBuildInputs = with rocmPackages; [ + clr + hipblas + rocblas + ]; + + vulkanBuildInputs = [ + shaderc + vulkan-headers + vulkan-loader + ]; +in +effectiveStdenv.mkDerivation (finalAttrs: { + pname = "llama-cpp-mtp"; + version = "9020"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchFromGitHub { + owner = "ggml-org"; + repo = "llama.cpp"; + tag = "b${finalAttrs.version}"; + hash = "sha256-DBCOGzWN8uQaePikwE5XrsK3uDg4qWCvY4tT3zQeQpY="; + leaveDotGit = true; + postFetch = '' + git -C "$out" rev-parse --short HEAD > $out/COMMIT + find "$out" -name .git -print0 | xargs -0 rm -rf + ''; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/ggml-org/llama.cpp/pull/22673.patch"; + hash = "sha256-/m0hAQHljt3EpdhLKLED1je/aV8JrzD8pyeh7k4Nvuk="; + }) + ]; + + postPatch = '' + find tools/server/public -type f -not -name loading.html -delete + ''; + + nativeBuildInputs = [ + cmake + installShellFiles + ninja + nodejs + npmHooks.npmConfigHook + pkg-config + ] + ++ optionals cudaSupport [ + cudaPackages.cuda_nvcc + autoAddDriverRunpath + ]; + + buildInputs = + optionals cudaSupport cudaBuildInputs + ++ optionals openclSupport [ clblast ] + ++ optionals rocmSupport rocmBuildInputs + ++ optionals blasSupport [ blas ] + ++ optionals vulkanSupport vulkanBuildInputs + ++ [ openssl ]; + + npmRoot = "tools/server/webui"; + npmDepsHash = "sha256-k62LIbyY2DXvs7XXbX0lNPiYxuYzeJUyQtS4eA+68f8="; + npmDeps = fetchNpmDeps { + name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps"; + inherit (finalAttrs) src patches; + preBuild = '' + pushd ${finalAttrs.npmRoot} + ''; + hash = finalAttrs.npmDepsHash; + }; + + preConfigure = '' + prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)" + pushd ${finalAttrs.npmRoot} + npm run build + popd + ''; + + cmakeFlags = [ + (cmakeBool "GGML_NATIVE" native) + (cmakeBool "LLAMA_BUILD_EXAMPLES" false) + (cmakeBool "LLAMA_BUILD_SERVER" true) + (cmakeBool "LLAMA_BUILD_TESTS" (finalAttrs.finalPackage.doCheck or false)) + (cmakeBool "LLAMA_OPENSSL" true) + (cmakeBool "BUILD_SHARED_LIBS" true) + (cmakeBool "GGML_BLAS" blasSupport) + (cmakeBool "GGML_CLBLAST" openclSupport) + (cmakeBool "GGML_CUDA" cudaSupport) + (cmakeBool "GGML_HIP" rocmSupport) + (cmakeBool "GGML_METAL" metalSupport) + (cmakeBool "GGML_RPC" rpcSupport) + (cmakeBool "GGML_VULKAN" vulkanSupport) + (cmakeFeature "LLAMA_BUILD_NUMBER" finalAttrs.version) + ] + ++ optionals cudaSupport [ + (cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaPackages.flags.cmakeCudaArchitecturesString) + ] + ++ optionals rocmSupport [ + (cmakeFeature "CMAKE_HIP_COMPILER" "${rocmPackages.clr.hipClangPath}/clang++") + (cmakeFeature "CMAKE_HIP_ARCHITECTURES" (builtins.concatStringsSep ";" rocmGpuTargets)) + ] + ++ optionals metalSupport [ + (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") + (cmakeBool "LLAMA_METAL_EMBED_LIBRARY" true) + ] + ++ optionals rpcSupport [ + # This is done so we can move rpc-server out of bin because llama.cpp doesn't + # install rpc-server in their install target. + (cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + ]; + + # upstream plans on adding targets at the cmakelevel, remove those + # additional steps after that + postInstall = '' + # Match previous binary name for this package + ln -sf $out/bin/llama-cli $out/bin/llama + + mkdir -p $out/include + cp $src/include/llama.h $out/include/ + + '' + + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd llama-server --bash <($out/bin/llama-server --completion-bash) + '' + + optionalString rpcSupport "cp bin/rpc-server $out/bin/llama-rpc-server"; + + # the tests are failing as of 2025-08 + doCheck = false; + + passthru = { + tests = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + metal = llama-cpp.override { metalSupport = true; }; + }; + updateScript = nix-update-script { + attrPath = "llama-cpp-mtp"; + extraArgs = [ + "--version-regex" + "b(.*)" + ]; + }; + }; + + meta = { + description = "Inference of Meta's LLaMA model (and others) in pure C/C++ (MTP Support)"; + homepage = "https://github.com/ggml-org/llama.cpp"; + license = lib.licenses.mit; + mainProgram = "llama"; + maintainers = with lib.maintainers; [ + booxter + dit7ya + philiptaron + xddxdd + yuannan + ]; + platforms = lib.platforms.unix; + badPlatforms = optionals (cudaSupport || openclSupport) lib.platforms.darwin; + broken = metalSupport && !effectiveStdenv.hostPlatform.isDarwin; + }; +}) \ No newline at end of file diff --git a/pkgs-set/pkgs/llama-cpp.nix b/pkgs-set/pkgs/llama-cpp.nix index 081ceb2..f805258 100644 --- a/pkgs-set/pkgs/llama-cpp.nix +++ b/pkgs-set/pkgs/llama-cpp.nix @@ -83,7 +83,7 @@ let in effectiveStdenv.mkDerivation (finalAttrs: { pname = "llama-cpp"; - version = "8925"; + version = "9095"; outputs = [ "out" diff --git a/pkgs-set/pkgs/slingshot.nix b/pkgs-set/pkgs/slingshot.nix new file mode 100644 index 0000000..f4d6d4e --- /dev/null +++ b/pkgs-set/pkgs/slingshot.nix @@ -0,0 +1,50 @@ +{ + lib, + rustPlatform, + fetchgit, + pkg-config, + perl, + openssl, + zstd, + ... +}: + +rustPlatform.buildRustPackage rec { + pname = "slingshot"; + version = "2c3a9bf03f0e413f71442896ce6e8f5ea298a7a4"; + + src = fetchgit { + url = "https://tangled.org/microcosm.blue/microcosm-rs"; + rev = version; + hash = "sha256-U5Sj8CfQKvlgSHyGN+JT34PIQL1VYPIrPN+M88y0Y6k="; + }; + + cargoHash = "sha256-G5GDTfsHeO302R/YKKJnjBjEeDKc0wb+ghIt+GyssaE="; + + cargoBuildFlags = [ + "--package" + "slingshot" + ]; + + nativeBuildInputs = [ + perl + pkg-config + ]; + + buildInputs = [ + openssl + zstd + ]; + + doCheck = false; + + meta = { + description = "atproto record edge cache"; + homepage = "https://tangled.org/microcosm.blue/microcosm-rs"; + license = with lib.licenses; [ + asl20 + mit + ]; + mainProgram = "slingshot"; + }; +} diff --git a/users/mayer/default.nix b/users/mayer/default.nix index 8c3dc86..63b973b 100644 --- a/users/mayer/default.nix +++ b/users/mayer/default.nix @@ -164,7 +164,7 @@ in additionalLibs = with pkgs; [libXtst libxkbcommon libXt]; }) # xivlauncher - lutris + # lutris signal-desktop bs-manager cemu @@ -178,8 +178,10 @@ in gh codex codex-acp - # sidelaoding + rtk + pi-coding-agent ]) ++ [ + terra.headroom-ai terra.helium terra.antigravity # terra.pi-coding-agent diff --git a/users/modules/niri/config.kdl b/users/modules/niri/config.kdl index 5916d5b..8f2878a 100644 --- a/users/modules/niri/config.kdl +++ b/users/modules/niri/config.kdl @@ -148,7 +148,12 @@ window-rule { window-rule { match app-id=r#"^org\.keepassxc\.KeePassXC$"# match app-id=r#"^org\.gnome\.World\.Secrets$"# - // match namespace="^notifications$" + + block-out-from "screen-capture" +} + +layer-rule { + match namespace=r#"^notifications$"# block-out-from "screen-capture" } -- 2.51.2